diff --git a/data/conf/perf-reg/tez/hive-site.xml b/data/conf/perf-reg/tez/hive-site.xml index 78a5481e03..6404b8c514 100644 --- a/data/conf/perf-reg/tez/hive-site.xml +++ b/data/conf/perf-reg/tez/hive-site.xml @@ -292,4 +292,9 @@ 99 + + hive.merge.nway.joins + false + + diff --git a/data/scripts/q_perf_test_init_constraints.sql b/data/scripts/q_perf_test_init_constraints.sql new file mode 100644 index 0000000000..10e99343f3 --- /dev/null +++ b/data/scripts/q_perf_test_init_constraints.sql @@ -0,0 +1,768 @@ +drop table if exists call_center; +create external table call_center +( + cc_call_center_sk int, + cc_call_center_id string, + cc_rec_start_date string, + cc_rec_end_date string, + cc_closed_date_sk int, + cc_open_date_sk int, + cc_name string, + cc_class string, + cc_employees int, + cc_sq_ft int, + cc_hours string, + cc_manager string, + cc_mkt_id int, + cc_mkt_class string, + cc_mkt_desc string, + cc_market_manager string, + cc_division int, + cc_division_name string, + cc_company int, + cc_company_name string, + cc_street_number string, + cc_street_name string, + cc_street_type string, + cc_suite_number string, + cc_city string, + cc_county string, + cc_state string, + cc_zip string, + cc_country string, + cc_gmt_offset decimal(5,2), + cc_tax_percentage decimal(5,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + +drop table if exists catalog_page; +create external table catalog_page +( + cp_catalog_page_sk int, + cp_catalog_page_id string, + cp_start_date_sk int, + cp_end_date_sk int, + cp_department string, + cp_catalog_number int, + cp_catalog_page_number int, + cp_description string, + cp_type string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists catalog_returns; +create external table catalog_returns +( + cr_returned_date_sk int, + cr_returned_time_sk int, + cr_item_sk int, + cr_refunded_customer_sk int, + cr_refunded_cdemo_sk int, + cr_refunded_hdemo_sk int, + cr_refunded_addr_sk int, + cr_returning_customer_sk int, + cr_returning_cdemo_sk int, + cr_returning_hdemo_sk int, + cr_returning_addr_sk int, + cr_call_center_sk int, + cr_catalog_page_sk int, + cr_ship_mode_sk int, + cr_warehouse_sk int, + cr_reason_sk int, + cr_order_number int, + cr_return_quantity int, + cr_return_amount decimal(7,2), + cr_return_tax decimal(7,2), + cr_return_amt_inc_tax decimal(7,2), + cr_fee decimal(7,2), + cr_return_ship_cost decimal(7,2), + cr_refunded_cash decimal(7,2), + cr_reversed_charge decimal(7,2), + cr_store_credit decimal(7,2), + cr_net_loss decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists catalog_sales; +create external table catalog_sales +( + cs_sold_date_sk int, + cs_sold_time_sk int, + cs_ship_date_sk int, + cs_bill_customer_sk int, + cs_bill_cdemo_sk int, + cs_bill_hdemo_sk int, + cs_bill_addr_sk int, + cs_ship_customer_sk int, + cs_ship_cdemo_sk int, + cs_ship_hdemo_sk int, + cs_ship_addr_sk int, + cs_call_center_sk int, + cs_catalog_page_sk int, + cs_ship_mode_sk int, + cs_warehouse_sk int, + cs_item_sk int, + cs_promo_sk int, + cs_order_number int, + cs_quantity int, + cs_wholesale_cost decimal(7,2), + cs_list_price decimal(7,2), + cs_sales_price decimal(7,2), + cs_ext_discount_amt decimal(7,2), + cs_ext_sales_price decimal(7,2), + cs_ext_wholesale_cost decimal(7,2), + cs_ext_list_price decimal(7,2), + cs_ext_tax decimal(7,2), + cs_coupon_amt decimal(7,2), + cs_ext_ship_cost decimal(7,2), + cs_net_paid decimal(7,2), + cs_net_paid_inc_tax decimal(7,2), + cs_net_paid_inc_ship decimal(7,2), + cs_net_paid_inc_ship_tax decimal(7,2), + cs_net_profit decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists customer; +create external table customer +( + c_customer_sk int, + c_customer_id string, + c_current_cdemo_sk int, + c_current_hdemo_sk int, + c_current_addr_sk int, + c_first_shipto_date_sk int, + c_first_sales_date_sk int, + c_salutation string, + c_first_name string, + c_last_name string, + c_preferred_cust_flag string, + c_birth_day int, + c_birth_month int, + c_birth_year int, + c_birth_country string, + c_login string, + c_email_address string, + c_last_review_date string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists customer_address; +create external table customer_address +( + ca_address_sk int, + ca_address_id string, + ca_street_number string, + ca_street_name string, + ca_street_type string, + ca_suite_number string, + ca_city string, + ca_county string, + ca_state string, + ca_zip string, + ca_country string, + ca_gmt_offset decimal(5,2), + ca_location_type string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists customer_demographics; +create external table customer_demographics +( + cd_demo_sk int, + cd_gender string, + cd_marital_status string, + cd_education_status string, + cd_purchase_estimate int, + cd_credit_rating string, + cd_dep_count int, + cd_dep_employed_count int, + cd_dep_college_count int +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists date_dim; +create external table date_dim +( + d_date_sk int, + d_date_id string, + d_date string, + d_month_seq int, + d_week_seq int, + d_quarter_seq int, + d_year int, + d_dow int, + d_moy int, + d_dom int, + d_qoy int, + d_fy_year int, + d_fy_quarter_seq int, + d_fy_week_seq int, + d_day_name string, + d_quarter_name string, + d_holiday string, + d_weekend string, + d_following_holiday string, + d_first_dom int, + d_last_dom int, + d_same_day_ly int, + d_same_day_lq int, + d_current_day string, + d_current_week string, + d_current_month string, + d_current_quarter string, + d_current_year string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists household_demographics; +create external table household_demographics +( + hd_demo_sk int, + hd_income_band_sk int, + hd_buy_potential string, + hd_dep_count int, + hd_vehicle_count int +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists income_band; +create external table income_band +( + ib_income_band_sk int, + ib_lower_bound int, + ib_upper_bound int +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists inventory; +create external table inventory +( + inv_date_sk int, + inv_item_sk int, + inv_warehouse_sk int, + inv_quantity_on_hand int +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists item; +create external table item +( + i_item_sk int, + i_item_id string, + i_rec_start_date string, + i_rec_end_date string, + i_item_desc string, + i_current_price decimal(7,2), + i_wholesale_cost decimal(7,2), + i_brand_id int, + i_brand string, + i_class_id int, + i_class string, + i_category_id int, + i_category string, + i_manufact_id int, + i_manufact string, + i_size string, + i_formulation string, + i_color string, + i_units string, + i_container string, + i_manager_id int, + i_product_name string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists promotion; +create external table promotion +( + p_promo_sk int, + p_promo_id string, + p_start_date_sk int, + p_end_date_sk int, + p_item_sk int, + p_cost decimal(15,2), + p_response_target int, + p_promo_name string, + p_channel_dmail string, + p_channel_email string, + p_channel_catalog string, + p_channel_tv string, + p_channel_radio string, + p_channel_press string, + p_channel_event string, + p_channel_demo string, + p_channel_details string, + p_purpose string, + p_discount_active string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists reason; +create external table reason +( + r_reason_sk int, + r_reason_id string, + r_reason_desc string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists ship_mode; +create external table ship_mode +( + sm_ship_mode_sk int, + sm_ship_mode_id string, + sm_type string, + sm_code string, + sm_carrier string, + sm_contract string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists store; +create external table store +( + s_store_sk int, + s_store_id string, + s_rec_start_date string, + s_rec_end_date string, + s_closed_date_sk int, + s_store_name string, + s_number_employees int, + s_floor_space int, + s_hours string, + s_manager string, + s_market_id int, + s_geography_class string, + s_market_desc string, + s_market_manager string, + s_division_id int, + s_division_name string, + s_company_id int, + s_company_name string, + s_street_number string, + s_street_name string, + s_street_type string, + s_suite_number string, + s_city string, + s_county string, + s_state string, + s_zip string, + s_country string, + s_gmt_offset decimal(5,2), + s_tax_precentage decimal(5,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists store_returns; +create external table store_returns +( + sr_returned_date_sk int, + sr_return_time_sk int, + sr_item_sk int, + sr_customer_sk int, + sr_cdemo_sk int, + sr_hdemo_sk int, + sr_addr_sk int, + sr_store_sk int, + sr_reason_sk int, + sr_ticket_number int, + sr_return_quantity int, + sr_return_amt decimal(7,2), + sr_return_tax decimal(7,2), + sr_return_amt_inc_tax decimal(7,2), + sr_fee decimal(7,2), + sr_return_ship_cost decimal(7,2), + sr_refunded_cash decimal(7,2), + sr_reversed_charge decimal(7,2), + sr_store_credit decimal(7,2), + sr_net_loss decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists store_sales; +create external table store_sales +( + ss_sold_date_sk int, + ss_sold_time_sk int, + ss_item_sk int, + ss_customer_sk int, + ss_cdemo_sk int, + ss_hdemo_sk int, + ss_addr_sk int, + ss_store_sk int, + ss_promo_sk int, + ss_ticket_number int, + ss_quantity int, + ss_wholesale_cost decimal(7,2), + ss_list_price decimal(7,2), + ss_sales_price decimal(7,2), + ss_ext_discount_amt decimal(7,2), + ss_ext_sales_price decimal(7,2), + ss_ext_wholesale_cost decimal(7,2), + ss_ext_list_price decimal(7,2), + ss_ext_tax decimal(7,2), + ss_coupon_amt decimal(7,2), + ss_net_paid decimal(7,2), + ss_net_paid_inc_tax decimal(7,2), + ss_net_profit decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists time_dim; +create external table time_dim +( + t_time_sk int, + t_time_id string, + t_time int, + t_hour int, + t_minute int, + t_second int, + t_am_pm string, + t_shift string, + t_sub_shift string, + t_meal_time string +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists warehouse; +create external table warehouse +( + w_warehouse_sk int, + w_warehouse_id string, + w_warehouse_name string, + w_warehouse_sq_ft int, + w_street_number string, + w_street_name string, + w_street_type string, + w_suite_number string, + w_city string, + w_county string, + w_state string, + w_zip string, + w_country string, + w_gmt_offset decimal(5,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists web_page; +create external table web_page +( + wp_web_page_sk int, + wp_web_page_id string, + wp_rec_start_date string, + wp_rec_end_date string, + wp_creation_date_sk int, + wp_access_date_sk int, + wp_autogen_flag string, + wp_customer_sk int, + wp_url string, + wp_type string, + wp_char_count int, + wp_link_count int, + wp_image_count int, + wp_max_ad_count int +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists web_returns; +create external table web_returns +( + wr_returned_date_sk int, + wr_returned_time_sk int, + wr_item_sk int, + wr_refunded_customer_sk int, + wr_refunded_cdemo_sk int, + wr_refunded_hdemo_sk int, + wr_refunded_addr_sk int, + wr_returning_customer_sk int, + wr_returning_cdemo_sk int, + wr_returning_hdemo_sk int, + wr_returning_addr_sk int, + wr_web_page_sk int, + wr_reason_sk int, + wr_order_number int, + wr_return_quantity int, + wr_return_amt decimal(7,2), + wr_return_tax decimal(7,2), + wr_return_amt_inc_tax decimal(7,2), + wr_fee decimal(7,2), + wr_return_ship_cost decimal(7,2), + wr_refunded_cash decimal(7,2), + wr_reversed_charge decimal(7,2), + wr_account_credit decimal(7,2), + wr_net_loss decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists web_sales; +create external table web_sales +( + ws_sold_date_sk int, + ws_sold_time_sk int, + ws_ship_date_sk int, + ws_item_sk int, + ws_bill_customer_sk int, + ws_bill_cdemo_sk int, + ws_bill_hdemo_sk int, + ws_bill_addr_sk int, + ws_ship_customer_sk int, + ws_ship_cdemo_sk int, + ws_ship_hdemo_sk int, + ws_ship_addr_sk int, + ws_web_page_sk int, + ws_web_site_sk int, + ws_ship_mode_sk int, + ws_warehouse_sk int, + ws_promo_sk int, + ws_order_number int, + ws_quantity int, + ws_wholesale_cost decimal(7,2), + ws_list_price decimal(7,2), + ws_sales_price decimal(7,2), + ws_ext_discount_amt decimal(7,2), + ws_ext_sales_price decimal(7,2), + ws_ext_wholesale_cost decimal(7,2), + ws_ext_list_price decimal(7,2), + ws_ext_tax decimal(7,2), + ws_coupon_amt decimal(7,2), + ws_ext_ship_cost decimal(7,2), + ws_net_paid decimal(7,2), + ws_net_paid_inc_tax decimal(7,2), + ws_net_paid_inc_ship decimal(7,2), + ws_net_paid_inc_ship_tax decimal(7,2), + ws_net_profit decimal(7,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +drop table if exists web_site; +create external table web_site +( + web_site_sk int, + web_site_id string, + web_rec_start_date string, + web_rec_end_date string, + web_name string, + web_open_date_sk int, + web_close_date_sk int, + web_class string, + web_manager string, + web_mkt_id int, + web_mkt_class string, + web_mkt_desc string, + web_market_manager string, + web_company_id int, + web_company_name string, + web_street_number string, + web_street_name string, + web_street_type string, + web_suite_number string, + web_city string, + web_county string, + web_state string, + web_zip string, + web_country string, + web_gmt_offset decimal(5,2), + web_tax_percentage decimal(5,2) +) +row format delimited fields terminated by '\t' +STORED AS ORC tblproperties ("orc.compress"="ZLIB"); + + +-- CONSTRAINTS +alter table customer_address add constraint pk_ca primary key (ca_address_sk) disable novalidate rely; +alter table customer_demographics add constraint pk_cd primary key (cd_demo_sk) disable novalidate rely; +alter table date_dim add constraint pk_dd primary key (d_date_sk) disable novalidate rely; +alter table warehouse add constraint pk_w primary key (w_warehouse_sk) disable novalidate rely; +alter table ship_mode add constraint pk_sm primary key (sm_ship_mode_sk) disable novalidate rely; +alter table time_dim add constraint pk_td primary key (t_time_sk) disable novalidate rely; +alter table reason add constraint pk_r primary key (r_reason_sk) disable novalidate rely; +alter table income_band add constraint pk_ib primary key (ib_income_band_sk) disable novalidate rely; +alter table item add constraint pk_i primary key (i_item_sk) disable novalidate rely; +alter table store add constraint pk_s primary key (s_store_sk) disable novalidate rely; +alter table call_center add constraint pk_cc primary key (cc_call_center_sk) disable novalidate rely; +alter table customer add constraint pk_c primary key (c_customer_sk) disable novalidate rely; +alter table web_site add constraint pk_ws primary key (web_site_sk) disable novalidate rely; +alter table store_returns add constraint pk_sr primary key (sr_item_sk, sr_ticket_number) disable novalidate rely; +alter table household_demographics add constraint pk_hd primary key (hd_demo_sk) disable novalidate rely; +alter table web_page add constraint pk_wp primary key (wp_web_page_sk) disable novalidate rely; +alter table promotion add constraint pk_p primary key (p_promo_sk) disable novalidate rely; +alter table catalog_page add constraint pk_cp primary key (cp_catalog_page_sk) disable novalidate rely; +-- partition_col case +alter table inventory add constraint pk_in primary key (inv_date_sk, inv_item_sk, inv_warehouse_sk) disable novalidate rely; +alter table catalog_returns add constraint pk_cr primary key (cr_item_sk, cr_order_number) disable novalidate rely; +alter table web_returns add constraint pk_wr primary key (wr_item_sk, wr_order_number) disable novalidate rely; +alter table web_sales add constraint pk_ws2 primary key (ws_item_sk, ws_order_number) disable novalidate rely; +alter table catalog_sales add constraint pk_cs primary key (cs_item_sk, cs_order_number) disable novalidate rely; +alter table store_sales add constraint pk_ss primary key (ss_item_sk, ss_ticket_number) disable novalidate rely; + +alter table call_center add constraint cc_d1 foreign key (cc_closed_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table call_center add constraint cc_d2 foreign key (cc_open_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_page add constraint cp_d1 foreign key (cp_end_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_page add constraint cp_d2 foreign key (cp_start_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_cc foreign key (cr_call_center_sk) references call_center (cc_call_center_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_cp foreign key (cr_catalog_page_sk) references catalog_page (cp_catalog_page_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_i foreign key (cr_item_sk) references item (i_item_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_r foreign key (cr_reason_sk) references reason (r_reason_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_a1 foreign key (cr_refunded_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_cd1 foreign key (cr_refunded_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_c1 foreign key (cr_refunded_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_hd1 foreign key (cr_refunded_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +-- partition_col case +alter table catalog_returns add constraint cr_d1 foreign key (cr_returned_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_t foreign key (cr_returned_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_a2 foreign key (cr_returning_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_cd2 foreign key (cr_returning_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_c2 foreign key (cr_returning_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_hd2 foreign key (cr_returning_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +-- alter table catalog_returns add constraint cr_d2 foreign key (cr_ship_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_sm foreign key (cr_ship_mode_sk) references ship_mode (sm_ship_mode_sk) disable novalidate rely; +alter table catalog_returns add constraint cr_w2 foreign key (cr_warehouse_sk) references warehouse (w_warehouse_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_b_a foreign key (cs_bill_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_b_cd foreign key (cs_bill_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_b_c foreign key (cs_bill_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_b_hd foreign key (cs_bill_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_cc foreign key (cs_call_center_sk) references call_center (cc_call_center_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_cp foreign key (cs_catalog_page_sk) references catalog_page (cp_catalog_page_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_i foreign key (cs_item_sk) references item (i_item_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_p foreign key (cs_promo_sk) references promotion (p_promo_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_s_a foreign key (cs_ship_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_s_cd foreign key (cs_ship_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_s_c foreign key (cs_ship_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_d1 foreign key (cs_ship_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_s_hd foreign key (cs_ship_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_sm foreign key (cs_ship_mode_sk) references ship_mode (sm_ship_mode_sk) disable novalidate rely; +-- partition_col case +alter table catalog_sales add constraint cs_d2 foreign key (cs_sold_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_t foreign key (cs_sold_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table catalog_sales add constraint cs_w foreign key (cs_warehouse_sk) references warehouse (w_warehouse_sk) disable novalidate rely; +alter table customer add constraint c_a foreign key (c_current_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table customer add constraint c_cd foreign key (c_current_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table customer add constraint c_hd foreign key (c_current_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table customer add constraint c_fsd foreign key (c_first_sales_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table customer add constraint c_fsd2 foreign key (c_first_shipto_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table household_demographics add constraint hd_ib foreign key (hd_income_band_sk) references income_band (ib_income_band_sk) disable novalidate rely; +-- partition_col case +alter table inventory add constraint inv_d foreign key (inv_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table inventory add constraint inv_i foreign key (inv_item_sk) references item (i_item_sk) disable novalidate rely; +alter table inventory add constraint inv_w foreign key (inv_warehouse_sk) references warehouse (w_warehouse_sk) disable novalidate rely; +alter table promotion add constraint p_end_date foreign key (p_end_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table promotion add constraint p_i foreign key (p_item_sk) references item (i_item_sk) disable novalidate rely; +alter table promotion add constraint p_start_date foreign key (p_start_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table store add constraint s_close_date foreign key (s_closed_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table store_returns add constraint sr_a foreign key (sr_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table store_returns add constraint sr_cd foreign key (sr_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table store_returns add constraint sr_c foreign key (sr_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table store_returns add constraint sr_hd foreign key (sr_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table store_returns add constraint sr_i foreign key (sr_item_sk) references item (i_item_sk) disable novalidate rely; +alter table store_returns add constraint sr_r foreign key (sr_reason_sk) references reason (r_reason_sk) disable novalidate rely; +-- partition_col case +alter table store_returns add constraint sr_ret_d foreign key (sr_returned_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table store_returns add constraint sr_t foreign key (sr_return_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table store_returns add constraint sr_s foreign key (sr_store_sk) references store (s_store_sk) disable novalidate rely; +alter table store_sales add constraint ss_a foreign key (ss_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table store_sales add constraint ss_cd foreign key (ss_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table store_sales add constraint ss_c foreign key (ss_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table store_sales add constraint ss_hd foreign key (ss_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table store_sales add constraint ss_i foreign key (ss_item_sk) references item (i_item_sk) disable novalidate rely; +alter table store_sales add constraint ss_p foreign key (ss_promo_sk) references promotion (p_promo_sk) disable novalidate rely; +-- partition_col case +alter table store_sales add constraint ss_d foreign key (ss_sold_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table store_sales add constraint ss_t foreign key (ss_sold_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table store_sales add constraint ss_s foreign key (ss_store_sk) references store (s_store_sk) disable novalidate rely; +alter table web_page add constraint wp_ad foreign key (wp_access_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_page add constraint wp_cd foreign key (wp_creation_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_returns add constraint wr_i foreign key (wr_item_sk) references item (i_item_sk) disable novalidate rely; +alter table web_returns add constraint wr_r foreign key (wr_reason_sk) references reason (r_reason_sk) disable novalidate rely; +alter table web_returns add constraint wr_ref_a foreign key (wr_refunded_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table web_returns add constraint wr_ref_cd foreign key (wr_refunded_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table web_returns add constraint wr_ref_c foreign key (wr_refunded_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table web_returns add constraint wr_ref_hd foreign key (wr_refunded_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +-- partition_col case +alter table web_returns add constraint wr_ret_d foreign key (wr_returned_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_returns add constraint wr_ret_t foreign key (wr_returned_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table web_returns add constraint wr_ret_a foreign key (wr_returning_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table web_returns add constraint wr_ret_cd foreign key (wr_returning_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table web_returns add constraint wr_ret_c foreign key (wr_returning_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table web_returns add constraint wr_ret_hd foreign key (wr_returning_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table web_returns add constraint wr_wp foreign key (wr_web_page_sk) references web_page (wp_web_page_sk) disable novalidate rely; +alter table web_sales add constraint ws_b_a foreign key (ws_bill_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table web_sales add constraint ws_b_cd foreign key (ws_bill_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table web_sales add constraint ws_b_c foreign key (ws_bill_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table web_sales add constraint ws_b_hd foreign key (ws_bill_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table web_sales add constraint ws_i foreign key (ws_item_sk) references item (i_item_sk) disable novalidate rely; +alter table web_sales add constraint ws_p foreign key (ws_promo_sk) references promotion (p_promo_sk) disable novalidate rely; +alter table web_sales add constraint ws_s_a foreign key (ws_ship_addr_sk) references customer_address (ca_address_sk) disable novalidate rely; +alter table web_sales add constraint ws_s_cd foreign key (ws_ship_cdemo_sk) references customer_demographics (cd_demo_sk) disable novalidate rely; +alter table web_sales add constraint ws_s_c foreign key (ws_ship_customer_sk) references customer (c_customer_sk) disable novalidate rely; +alter table web_sales add constraint ws_s_d foreign key (ws_ship_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_sales add constraint ws_s_hd foreign key (ws_ship_hdemo_sk) references household_demographics (hd_demo_sk) disable novalidate rely; +alter table web_sales add constraint ws_sm foreign key (ws_ship_mode_sk) references ship_mode (sm_ship_mode_sk) disable novalidate rely; +-- partition_col case +alter table web_sales add constraint ws_d2 foreign key (ws_sold_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_sales add constraint ws_t foreign key (ws_sold_time_sk) references time_dim (t_time_sk) disable novalidate rely; +alter table web_sales add constraint ws_w2 foreign key (ws_warehouse_sk) references warehouse (w_warehouse_sk) disable novalidate rely; +alter table web_sales add constraint ws_wp foreign key (ws_web_page_sk) references web_page (wp_web_page_sk) disable novalidate rely; +alter table web_sales add constraint ws_ws foreign key (ws_web_site_sk) references web_site (web_site_sk) disable novalidate rely; +alter table web_site add constraint web_d1 foreign key (web_close_date_sk) references date_dim (d_date_sk) disable novalidate rely; +alter table web_site add constraint web_d2 foreign key (web_open_date_sk) references date_dim (d_date_sk) disable novalidate rely; + +alter table store change column s_store_id s_store_id string constraint strid_nn not null disable novalidate rely; +alter table call_center change column cc_call_center_id cc_call_center_id string constraint ccid_nn not null disable novalidate rely; +alter table catalog_page change column cp_catalog_page_id cp_catalog_page_id string constraint cpid_nn not null disable novalidate rely; +alter table web_site change column web_site_id web_site_id string constraint wsid_nn not null disable novalidate rely; +alter table web_page change column wp_web_page_id wp_web_page_id string constraint wpid_nn not null disable novalidate rely; +alter table warehouse change column w_warehouse_id w_warehouse_id string constraint wid_nn not null disable novalidate rely; +alter table customer change column c_customer_id c_customer_id string constraint cid_nn not null disable novalidate rely; +alter table customer_address change column ca_address_id ca_address_id string constraint caid_nn not null disable novalidate rely; +alter table date_dim change column d_date_id d_date_id string constraint did_nn not null disable novalidate rely; +alter table item change column i_item_id i_item_id string constraint itid_nn not null disable novalidate rely; +alter table promotion change column p_promo_id p_promo_id string constraint pid_nn not null disable novalidate rely; +alter table reason change column r_reason_id r_reason_id string constraint rid_nn not null disable novalidate rely; +alter table ship_mode change column sm_ship_mode_id sm_ship_mode_id string constraint smid_nn not null disable novalidate rely; +alter table time_dim change column t_time_id t_time_id string constraint tid_nn not null disable novalidate rely; diff --git a/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfCliDriver.java b/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfCliDriver.java index 98ceb21404..18a470fd11 100644 --- a/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfCliDriver.java +++ b/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfCliDriver.java @@ -34,7 +34,7 @@ @RunWith(Parameterized.class) public class TestTezPerfCliDriver { - static CliAdapter adapter = new CliConfigs.TezPerfCliConfig().getCliAdapter(); + static CliAdapter adapter = new CliConfigs.TezPerfCliConfig(false).getCliAdapter(); @Parameters(name = "{0}") public static List getParameters() throws Exception { diff --git a/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfConstraintsCliDriver.java b/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfConstraintsCliDriver.java new file mode 100644 index 0000000000..5881353387 --- /dev/null +++ b/itests/qtest/src/test/java/org/apache/hadoop/hive/cli/TestTezPerfConstraintsCliDriver.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.cli; + +import java.io.File; +import java.util.Comparator; +import java.util.List; +import org.apache.hadoop.hive.cli.control.CliAdapter; +import org.apache.hadoop.hive.cli.control.CliConfigs; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestRule; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class TestTezPerfConstraintsCliDriver { + + static CliAdapter adapter = new CliConfigs.TezPerfCliConfig(true).getCliAdapter(); + + @Parameters(name = "{0}") + public static List getParameters() throws Exception { + List parameters = adapter.getParameters(); + parameters.sort(new C1()); + return parameters; + } + + static class C1 implements Comparator { + + @Override + public int compare(Object[] o1, Object[] o2) { + return o1[0].toString().compareTo(o2[0].toString()); + } + + } + + @ClassRule + public static TestRule cliClassRule = adapter.buildClassRule(); + + @Rule + public TestRule cliTestRule = adapter.buildTestRule(); + + private String name; + private File qfile; + + public TestTezPerfConstraintsCliDriver(String name, File qfile) { + this.name = name; + this.qfile = qfile; + } + + @Test + public void testCliDriver() throws Exception { + adapter.runTest(name, qfile); + } + +} diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java index 11f87f4743..126f8360de 100644 --- a/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java +++ b/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java @@ -277,7 +277,7 @@ public ContribCliConfig() { } public static class TezPerfCliConfig extends AbstractCliConfig { - public TezPerfCliConfig() { + public TezPerfCliConfig(boolean useConstraints) { super(CorePerfCliDriver.class); try { setQueryDir("ql/src/test/queries/clientpositive/perf"); @@ -287,10 +287,15 @@ public TezPerfCliConfig() { excludesFrom(testConfigProps, "encrypted.query.files"); excludesFrom(testConfigProps, "erasurecoding.only.query.files"); - setResultsDir("ql/src/test/results/clientpositive/perf/tez"); setLogDir("itests/qtest/target/qfile-results/clientpositive/tez"); - setInitScript("q_perf_test_init.sql"); + if (useConstraints) { + setInitScript("q_perf_test_init_constraints.sql"); + setResultsDir("ql/src/test/results/clientpositive/perf/tez/constraints"); + } else { + setInitScript("q_perf_test_init.sql"); + setResultsDir("ql/src/test/results/clientpositive/perf/tez"); + } setCleanupScript("q_perf_test_cleanup.sql"); setHiveConfDir("data/conf/perf-reg/tez"); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelOptUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelOptUtil.java index dc0a84b37d..d7e1204bb8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelOptUtil.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveRelOptUtil.java @@ -18,20 +18,28 @@ package org.apache.hadoop.hive.ql.optimizer.calcite; import com.google.common.collect.Multimap; +import com.google.common.collect.Sets; import java.util.AbstractList; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; import com.google.common.collect.ImmutableList; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptUtil; import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rel.RelReferentialConstraint; import org.apache.calcite.rel.core.Aggregate; import org.apache.calcite.rel.core.Aggregate.Group; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.core.Filter; +import org.apache.calcite.rel.core.Join; +import org.apache.calcite.rel.core.JoinRelType; import org.apache.calcite.rel.core.Project; import org.apache.calcite.rel.core.RelFactories; import org.apache.calcite.rel.core.Sort; @@ -45,12 +53,15 @@ import org.apache.calcite.rex.RexInputRef; import org.apache.calcite.rex.RexNode; import org.apache.calcite.rex.RexOver; +import org.apache.calcite.rex.RexTableInputRef; +import org.apache.calcite.rex.RexTableInputRef.RelTableRef; import org.apache.calcite.rex.RexUtil; import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.util.ImmutableBitSet; +import org.apache.calcite.util.Pair; import org.apache.hadoop.hive.ql.exec.FunctionRegistry; import org.apache.hadoop.hive.ql.optimizer.calcite.translator.TypeConverter; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; @@ -524,4 +535,220 @@ public static boolean isRowFilteringPlan(final RelMetadataQuery mq, RelNode oper // It passed all the tests return false; } + + public static Pair> isRewritablePKFKJoin(Join join, boolean leftInputPotentialFK, RelMetadataQuery mq) { + final JoinRelType joinType = join.getJoinType(); + final RexNode cond = join.getCondition(); + final RelNode fkInput = leftInputPotentialFK ? join.getLeft() : join.getRight(); + final RelNode nonFkInput = leftInputPotentialFK ? join.getRight() : join.getLeft(); + final Pair> nonRewritable = Pair.of(false, null); + + // 1) Check whether there is any filtering condition on the + // non-FK side. Basically we check whether the operators + // below altered the PK cardinality in any way + if (HiveRelOptUtil.isRowFilteringPlan(mq, nonFkInput)) { + return nonRewritable; + } + + // 2) Check whether there is an FK relationship + final Map refToRex = new HashMap<>(); + final EquivalenceClasses ec = new EquivalenceClasses(); + for (RexNode conj : RelOptUtil.conjunctions(cond)) { + if (!conj.isA(SqlKind.EQUALS)) { + // Not an equality, we bail out + return nonRewritable; + } + RexCall equiCond = (RexCall) conj; + RexNode eqOp1 = equiCond.getOperands().get(0); + Set eqOp1ExprsLineage = mq.getExpressionLineage(join, eqOp1); + if (eqOp1ExprsLineage == null) { + // Cannot be mapped, bail out + return nonRewritable; + } + RexNode eqOp2 = equiCond.getOperands().get(1); + Set eqOp2ExprsLineage = mq.getExpressionLineage(join, eqOp2); + if (eqOp2ExprsLineage == null) { + // Cannot be mapped, bail out + return nonRewritable; + } + List eqOp2ExprsFiltered = null; + for (RexNode eqOpExprLineage1 : eqOp1ExprsLineage) { + RexTableInputRef inputRef1 = extractTableInputRef(eqOpExprLineage1); + if (inputRef1 == null) { + // Bail out as this condition could not be map into an input reference + return nonRewritable; + } + refToRex.put(inputRef1, eqOp1); + if (eqOp2ExprsFiltered == null) { + // First iteration + eqOp2ExprsFiltered = new ArrayList<>(); + for (RexNode eqOpExprLineage2 : eqOp2ExprsLineage) { + RexTableInputRef inputRef2 = extractTableInputRef(eqOpExprLineage2); + if (inputRef2 == null) { + // Bail out as this condition could not be map into an input reference + return nonRewritable; + } + // Add to list of expressions for follow-up iterations + eqOp2ExprsFiltered.add(inputRef2); + // Add to equivalence classes and backwards mapping + ec.addEquivalenceClass(inputRef1, inputRef2); + refToRex.put(inputRef2, eqOp2); + } + } else { + // Rest of iterations, only adding, no checking + for (RexTableInputRef inputRef2 : eqOp2ExprsFiltered) { + ec.addEquivalenceClass(inputRef1, inputRef2); + } + } + } + } + if (ec.getEquivalenceClassesMap().isEmpty()) { + // This may be a cartesian product, we bail out + return nonRewritable; + } + + // 3) Gather all tables from the FK side and the table from the + // non-FK side + final Set leftTables = mq.getTableReferences(join.getLeft()); + final Set rightTables = + Sets.difference(mq.getTableReferences(join), mq.getTableReferences(join.getLeft())); + final Set fkTables = join.getLeft() == fkInput ? leftTables : rightTables; + final Set nonFkTables = join.getLeft() == fkInput ? rightTables : leftTables; + assert nonFkTables.size() == 1; + final RelTableRef nonFkTable = nonFkTables.iterator().next(); + final List nonFkTableQName = nonFkTable.getQualifiedName(); + + // 4) For each table, check whether there is a matching on the non-FK side. + // If there is and it is the only condition, we are ready to transform + boolean canBeRewritten = false; + List nullableNodes = null; + for (RelTableRef tRef : fkTables) { + List constraints = tRef.getTable().getReferentialConstraints(); + for (RelReferentialConstraint constraint : constraints) { + if (constraint.getTargetQualifiedName().equals(nonFkTableQName)) { + nullableNodes = new ArrayList<>(); + EquivalenceClasses ecT = EquivalenceClasses.copy(ec); + boolean allContained = true; + for (int pos = 0; pos < constraint.getNumColumns(); pos++) { + int foreignKeyPos = constraint.getColumnPairs().get(pos).source; + RelDataType foreignKeyColumnType = + tRef.getTable().getRowType().getFieldList().get(foreignKeyPos).getType(); + RexTableInputRef foreignKeyColumnRef = + RexTableInputRef.of(tRef, foreignKeyPos, foreignKeyColumnType); + int uniqueKeyPos = constraint.getColumnPairs().get(pos).target; + RexTableInputRef uniqueKeyColumnRef = RexTableInputRef.of(nonFkTable, uniqueKeyPos, + nonFkTable.getTable().getRowType().getFieldList().get(uniqueKeyPos).getType()); + if (ecT.getEquivalenceClassesMap().containsKey(uniqueKeyColumnRef) && + ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).contains(foreignKeyColumnRef)) { + if (foreignKeyColumnType.isNullable()) { + if (joinType == JoinRelType.INNER) { + // If it is nullable and it is an INNER, we just need a IS NOT NULL filter + RexNode originalCondOp = refToRex.get(foreignKeyColumnRef); + assert originalCondOp != null; + nullableNodes.add(originalCondOp); + } else { + // If it is nullable and this is not an INNER, we cannot execute any transformation + allContained = false; + break; + } + } + // Remove this condition from eq classes as we have checked that it is present + // in the join condition + ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).remove(foreignKeyColumnRef); + if (ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).size() == 1) { // self + ecT.getEquivalenceClassesMap().remove(uniqueKeyColumnRef); + } + ecT.getEquivalenceClassesMap().get(foreignKeyColumnRef).remove(uniqueKeyColumnRef); + if (ecT.getEquivalenceClassesMap().get(foreignKeyColumnRef).size() == 1) { // self + ecT.getEquivalenceClassesMap().remove(foreignKeyColumnRef); + } + } else { + // No relationship, we cannot do anything + allContained = false; + break; + } + } + if (allContained && ecT.getEquivalenceClassesMap().isEmpty()) { + // We made it + canBeRewritten = true; + break; + } + } + } + } + + return Pair.of(canBeRewritten, nullableNodes); + } + + private static RexTableInputRef extractTableInputRef(RexNode node) { + RexTableInputRef ref = null; + if (node instanceof RexTableInputRef) { + ref = (RexTableInputRef) node; + } else if (RexUtil.isLosslessCast(node) && + ((RexCall) node).getOperands().get(0) instanceof RexTableInputRef) { + ref = (RexTableInputRef) ((RexCall) node).getOperands().get(0); + } + return ref; + } + + /** + * Class representing an equivalence class, i.e., a set of equivalent columns + * + * TODO: This is a subset of a private class in materialized view rewriting + * in Calcite. It should be moved to its own class in Calcite so it can be + * accessible here. + */ + private static class EquivalenceClasses { + + private final Map> nodeToEquivalenceClass; + + protected EquivalenceClasses() { + nodeToEquivalenceClass = new HashMap<>(); + } + + protected void addEquivalenceClass(RexTableInputRef p1, RexTableInputRef p2) { + Set c1 = nodeToEquivalenceClass.get(p1); + Set c2 = nodeToEquivalenceClass.get(p2); + if (c1 != null && c2 != null) { + // Both present, we need to merge + if (c1.size() < c2.size()) { + // We swap them to merge + Set c2Temp = c2; + c2 = c1; + c1 = c2Temp; + } + for (RexTableInputRef newRef : c2) { + c1.add(newRef); + nodeToEquivalenceClass.put(newRef, c1); + } + } else if (c1 != null) { + // p1 present, we need to merge into it + c1.add(p2); + nodeToEquivalenceClass.put(p2, c1); + } else if (c2 != null) { + // p2 present, we need to merge into it + c2.add(p1); + nodeToEquivalenceClass.put(p1, c2); + } else { + // None are present, add to same equivalence class + Set equivalenceClass = new LinkedHashSet<>(); + equivalenceClass.add(p1); + equivalenceClass.add(p2); + nodeToEquivalenceClass.put(p1, equivalenceClass); + nodeToEquivalenceClass.put(p2, equivalenceClass); + } + } + + protected Map> getEquivalenceClassesMap() { + return nodeToEquivalenceClass; + } + + protected static EquivalenceClasses copy(EquivalenceClasses ec) { + final EquivalenceClasses newEc = new EquivalenceClasses(); + for (Entry> e : ec.nodeToEquivalenceClass.entrySet()) { + newEc.nodeToEquivalenceClass.put(e.getKey(), Sets.newLinkedHashSet(e.getValue())); + } + return newEc; + } + } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java index 0a307f248a..7c581cb4d0 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinConstraintsRule.java @@ -53,6 +53,7 @@ import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; +import org.apache.calcite.util.Pair; import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.MappingType; import org.apache.calcite.util.mapping.Mappings; @@ -105,7 +106,6 @@ public void onMatch(RelOptRuleCall call) { // If it is a left outer, left will be the FK side. // If it is a right outer, right will be the FK side. final RelNode fkInput; - final RelNode nonFkInput; final ImmutableBitSet topRefs = RelOptUtil.InputFinder.bits(topProjExprs, null); final ImmutableBitSet leftBits = @@ -204,17 +204,14 @@ public void onMatch(RelOptRuleCall call) { return; } fkInput = leftInputPotentialFK ? leftInput : rightInput; - nonFkInput = leftInputPotentialFK ? rightInput : leftInput; mode = Mode.REMOVE; break; case LEFT: fkInput = leftInput; - nonFkInput = rightInput; mode = leftInputPotentialFK && !rightInputPotentialFK ? Mode.REMOVE : Mode.TRANSFORM; break; case RIGHT: fkInput = rightInput; - nonFkInput = leftInput; mode = !leftInputPotentialFK && rightInputPotentialFK ? Mode.REMOVE : Mode.TRANSFORM; break; default: @@ -222,15 +219,6 @@ public void onMatch(RelOptRuleCall call) { return; } - // 2) Check whether there is any filtering condition on the - // non-FK side. Basically we check whether the operators - // below altered the PK cardinality in any way - final RelMetadataQuery mq = call.getMetadataQuery(); - if (HiveRelOptUtil.isRowFilteringPlan(mq, nonFkInput)) { - return; - } - - // 3) Check whether there is an FK relationship if (join.getJoinType() != JoinRelType.INNER) { // If it is not an inner, we transform it as the metadata // providers for expressions do not pull information through @@ -240,133 +228,14 @@ public void onMatch(RelOptRuleCall call) { .join(JoinRelType.INNER, cond) .build(); } - final Map refToRex = new HashMap<>(); - final EquivalenceClasses ec = new EquivalenceClasses(); - for (RexNode conj : RelOptUtil.conjunctions(cond)) { - if (!conj.isA(SqlKind.EQUALS)) { - // Not an equality, we bail out - return; - } - RexCall equiCond = (RexCall) conj; - RexNode eqOp1 = equiCond.getOperands().get(0); - Set eqOp1ExprsLineage = mq.getExpressionLineage(join, eqOp1); - if (eqOp1ExprsLineage == null) { - // Cannot be mapped, bail out - return; - } - RexNode eqOp2 = equiCond.getOperands().get(1); - Set eqOp2ExprsLineage = mq.getExpressionLineage(join, eqOp2); - if (eqOp2ExprsLineage == null) { - // Cannot be mapped, bail out - return; - } - List eqOp2ExprsFiltered = null; - for (RexNode eqOpExprLineage1 : eqOp1ExprsLineage) { - RexTableInputRef inputRef1 = extractTableInputRef(eqOpExprLineage1); - if (inputRef1 == null) { - // Bail out as this condition could not be map into an input reference - return; - } - refToRex.put(inputRef1, eqOp1); - if (eqOp2ExprsFiltered == null) { - // First iteration - eqOp2ExprsFiltered = new ArrayList<>(); - for (RexNode eqOpExprLineage2 : eqOp2ExprsLineage) { - RexTableInputRef inputRef2 = extractTableInputRef(eqOpExprLineage2); - if (inputRef2 == null) { - // Bail out as this condition could not be map into an input reference - return; - } - // Add to list of expressions for follow-up iterations - eqOp2ExprsFiltered.add(inputRef2); - // Add to equivalence classes and backwards mapping - ec.addEquivalenceClass(inputRef1, inputRef2); - refToRex.put(inputRef2, eqOp2); - } - } else { - // Rest of iterations, only adding, no checking - for (RexTableInputRef inputRef2 : eqOp2ExprsFiltered) { - ec.addEquivalenceClass(inputRef1, inputRef2); - } - } - } - } - if (ec.getEquivalenceClassesMap().isEmpty()) { - // This may be a cartesian product, we bail out - return; - } - // 4) Gather all tables from the FK side and the table from the - // non-FK side - final Set leftTables = mq.getTableReferences(leftInput); - final Set rightTables = - Sets.difference(mq.getTableReferences(join), mq.getTableReferences(leftInput)); - final Set fkTables = leftInputPotentialFK ? leftTables : rightTables; - final Set nonFkTables = leftInputPotentialFK ? rightTables : leftTables; - assert nonFkTables.size() == 1; - final RelTableRef nonFkTable = nonFkTables.iterator().next(); - final List nonFkTableQName = nonFkTable.getQualifiedName(); + // 2) Check whether this join can be rewritten or removed + Pair> r = HiveRelOptUtil.isRewritablePKFKJoin( + join, leftInput == fkInput, call.getMetadataQuery()); - // 5) For each table, check whether there is a matching on the non-FK side. - // If there is and it is the only condition, we are ready to transform - boolean canBeRewritten = false; - List nullableNodes = new ArrayList<>(); - for (RelTableRef tRef : fkTables) { - List constraints = tRef.getTable().getReferentialConstraints(); - for (RelReferentialConstraint constraint : constraints) { - if (constraint.getTargetQualifiedName().equals(nonFkTableQName)) { - EquivalenceClasses ecT = EquivalenceClasses.copy(ec); - boolean allContained = true; - for (int pos = 0; pos < constraint.getNumColumns(); pos++) { - int foreignKeyPos = constraint.getColumnPairs().get(pos).source; - RelDataType foreignKeyColumnType = - tRef.getTable().getRowType().getFieldList().get(foreignKeyPos).getType(); - RexTableInputRef foreignKeyColumnRef = - RexTableInputRef.of(tRef, foreignKeyPos, foreignKeyColumnType); - if (foreignKeyColumnType.isNullable()) { - if (joinType == JoinRelType.INNER) { - // If it is nullable and it is an INNER, we just need a IS NOT NULL filter - RexNode originalCondOp = refToRex.get(foreignKeyColumnRef); - assert originalCondOp != null; - nullableNodes.add(originalCondOp); - } else { - // If it is nullable and this is not an INNER, we cannot execute any transformation - allContained = false; - break; - } - } - int uniqueKeyPos = constraint.getColumnPairs().get(pos).target; - RexTableInputRef uniqueKeyColumnRef = RexTableInputRef.of(nonFkTable, uniqueKeyPos, - nonFkTable.getTable().getRowType().getFieldList().get(uniqueKeyPos).getType()); - if (ecT.getEquivalenceClassesMap().containsKey(uniqueKeyColumnRef) && - ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).contains(foreignKeyColumnRef)) { - // Remove this condition from eq classes as we have checked that it is present - // in the join condition - ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).remove(foreignKeyColumnRef); - if (ecT.getEquivalenceClassesMap().get(uniqueKeyColumnRef).size() == 1) { // self - ecT.getEquivalenceClassesMap().remove(uniqueKeyColumnRef); - } - ecT.getEquivalenceClassesMap().get(foreignKeyColumnRef).remove(uniqueKeyColumnRef); - if (ecT.getEquivalenceClassesMap().get(foreignKeyColumnRef).size() == 1) { // self - ecT.getEquivalenceClassesMap().remove(foreignKeyColumnRef); - } - } else { - // No relationship, we cannot do anything - allContained = false; - break; - } - } - if (allContained && ecT.getEquivalenceClassesMap().isEmpty()) { - // We made it - canBeRewritten = true; - break; - } - } - } - } - - // 6) If it is the only condition, we can trigger the rewriting - if (canBeRewritten) { + // 3) If it is the only condition, we can trigger the rewriting + if (r.left) { + List nullableNodes = r.right; // If we reach here, we trigger the transform if (mode == Mode.REMOVE) { if (rightInputPotentialFK) { @@ -416,78 +285,6 @@ public void onMatch(RelOptRuleCall call) { } } - private static RexTableInputRef extractTableInputRef(RexNode node) { - RexTableInputRef ref = null; - if (node instanceof RexTableInputRef) { - ref = (RexTableInputRef) node; - } else if (RexUtil.isLosslessCast(node) && - ((RexCall) node).getOperands().get(0) instanceof RexTableInputRef) { - ref = (RexTableInputRef) ((RexCall) node).getOperands().get(0); - } - return ref; - } - - /** - * Class representing an equivalence class, i.e., a set of equivalent columns - * - * TODO: This is a subset of a private class in materialized view rewriting - * in Calcite. It should be moved to its own class in Calcite so it can be - * accessible here. - */ - private static class EquivalenceClasses { - - private final Map> nodeToEquivalenceClass; - - protected EquivalenceClasses() { - nodeToEquivalenceClass = new HashMap<>(); - } - - protected void addEquivalenceClass(RexTableInputRef p1, RexTableInputRef p2) { - Set c1 = nodeToEquivalenceClass.get(p1); - Set c2 = nodeToEquivalenceClass.get(p2); - if (c1 != null && c2 != null) { - // Both present, we need to merge - if (c1.size() < c2.size()) { - // We swap them to merge - Set c2Temp = c2; - c2 = c1; - c1 = c2Temp; - } - for (RexTableInputRef newRef : c2) { - c1.add(newRef); - nodeToEquivalenceClass.put(newRef, c1); - } - } else if (c1 != null) { - // p1 present, we need to merge into it - c1.add(p2); - nodeToEquivalenceClass.put(p2, c1); - } else if (c2 != null) { - // p2 present, we need to merge into it - c2.add(p1); - nodeToEquivalenceClass.put(p1, c2); - } else { - // None are present, add to same equivalence class - Set equivalenceClass = new LinkedHashSet<>(); - equivalenceClass.add(p1); - equivalenceClass.add(p2); - nodeToEquivalenceClass.put(p1, equivalenceClass); - nodeToEquivalenceClass.put(p2, equivalenceClass); - } - } - - protected Map> getEquivalenceClassesMap() { - return nodeToEquivalenceClass; - } - - protected static EquivalenceClasses copy(EquivalenceClasses ec) { - final EquivalenceClasses newEc = new EquivalenceClasses(); - for (Entry> e : ec.nodeToEquivalenceClass.entrySet()) { - newEc.nodeToEquivalenceClass.put(e.getKey(), Sets.newLinkedHashSet(e.getValue())); - } - return newEc; - } - } - private enum Mode { // Removes join operator from the plan REMOVE, diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query1.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query1.q.out new file mode 100644 index 0000000000..66f2d952f6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query1.q.out @@ -0,0 +1,177 @@ +PREHOOK: query: explain +with customer_total_return as +(select sr_customer_sk as ctr_customer_sk +,sr_store_sk as ctr_store_sk +,sum(SR_FEE) as ctr_total_return +from store_returns +,date_dim +where sr_returned_date_sk = d_date_sk +and d_year =2000 +group by sr_customer_sk +,sr_store_sk) + select c_customer_id +from customer_total_return ctr1 +,store +,customer +where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 +from customer_total_return ctr2 +where ctr1.ctr_store_sk = ctr2.ctr_store_sk) +and s_store_sk = ctr1.ctr_store_sk +and s_state = 'NM' +and ctr1.ctr_customer_sk = c_customer_sk +order by c_customer_id +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with customer_total_return as +(select sr_customer_sk as ctr_customer_sk +,sr_store_sk as ctr_store_sk +,sum(SR_FEE) as ctr_total_return +from store_returns +,date_dim +where sr_returned_date_sk = d_date_sk +and d_year =2000 +group by sr_customer_sk +,sr_store_sk) + select c_customer_id +from customer_total_return ctr1 +,store +,customer +where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 +from customer_total_return ctr2 +where ctr1.ctr_store_sk = ctr2.ctr_store_sk) +and s_store_sk = ctr1.ctr_store_sk +and s_state = 'NM' +and ctr1.ctr_customer_sk = c_customer_sk +order by c_customer_id +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 12 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_159] + Limit [LIM_158] (rows=100 width=860) + Number of rows:100 + Select Operator [SEL_157] (rows=32266667 width=860) + Output:["_col0"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_49] + Select Operator [SEL_48] (rows=32266667 width=860) + Output:["_col0"] + Filter Operator [FIL_47] (rows=32266667 width=860) + predicate:(_col2 > _col6) + Merge Join Operator [MERGEJOIN_133] (rows=96800003 width=860) + Conds:RS_44._col1=RS_156._col1(Inner),Output:["_col2","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_131] (rows=88000001 width=860) + Conds:RS_41._col0=RS_151._col0(Inner),Output:["_col1","_col2","_col5"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_151] + PartitionCols:_col0 + Select Operator [SEL_150] (rows=80000000 width=860) + Output:["_col0","_col1"] + TableScan [TS_17] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_130] (rows=34842647 width=77) + Conds:RS_146._col1=RS_149._col0(Inner),Output:["_col0","_col1","_col2"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_149] + PartitionCols:_col0 + Select Operator [SEL_148] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_147] (rows=852 width=1910) + predicate:(s_state = 'NM') + TableScan [TS_14] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_state"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_146] + PartitionCols:_col1 + Select Operator [SEL_145] (rows=31675133 width=77) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_144] (rows=31675133 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0, _col1 + Group By Operator [GBY_10] (rows=63350266 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_129] (rows=63350266 width=77) + Conds:RS_138._col0=RS_142._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_138] + PartitionCols:_col0 + Select Operator [SEL_136] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_134] (rows=57591150 width=77) + predicate:(sr_customer_sk is not null and sr_returned_date_sk is not null and sr_store_sk is not null) + TableScan [TS_0] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_customer_sk","sr_store_sk","sr_fee"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_142] + PartitionCols:_col0 + Select Operator [SEL_141] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_140] (rows=36524 width=1119) + predicate:(d_year = 2000) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_156] + PartitionCols:_col1 + Select Operator [SEL_155] (rows=15837566 width=77) + Output:["_col0","_col1"] + Group By Operator [GBY_154] (rows=15837566 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 + Select Operator [SEL_153] (rows=31675133 width=77) + Output:["_col1","_col2"] + Group By Operator [GBY_152] (rows=31675133 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Group By Operator [GBY_29] (rows=63350266 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_132] (rows=63350266 width=77) + Conds:RS_139._col0=RS_143._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_139] + PartitionCols:_col0 + Select Operator [SEL_137] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_135] (rows=57591150 width=77) + predicate:(sr_returned_date_sk is not null and sr_store_sk is not null) + Please refer to the previous TableScan [TS_0] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_143] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_141] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query10.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query10.q.out new file mode 100644 index 0000000000..f96d79b31b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query10.q.out @@ -0,0 +1,355 @@ +PREHOOK: query: explain +select + cd_gender, + cd_marital_status, + cd_education_status, + count(*) cnt1, + cd_purchase_estimate, + count(*) cnt2, + cd_credit_rating, + count(*) cnt3, + cd_dep_count, + count(*) cnt4, + cd_dep_employed_count, + count(*) cnt5, + cd_dep_college_count, + count(*) cnt6 + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk and + ca_county in ('Walker County','Richland County','Gaines County','Douglas County','Dona Ana County') 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 = 2002 and + d_moy between 4 and 4+3) and + (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 = 2002 and + d_moy between 4 ANd 4+3) or + 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 = 2002 and + d_moy between 4 and 4+3)) + group by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count +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, + cd_dep_count, + count(*) cnt4, + cd_dep_employed_count, + count(*) cnt5, + cd_dep_college_count, + count(*) cnt6 + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk and + ca_county in ('Walker County','Richland County','Gaines County','Douglas County','Dona Ana County') 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 = 2002 and + d_moy between 4 and 4+3) and + (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 = 2002 and + d_moy between 4 ANd 4+3) or + 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 = 2002 and + d_moy between 4 and 4+3)) + group by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by cd_gender, + cd_marital_status, + cd_education_status, + cd_purchase_estimate, + cd_credit_rating, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count +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 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (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 3 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_231] + Limit [LIM_230] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_229] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_228] + Select Operator [SEL_227] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col8","_col10","_col12"] + Group By Operator [GBY_226] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 + Group By Operator [GBY_65] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["count()"],keys:_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 + Top N Key Operator [TNK_102] (rows=843315281 width=88) + keys:_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13,sort order:++++++++,top n:100 + Select Operator [SEL_64] (rows=843315281 width=88) + Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Filter Operator [FIL_63] (rows=843315281 width=88) + predicate:(_col15 is not null or _col17 is not null) + Merge Join Operator [MERGEJOIN_180] (rows=843315281 width=88) + Conds:RS_60._col0=RS_225._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col15","_col17"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_225] + PartitionCols:_col0 + Select Operator [SEL_224] (rows=158394413 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_223] (rows=158394413 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Group By Operator [GBY_42] (rows=316788826 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_177] (rows=316788826 width=135) + Conds:RS_222._col0=RS_195._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_195] + PartitionCols:_col0 + Select Operator [SEL_190] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_189] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_moy BETWEEN 4 AND 7) + TableScan [TS_11] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_222] + PartitionCols:_col0 + Select Operator [SEL_221] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_220] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_39_date_dim_d_date_sk_min) AND DynamicValue(RS_39_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_39_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_32] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_219] + Group By Operator [GBY_218] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_202] + Group By Operator [GBY_199] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_196] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_190] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_60] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_179] (rows=766650239 width=88) + Conds:RS_57._col0=RS_217._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col15"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_215] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0 + Group By Operator [GBY_28] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_176] (rows=158402938 width=135) + Conds:RS_214._col0=RS_193._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_193] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_190] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_214] + PartitionCols:_col0 + Select Operator [SEL_213] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_212] (rows=144002668 width=135) + predicate:((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=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_211] + Group By Operator [GBY_210] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_201] + Group By Operator [GBY_198] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_194] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_190] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_57] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_178] (rows=696954748 width=88) + Conds:RS_54._col0=RS_55._col0(Left Semi),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_54] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_174] (rows=96800003 width=860) + Conds:RS_49._col1=RS_188._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_188] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + TableScan [TS_6] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_173] (rows=88000001 width=860) + Conds:RS_183._col2=RS_186._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_183] + PartitionCols:_col2 + Select Operator [SEL_182] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_181] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_186] + PartitionCols:_col0 + Select Operator [SEL_185] (rows=40000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_184] (rows=40000000 width=1014) + predicate:(ca_county) IN ('Walker County', 'Richland County', 'Gaines County', 'Douglas County', 'Dona Ana County') + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0 + Group By Operator [GBY_53] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_17] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_175] (rows=633595212 width=88) + Conds:RS_209._col0=RS_191._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_191] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_190] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_209] + PartitionCols:_col0 + Select Operator [SEL_208] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_207] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_54_c_c_customer_sk_min) AND DynamicValue(RS_54_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_54_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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_204] + Group By Operator [GBY_203] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_200] + Group By Operator [GBY_197] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_192] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_190] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_206] + Group By Operator [GBY_205] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_135] + Group By Operator [GBY_134] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] + Select Operator [SEL_133] (rows=96800003 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_174] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query11.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query11.q.out new file mode 100644 index 0000000000..b92607e8ac --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query11.q.out @@ -0,0 +1,453 @@ +PREHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.c_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by t_s_secyear.c_preferred_cust_flag +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ss_ext_list_price-ss_ext_discount_amt) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(ws_ext_list_price-ws_ext_discount_amt) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.c_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by t_s_secyear.c_preferred_cust_flag +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +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 1 <- Reducer 8 (BROADCAST_EDGE) +Map 26 <- Reducer 18 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE) +Map 27 <- Reducer 22 (BROADCAST_EDGE) +Map 28 <- Reducer 13 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE) +Reducer 10 <- Map 23 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 17 (ONE_TO_ONE_EDGE) +Reducer 13 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 26 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 15 <- Map 23 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 18 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 27 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 20 <- Map 23 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 23 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 28 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_358] + Limit [LIM_357] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_356] (rows=210828820 width=88) + Output:["_col0"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_90] + Select Operator [SEL_89] (rows=210828820 width=88) + Output:["_col0"] + Filter Operator [FIL_88] (rows=210828820 width=88) + predicate:CASE WHEN (_col5) THEN (CASE WHEN (_col6) THEN (((_col1 / _col4) > _col7)) ELSE (_col8) END) ELSE (CASE WHEN (_col6) THEN (((_col1 / _col4) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_282] (rows=421657640 width=88) + Conds:RS_323._col0=RS_86._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 12 [ONE_TO_ONE_EDGE] + FORWARD [RS_86] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_281] (rows=383325119 width=88) + Conds:RS_81._col0=RS_333._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col7","_col8"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_333] + PartitionCols:_col0 + Select Operator [SEL_332] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_331] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_74] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_279] (rows=696954748 width=88) + Conds:RS_70._col1=RS_312._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_312] + PartitionCols:_col0 + Select Operator [SEL_310] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_278] (rows=633595212 width=88) + Conds:RS_330._col0=RS_291._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_291] + PartitionCols:_col0 + Select Operator [SEL_286] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_283] (rows=36524 width=1119) + predicate:(d_year = 2002) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_330] + PartitionCols:_col0 + Select Operator [SEL_329] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_328] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_71_customer_c_customer_sk_min) AND DynamicValue(RS_71_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_71_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_68_date_dim_d_date_sk_min) AND DynamicValue(RS_68_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_68_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_59] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_325] + Group By Operator [GBY_324] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_302] + Group By Operator [GBY_298] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_292] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_286] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_327] + Group By Operator [GBY_326] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + Group By Operator [GBY_317] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_313] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_310] + <-Reducer 17 [ONE_TO_ONE_EDGE] + FORWARD [RS_81] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_280] (rows=127775039 width=88) + Conds:RS_345._col0=RS_355._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_345] + PartitionCols:_col0 + Select Operator [SEL_344] (rows=116159124 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_343] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_342] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_341] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_34] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_275] (rows=696954748 width=88) + Conds:RS_30._col1=RS_314._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_314] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_274] (rows=633595212 width=88) + Conds:RS_340._col0=RS_293._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_293] + PartitionCols:_col0 + Select Operator [SEL_287] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_284] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_3] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_340] + PartitionCols:_col0 + Select Operator [SEL_339] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_338] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_31_customer_c_customer_sk_min) AND DynamicValue(RS_31_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_31_customer_c_customer_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_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_19] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_335] + Group By Operator [GBY_334] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_303] + Group By Operator [GBY_299] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_294] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_287] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_337] + Group By Operator [GBY_336] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + Group By Operator [GBY_318] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_315] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_310] + <-Reducer 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_355] + PartitionCols:_col0 + Select Operator [SEL_354] (rows=29040539 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_353] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_352] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_351] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_54] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_277] (rows=174243235 width=135) + Conds:RS_50._col1=RS_316._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_316] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_276] (rows=158402938 width=135) + Conds:RS_350._col0=RS_295._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + PartitionCols:_col0 + Select Operator [SEL_288] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_285] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_3] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_350] + PartitionCols:_col0 + Select Operator [SEL_349] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_348] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_48_date_dim_d_date_sk_min) AND DynamicValue(RS_48_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_48_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_39] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_347] + Group By Operator [GBY_346] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_304] + Group By Operator [GBY_300] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_296] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_288] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col0 + Select Operator [SEL_322] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_321] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_273] (rows=174243235 width=135) + Conds:RS_11._col1=RS_311._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_311] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_272] (rows=158402938 width=135) + Conds:RS_309._col0=RS_289._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_289] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_286] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_309] + PartitionCols:_col0 + Select Operator [SEL_308] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_307] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_306] + Group By Operator [GBY_305] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_301] + Group By Operator [GBY_297] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_290] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_286] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query12.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query12.q.out new file mode 100644 index 0000000000..e9a6bdcce8 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query12.q.out @@ -0,0 +1,169 @@ +PREHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ws_ext_sales_price) as itemrevenue + ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over + (partition by i_class) as revenueratio +from + web_sales + ,item + ,date_dim +where + ws_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and ws_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ws_ext_sales_price) as itemrevenue + ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over + (partition by i_class) as revenueratio +from + web_sales + ,item + ,date_dim +where + ws_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and ws_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_86] + Limit [LIM_85] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_84] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_83] + Select Operator [SEL_82] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_81] (rows=87121617 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST","partition by:":"_col1"}] + Select Operator [SEL_80] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_79] + PartitionCols:_col1 + Group By Operator [GBY_78] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_16] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)"],keys:_col9, _col8, _col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_58] (rows=174243235 width=135) + Conds:RS_12._col1=RS_69._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_69] + PartitionCols:_col0 + Select Operator [SEL_68] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_67] (rows=462000 width=1436) + predicate:(i_category) IN ('Jewelry', 'Sports', 'Books') + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc","i_current_price","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_57] (rows=158402938 width=135) + Conds:RS_77._col0=RS_61._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_61] + PartitionCols:_col0 + Select Operator [SEL_60] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_59] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-01-12 00:00:00' AND TIMESTAMP'2001-02-11 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_77] + PartitionCols:_col0 + Select Operator [SEL_76] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_75] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_0] (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 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_74] + Group By Operator [GBY_73] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_72] + Group By Operator [GBY_71] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_70] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_68] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_66] + Group By Operator [GBY_65] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_64] + Group By Operator [GBY_63] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_62] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_60] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query13.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query13.q.out new file mode 100644 index 0000000000..20d1af003a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query13.q.out @@ -0,0 +1,257 @@ +PREHOOK: query: explain +select avg(ss_quantity) + ,avg(ss_ext_sales_price) + ,avg(ss_ext_wholesale_cost) + ,sum(ss_ext_wholesale_cost) + from store_sales + ,store + ,customer_demographics + ,household_demographics + ,customer_address + ,date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 2001 + and((ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'M' + and cd_education_status = '4 yr Degree' + and ss_sales_price between 100.00 and 150.00 + and hd_dep_count = 3 + )or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'D' + and cd_education_status = 'Primary' + and ss_sales_price between 50.00 and 100.00 + and hd_dep_count = 1 + ) or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'U' + and cd_education_status = 'Advanced Degree' + and ss_sales_price between 150.00 and 200.00 + and hd_dep_count = 1 + )) + and((ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('KY', 'GA', 'NM') + and ss_net_profit between 100 and 200 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('MT', 'OR', 'IN') + and ss_net_profit between 150 and 300 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('WI', 'MO', 'WV') + and ss_net_profit between 50 and 250 + )) +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select avg(ss_quantity) + ,avg(ss_ext_sales_price) + ,avg(ss_ext_wholesale_cost) + ,sum(ss_ext_wholesale_cost) + from store_sales + ,store + ,customer_demographics + ,household_demographics + ,customer_address + ,date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 2001 + and((ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'M' + and cd_education_status = '4 yr Degree' + and ss_sales_price between 100.00 and 150.00 + and hd_dep_count = 3 + )or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'D' + and cd_education_status = 'Primary' + and ss_sales_price between 50.00 and 100.00 + and hd_dep_count = 1 + ) or + (ss_hdemo_sk=hd_demo_sk + and cd_demo_sk = ss_cdemo_sk + and cd_marital_status = 'U' + and cd_education_status = 'Advanced Degree' + and ss_sales_price between 150.00 and 200.00 + and hd_dep_count = 1 + )) + and((ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('KY', 'GA', 'NM') + and ss_net_profit between 100 and 200 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('MT', 'OR', 'IN') + and ss_net_profit between 150 and 300 + ) or + (ss_addr_sk = ca_address_sk + and ca_country = 'United States' + and ca_state in ('WI', 'MO', 'WV') + and ss_net_profit between 50 and 250 + )) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 8 <- Reducer 10 (BROADCAST_EDGE), Reducer 12 (BROADCAST_EDGE), Reducer 14 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 13 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 1 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_136] + Select Operator [SEL_135] (rows=1 width=256) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_134] (rows=1 width=256) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","count(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)"] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_32] + Group By Operator [GBY_31] (rows=1 width=256) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","count(_col2)","sum(_col3)","count(_col3)","sum(_col4)","count(_col4)"] + Select Operator [SEL_30] (rows=39530400 width=88) + Output:["_col2","_col3","_col4"] + Filter Operator [FIL_29] (rows=39530400 width=88) + predicate:((_col10 and _col5) or (_col11 and _col6) or (_col12 and _col7)) + Merge Join Operator [MERGEJOIN_98] (rows=52707202 width=88) + Conds:RS_26._col1=RS_125._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7","_col10","_col11","_col12"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col0 + Select Operator [SEL_124] (rows=20000000 width=1014) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_123] (rows=20000000 width=1014) + predicate:(ca_country = 'United States') + TableScan [TS_20] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state","ca_country"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_97] (rows=47915638 width=88) + Conds:RS_23._col0=RS_117._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_117] + PartitionCols:_col0 + Select Operator [SEL_116] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_115] (rows=36524 width=1119) + predicate:(d_year = 2001) + TableScan [TS_17] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0 + Select Operator [SEL_16] (rows=43559670 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_15] (rows=43559670 width=88) + predicate:((_col1 and _col2 and _col17 and _col21) or (_col3 and _col4 and _col18 and _col22) or (_col5 and _col6 and _col19 and _col22)) + Merge Join Operator [MERGEJOIN_96] (rows=232318249 width=88) + Conds:RS_12._col9=RS_109._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col21","_col22"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_109] + PartitionCols:_col0 + Select Operator [SEL_108] (rows=7200 width=107) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_107] (rows=7200 width=107) + predicate:(hd_dep_count) IN (3, 1) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col9 + Merge Join Operator [MERGEJOIN_95] (rows=211198404 width=88) + Conds:RS_101._col0=RS_133._col1(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_101] + PartitionCols:_col0 + Select Operator [SEL_100] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_99] (rows=1861800 width=385) + predicate:((cd_education_status) IN ('4 yr Degree', 'Primary', 'Advanced Degree') and (cd_marital_status) IN ('M', 'D', 'U')) + TableScan [TS_0] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status","cd_education_status"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_133] + PartitionCols:_col1 + Select Operator [SEL_132] (rows=191998545 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Filter Operator [FIL_131] (rows=191998545 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_27_customer_address_ca_address_sk_min) AND DynamicValue(RS_27_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_27_customer_address_ca_address_sk_bloom_filter))) and (ss_cdemo_sk BETWEEN DynamicValue(RS_9_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_9_customer_demographics_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_9_customer_demographics_cd_demo_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_13_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_13_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_13_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sales_price BETWEEN 100 AND 150 or ss_sales_price BETWEEN 50 AND 100 or ss_sales_price BETWEEN 150 AND 200) and (ss_sold_date_sk BETWEEN DynamicValue(RS_24_date_dim_d_date_sk_min) AND DynamicValue(RS_24_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_24_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_cdemo_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_cdemo_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_quantity","ss_sales_price","ss_ext_sales_price","ss_ext_wholesale_cost","ss_net_profit"] + <-Reducer 10 [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 9 [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=7200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_108] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_122] + Group By Operator [GBY_121] (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_120] + Group By Operator [GBY_119] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_118] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_116] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_130] + Group By Operator [GBY_129] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + Group By Operator [GBY_127] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_126] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_124] + <-Reducer 7 [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=1861800)"] + <-Map 1 [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=1861800)"] + Select Operator [SEL_102] (rows=1861800 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_100] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query14.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query14.q.out new file mode 100644 index 0000000000..150aa1814a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query14.q.out @@ -0,0 +1,1472 @@ +Warning: Shuffle Join MERGEJOIN[1431][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[1443][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[1433][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product +Warning: Shuffle Join MERGEJOIN[1456][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product +Warning: Shuffle Join MERGEJOIN[1435][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product +Warning: Shuffle Join MERGEJOIN[1469][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product +PREHOOK: query: explain +with cross_items as + (select i_item_sk ss_item_sk + from item, + (select iss.i_brand_id brand_id + ,iss.i_class_id class_id + ,iss.i_category_id category_id + from store_sales + ,item iss + ,date_dim d1 + where ss_item_sk = iss.i_item_sk + and ss_sold_date_sk = d1.d_date_sk + and d1.d_year between 1999 AND 1999 + 2 + intersect + select ics.i_brand_id + ,ics.i_class_id + ,ics.i_category_id + from catalog_sales + ,item ics + ,date_dim d2 + where cs_item_sk = ics.i_item_sk + and cs_sold_date_sk = d2.d_date_sk + and d2.d_year between 1999 AND 1999 + 2 + intersect + select iws.i_brand_id + ,iws.i_class_id + ,iws.i_category_id + from web_sales + ,item iws + ,date_dim d3 + where ws_item_sk = iws.i_item_sk + and ws_sold_date_sk = d3.d_date_sk + and d3.d_year between 1999 AND 1999 + 2) x + where i_brand_id = brand_id + and i_class_id = class_id + and i_category_id = category_id +), + avg_sales as + (select avg(quantity*list_price) average_sales + from (select ss_quantity quantity + ,ss_list_price list_price + from store_sales + ,date_dim + where ss_sold_date_sk = d_date_sk + and d_year between 1999 and 2001 + union all + select cs_quantity quantity + ,cs_list_price list_price + from catalog_sales + ,date_dim + where cs_sold_date_sk = d_date_sk + and d_year between 1998 and 1998 + 2 + union all + select ws_quantity quantity + ,ws_list_price list_price + from web_sales + ,date_dim + where ws_sold_date_sk = d_date_sk + and d_year between 1998 and 1998 + 2) x) + select channel, i_brand_id,i_class_id,i_category_id,sum(sales), sum(number_sales) + from( + select 'store' channel, i_brand_id,i_class_id + ,i_category_id,sum(ss_quantity*ss_list_price) sales + , count(*) number_sales + from store_sales + ,item + ,date_dim + where ss_item_sk in (select ss_item_sk from cross_items) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ss_quantity*ss_list_price) > (select average_sales from avg_sales) + union all + select 'catalog' channel, i_brand_id,i_class_id,i_category_id, sum(cs_quantity*cs_list_price) sales, count(*) number_sales + from catalog_sales + ,item + ,date_dim + where cs_item_sk in (select ss_item_sk from cross_items) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(cs_quantity*cs_list_price) > (select average_sales from avg_sales) + union all + select 'web' channel, i_brand_id,i_class_id,i_category_id, sum(ws_quantity*ws_list_price) sales , count(*) number_sales + from web_sales + ,item + ,date_dim + where ws_item_sk in (select ss_item_sk from cross_items) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ws_quantity*ws_list_price) > (select average_sales from avg_sales) + ) y + group by rollup (channel, i_brand_id,i_class_id,i_category_id) + order by channel,i_brand_id,i_class_id,i_category_id + limit 100 +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@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with cross_items as + (select i_item_sk ss_item_sk + from item, + (select iss.i_brand_id brand_id + ,iss.i_class_id class_id + ,iss.i_category_id category_id + from store_sales + ,item iss + ,date_dim d1 + where ss_item_sk = iss.i_item_sk + and ss_sold_date_sk = d1.d_date_sk + and d1.d_year between 1999 AND 1999 + 2 + intersect + select ics.i_brand_id + ,ics.i_class_id + ,ics.i_category_id + from catalog_sales + ,item ics + ,date_dim d2 + where cs_item_sk = ics.i_item_sk + and cs_sold_date_sk = d2.d_date_sk + and d2.d_year between 1999 AND 1999 + 2 + intersect + select iws.i_brand_id + ,iws.i_class_id + ,iws.i_category_id + from web_sales + ,item iws + ,date_dim d3 + where ws_item_sk = iws.i_item_sk + and ws_sold_date_sk = d3.d_date_sk + and d3.d_year between 1999 AND 1999 + 2) x + where i_brand_id = brand_id + and i_class_id = class_id + and i_category_id = category_id +), + avg_sales as + (select avg(quantity*list_price) average_sales + from (select ss_quantity quantity + ,ss_list_price list_price + from store_sales + ,date_dim + where ss_sold_date_sk = d_date_sk + and d_year between 1999 and 2001 + union all + select cs_quantity quantity + ,cs_list_price list_price + from catalog_sales + ,date_dim + where cs_sold_date_sk = d_date_sk + and d_year between 1998 and 1998 + 2 + union all + select ws_quantity quantity + ,ws_list_price list_price + from web_sales + ,date_dim + where ws_sold_date_sk = d_date_sk + and d_year between 1998 and 1998 + 2) x) + select channel, i_brand_id,i_class_id,i_category_id,sum(sales), sum(number_sales) + from( + select 'store' channel, i_brand_id,i_class_id + ,i_category_id,sum(ss_quantity*ss_list_price) sales + , count(*) number_sales + from store_sales + ,item + ,date_dim + where ss_item_sk in (select ss_item_sk from cross_items) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ss_quantity*ss_list_price) > (select average_sales from avg_sales) + union all + select 'catalog' channel, i_brand_id,i_class_id,i_category_id, sum(cs_quantity*cs_list_price) sales, count(*) number_sales + from catalog_sales + ,item + ,date_dim + where cs_item_sk in (select ss_item_sk from cross_items) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(cs_quantity*cs_list_price) > (select average_sales from avg_sales) + union all + select 'web' channel, i_brand_id,i_class_id,i_category_id, sum(ws_quantity*ws_list_price) sales , count(*) number_sales + from web_sales + ,item + ,date_dim + where ws_item_sk in (select ss_item_sk from cross_items) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1998+2 + and d_moy = 11 + group by i_brand_id,i_class_id,i_category_id + having sum(ws_quantity*ws_list_price) > (select average_sales from avg_sales) + ) y + group by rollup (channel, i_brand_id,i_class_id,i_category_id) + order by channel,i_brand_id,i_class_id,i_category_id + limit 100 +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@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 111 (BROADCAST_EDGE) +Map 103 <- Reducer 106 (BROADCAST_EDGE), Reducer 76 (BROADCAST_EDGE) +Map 113 <- Reducer 108 (BROADCAST_EDGE), Reducer 79 (BROADCAST_EDGE) +Map 114 <- Reducer 110 (BROADCAST_EDGE), Reducer 82 (BROADCAST_EDGE) +Map 115 <- Reducer 101 (BROADCAST_EDGE), Reducer 63 (BROADCAST_EDGE), Reducer 85 (BROADCAST_EDGE) +Map 116 <- Reducer 102 (BROADCAST_EDGE), Reducer 68 (BROADCAST_EDGE), Reducer 94 (BROADCAST_EDGE) +Map 20 <- Reducer 25 (BROADCAST_EDGE) +Map 36 <- Reducer 41 (BROADCAST_EDGE) +Map 46 <- Reducer 112 (BROADCAST_EDGE) +Map 50 <- Reducer 29 (BROADCAST_EDGE) +Map 51 <- Reducer 43 (BROADCAST_EDGE) +Map 52 <- Reducer 58 (BROADCAST_EDGE), Reducer 71 (BROADCAST_EDGE), Reducer 83 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (SIMPLE_EDGE), Map 105 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 100 <- Reducer 98 (SIMPLE_EDGE), Union 91 (CONTAINS) +Reducer 101 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 102 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 104 <- Map 103 (SIMPLE_EDGE), Map 105 (SIMPLE_EDGE) +Reducer 106 <- Map 105 (CUSTOM_SIMPLE_EDGE) +Reducer 107 <- Map 105 (SIMPLE_EDGE), Map 113 (SIMPLE_EDGE) +Reducer 108 <- Map 105 (CUSTOM_SIMPLE_EDGE) +Reducer 109 <- Map 105 (SIMPLE_EDGE), Map 114 (SIMPLE_EDGE) +Reducer 110 <- Map 105 (CUSTOM_SIMPLE_EDGE) +Reducer 111 <- Map 105 (CUSTOM_SIMPLE_EDGE) +Reducer 112 <- Map 105 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Union 11 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 32 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 62 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 15 <- Map 1 (SIMPLE_EDGE), Map 105 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 17 <- Union 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 35 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 67 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 105 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 23 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 28 <- Union 27 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 30 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 32 <- Union 31 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 35 <- Union 34 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 38 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 39 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 4 <- Union 3 (CUSTOM_SIMPLE_EDGE) +Reducer 41 <- Map 40 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 43 <- Map 40 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 45 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 47 <- Map 105 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 48 <- Map 105 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 49 <- Map 105 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 5 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 53 <- Map 52 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 54 <- Map 69 (SIMPLE_EDGE), Reducer 53 (SIMPLE_EDGE) +Reducer 55 <- Reducer 54 (ONE_TO_ONE_EDGE), Reducer 70 (SIMPLE_EDGE) +Reducer 56 <- Reducer 55 (SIMPLE_EDGE) +Reducer 58 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 59 <- Map 115 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE), Reducer 56 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 60 <- Map 69 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE) +Reducer 61 <- Reducer 60 (ONE_TO_ONE_EDGE), Reducer 84 (SIMPLE_EDGE) +Reducer 62 <- Reducer 61 (SIMPLE_EDGE) +Reducer 63 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 64 <- Map 116 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 65 <- Map 69 (SIMPLE_EDGE), Reducer 64 (SIMPLE_EDGE) +Reducer 66 <- Reducer 65 (ONE_TO_ONE_EDGE), Reducer 93 (SIMPLE_EDGE) +Reducer 67 <- Reducer 66 (SIMPLE_EDGE) +Reducer 68 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 70 <- Map 69 (SIMPLE_EDGE), Reducer 75 (ONE_TO_ONE_EDGE) +Reducer 71 <- Reducer 70 (CUSTOM_SIMPLE_EDGE) +Reducer 72 <- Map 69 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) +Reducer 73 <- Reducer 72 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 75 <- Union 74 (SIMPLE_EDGE) +Reducer 76 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 77 <- Map 69 (SIMPLE_EDGE), Reducer 107 (SIMPLE_EDGE) +Reducer 78 <- Reducer 77 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 79 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Union 7 (SIMPLE_EDGE) +Reducer 80 <- Map 69 (SIMPLE_EDGE), Reducer 109 (SIMPLE_EDGE) +Reducer 81 <- Reducer 80 (SIMPLE_EDGE), Union 74 (CONTAINS) +Reducer 82 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 83 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 84 <- Map 69 (SIMPLE_EDGE), Reducer 89 (ONE_TO_ONE_EDGE) +Reducer 85 <- Reducer 84 (CUSTOM_SIMPLE_EDGE) +Reducer 86 <- Map 69 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) +Reducer 87 <- Reducer 86 (SIMPLE_EDGE), Union 88 (CONTAINS) +Reducer 89 <- Union 88 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) +Reducer 90 <- Reducer 86 (SIMPLE_EDGE), Union 91 (CONTAINS) +Reducer 92 <- Union 91 (SIMPLE_EDGE) +Reducer 93 <- Map 69 (SIMPLE_EDGE), Reducer 92 (ONE_TO_ONE_EDGE) +Reducer 94 <- Reducer 93 (CUSTOM_SIMPLE_EDGE) +Reducer 95 <- Map 69 (SIMPLE_EDGE), Reducer 107 (SIMPLE_EDGE) +Reducer 96 <- Reducer 95 (SIMPLE_EDGE), Union 88 (CONTAINS) +Reducer 97 <- Reducer 95 (SIMPLE_EDGE), Union 91 (CONTAINS) +Reducer 98 <- Map 69 (SIMPLE_EDGE), Reducer 109 (SIMPLE_EDGE) +Reducer 99 <- Reducer 98 (SIMPLE_EDGE), Union 88 (CONTAINS) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_1723] + Limit [LIM_1722] (rows=100 width=238) + Number of rows:100 + Select Operator [SEL_1721] (rows=559013452 width=238) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1720] + Select Operator [SEL_1719] (rows=559013452 width=238) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Group By Operator [GBY_1718] (rows=559013452 width=238) + Output:["_col0","_col1","_col2","_col3","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Union 7 [SIMPLE_EDGE] + <-Reducer 14 [CONTAINS] + Reduce Output Operator [RS_1462] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_1461] (rows=1118026905 width=238) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L + Top N Key Operator [TNK_1460] (rows=223605381 width=238) + keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 + Select Operator [SEL_1458] (rows=63885749 width=265) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_1457] (rows=63885749 width=265) + predicate:(_col5 > _col1) + Merge Join Operator [MERGEJOIN_1456] (rows=191657247 width=265) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_371] + Merge Join Operator [MERGEJOIN_1433] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1729] + Select Operator [SEL_1728] (rows=1 width=8) + Filter Operator [FIL_1727] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1726] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1725] (rows=1 width=8) + Group By Operator [GBY_1724] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 11 [CUSTOM_SIMPLE_EDGE] + <-Reducer 10 [CONTAINS] + Reduce Output Operator [RS_1455] + Group By Operator [GBY_1454] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1453] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1451] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1450] (rows=633595212 width=88) + Conds:RS_1633._col0=RS_1614._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1614] + PartitionCols:_col0 + Select Operator [SEL_1603] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1602] (rows=73049 width=1119) + predicate:d_year BETWEEN 1999 AND 2001 + TableScan [TS_96] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1633] + PartitionCols:_col0 + Select Operator [SEL_1631] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_1630] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_quantity"] + <-Reducer 111 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1629] + Group By Operator [GBY_1628] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 105 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1626] + Group By Operator [GBY_1621] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1611] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1603] + <-Reducer 22 [CONTAINS] + Reduce Output Operator [RS_1487] + Group By Operator [GBY_1486] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1485] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1483] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1482] (rows=316788826 width=135) + Conds:RS_1791._col0=RS_1778._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1778] + PartitionCols:_col0 + Select Operator [SEL_1773] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1772] (rows=73049 width=1119) + predicate:d_year BETWEEN 1998 AND 2000 + TableScan [TS_13] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1791] + PartitionCols:_col0 + Select Operator [SEL_1789] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1788] (rows=287989836 width=135) + predicate:((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_date_sk is not null) + TableScan [TS_10] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1787] + Group By Operator [GBY_1786] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1784] + Group By Operator [GBY_1782] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1775] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1773] + <-Reducer 38 [CONTAINS] + Reduce Output Operator [RS_1523] + Group By Operator [GBY_1522] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1521] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1519] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1518] (rows=158402938 width=135) + Conds:RS_1819._col0=RS_1806._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1806] + PartitionCols:_col0 + Select Operator [SEL_1801] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1800] (rows=73049 width=1119) + predicate:d_year BETWEEN 1998 AND 2000 + TableScan [TS_24] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1819] + PartitionCols:_col0 + Select Operator [SEL_1817] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1816] (rows=144002668 width=135) + predicate:((ws_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(ws_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_21] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity"] + <-Reducer 41 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1815] + Group By Operator [GBY_1814] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1812] + Group By Operator [GBY_1810] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1803] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1801] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1732] + Select Operator [SEL_1731] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1730] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 31 [CUSTOM_SIMPLE_EDGE] + <-Reducer 30 [CONTAINS] + Reduce Output Operator [RS_1505] + Group By Operator [GBY_1504] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1503] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1501] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1500] (rows=316788826 width=135) + Conds:RS_1798._col0=RS_1779._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1779] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1773] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1798] + PartitionCols:_col0 + Select Operator [SEL_1796] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1795] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_62_date_dim_d_date_sk_min) AND DynamicValue(RS_62_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_62_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_55] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1794] + Group By Operator [GBY_1793] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1785] + Group By Operator [GBY_1783] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1777] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1773] + <-Reducer 44 [CONTAINS] + Reduce Output Operator [RS_1541] + Group By Operator [GBY_1540] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1539] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1537] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1536] (rows=158402938 width=135) + Conds:RS_1826._col0=RS_1807._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1807] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1801] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1826] + PartitionCols:_col0 + Select Operator [SEL_1824] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1823] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_73_date_dim_d_date_sk_min) AND DynamicValue(RS_73_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_73_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_66] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] + <-Reducer 43 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1822] + Group By Operator [GBY_1821] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1813] + Group By Operator [GBY_1811] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1805] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1801] + <-Reducer 48 [CONTAINS] + Reduce Output Operator [RS_1559] + Group By Operator [GBY_1558] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1557] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1555] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1554] (rows=633595212 width=88) + Conds:RS_1833._col0=RS_1615._col0(Inner),Output:["_col1","_col2"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1615] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1833] + PartitionCols:_col0 + Select Operator [SEL_1831] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1830] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_52_date_dim_d_date_sk_min) AND DynamicValue(RS_52_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_52_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_45] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] + <-Reducer 112 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1829] + Group By Operator [GBY_1828] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 105 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1627] + Group By Operator [GBY_1622] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1613] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1603] + <-Reducer 62 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1747] + Group By Operator [GBY_1746] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 61 [SIMPLE_EDGE] + SHUFFLE [RS_365] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_364] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_362] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1429] (rows=383314495 width=135) + Conds:RS_359._col1=RS_360._col0(Inner),Output:["_col2","_col3","_col6","_col7","_col8"] + <-Reducer 84 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_360] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_1412] (rows=508200 width=1436) + Conds:RS_1689._col1, _col2, _col3=RS_1740._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1689] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_1672] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1662] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + TableScan [TS_90] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] + <-Reducer 89 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1740] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1739] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1738] (rows=1 width=108) + predicate:(_col3 = 3L) + Group By Operator [GBY_1737] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 88 [SIMPLE_EDGE] + <-Reducer 87 [CONTAINS] vectorized + Reduce Output Operator [RS_1867] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1866] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1865] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 86 [SIMPLE_EDGE] + SHUFFLE [RS_298] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_297] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1407] (rows=696954748 width=88) + Conds:RS_293._col1=RS_1690._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1690] + PartitionCols:_col0 + Select Operator [SEL_1673] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1663] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + Please refer to the previous TableScan [TS_90] + <-Reducer 104 [SIMPLE_EDGE] + SHUFFLE [RS_293] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1391] (rows=633595212 width=88) + Conds:RS_1841._col0=RS_1604._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1604] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 103 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1841] + PartitionCols:_col0 + Select Operator [SEL_1840] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_1839] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_106_iss_i_item_sk_min) AND DynamicValue(RS_106_iss_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_106_iss_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_103_d1_d_date_sk_min) AND DynamicValue(RS_103_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_103_d1_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_93] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] + <-Reducer 106 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1836] + Group By Operator [GBY_1835] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 105 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1623] + Group By Operator [GBY_1618] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1605] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1603] + <-Reducer 76 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1838] + Group By Operator [GBY_1837] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1702] + Group By Operator [GBY_1696] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1683] (rows=462000 width=1436) + Output:["_col0"] + Select Operator [SEL_1669] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1660] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + Please refer to the previous TableScan [TS_90] + <-Reducer 96 [CONTAINS] vectorized + Reduce Output Operator [RS_1873] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1872] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1871] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 95 [SIMPLE_EDGE] + SHUFFLE [RS_318] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_317] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1409] (rows=348467716 width=135) + Conds:RS_313._col1=RS_1691._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1691] + PartitionCols:_col0 + Select Operator [SEL_1674] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1664] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + Please refer to the previous TableScan [TS_90] + <-Reducer 107 [SIMPLE_EDGE] + SHUFFLE [RS_313] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1393] (rows=316788826 width=135) + Conds:RS_1851._col0=RS_1606._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1606] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 113 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1851] + PartitionCols:_col0 + Select Operator [SEL_1850] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1849] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_126_ics_i_item_sk_min) AND DynamicValue(RS_126_ics_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_126_ics_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_123_d2_d_date_sk_min) AND DynamicValue(RS_123_d2_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_123_d2_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_113] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk"] + <-Reducer 108 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1846] + Group By Operator [GBY_1845] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 105 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1624] + Group By Operator [GBY_1619] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1607] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1603] + <-Reducer 79 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1848] + Group By Operator [GBY_1847] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1703] + Group By Operator [GBY_1697] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1685] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 99 [CONTAINS] vectorized + Reduce Output Operator [RS_1879] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1878] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1877] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_339] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_338] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1411] (rows=174243235 width=135) + Conds:RS_334._col1=RS_1692._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1692] + PartitionCols:_col0 + Select Operator [SEL_1675] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1665] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + Please refer to the previous TableScan [TS_90] + <-Reducer 109 [SIMPLE_EDGE] + SHUFFLE [RS_334] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1395] (rows=158402938 width=135) + Conds:RS_1861._col0=RS_1608._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1608] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 114 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1861] + PartitionCols:_col0 + Select Operator [SEL_1860] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1859] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_147_iws_i_item_sk_min) AND DynamicValue(RS_147_iws_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_147_iws_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_144_d3_d_date_sk_min) AND DynamicValue(RS_144_d3_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_144_d3_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_134] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk"] + <-Reducer 110 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1856] + Group By Operator [GBY_1855] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 105 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1625] + Group By Operator [GBY_1620] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1609] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1603] + <-Reducer 82 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1858] + Group By Operator [GBY_1857] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1704] + Group By Operator [GBY_1698] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1687] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 60 [ONE_TO_ONE_EDGE] + FORWARD [RS_359] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1405] (rows=348467716 width=135) + Conds:RS_356._col1=RS_1676._col0(Inner),Output:["_col1","_col2","_col3","_col6","_col7","_col8"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1676] + PartitionCols:_col0 + Select Operator [SEL_1666] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Please refer to the previous TableScan [TS_90] + <-Reducer 59 [SIMPLE_EDGE] + SHUFFLE [RS_356] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1404] (rows=316788826 width=135) + Conds:RS_1745._col0=RS_1648._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1648] + PartitionCols:_col0 + Select Operator [SEL_1645] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_1644] (rows=18262 width=1119) + predicate:((d_moy = 11) and (d_year = 2000)) + TableScan [TS_85] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 115 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1745] + PartitionCols:_col0 + Select Operator [SEL_1744] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1743] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_357_item_i_item_sk_min) AND DynamicValue(RS_357_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_357_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_360_item_i_item_sk_min) AND DynamicValue(RS_360_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_360_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_354_date_dim_d_date_sk_min) AND DynamicValue(RS_354_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_354_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_270] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] + <-Reducer 101 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1736] + Group By Operator [GBY_1735] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1700] + Group By Operator [GBY_1693] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1677] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1666] + <-Reducer 63 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1734] + Group By Operator [GBY_1733] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1656] + Group By Operator [GBY_1653] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1649] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1645] + <-Reducer 85 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1742] + Group By Operator [GBY_1741] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 84 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_1077] + Group By Operator [GBY_1076] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1075] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_1412] + <-Reducer 19 [CONTAINS] + Reduce Output Operator [RS_1475] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_1474] (rows=1118026905 width=238) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L + Top N Key Operator [TNK_1473] (rows=223605381 width=238) + keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 + Select Operator [SEL_1471] (rows=31944593 width=265) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_1470] (rows=31944593 width=265) + predicate:(_col5 > _col1) + Merge Join Operator [MERGEJOIN_1469] (rows=95833781 width=265) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_560] + Merge Join Operator [MERGEJOIN_1435] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1753] + Select Operator [SEL_1752] (rows=1 width=8) + Filter Operator [FIL_1751] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1750] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1749] (rows=1 width=8) + Group By Operator [GBY_1748] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 16 [CUSTOM_SIMPLE_EDGE] + <-Reducer 15 [CONTAINS] + Reduce Output Operator [RS_1468] + Group By Operator [GBY_1467] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1466] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1464] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1463] (rows=633595212 width=88) + Conds:RS_1634._col0=RS_1616._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1616] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1634] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1631] + <-Reducer 23 [CONTAINS] + Reduce Output Operator [RS_1493] + Group By Operator [GBY_1492] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1491] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1489] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1488] (rows=316788826 width=135) + Conds:RS_1792._col0=RS_1780._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1780] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1773] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1792] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1789] + <-Reducer 39 [CONTAINS] + Reduce Output Operator [RS_1529] + Group By Operator [GBY_1528] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1527] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1525] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1524] (rows=158402938 width=135) + Conds:RS_1820._col0=RS_1808._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1808] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1801] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1820] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1817] + <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1756] + Select Operator [SEL_1755] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1754] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 34 [CUSTOM_SIMPLE_EDGE] + <-Reducer 33 [CONTAINS] + Reduce Output Operator [RS_1511] + Group By Operator [GBY_1510] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1509] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1507] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1506] (rows=316788826 width=135) + Conds:RS_1799._col0=RS_1781._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1781] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1773] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1799] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1796] + <-Reducer 45 [CONTAINS] + Reduce Output Operator [RS_1547] + Group By Operator [GBY_1546] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1545] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1543] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1542] (rows=158402938 width=135) + Conds:RS_1827._col0=RS_1809._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1809] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1801] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1827] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1824] + <-Reducer 49 [CONTAINS] + Reduce Output Operator [RS_1565] + Group By Operator [GBY_1564] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1563] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1561] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1560] (rows=633595212 width=88) + Conds:RS_1834._col0=RS_1617._col0(Inner),Output:["_col1","_col2"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1617] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1834] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1831] + <-Reducer 67 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1771] + Group By Operator [GBY_1770] (rows=95833781 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 66 [SIMPLE_EDGE] + SHUFFLE [RS_554] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_553] (rows=191667562 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_551] (rows=191667562 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1430] (rows=191667562 width=135) + Conds:RS_548._col1=RS_549._col0(Inner),Output:["_col2","_col3","_col6","_col7","_col8"] + <-Reducer 93 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_549] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_1427] (rows=508200 width=1436) + Conds:RS_1694._col1, _col2, _col3=RS_1764._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1694] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_1678] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1667] (rows=462000 width=1436) + predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null) + Please refer to the previous TableScan [TS_90] + <-Reducer 92 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1764] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1763] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1762] (rows=1 width=108) + predicate:(_col3 = 3L) + Group By Operator [GBY_1761] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 91 [SIMPLE_EDGE] + <-Reducer 100 [CONTAINS] vectorized + Reduce Output Operator [RS_1882] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1881] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1880] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_528] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_338] + <-Reducer 90 [CONTAINS] vectorized + Reduce Output Operator [RS_1870] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1869] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1868] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 86 [SIMPLE_EDGE] + SHUFFLE [RS_487] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_297] + <-Reducer 97 [CONTAINS] vectorized + Reduce Output Operator [RS_1876] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1875] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1874] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 95 [SIMPLE_EDGE] + SHUFFLE [RS_507] + PartitionCols:_col0, _col1, _col2 + Please refer to the previous Group By Operator [GBY_317] + <-Reducer 65 [ONE_TO_ONE_EDGE] + FORWARD [RS_548] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1420] (rows=174243235 width=135) + Conds:RS_545._col1=RS_1679._col0(Inner),Output:["_col1","_col2","_col3","_col6","_col7","_col8"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1679] + PartitionCols:_col0 + Select Operator [SEL_1668] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Please refer to the previous TableScan [TS_90] + <-Reducer 64 [SIMPLE_EDGE] + SHUFFLE [RS_545] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1419] (rows=158402938 width=135) + Conds:RS_1769._col0=RS_1650._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1650] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1645] + <-Map 116 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1769] + PartitionCols:_col0 + Select Operator [SEL_1768] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1767] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_546_item_i_item_sk_min) AND DynamicValue(RS_546_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_546_item_i_item_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_549_item_i_item_sk_min) AND DynamicValue(RS_549_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_549_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_543_date_dim_d_date_sk_min) AND DynamicValue(RS_543_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_543_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_459] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] + <-Reducer 102 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1760] + Group By Operator [GBY_1759] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1701] + Group By Operator [GBY_1695] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1680] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1668] + <-Reducer 68 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1758] + Group By Operator [GBY_1757] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1657] + Group By Operator [GBY_1654] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1651] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1645] + <-Reducer 94 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1766] + Group By Operator [GBY_1765] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 93 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_1266] + Group By Operator [GBY_1265] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1264] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_1427] + <-Reducer 6 [CONTAINS] + Reduce Output Operator [RS_1449] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_1448] (rows=1118026905 width=238) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L + Top N Key Operator [TNK_1447] (rows=223605381 width=238) + keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 + Select Operator [SEL_1445] (rows=127775039 width=218) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_1444] (rows=127775039 width=218) + predicate:(_col5 > _col1) + Merge Join Operator [MERGEJOIN_1443] (rows=383325119 width=218) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_183] + Merge Join Operator [MERGEJOIN_1431] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1643] + Select Operator [SEL_1642] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1641] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 27 [CUSTOM_SIMPLE_EDGE] + <-Reducer 26 [CONTAINS] + Reduce Output Operator [RS_1499] + Group By Operator [GBY_1498] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1497] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1495] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1494] (rows=316788826 width=135) + Conds:RS_1797._col0=RS_1776._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1776] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1773] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1797] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1796] + <-Reducer 42 [CONTAINS] + Reduce Output Operator [RS_1535] + Group By Operator [GBY_1534] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1533] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1531] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1530] (rows=158402938 width=135) + Conds:RS_1825._col0=RS_1804._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1804] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1801] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1825] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1824] + <-Reducer 47 [CONTAINS] + Reduce Output Operator [RS_1553] + Group By Operator [GBY_1552] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1551] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1549] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1548] (rows=633595212 width=88) + Conds:RS_1832._col0=RS_1612._col0(Inner),Output:["_col1","_col2"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1612] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1832] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1831] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1640] + Select Operator [SEL_1639] (rows=1 width=8) + Filter Operator [FIL_1638] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1637] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1636] (rows=1 width=8) + Group By Operator [GBY_1635] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 3 [CUSTOM_SIMPLE_EDGE] + <-Reducer 2 [CONTAINS] + Reduce Output Operator [RS_1442] + Group By Operator [GBY_1441] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1440] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1438] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1437] (rows=633595212 width=88) + Conds:RS_1632._col0=RS_1610._col0(Inner),Output:["_col1"] + <-Map 105 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1610] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1603] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1632] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1631] + <-Reducer 21 [CONTAINS] + Reduce Output Operator [RS_1481] + Group By Operator [GBY_1480] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1479] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1477] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1476] (rows=316788826 width=135) + Conds:RS_1790._col0=RS_1774._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1774] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1773] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1790] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1789] + <-Reducer 37 [CONTAINS] + Reduce Output Operator [RS_1517] + Group By Operator [GBY_1516] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1515] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1513] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1512] (rows=158402938 width=135) + Conds:RS_1818._col0=RS_1802._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1802] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1801] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1818] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1817] + <-Reducer 56 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1717] + Group By Operator [GBY_1716] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 55 [SIMPLE_EDGE] + SHUFFLE [RS_177] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_176] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_174] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_1428] (rows=766650239 width=88) + Conds:RS_171._col1=RS_172._col0(Inner),Output:["_col2","_col3","_col6","_col7","_col8"] + <-Reducer 70 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_172] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_1397] (rows=508200 width=1436) + Conds:RS_1681._col1, _col2, _col3=RS_1710._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1681] + PartitionCols:_col1, _col2, _col3 + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 75 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1710] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_1709] (rows=1 width=108) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1708] (rows=1 width=108) + predicate:(_col3 = 3L) + Group By Operator [GBY_1707] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 74 [SIMPLE_EDGE] + <-Reducer 73 [CONTAINS] vectorized + Reduce Output Operator [RS_1844] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1843] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1842] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 72 [SIMPLE_EDGE] + SHUFFLE [RS_110] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_109] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1392] (rows=696954748 width=88) + Conds:RS_105._col1=RS_1682._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1682] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 104 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col1 + Please refer to the previous Merge Join Operator [MERGEJOIN_1391] + <-Reducer 78 [CONTAINS] vectorized + Reduce Output Operator [RS_1854] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1853] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1852] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 77 [SIMPLE_EDGE] + SHUFFLE [RS_130] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_129] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1394] (rows=348467716 width=135) + Conds:RS_125._col1=RS_1684._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1684] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 107 [SIMPLE_EDGE] + SHUFFLE [RS_125] + PartitionCols:_col1 + Please refer to the previous Merge Join Operator [MERGEJOIN_1393] + <-Reducer 81 [CONTAINS] vectorized + Reduce Output Operator [RS_1864] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_1863] (rows=609832849 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_1862] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 80 [SIMPLE_EDGE] + SHUFFLE [RS_151] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_150] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col5, _col6 + Merge Join Operator [MERGEJOIN_1396] (rows=174243235 width=135) + Conds:RS_146._col1=RS_1686._col0(Inner),Output:["_col4","_col5","_col6"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1686] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1669] + <-Reducer 109 [SIMPLE_EDGE] + SHUFFLE [RS_146] + PartitionCols:_col1 + Please refer to the previous Merge Join Operator [MERGEJOIN_1395] + <-Reducer 54 [ONE_TO_ONE_EDGE] + FORWARD [RS_171] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1390] (rows=696954748 width=88) + Conds:RS_168._col1=RS_1670._col0(Inner),Output:["_col1","_col2","_col3","_col6","_col7","_col8"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1670] + PartitionCols:_col0 + Select Operator [SEL_1661] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Please refer to the previous TableScan [TS_90] + <-Reducer 53 [SIMPLE_EDGE] + SHUFFLE [RS_168] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1389] (rows=633595212 width=88) + Conds:RS_1715._col0=RS_1646._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1646] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1645] + <-Map 52 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1715] + PartitionCols:_col0 + Select Operator [SEL_1714] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1713] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_169_item_i_item_sk_min) AND DynamicValue(RS_169_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_169_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_172_item_i_item_sk_min) AND DynamicValue(RS_172_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_172_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_166_date_dim_d_date_sk_min) AND DynamicValue(RS_166_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_166_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_82] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] + <-Reducer 58 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1659] + Group By Operator [GBY_1658] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1655] + Group By Operator [GBY_1652] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1647] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1645] + <-Reducer 71 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1712] + Group By Operator [GBY_1711] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 70 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_888] + Group By Operator [GBY_887] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_886] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_1397] + <-Reducer 83 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1706] + Group By Operator [GBY_1705] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1699] + Group By Operator [GBY_1688] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1671] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1661] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query15.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query15.q.out new file mode 100644 index 0000000000..cf35b0f6b9 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query15.q.out @@ -0,0 +1,142 @@ +PREHOOK: query: explain +select ca_zip + ,sum(cs_sales_price) + from catalog_sales + ,customer + ,customer_address + ,date_dim + where cs_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', + '85392', '85460', '80348', '81792') + or ca_state in ('CA','WA','GA') + or cs_sales_price > 500) + and cs_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip + order by ca_zip + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select ca_zip + ,sum(cs_sales_price) + from catalog_sales + ,customer + ,customer_address + ,date_dim + where cs_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', + '85392', '85460', '80348', '81792') + or ca_state in ('CA','WA','GA') + or cs_sales_price > 500) + and cs_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip + order by ca_zip + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 8 <- Reducer 10 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 9 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_98] + Limit [LIM_97] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_96] (rows=174233858 width=135) + Output:["_col0","_col1"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_95] + Group By Operator [GBY_94] (rows=174233858 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Group By Operator [GBY_23] (rows=348467716 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col2 + Top N Key Operator [TNK_44] (rows=348467716 width=135) + keys:_col2,sort order:+,top n:100 + Merge Join Operator [MERGEJOIN_77] (rows=348467716 width=135) + Conds:RS_19._col0=RS_85._col0(Inner),Output:["_col1","_col2"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_85] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_83] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000)) + TableScan [TS_16] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_14] (rows=316788826 width=135) + predicate:(_col4 or _col5 or _col9) + Merge Join Operator [MERGEJOIN_76] (rows=316788826 width=135) + Conds:RS_11._col0=RS_93._col1(Inner),Output:["_col3","_col4","_col5","_col6","_col8","_col9"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] + PartitionCols:_col1 + Select Operator [SEL_92] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_91] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_20_date_dim_d_date_sk_min) AND DynamicValue(RS_20_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_20_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_5] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_90] + Group By Operator [GBY_89] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_86] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_84] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_75] (rows=88000001 width=860) + Conds:RS_80._col1=RS_82._col0(Inner),Output:["_col0","_col3","_col4","_col5"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_80] + PartitionCols:_col1 + Select Operator [SEL_79] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_78] (rows=80000000 width=860) + predicate:c_current_addr_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 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_82] + PartitionCols:_col0 + Select Operator [SEL_81] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state","ca_zip"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query16.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query16.q.out new file mode 100644 index 0000000000..d05d26ee62 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query16.q.out @@ -0,0 +1,239 @@ +PREHOOK: query: explain +select + count(distinct cs_order_number) as `order count` + ,sum(cs_ext_ship_cost) as `total shipping cost` + ,sum(cs_net_profit) as `total net profit` +from + catalog_sales cs1 + ,date_dim + ,customer_address + ,call_center +where + d_date between '2001-4-01' and + (cast('2001-4-01' as date) + 60 days) +and cs1.cs_ship_date_sk = d_date_sk +and cs1.cs_ship_addr_sk = ca_address_sk +and ca_state = 'NY' +and cs1.cs_call_center_sk = cc_call_center_sk +and cc_county in ('Ziebach County','Levy County','Huron County','Franklin Parish', + 'Daviess County' +) +and exists (select * + from catalog_sales cs2 + where cs1.cs_order_number = cs2.cs_order_number + and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) +and not exists(select * + from catalog_returns cr1 + where cs1.cs_order_number = cr1.cr_order_number) +order by count(distinct cs_order_number) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@call_center +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + count(distinct cs_order_number) as `order count` + ,sum(cs_ext_ship_cost) as `total shipping cost` + ,sum(cs_net_profit) as `total net profit` +from + catalog_sales cs1 + ,date_dim + ,customer_address + ,call_center +where + d_date between '2001-4-01' and + (cast('2001-4-01' as date) + 60 days) +and cs1.cs_ship_date_sk = d_date_sk +and cs1.cs_ship_addr_sk = ca_address_sk +and ca_state = 'NY' +and cs1.cs_call_center_sk = cc_call_center_sk +and cc_county in ('Ziebach County','Levy County','Huron County','Franklin Parish', + 'Daviess County' +) +and exists (select * + from catalog_sales cs2 + where cs1.cs_order_number = cs2.cs_order_number + and cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) +and not exists(select * + from catalog_returns cr1 + where cs1.cs_order_number = cr1.cr_order_number) +order by count(distinct cs_order_number) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@call_center +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Map 12 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 16 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 18 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_174] + Limit [LIM_173] (rows=1 width=344) + Number of rows:100 + Select Operator [SEL_172] (rows=1 width=344) + Output:["_col0","_col1","_col2"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] + Select Operator [SEL_170] (rows=1 width=344) + Output:["_col1","_col2","_col3"] + Group By Operator [GBY_169] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_168] + Group By Operator [GBY_167] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"] + Group By Operator [GBY_166] (rows=231905279 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col0 + Group By Operator [GBY_72] (rows=231905279 width=135) + Output:["_col0","_col2","_col3"],aggregations:["sum(_col5)","sum(_col6)"],keys:_col4 + Select Operator [SEL_41] (rows=231905279 width=135) + Output:["_col4","_col5","_col6"] + Filter Operator [FIL_40] (rows=231905279 width=135) + predicate:_col14 is null + Merge Join Operator [MERGEJOIN_129] (rows=463810558 width=135) + Conds:RS_37._col4=RS_165._col0(Left Outer),Output:["_col4","_col5","_col6","_col14"] + <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_165] + PartitionCols:_col0 + Select Operator [SEL_164] (rows=14399440 width=106) + Output:["_col0","_col1"] + Group By Operator [GBY_163] (rows=14399440 width=106) + Output:["_col0"],keys:KEY._col0 + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_162] + PartitionCols:_col0 + Group By Operator [GBY_161] (rows=28798881 width=106) + Output:["_col0"],keys:cr_order_number + TableScan [TS_25] (rows=28798881 width=106) + default@catalog_returns,cr1,Tbl:COMPLETE,Col:NONE,Output:["cr_order_number"] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_37] + PartitionCols:_col4 + Select Operator [SEL_36] (rows=421645953 width=135) + Output:["_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_128] (rows=421645953 width=135) + Conds:RS_33._col4=RS_160._col0(Left Semi),Output:["_col3","_col4","_col5","_col6","_col14"],residual filter predicates:{(_col3 <> _col14)} + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_160] + PartitionCols:_col0 + Group By Operator [GBY_159] (rows=287989836 width=135) + Output:["_col0","_col1"],keys:_col0, _col1 + Select Operator [SEL_158] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_157] (rows=287989836 width=135) + predicate:cs_warehouse_sk is not null + TableScan [TS_22] (rows=287989836 width=135) + default@catalog_sales,cs2,Tbl:COMPLETE,Col:NONE,Output:["cs_warehouse_sk","cs_order_number"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_127] (rows=383314495 width=135) + Conds:RS_18._col2=RS_148._col0(Inner),Output:["_col3","_col4","_col5","_col6"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + PartitionCols:_col0 + Select Operator [SEL_147] (rows=60 width=2045) + Output:["_col0"] + Filter Operator [FIL_146] (rows=60 width=2045) + predicate:(cc_county) IN ('Ziebach County', 'Levy County', 'Huron County', 'Franklin Parish', 'Daviess County') + TableScan [TS_9] (rows=60 width=2045) + default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_county"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_126] (rows=348467716 width=135) + Conds:RS_15._col1=RS_140._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_140] + PartitionCols:_col0 + Select Operator [SEL_139] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_138] (rows=20000000 width=1014) + predicate:(ca_state = 'NY') + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_125] (rows=316788826 width=135) + Conds:RS_156._col0=RS_132._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_132] + PartitionCols:_col0 + Select Operator [SEL_131] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_130] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-04-01 00:00:00' AND TIMESTAMP'2001-05-31 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_156] + PartitionCols:_col0 + Select Operator [SEL_155] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_154] (rows=287989836 width=135) + predicate:((cs_call_center_sk BETWEEN DynamicValue(RS_19_call_center_cc_call_center_sk_min) AND DynamicValue(RS_19_call_center_cc_call_center_sk_max) and in_bloom_filter(cs_call_center_sk, DynamicValue(RS_19_call_center_cc_call_center_sk_bloom_filter))) and (cs_ship_addr_sk BETWEEN DynamicValue(RS_16_customer_address_ca_address_sk_min) AND DynamicValue(RS_16_customer_address_ca_address_sk_max) and in_bloom_filter(cs_ship_addr_sk, DynamicValue(RS_16_customer_address_ca_address_sk_bloom_filter))) and (cs_ship_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(cs_ship_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and cs_call_center_sk is not null and cs_ship_addr_sk is not null and cs_ship_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,cs1,Tbl:COMPLETE,Col:NONE,Output:["cs_ship_date_sk","cs_ship_addr_sk","cs_call_center_sk","cs_warehouse_sk","cs_order_number","cs_ext_ship_cost","cs_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_137] + Group By Operator [GBY_136] (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_135] + Group By Operator [GBY_134] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_133] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_131] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_145] + Group By Operator [GBY_144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_143] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_141] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_139] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_153] + Group By Operator [GBY_152] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_151] + Group By Operator [GBY_150] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_149] (rows=60 width=2045) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_147] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query17.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query17.q.out new file mode 100644 index 0000000000..eb5424890c --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query17.q.out @@ -0,0 +1,333 @@ +PREHOOK: query: explain +select i_item_id + ,i_item_desc + ,s_state + ,count(ss_quantity) as store_sales_quantitycount + ,avg(ss_quantity) as store_sales_quantityave + ,stddev_samp(ss_quantity) as store_sales_quantitystdev + ,stddev_samp(ss_quantity)/avg(ss_quantity) as store_sales_quantitycov + ,count(sr_return_quantity) as_store_returns_quantitycount + ,avg(sr_return_quantity) as_store_returns_quantityave + ,stddev_samp(sr_return_quantity) as_store_returns_quantitystdev + ,stddev_samp(sr_return_quantity)/avg(sr_return_quantity) as store_returns_quantitycov + ,count(cs_quantity) as catalog_sales_quantitycount ,avg(cs_quantity) as catalog_sales_quantityave + ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitystdev + ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitycov + from store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where d1.d_quarter_name = '2000Q1' + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_quarter_name in ('2000Q1','2000Q2','2000Q3') + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_quarter_name in ('2000Q1','2000Q2','2000Q3') + group by i_item_id + ,i_item_desc + ,s_state + order by i_item_id + ,i_item_desc + ,s_state +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id + ,i_item_desc + ,s_state + ,count(ss_quantity) as store_sales_quantitycount + ,avg(ss_quantity) as store_sales_quantityave + ,stddev_samp(ss_quantity) as store_sales_quantitystdev + ,stddev_samp(ss_quantity)/avg(ss_quantity) as store_sales_quantitycov + ,count(sr_return_quantity) as_store_returns_quantitycount + ,avg(sr_return_quantity) as_store_returns_quantityave + ,stddev_samp(sr_return_quantity) as_store_returns_quantitystdev + ,stddev_samp(sr_return_quantity)/avg(sr_return_quantity) as store_returns_quantitycov + ,count(cs_quantity) as catalog_sales_quantitycount ,avg(cs_quantity) as catalog_sales_quantityave + ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitystdev + ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitycov + from store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where d1.d_quarter_name = '2000Q1' + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_quarter_name in ('2000Q1','2000Q2','2000Q3') + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_quarter_name in ('2000Q1','2000Q2','2000Q3') + group by i_item_id + ,i_item_desc + ,s_state + order by i_item_id + ,i_item_desc + ,s_state +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 13 <- Reducer 12 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE), Reducer 5 (BROADCAST_EDGE) +Map 20 <- Reducer 17 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 10 <- Map 6 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 11 <- Map 6 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 12 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE) +Reducer 15 <- Map 20 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 8 <- Map 21 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 6 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_278] + Limit [LIM_277] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_276] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_275] + Select Operator [SEL_274] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Group By Operator [GBY_273] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","count(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)","sum(VALUE._col7)","count(VALUE._col8)","sum(VALUE._col9)","sum(VALUE._col10)","sum(VALUE._col11)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_48] (rows=1122452711 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"],aggregations:["count(_col3)","sum(_col3)","sum(_col7)","sum(_col6)","count(_col4)","sum(_col4)","sum(_col9)","sum(_col8)","count(_col5)","sum(_col5)","sum(_col11)","sum(_col10)"],keys:_col0, _col1, _col2 + Top N Key Operator [TNK_99] (rows=1122452711 width=88) + keys:_col0, _col1, _col2,sort order:+++,top n:100 + Select Operator [SEL_46] (rows=1122452711 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + Merge Join Operator [MERGEJOIN_215] (rows=1122452711 width=88) + Conds:RS_217._col0=RS_44._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col7"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=1020411534 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_214] (rows=1020411534 width=88) + Conds:RS_39._col2=RS_257._col0(Inner),Output:["_col1","_col3","_col4","_col6","_col8"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_257] + PartitionCols:_col0 + Select Operator [SEL_256] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_34] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_state"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_213] (rows=927646829 width=88) + Conds:RS_225._col0=RS_37._col4(Inner),Output:["_col1","_col2","_col3","_col4","_col6"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_225] + PartitionCols:_col0 + Select Operator [SEL_223] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_221] (rows=73049 width=1119) + predicate:(d_quarter_name) IN ('2000Q1', '2000Q2', '2000Q3') + TableScan [TS_2] (rows=73049 width=1119) + default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_quarter_name"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col4 + Select Operator [SEL_33] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_212] (rows=843315281 width=88) + Conds:RS_30._col4=RS_227._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_227] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_223] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_211] (rows=766650239 width=88) + Conds:RS_27._col0=RS_228._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_228] + PartitionCols:_col0 + Select Operator [SEL_224] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_222] (rows=36524 width=1119) + predicate:(d_quarter_name = '2000Q1') + Please refer to the previous TableScan [TS_2] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_210] (rows=696954748 width=88) + Conds:RS_17._col8, _col7=RS_272._col1, _col2(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col10","_col11","_col14"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_272] + PartitionCols:_col1, _col2 + Select Operator [SEL_271] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_270] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_36_d3_d_date_sk_min) AND DynamicValue(RS_36_d3_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_36_d3_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_11] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_quantity"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_248] + Group By Operator [GBY_246] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_243] + Group By Operator [GBY_240] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_237] (rows=57591150 width=77) + Output:["_col0"] + Select Operator [SEL_235] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_234] (rows=57591150 width=77) + predicate:(sr_customer_sk is not null and sr_returned_date_sk is not null) + TableScan [TS_8] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_customer_sk","sr_ticket_number","sr_return_quantity"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_251] + Group By Operator [GBY_249] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_244] + Group By Operator [GBY_241] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_238] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_235] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_269] + Group By Operator [GBY_268] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_232] + Group By Operator [GBY_230] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_226] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_223] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col8, _col7 + Merge Join Operator [MERGEJOIN_209] (rows=633595212 width=88) + Conds:RS_267._col2, _col1, _col4=RS_236._col2, _col1, _col3(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7","_col8","_col10"] + <-Map 16 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_236] + PartitionCols:_col2, _col1, _col3 + Please refer to the previous Select Operator [SEL_235] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_267] + PartitionCols:_col2, _col1, _col4 + Select Operator [SEL_266] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_265] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_43_item_i_item_sk_min) AND DynamicValue(RS_43_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_43_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_28_d1_d_date_sk_min) AND DynamicValue(RS_28_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_28_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_40_store_s_store_sk_min) AND DynamicValue(RS_40_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_40_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_15_store_returns_sr_ticket_number_min) AND DynamicValue(RS_15_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_15_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (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_ticket_number","ss_quantity"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_247] + Please refer to the previous Group By Operator [GBY_246] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_250] + Please refer to the previous Group By Operator [GBY_249] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_255] + Group By Operator [GBY_254] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_233] + Group By Operator [GBY_231] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_229] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_224] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_253] + Group By Operator [GBY_252] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_245] + Group By Operator [GBY_242] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_239] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_235] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_262] + Group By Operator [GBY_261] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_260] + Group By Operator [GBY_259] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_258] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_256] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_264] + Group By Operator [GBY_263] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_220] + Group By Operator [GBY_219] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_218] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_216] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out new file mode 100644 index 0000000000..238da13d21 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query18.q.out @@ -0,0 +1,240 @@ +Warning: Shuffle Join MERGEJOIN[139][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 11' is a cross product +PREHOOK: query: explain +select i_item_id, + ca_country, + ca_state, + ca_county, + avg( cast(cs_quantity as numeric(12,2))) agg1, + avg( cast(cs_list_price as numeric(12,2))) agg2, + avg( cast(cs_coupon_amt as numeric(12,2))) agg3, + avg( cast(cs_sales_price as numeric(12,2))) agg4, + avg( cast(cs_net_profit as numeric(12,2))) agg5, + avg( cast(c_birth_year as numeric(12,2))) agg6, + avg( cast(cd1.cd_dep_count as numeric(12,2))) agg7 + from catalog_sales, customer_demographics cd1, + customer_demographics cd2, customer, customer_address, date_dim, item + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd1.cd_demo_sk and + cs_bill_customer_sk = c_customer_sk and + cd1.cd_gender = 'M' and + cd1.cd_education_status = 'College' and + c_current_cdemo_sk = cd2.cd_demo_sk and + c_current_addr_sk = ca_address_sk and + c_birth_month in (9,5,12,4,1,10) and + d_year = 2001 and + ca_state in ('ND','WI','AL' + ,'NC','OK','MS','TN') + group by rollup (i_item_id, ca_country, ca_state, ca_county) + order by ca_country, + ca_state, + ca_county, + i_item_id + 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@item +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id, + ca_country, + ca_state, + ca_county, + avg( cast(cs_quantity as numeric(12,2))) agg1, + avg( cast(cs_list_price as numeric(12,2))) agg2, + avg( cast(cs_coupon_amt as numeric(12,2))) agg3, + avg( cast(cs_sales_price as numeric(12,2))) agg4, + avg( cast(cs_net_profit as numeric(12,2))) agg5, + avg( cast(c_birth_year as numeric(12,2))) agg6, + avg( cast(cd1.cd_dep_count as numeric(12,2))) agg7 + from catalog_sales, customer_demographics cd1, + customer_demographics cd2, customer, customer_address, date_dim, item + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd1.cd_demo_sk and + cs_bill_customer_sk = c_customer_sk and + cd1.cd_gender = 'M' and + cd1.cd_education_status = 'College' and + c_current_cdemo_sk = cd2.cd_demo_sk and + c_current_addr_sk = ca_address_sk and + c_birth_month in (9,5,12,4,1,10) and + d_year = 2001 and + ca_state in ('ND','WI','AL' + ,'NC','OK','MS','TN') + group by rollup (i_item_id, ca_country, ca_state, ca_county) + order by ca_country, + ca_state, + ca_county, + i_item_id + 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@item +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 9 <- Reducer 13 (BROADCAST_EDGE), Reducer 16 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE) +Reducer 10 <- Map 12 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 11 <- Map 14 (CUSTOM_SIMPLE_EDGE), Reducer 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Reducer 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 15 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 17 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_182] + Limit [LIM_181] (rows=100 width=521) + Number of rows:100 + Select Operator [SEL_180] (rows=1962551096722665 width=521) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_179] + Select Operator [SEL_178] (rows=1962551096722665 width=521) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Group By Operator [GBY_177] (rows=1962551096722665 width=521) + Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","count(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)","sum(VALUE._col6)","count(VALUE._col7)","sum(VALUE._col8)","count(VALUE._col9)","sum(VALUE._col10)","count(VALUE._col11)","sum(VALUE._col12)","count(VALUE._col13)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_40] (rows=3925102193445330 width=521) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"],aggregations:["sum(_col5)","count(_col5)","sum(_col6)","count(_col6)","sum(_col7)","count(_col7)","sum(_col8)","count(_col8)","sum(_col9)","count(_col9)","sum(_col10)","count(_col10)","sum(_col11)","count(_col11)"],keys:_col2, _col3, _col4, _col14, 0L + Merge Join Operator [MERGEJOIN_142] (rows=785020438689066 width=521) + Conds:RS_36._col1=RS_166._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col14"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_166] + PartitionCols:_col0 + Select Operator [SEL_165] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_31] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_141] (rows=713654928794734 width=521) + Conds:RS_33._col0=RS_159._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_159] + PartitionCols:_col0 + Select Operator [SEL_158] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_157] (rows=36524 width=1119) + predicate:(d_year = 2001) + TableScan [TS_28] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Select Operator [SEL_27] (rows=648777193933346 width=521) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + Merge Join Operator [MERGEJOIN_140] (rows=648777193933346 width=521) + Conds:RS_24._col0, _col1=RS_25._col1, _col3(Inner),Output:["_col3","_col5","_col6","_col7","_col8","_col10","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col1, _col3 + Select Operator [SEL_20] (rows=589797436246800 width=521) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Merge Join Operator [MERGEJOIN_139] (rows=589797436246800 width=521) + Conds:(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col10","_col11"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_176] + Select Operator [SEL_175] (rows=1861800 width=385) + Output:["_col0"] + TableScan [TS_12] (rows=1861800 width=385) + default@customer_demographics,cd2,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_17] + Merge Join Operator [MERGEJOIN_138] (rows=316788826 width=135) + Conds:RS_174._col2=RS_151._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col10"] + <-Map 12 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_151] + PartitionCols:_col0 + Select Operator [SEL_150] (rows=465450 width=385) + Output:["_col0","_col1"] + Filter Operator [FIL_149] (rows=465450 width=385) + predicate:((cd_education_status = 'College') and (cd_gender = 'M')) + TableScan [TS_9] (rows=1861800 width=385) + default@customer_demographics,cd1,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_education_status","cd_dep_count"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_174] + PartitionCols:_col2 + Select Operator [SEL_173] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_172] (rows=287989836 width=135) + predicate:((cs_bill_cdemo_sk BETWEEN DynamicValue(RS_15_cd1_cd_demo_sk_min) AND DynamicValue(RS_15_cd1_cd_demo_sk_max) and in_bloom_filter(cs_bill_cdemo_sk, DynamicValue(RS_15_cd1_cd_demo_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_37_item_i_item_sk_min) AND DynamicValue(RS_37_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_37_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_34_date_dim_d_date_sk_min) AND DynamicValue(RS_34_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_34_date_dim_d_date_sk_bloom_filter))) and cs_bill_cdemo_sk is not null and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_6] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_bill_cdemo_sk","cs_item_sk","cs_quantity","cs_list_price","cs_sales_price","cs_coupon_amt","cs_net_profit"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_156] + Group By Operator [GBY_155] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_154] + Group By Operator [GBY_153] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_152] (rows=465450 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_150] + <-Reducer 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_164] + Group By Operator [GBY_163] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_162] + Group By Operator [GBY_161] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_160] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_158] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_171] + Group By Operator [GBY_170] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_169] + Group By Operator [GBY_168] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_167] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_165] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0, _col1 + Merge Join Operator [MERGEJOIN_137] (rows=88000001 width=860) + Conds:RS_145._col2=RS_148._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_145] + PartitionCols:_col2 + Select Operator [SEL_144] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_143] (rows=80000000 width=860) + predicate:((c_birth_month) IN (9, 5, 12, 4, 1, 10) and c_current_addr_sk is not null and c_current_cdemo_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk","c_birth_month","c_birth_year"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + PartitionCols:_col0 + Select Operator [SEL_147] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_146] (rows=40000000 width=1014) + predicate:(ca_state) IN ('ND', 'WI', 'AL', 'NC', 'OK', 'MS', 'TN') + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_state","ca_country"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query19.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query19.q.out new file mode 100644 index 0000000000..ce51747c2b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query19.q.out @@ -0,0 +1,224 @@ +PREHOOK: query: explain +select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item,customer,customer_address,store + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=7 + and d_moy=11 + and d_year=1999 + and ss_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and substr(ca_zip,1,5) <> substr(s_zip,1,5) + and ss_store_sk = s_store_sk + group by i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact + order by ext_price desc + ,i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item,customer,customer_address,store + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=7 + and d_moy=11 + and d_year=1999 + and ss_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and substr(ca_zip,1,5) <> substr(s_zip,1,5) + and ss_store_sk = s_store_sk + group by i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact + order by ext_price desc + ,i_brand + ,i_brand_id + ,i_manufact_id + ,i_manufact +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 9 <- Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Reducer 10 <- Map 12 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 11 <- Map 14 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Reducer 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 16 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_161] + Limit [LIM_160] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_159] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_158] + Select Operator [SEL_157] (rows=421657640 width=88) + Output:["_col2","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_156] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_35] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col1)"],keys:_col3, _col2, _col4, _col5 + Select Operator [SEL_34] (rows=843315281 width=88) + Output:["_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_33] (rows=843315281 width=88) + predicate:(_col6 <> _col8) + Merge Join Operator [MERGEJOIN_122] (rows=843315281 width=88) + Conds:RS_30._col0=RS_147._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col8"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_147] + PartitionCols:_col0 + Select Operator [SEL_146] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_28] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_zip"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Select Operator [SEL_27] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_121] (rows=766650239 width=88) + Conds:RS_24._col0=RS_25._col0(Inner),Output:["_col3","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_24] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_118] (rows=88000001 width=860) + Conds:RS_125._col1=RS_127._col0(Inner),Output:["_col0","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col1 + Select Operator [SEL_124] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_123] (rows=80000000 width=860) + predicate:c_current_addr_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 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col0 + Select Operator [SEL_126] (rows=40000000 width=1014) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_zip"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_120] (rows=696954748 width=88) + Conds:RS_17._col1=RS_138._col0(Inner),Output:["_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_138] + PartitionCols:_col0 + Select Operator [SEL_137] (rows=231000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_136] (rows=231000 width=1436) + predicate:(i_manager_id = 7) + TableScan [TS_11] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_brand","i_manufact_id","i_manufact","i_manager_id"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_119] (rows=633595212 width=88) + Conds:RS_155._col0=RS_130._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_130] + PartitionCols:_col0 + Select Operator [SEL_129] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_128] (rows=18262 width=1119) + predicate:((d_moy = 11) and (d_year = 1999)) + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_155] + PartitionCols:_col0 + Select Operator [SEL_154] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_153] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_24_customer_c_customer_sk_min) AND DynamicValue(RS_24_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_24_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_18_item_i_item_sk_min) AND DynamicValue(RS_18_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_18_item_i_item_sk_bloom_filter))) and (ss_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_store_sk BETWEEN DynamicValue(RS_31_store_s_store_sk_min) AND DynamicValue(RS_31_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_31_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (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 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_135] + Group By Operator [GBY_134] (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_133] + Group By Operator [GBY_132] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_131] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_129] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_143] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_141] + Group By Operator [GBY_140] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_139] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_137] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_152] + Group By Operator [GBY_151] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_150] + Group By Operator [GBY_149] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_148] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_146] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_145] + Group By Operator [GBY_144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=88000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_95] + Group By Operator [GBY_94] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=88000000)"] + Select Operator [SEL_93] (rows=88000001 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_118] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query2.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query2.q.out new file mode 100644 index 0000000000..edf7619ebe --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query2.q.out @@ -0,0 +1,295 @@ +PREHOOK: query: explain +with wscs as + (select sold_date_sk + ,sales_price + from (select ws_sold_date_sk sold_date_sk + ,ws_ext_sales_price sales_price + from web_sales) x + union all + (select cs_sold_date_sk sold_date_sk + ,cs_ext_sales_price sales_price + from catalog_sales)), + wswscs as + (select d_week_seq, + sum(case when (d_day_name='Sunday') then sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then sales_price else null end) sat_sales + from wscs + ,date_dim + where d_date_sk = sold_date_sk + group by d_week_seq) + select d_week_seq1 + ,round(sun_sales1/sun_sales2,2) + ,round(mon_sales1/mon_sales2,2) + ,round(tue_sales1/tue_sales2,2) + ,round(wed_sales1/wed_sales2,2) + ,round(thu_sales1/thu_sales2,2) + ,round(fri_sales1/fri_sales2,2) + ,round(sat_sales1/sat_sales2,2) + from + (select wswscs.d_week_seq d_week_seq1 + ,sun_sales sun_sales1 + ,mon_sales mon_sales1 + ,tue_sales tue_sales1 + ,wed_sales wed_sales1 + ,thu_sales thu_sales1 + ,fri_sales fri_sales1 + ,sat_sales sat_sales1 + from wswscs,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 2001) y, + (select wswscs.d_week_seq d_week_seq2 + ,sun_sales sun_sales2 + ,mon_sales mon_sales2 + ,tue_sales tue_sales2 + ,wed_sales wed_sales2 + ,thu_sales thu_sales2 + ,fri_sales fri_sales2 + ,sat_sales sat_sales2 + from wswscs + ,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 2001+1) z + where d_week_seq1=d_week_seq2-53 + order by d_week_seq1 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with wscs as + (select sold_date_sk + ,sales_price + from (select ws_sold_date_sk sold_date_sk + ,ws_ext_sales_price sales_price + from web_sales) x + union all + (select cs_sold_date_sk sold_date_sk + ,cs_ext_sales_price sales_price + from catalog_sales)), + wswscs as + (select d_week_seq, + sum(case when (d_day_name='Sunday') then sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then sales_price else null end) sat_sales + from wscs + ,date_dim + where d_date_sk = sold_date_sk + group by d_week_seq) + select d_week_seq1 + ,round(sun_sales1/sun_sales2,2) + ,round(mon_sales1/mon_sales2,2) + ,round(tue_sales1/tue_sales2,2) + ,round(wed_sales1/wed_sales2,2) + ,round(thu_sales1/thu_sales2,2) + ,round(fri_sales1/fri_sales2,2) + ,round(sat_sales1/sat_sales2,2) + from + (select wswscs.d_week_seq d_week_seq1 + ,sun_sales sun_sales1 + ,mon_sales mon_sales1 + ,tue_sales tue_sales1 + ,wed_sales wed_sales1 + ,thu_sales thu_sales1 + ,fri_sales fri_sales1 + ,sat_sales sat_sales1 + from wswscs,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 2001) y, + (select wswscs.d_week_seq d_week_seq2 + ,sun_sales sun_sales2 + ,mon_sales mon_sales2 + ,tue_sales tue_sales2 + ,wed_sales wed_sales2 + ,thu_sales thu_sales2 + ,fri_sales fri_sales2 + ,sat_sales sat_sales2 + from wswscs + ,date_dim + where date_dim.d_week_seq = wswscs.d_week_seq and + d_year = 2001+1) z + where d_week_seq1=d_week_seq2-53 + order by d_week_seq1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Union 2 (CONTAINS) +Map 16 <- Reducer 14 (BROADCAST_EDGE), Union 17 (CONTAINS) +Map 18 <- Reducer 14 (BROADCAST_EDGE), Union 17 (CONTAINS) +Map 8 <- Reducer 10 (BROADCAST_EDGE), Union 2 (CONTAINS) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 9 (SIMPLE_EDGE), Union 17 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 15 (SIMPLE_EDGE), Reducer 12 (ONE_TO_ONE_EDGE) +Reducer 14 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 15 (SIMPLE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 13 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_194] + Select Operator [SEL_193] (rows=287491028 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_57] + Select Operator [SEL_56] (rows=287491028 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_146] (rows=287491028 width=135) + Conds:RS_53._col0=RS_54._col7(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_54] + PartitionCols:_col7 + Select Operator [SEL_49] (rows=261355475 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_145] (rows=261355475 width=135) + Conds:RS_192._col0=RS_190._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_190] + PartitionCols:_col0 + Select Operator [SEL_188] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_186] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_week_seq is not null) + TableScan [TS_20] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_week_seq","d_year"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_192] + PartitionCols:_col0 + Group By Operator [GBY_191] (rows=237595882 width=135) + 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)","sum(VALUE._col6)"],keys:KEY._col0 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0 + Group By Operator [GBY_39] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col0 + Select Operator [SEL_37] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_144] (rows=475191764 width=135) + Conds:Union 17._col0=RS_171._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] + PartitionCols:_col0 + Select Operator [SEL_168] (rows=73049 width=1119) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_167] (rows=73049 width=1119) + predicate:d_week_seq is not null + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_week_seq","d_day_name"] + <-Union 17 [SIMPLE_EDGE] + <-Map 16 [CONTAINS] vectorized + Reduce Output Operator [RS_203] + PartitionCols:_col0 + Select Operator [SEL_202] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_201] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_35_date_dim_d_date_sk_min) AND DynamicValue(RS_35_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_35_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_157] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_ext_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_199] + Group By Operator [GBY_198] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_176] + Group By Operator [GBY_174] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_172] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_168] + <-Map 18 [CONTAINS] vectorized + Reduce Output Operator [RS_206] + PartitionCols:_col0 + Select Operator [SEL_205] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_204] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_35_date_dim_d_date_sk_min) AND DynamicValue(RS_35_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_35_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_162] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_ext_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_200] + Please refer to the previous Group By Operator [GBY_198] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_53] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_143] (rows=261355475 width=135) + Conds:RS_184._col0=RS_189._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_189] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_185] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_week_seq is not null) + Please refer to the previous TableScan [TS_20] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_184] + PartitionCols:_col0 + Group By Operator [GBY_183] (rows=237595882 width=135) + 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)","sum(VALUE._col6)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col0 + Select Operator [SEL_14] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_142] (rows=475191764 width=135) + Conds:Union 2._col0=RS_169._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_169] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_168] + <-Union 2 [SIMPLE_EDGE] + <-Map 1 [CONTAINS] vectorized + Reduce Output Operator [RS_182] + PartitionCols:_col0 + Select Operator [SEL_181] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_180] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_147] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_178] + 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 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_175] + Group By Operator [GBY_173] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_170] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_168] + <-Map 8 [CONTAINS] vectorized + Reduce Output Operator [RS_197] + PartitionCols:_col0 + Select Operator [SEL_196] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_195] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_152] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_179] + Please refer to the previous Group By Operator [GBY_177] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query20.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query20.q.out new file mode 100644 index 0000000000..8b9e091a5d --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query20.q.out @@ -0,0 +1,161 @@ +PREHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(cs_ext_sales_price) as itemrevenue + ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over + (partition by i_class) as revenueratio + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and cs_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) + group by i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + order by i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(cs_ext_sales_price) as itemrevenue + ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over + (partition by i_class) as revenueratio + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and cs_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) + group by i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price + order by i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_86] + Limit [LIM_85] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_84] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_83] + Select Operator [SEL_82] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_81] (rows=174233858 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST","partition by:":"_col1"}] + Select Operator [SEL_80] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_79] + PartitionCols:_col1 + Group By Operator [GBY_78] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_16] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)"],keys:_col9, _col8, _col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_58] (rows=348467716 width=135) + Conds:RS_12._col1=RS_69._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_69] + PartitionCols:_col0 + Select Operator [SEL_68] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_67] (rows=462000 width=1436) + predicate:(i_category) IN ('Jewelry', 'Sports', 'Books') + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc","i_current_price","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_57] (rows=316788826 width=135) + Conds:RS_77._col0=RS_61._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_61] + PartitionCols:_col0 + Select Operator [SEL_60] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_59] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-01-12 00:00:00' AND TIMESTAMP'2001-02-11 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_77] + PartitionCols:_col0 + Select Operator [SEL_76] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_75] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_74] + Group By Operator [GBY_73] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_72] + Group By Operator [GBY_71] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_70] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_68] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_66] + Group By Operator [GBY_65] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_64] + Group By Operator [GBY_63] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_62] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_60] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query21.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query21.q.out new file mode 100644 index 0000000000..666046fc07 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query21.q.out @@ -0,0 +1,147 @@ +PREHOOK: query: explain +select * + from(select w_warehouse_name + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('1998-04-08' as date)) + then inv_quantity_on_hand + else 0 end) as inv_before + ,sum(case when (cast(d_date as date) >= cast ('1998-04-08' as date)) + then inv_quantity_on_hand + else 0 end) as inv_after + from inventory + ,warehouse + ,item + ,date_dim + where i_current_price between 0.99 and 1.49 + and i_item_sk = inv_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_date between (cast ('1998-04-08' as date) - 30 days) + and (cast ('1998-04-08' as date) + 30 days) + group by w_warehouse_name, i_item_id) x + where (case when inv_before > 0 + then inv_after / inv_before + else null + end) between 2.0/3.0 and 3.0/2.0 + order by w_warehouse_name + ,i_item_id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * + from(select w_warehouse_name + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('1998-04-08' as date)) + then inv_quantity_on_hand + else 0 end) as inv_before + ,sum(case when (cast(d_date as date) >= cast ('1998-04-08' as date)) + then inv_quantity_on_hand + else 0 end) as inv_after + from inventory + ,warehouse + ,item + ,date_dim + where i_current_price between 0.99 and 1.49 + and i_item_sk = inv_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_date between (cast ('1998-04-08' as date) - 30 days) + and (cast ('1998-04-08' as date) + 30 days) + group by w_warehouse_name, i_item_id) x + where (case when inv_before > 0 + then inv_after / inv_before + else null + end) between 2.0/3.0 and 3.0/2.0 + order by w_warehouse_name + ,i_item_id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 9 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_92] + Limit [LIM_91] (rows=100 width=15) + Number of rows:100 + Select Operator [SEL_90] (rows=12506076 width=15) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_89] + Filter Operator [FIL_88] (rows=12506076 width=15) + predicate:CASE WHEN ((_col2 > 0L)) THEN ((UDFToDouble(_col3) / UDFToDouble(_col2)) BETWEEN 0.666667D AND 1.5D) ELSE (null) END + Group By Operator [GBY_87] (rows=25012152 width=15) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1 + Group By Operator [GBY_22] (rows=50024305 width=15) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col0, _col1 + Select Operator [SEL_20] (rows=50024305 width=15) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_76] (rows=50024305 width=15) + Conds:RS_17._col0=RS_86._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_86] + PartitionCols:_col0 + Select Operator [SEL_85] (rows=8116 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_84] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-03-09 00:00:00' AND TIMESTAMP'1998-05-08 00:00:00' + TableScan [TS_14] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Select Operator [SEL_13] (rows=45476640 width=15) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_75] (rows=45476640 width=15) + Conds:RS_10._col2=RS_83._col0(Inner),Output:["_col0","_col3","_col5","_col7"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_83] + PartitionCols:_col0 + Select Operator [SEL_82] (rows=27 width=1029) + Output:["_col0","_col1"] + TableScan [TS_5] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_warehouse_name"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_74] (rows=41342400 width=15) + Conds:RS_78._col1=RS_81._col0(Inner),Output:["_col0","_col2","_col3","_col5"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_78] + PartitionCols:_col1 + Select Operator [SEL_77] (rows=37584000 width=15) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_0] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_warehouse_sk","inv_quantity_on_hand"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_81] + PartitionCols:_col0 + Select Operator [SEL_80] (rows=51333 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_79] (rows=51333 width=1436) + predicate:i_current_price BETWEEN 0.99 AND 1.49 + TableScan [TS_2] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_current_price"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query22.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query22.q.out new file mode 100644 index 0000000000..c526327e2e --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query22.q.out @@ -0,0 +1,112 @@ +PREHOOK: query: explain +select i_product_name + ,i_brand + ,i_class + ,i_category + ,avg(inv_quantity_on_hand) qoh + from inventory + ,date_dim + ,item + ,warehouse + where inv_date_sk=d_date_sk + and inv_item_sk=i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and d_month_seq between 1212 and 1212 + 11 + group by rollup(i_product_name + ,i_brand + ,i_class + ,i_category) +order by qoh, i_product_name, i_brand, i_class, i_category +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_product_name + ,i_brand + ,i_class + ,i_category + ,avg(inv_quantity_on_hand) qoh + from inventory + ,date_dim + ,item + ,warehouse + where inv_date_sk=d_date_sk + and inv_item_sk=i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and d_month_seq between 1212 and 1212 + 11 + group by rollup(i_product_name + ,i_brand + ,i_class + ,i_category) +order by qoh, i_product_name, i_brand, i_class, i_category +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 7 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_64] + Limit [LIM_63] (rows=100 width=15) + Number of rows:100 + Select Operator [SEL_62] (rows=113691600 width=15) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_61] + Select Operator [SEL_60] (rows=113691600 width=15) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_59] (rows=113691600 width=15) + Output:["_col0","_col1","_col2","_col3","_col5","_col6"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_14] (rows=227383200 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col2)","count(_col2)"],keys:_col5, _col6, _col7, _col8, 0L + Merge Join Operator [MERGEJOIN_51] (rows=45476640 width=15) + Conds:RS_10._col1=RS_58._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_58] + PartitionCols:_col0 + Select Operator [SEL_57] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_5] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_class","i_category","i_product_name"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_50] (rows=41342400 width=15) + Conds:RS_53._col0=RS_56._col0(Inner),Output:["_col1","_col2"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_53] + PartitionCols:_col0 + Select Operator [SEL_52] (rows=37584000 width=15) + Output:["_col0","_col1","_col2"] + TableScan [TS_0] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_quantity_on_hand"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_56] + PartitionCols:_col0 + Select Operator [SEL_55] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_54] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_2] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out new file mode 100644 index 0000000000..0d8c5717f3 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out @@ -0,0 +1,482 @@ +Warning: Shuffle Join MERGEJOIN[455][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 17' is a cross product +Warning: Shuffle Join MERGEJOIN[456][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 18' is a cross product +PREHOOK: query: explain +with frequent_ss_items as + (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt + from store_sales + ,date_dim + ,item + where ss_sold_date_sk = d_date_sk + and ss_item_sk = i_item_sk + and d_year in (1999,1999+1,1999+2,1999+3) + group by substr(i_item_desc,1,30),i_item_sk,d_date + having count(*) >4), + max_store_sales as + (select max(csales) tpcds_cmax + from (select c_customer_sk,sum(ss_quantity*ss_sales_price) csales + from store_sales + ,customer + ,date_dim + where ss_customer_sk = c_customer_sk + and ss_sold_date_sk = d_date_sk + and d_year in (1999,1999+1,1999+2,1999+3) + group by c_customer_sk) x), + best_ss_customer as + (select c_customer_sk,sum(ss_quantity*ss_sales_price) ssales + from store_sales + ,customer + where ss_customer_sk = c_customer_sk + group by c_customer_sk + having sum(ss_quantity*ss_sales_price) > (95/100.0) * (select + * +from + max_store_sales)) + select sum(sales) + from ((select cs_quantity*cs_list_price sales + from catalog_sales + ,date_dim + where d_year = 1999 + and d_moy = 1 + and cs_sold_date_sk = d_date_sk + and cs_item_sk in (select item_sk from frequent_ss_items) + and cs_bill_customer_sk in (select c_customer_sk from best_ss_customer)) + union all + (select ws_quantity*ws_list_price sales + from web_sales + ,date_dim + where d_year = 1999 + and d_moy = 1 + and ws_sold_date_sk = d_date_sk + and ws_item_sk in (select item_sk from frequent_ss_items) + and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer))) y + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with frequent_ss_items as + (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt + from store_sales + ,date_dim + ,item + where ss_sold_date_sk = d_date_sk + and ss_item_sk = i_item_sk + and d_year in (1999,1999+1,1999+2,1999+3) + group by substr(i_item_desc,1,30),i_item_sk,d_date + having count(*) >4), + max_store_sales as + (select max(csales) tpcds_cmax + from (select c_customer_sk,sum(ss_quantity*ss_sales_price) csales + from store_sales + ,customer + ,date_dim + where ss_customer_sk = c_customer_sk + and ss_sold_date_sk = d_date_sk + and d_year in (1999,1999+1,1999+2,1999+3) + group by c_customer_sk) x), + best_ss_customer as + (select c_customer_sk,sum(ss_quantity*ss_sales_price) ssales + from store_sales + ,customer + where ss_customer_sk = c_customer_sk + group by c_customer_sk + having sum(ss_quantity*ss_sales_price) > (95/100.0) * (select + * +from + max_store_sales)) + select sum(sales) + from ((select cs_quantity*cs_list_price sales + from catalog_sales + ,date_dim + where d_year = 1999 + and d_moy = 1 + and cs_sold_date_sk = d_date_sk + and cs_item_sk in (select item_sk from frequent_ss_items) + and cs_bill_customer_sk in (select c_customer_sk from best_ss_customer)) + union all + (select ws_quantity*ws_list_price sales + from web_sales + ,date_dim + where d_year = 1999 + and d_moy = 1 + and ws_sold_date_sk = d_date_sk + and ws_item_sk in (select item_sk from frequent_ss_items) + and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer))) y + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 1 <- Reducer 20 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Map 13 <- Reducer 23 (BROADCAST_EDGE) +Map 26 <- Reducer 33 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Map 37 <- Reducer 12 (BROADCAST_EDGE), Reducer 36 (BROADCAST_EDGE) +Reducer 10 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 12 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 15 <- Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE), Reducer 21 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 25 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 24 (SIMPLE_EDGE) +Reducer 27 <- Map 26 (SIMPLE_EDGE), Map 32 (SIMPLE_EDGE) +Reducer 28 <- Map 34 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) +Reducer 29 <- Reducer 28 (SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Reducer 29 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Reducer 28 (SIMPLE_EDGE) +Reducer 33 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 34 (CUSTOM_SIMPLE_EDGE) +Reducer 36 <- Map 34 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 29 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 6 <- Union 5 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 37 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_563] + Limit [LIM_562] (rows=1 width=112) + Number of rows:100 + Group By Operator [GBY_561] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Union 5 [CUSTOM_SIMPLE_EDGE] + <-Reducer 11 [CONTAINS] + Reduce Output Operator [RS_472] + Group By Operator [GBY_471] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col0)"] + Select Operator [SEL_469] (rows=191667562 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_468] (rows=191667562 width=135) + Conds:RS_210._col1=RS_576._col0(Inner),Output:["_col3","_col4"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_210] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_460] (rows=174243235 width=135) + Conds:RS_207._col2=RS_521._col0(Inner),Output:["_col1","_col3","_col4"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_521] + PartitionCols:_col0 + Group By Operator [GBY_518] (rows=47999636 width=434) + Output:["_col0"],keys:KEY._col0 + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col0 + Group By Operator [GBY_68] (rows=95999272 width=434) + Output:["_col0"],keys:_col2 + Select Operator [SEL_67] (rows=95999272 width=434) + Output:["_col2"] + Filter Operator [FIL_66] (rows=95999272 width=434) + predicate:(_col3 > _col1) + Merge Join Operator [MERGEJOIN_456] (rows=287997817 width=434) + Conds:(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_63] + Merge Join Operator [MERGEJOIN_455] (rows=1 width=345) + Conds:(Inner),Output:["_col1"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_508] + Select Operator [SEL_507] (rows=1 width=120) + Filter Operator [FIL_506] (rows=1 width=120) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_505] (rows=1 width=120) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_504] (rows=1 width=120) + Group By Operator [GBY_503] (rows=1 width=120) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_501] + Group By Operator [GBY_499] (rows=1 width=120) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_497] (rows=316797606 width=88) + Output:["_col0"] + Group By Operator [GBY_496] (rows=316797606 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=633595212 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col1 + Merge Join Operator [MERGEJOIN_446] (rows=633595212 width=88) + Conds:RS_495._col0=RS_487._col0(Inner),Output:["_col1","_col2"] + <-Map 22 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_487] + PartitionCols:_col0 + Select Operator [SEL_486] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_485] (rows=73049 width=1119) + predicate:(d_year) IN (1999, 2000, 2001, 2002) + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_495] + PartitionCols:_col0 + Select Operator [SEL_494] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_493] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_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_customer_sk","ss_quantity","ss_sales_price"] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_492] + Group By Operator [GBY_491] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_490] + Group By Operator [GBY_489] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_488] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_486] + <-Reducer 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_511] + Select Operator [SEL_510] (rows=1 width=224) + Output:["_col0"] + Group By Operator [GBY_509] (rows=1 width=224) + Output:["_col0"],aggregations:["max(VALUE._col0)"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_502] + Group By Operator [GBY_500] (rows=1 width=224) + Output:["_col0"],aggregations:["max(_col1)"] + Select Operator [SEL_498] (rows=316797606 width=88) + Output:["_col1"] + Please refer to the previous Group By Operator [GBY_496] + <-Reducer 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_517] + Group By Operator [GBY_516] (rows=287997817 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_515] + PartitionCols:_col0 + Group By Operator [GBY_514] (rows=575995635 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_513] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_512] (rows=575995635 width=88) + predicate:ss_customer_sk is not null + TableScan [TS_52] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_207] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_450] (rows=158402938 width=135) + Conds:RS_570._col0=RS_477._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_477] + PartitionCols:_col0 + Select Operator [SEL_474] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_473] (rows=18262 width=1119) + predicate:((d_moy = 1) and (d_year = 1999)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 37 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_570] + PartitionCols:_col0 + Select Operator [SEL_569] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_568] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_191_item_i_item_sk_min) AND DynamicValue(RS_191_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_191_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_205_date_dim_d_date_sk_min) AND DynamicValue(RS_205_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_205_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_107] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_quantity","ws_list_price"] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_565] + Group By Operator [GBY_564] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_482] + Group By Operator [GBY_480] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_478] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_474] + <-Reducer 36 [BROADCAST_EDGE] vectorized + BROADCAST [RS_567] + Group By Operator [GBY_566] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_541] + Group By Operator [GBY_539] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_537] (rows=462000 width=1436) + Output:["_col0"] + Select Operator [SEL_534] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_78] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_desc"] + <-Reducer 31 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_576] + PartitionCols:_col0 + Group By Operator [GBY_575] (rows=58079562 width=88) + Output:["_col0"],keys:_col1 + Select Operator [SEL_574] (rows=116159124 width=88) + Output:["_col1"] + Filter Operator [FIL_573] (rows=116159124 width=88) + predicate:(_col3 > 4L) + Select Operator [SEL_572] (rows=348477374 width=88) + Output:["_col1","_col3"] + Group By Operator [GBY_571] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_195] + PartitionCols:_col0 + Group By Operator [GBY_87] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col4, _col3, _col5 + Merge Join Operator [MERGEJOIN_449] (rows=696954748 width=88) + Conds:RS_83._col1=RS_535._col0(Inner),Output:["_col3","_col4","_col5"] + <-Map 34 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_535] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_534] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_448] (rows=633595212 width=88) + Conds:RS_546._col0=RS_528._col0(Inner),Output:["_col1","_col3"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_528] + PartitionCols:_col0 + Select Operator [SEL_527] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_526] (rows=73049 width=1119) + predicate:(d_year) IN (1999, 2000, 2001, 2002) + TableScan [TS_75] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date","d_year"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_546] + PartitionCols:_col0 + Select Operator [SEL_545] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_544] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_84_item_i_item_sk_min) AND DynamicValue(RS_84_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_84_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_81_date_dim_d_date_sk_min) AND DynamicValue(RS_81_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_81_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_72] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_533] + Group By Operator [GBY_532] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_531] + Group By Operator [GBY_530] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_529] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_527] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_543] + Group By Operator [GBY_542] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_540] + Group By Operator [GBY_538] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_536] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_534] + <-Reducer 4 [CONTAINS] + Reduce Output Operator [RS_467] + Group By Operator [GBY_466] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col0)"] + Select Operator [SEL_464] (rows=383314495 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_463] (rows=383314495 width=135) + Conds:RS_103._col2=RS_552._col0(Inner),Output:["_col3","_col4"] + <-Reducer 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_552] + PartitionCols:_col0 + Group By Operator [GBY_551] (rows=58079562 width=88) + Output:["_col0"],keys:_col1 + Select Operator [SEL_550] (rows=116159124 width=88) + Output:["_col1"] + Filter Operator [FIL_549] (rows=116159124 width=88) + predicate:(_col3 > 4L) + Select Operator [SEL_548] (rows=348477374 width=88) + Output:["_col1","_col3"] + Group By Operator [GBY_547] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_87] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_103] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_457] (rows=348467716 width=135) + Conds:RS_100._col1=RS_519._col0(Inner),Output:["_col2","_col3","_col4"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_519] + PartitionCols:_col0 + Please refer to the previous Group By Operator [GBY_518] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_100] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_445] (rows=316788826 width=135) + Conds:RS_560._col0=RS_475._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_475] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_474] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_560] + PartitionCols:_col0 + Select Operator [SEL_559] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_558] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_101_store_sales_ss_customer_sk_min) AND DynamicValue(RS_101_store_sales_ss_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_101_store_sales_ss_customer_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_104_item_i_item_sk_min) AND DynamicValue(RS_104_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_104_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_98_date_dim_d_date_sk_min) AND DynamicValue(RS_98_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_98_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_quantity","cs_list_price"] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_525] + Group By Operator [GBY_524] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=47999636)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] vectorized + FORWARD [RS_523] + Group By Operator [GBY_522] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=47999636)"] + Select Operator [SEL_520] (rows=47999636 width=434) + Output:["_col0"] + Please refer to the previous Group By Operator [GBY_518] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_557] + Group By Operator [GBY_556] (rows=1 width=20) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=58079560)"] + <-Reducer 29 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_555] + Group By Operator [GBY_554] (rows=1 width=20) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=58079560)"] + Select Operator [SEL_553] (rows=58079562 width=88) + Output:["_col0"] + Please refer to the previous Group By Operator [GBY_551] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_484] + Group By Operator [GBY_483] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_481] + Group By Operator [GBY_479] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_476] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_474] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out new file mode 100644 index 0000000000..775b5e24bb --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query24.q.out @@ -0,0 +1,435 @@ +Warning: Shuffle Join MERGEJOIN[291][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 4' is a cross product +PREHOOK: query: explain +with ssales as +(select c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size + ,sum(ss_sales_price) netpaid +from store_sales + ,store_returns + ,store + ,item + ,customer + ,customer_address +where ss_ticket_number = sr_ticket_number + and ss_item_sk = sr_item_sk + and ss_customer_sk = c_customer_sk + and ss_item_sk = i_item_sk + and ss_store_sk = s_store_sk + and c_birth_country = upper(ca_country) + and s_zip = ca_zip +and s_market_id=7 +group by c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size) +select c_last_name + ,c_first_name + ,s_store_name + ,sum(netpaid) paid +from ssales +where i_color = 'orchid' +group by c_last_name + ,c_first_name + ,s_store_name +having sum(netpaid) > (select 0.05*avg(netpaid) + from ssales) +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ssales as +(select c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size + ,sum(ss_sales_price) netpaid +from store_sales + ,store_returns + ,store + ,item + ,customer + ,customer_address +where ss_ticket_number = sr_ticket_number + and ss_item_sk = sr_item_sk + and ss_customer_sk = c_customer_sk + and ss_item_sk = i_item_sk + and ss_store_sk = s_store_sk + and c_birth_country = upper(ca_country) + and s_zip = ca_zip +and s_market_id=7 +group by c_last_name + ,c_first_name + ,s_store_name + ,ca_state + ,s_state + ,i_color + ,i_current_price + ,i_manager_id + ,i_units + ,i_size) +select c_last_name + ,c_first_name + ,s_store_name + ,sum(netpaid) paid +from ssales +where i_color = 'orchid' +group by c_last_name + ,c_first_name + ,s_store_name +having sum(netpaid) > (select 0.05*avg(netpaid) + from ssales) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 31 <- Reducer 20 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE) +Map 8 <- Reducer 14 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 23 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE) +Reducer 10 <- Map 22 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 25 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 28 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 13 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 17 <- Map 22 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 28 (SIMPLE_EDGE), Reducer 17 (SIMPLE_EDGE) +Reducer 19 <- Map 25 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 20 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 25 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 25 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Map 1 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 13 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 4 + File Output Operator [FS_92] + Select Operator [SEL_91] (rows=77303902 width=321) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_90] (rows=77303902 width=321) + predicate:(_col3 > _col4) + Merge Join Operator [MERGEJOIN_291] (rows=231911707 width=321) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_359] + Select Operator [SEL_358] (rows=231911707 width=88) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_357] (rows=231911707 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col9)"],keys:_col1, _col7, _col8 + Select Operator [SEL_356] (rows=463823414 width=88) + Output:["_col1","_col7","_col8","_col9"] + Group By Operator [GBY_355] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_35] (rows=927646829 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col3)"],keys:_col4, _col11, _col12, _col0, _col5, _col7, _col8, _col9, _col10 + Merge Join Operator [MERGEJOIN_285] (rows=927646829 width=88) + Conds:RS_294._col1, _col2=RS_32._col3, _col10(Inner),Output:["_col0","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_294] + PartitionCols:_col1, _col2 + Select Operator [SEL_293] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_292] (rows=40000000 width=1014) + predicate:(ca_zip is not null and upper(ca_country) is not null) + TableScan [TS_0] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_state","ca_zip","ca_country"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col3, _col10 + Select Operator [SEL_30] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Merge Join Operator [MERGEJOIN_284] (rows=843315281 width=88) + Conds:RS_27._col1=RS_342._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col12","_col13","_col14"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_342] + PartitionCols:_col0 + Select Operator [SEL_341] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_340] (rows=80000000 width=860) + predicate:c_birth_country is not null + TableScan [TS_21] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name","c_birth_country"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_283] (rows=766650239 width=88) + Conds:RS_24._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col10"] + <-Map 25 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_332] + PartitionCols:_col0 + Select Operator [SEL_329] (rows=231000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_327] (rows=231000 width=1436) + predicate:(i_color = 'orchid') + TableScan [TS_18] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_size","i_color","i_units","i_manager_id"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Select Operator [SEL_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_282] (rows=696954748 width=88) + Conds:RS_14._col2=RS_317._col0(Inner),Output:["_col0","_col1","_col4","_col8","_col9","_col10"] + <-Map 22 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_317] + PartitionCols:_col0 + Select Operator [SEL_316] (rows=852 width=1910) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_315] (rows=852 width=1910) + predicate:((s_market_id = 7) and s_zip is not null) + TableScan [TS_8] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_market_id","s_state","s_zip"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_281] (rows=633595212 width=88) + Conds:RS_354._col0, _col3=RS_297._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_297] + PartitionCols:_col0, _col1 + Select Operator [SEL_296] (rows=57591150 width=77) + Output:["_col0","_col1"] + TableScan [TS_6] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_354] + PartitionCols:_col0, _col3 + Select Operator [SEL_353] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_352] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_28_customer_c_customer_sk_min) AND DynamicValue(RS_28_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_28_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_12_store_returns_sr_item_sk_min) AND DynamicValue(RS_12_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_12_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_15_store_s_store_sk_min) AND DynamicValue(RS_15_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_15_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_12_store_returns_sr_ticket_number_min) AND DynamicValue(RS_12_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_12_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null) + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_312] + Group By Operator [GBY_311] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_307] + Group By Operator [GBY_303] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_298] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_314] + Group By Operator [GBY_313] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + Group By Operator [GBY_304] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_299] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_326] + Group By Operator [GBY_325] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_323] + Group By Operator [GBY_321] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_318] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_316] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_339] + Group By Operator [GBY_338] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_337] + Group By Operator [GBY_335] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_333] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_329] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_351] + Group By Operator [GBY_350] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_348] + Group By Operator [GBY_346] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_343] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_341] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_379] + Select Operator [SEL_378] (rows=1 width=232) + Output:["_col0"] + Group By Operator [GBY_377] (rows=1 width=232) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_376] + Group By Operator [GBY_375] (rows=1 width=232) + Output:["_col0","_col1"],aggregations:["sum(_col10)","count(_col10)"] + Select Operator [SEL_374] (rows=463823414 width=88) + Output:["_col10"] + Group By Operator [GBY_373] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_79] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 + Group By Operator [GBY_78] (rows=927646829 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col3)"],keys:_col0, _col4, _col5, _col7, _col8, _col9, _col10, _col11, _col12, _col13 + Merge Join Operator [MERGEJOIN_290] (rows=927646829 width=88) + Conds:RS_295._col1, _col2=RS_75._col3, _col11(Inner),Output:["_col0","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + PartitionCols:_col1, _col2 + Please refer to the previous Select Operator [SEL_293] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col3, _col11 + Select Operator [SEL_73] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + Merge Join Operator [MERGEJOIN_289] (rows=843315281 width=88) + Conds:RS_70._col4=RS_330._col0(Inner),Output:["_col1","_col2","_col3","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col14","_col15"] + <-Map 25 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_330] + PartitionCols:_col0 + Select Operator [SEL_328] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Please refer to the previous TableScan [TS_18] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_288] (rows=766650239 width=88) + Conds:RS_344._col0=RS_68._col1(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col8","_col9"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_344] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_341] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col1 + Select Operator [SEL_64] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_287] (rows=696954748 width=88) + Conds:RS_61._col2=RS_319._col0(Inner),Output:["_col0","_col1","_col4","_col8","_col9","_col10"] + <-Map 22 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_319] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_316] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_286] (rows=633595212 width=88) + Conds:RS_372._col0, _col3=RS_300._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_300] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_296] + <-Map 31 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_372] + PartitionCols:_col0, _col3 + Select Operator [SEL_371] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_370] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_67_customer_c_customer_sk_min) AND DynamicValue(RS_67_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_67_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_59_store_returns_sr_item_sk_min) AND DynamicValue(RS_59_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_59_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_71_item_i_item_sk_min) AND DynamicValue(RS_71_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_71_item_i_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_62_store_s_store_sk_min) AND DynamicValue(RS_62_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_62_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_59_store_returns_sr_ticket_number_min) AND DynamicValue(RS_59_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_59_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and ss_store_sk is not null) + TableScan [TS_50] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number","ss_sales_price"] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_361] + Group By Operator [GBY_360] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_309] + Group By Operator [GBY_305] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_301] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_363] + Group By Operator [GBY_362] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_310] + Group By Operator [GBY_306] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_302] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_365] + Group By Operator [GBY_364] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_324] + Group By Operator [GBY_322] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_320] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_316] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_369] + Group By Operator [GBY_368] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_336] + Group By Operator [GBY_334] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_331] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_328] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_367] + Group By Operator [GBY_366] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_349] + Group By Operator [GBY_347] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_345] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_341] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query25.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query25.q.out new file mode 100644 index 0000000000..1497d94947 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query25.q.out @@ -0,0 +1,335 @@ +PREHOOK: query: explain +select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,sum(ss_net_profit) as store_sales_profit + ,sum(sr_net_loss) as store_returns_loss + ,sum(cs_net_profit) as catalog_sales_profit + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 2000 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 10 + and d2.d_year = 2000 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_moy between 4 and 10 + and d3.d_year = 2000 + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,sum(ss_net_profit) as store_sales_profit + ,sum(sr_net_loss) as store_returns_loss + ,sum(cs_net_profit) as catalog_sales_profit + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 2000 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 10 + and d2.d_year = 2000 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_moy between 4 and 10 + and d3.d_year = 2000 + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 13 <- Reducer 12 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE), Reducer 5 (BROADCAST_EDGE) +Map 20 <- Reducer 17 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 10 <- Map 6 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 11 <- Map 6 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 12 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE) +Reducer 15 <- Map 20 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 8 <- Map 21 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 6 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_276] + Limit [LIM_275] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_274] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_273] + Group By Operator [GBY_272] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_48] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_47] (rows=1122452711 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col1, _col2, _col7, _col8 + Top N Key Operator [TNK_98] (rows=1122452711 width=88) + keys:_col1, _col2, _col7, _col8,sort order:++++,top n:100 + Merge Join Operator [MERGEJOIN_214] (rows=1122452711 width=88) + Conds:RS_216._col0=RS_44._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col7","_col8"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_216] + PartitionCols:_col0 + Select Operator [SEL_215] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=1020411534 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_213] (rows=1020411534 width=88) + Conds:RS_39._col2=RS_256._col0(Inner),Output:["_col1","_col3","_col4","_col6","_col8","_col9"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_256] + PartitionCols:_col0 + Select Operator [SEL_255] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + TableScan [TS_34] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id","s_store_name"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_212] (rows=927646829 width=88) + Conds:RS_224._col0=RS_37._col4(Inner),Output:["_col1","_col2","_col3","_col4","_col6"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_224] + PartitionCols:_col0 + Select Operator [SEL_222] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_220] (rows=36524 width=1119) + predicate:((d_year = 2000) and d_moy BETWEEN 4 AND 10) + TableScan [TS_2] (rows=73049 width=1119) + default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col4 + Select Operator [SEL_33] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_211] (rows=843315281 width=88) + Conds:RS_30._col4=RS_226._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_226] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_222] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_210] (rows=766650239 width=88) + Conds:RS_27._col0=RS_227._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_227] + PartitionCols:_col0 + Select Operator [SEL_223] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_221] (rows=18262 width=1119) + predicate:((d_moy = 4) and (d_year = 2000)) + Please refer to the previous TableScan [TS_2] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_209] (rows=696954748 width=88) + Conds:RS_17._col8, _col7=RS_271._col1, _col2(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col10","_col11","_col14"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_271] + PartitionCols:_col1, _col2 + Select Operator [SEL_270] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_269] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_36_d3_d_date_sk_min) AND DynamicValue(RS_36_d3_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_36_d3_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_11] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_net_profit"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_247] + Group By Operator [GBY_245] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_242] + Group By Operator [GBY_239] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_236] (rows=57591150 width=77) + Output:["_col0"] + Select Operator [SEL_234] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_233] (rows=57591150 width=77) + predicate:(sr_customer_sk is not null and sr_returned_date_sk is not null) + TableScan [TS_8] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_customer_sk","sr_ticket_number","sr_net_loss"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_250] + Group By Operator [GBY_248] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_243] + Group By Operator [GBY_240] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_237] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_234] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_268] + Group By Operator [GBY_267] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_231] + Group By Operator [GBY_229] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_225] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_222] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col8, _col7 + Merge Join Operator [MERGEJOIN_208] (rows=633595212 width=88) + Conds:RS_266._col2, _col1, _col4=RS_235._col2, _col1, _col3(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7","_col8","_col10"] + <-Map 16 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_235] + PartitionCols:_col2, _col1, _col3 + Please refer to the previous Select Operator [SEL_234] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_266] + PartitionCols:_col2, _col1, _col4 + Select Operator [SEL_265] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_264] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_43_item_i_item_sk_min) AND DynamicValue(RS_43_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_43_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_28_d1_d_date_sk_min) AND DynamicValue(RS_28_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_28_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_40_store_s_store_sk_min) AND DynamicValue(RS_40_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_40_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_15_store_returns_sr_ticket_number_min) AND DynamicValue(RS_15_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_15_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (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_ticket_number","ss_net_profit"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_246] + Please refer to the previous Group By Operator [GBY_245] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_249] + Please refer to the previous Group By Operator [GBY_248] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_254] + Group By Operator [GBY_253] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_232] + Group By Operator [GBY_230] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_228] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_223] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_252] + Group By Operator [GBY_251] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_244] + Group By Operator [GBY_241] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_238] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_234] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_261] + Group By Operator [GBY_260] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_259] + Group By Operator [GBY_258] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_257] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_255] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_263] + Group By Operator [GBY_262] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_219] + Group By Operator [GBY_218] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_217] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_215] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query26.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query26.q.out new file mode 100644 index 0000000000..f5d3db43b3 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query26.q.out @@ -0,0 +1,197 @@ +PREHOOK: query: explain +select i_item_id, + avg(cs_quantity) agg1, + avg(cs_list_price) agg2, + avg(cs_coupon_amt) agg3, + avg(cs_sales_price) agg4 + from catalog_sales, customer_demographics, date_dim, item, promotion + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd_demo_sk and + cs_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@catalog_sales +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@promotion +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id, + avg(cs_quantity) agg1, + avg(cs_list_price) agg2, + avg(cs_coupon_amt) agg3, + avg(cs_sales_price) agg4 + from catalog_sales, customer_demographics, date_dim, item, promotion + where cs_sold_date_sk = d_date_sk and + cs_item_sk = i_item_sk and + cs_bill_cdemo_sk = cd_demo_sk and + cs_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@catalog_sales +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@promotion +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (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 14 (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_139] + Limit [LIM_138] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_137] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_136] + Select Operator [SEL_135] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_134] (rows=210822976 width=135) + 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_29] + PartitionCols:_col0 + Group By Operator [GBY_28] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col2)","count(_col2)","sum(_col3)","count(_col3)","sum(_col5)","count(_col5)","sum(_col4)","count(_col4)"],keys:_col8 + Top N Key Operator [TNK_55] (rows=421645953 width=135) + keys:_col8,sort order:+,top n:100 + Merge Join Operator [MERGEJOIN_99] (rows=421645953 width=135) + Conds:RS_24._col0=RS_125._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col0 + Select Operator [SEL_124] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_19] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_98] (rows=383314495 width=135) + Conds:RS_21._col1=RS_118._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + PartitionCols:_col0 + Select Operator [SEL_117] (rows=2300 width=1179) + Output:["_col0"] + Filter Operator [FIL_116] (rows=2300 width=1179) + predicate:((p_channel_email = 'N') or (p_channel_event = 'N')) + TableScan [TS_16] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_email","p_channel_event"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_15] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_97] (rows=348467716 width=135) + Conds:RS_12._col0=RS_110._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_110] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_108] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_96] (rows=316788826 width=135) + Conds:RS_133._col1=RS_102._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=232725 width=385) + Output:["_col0"] + Filter Operator [FIL_100] (rows=232725 width=385) + predicate:((cd_education_status = 'Primary') and (cd_gender = 'F') and (cd_marital_status = 'W')) + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_133] + PartitionCols:_col1 + Select Operator [SEL_132] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_131] (rows=287989836 width=135) + predicate:((cs_bill_cdemo_sk BETWEEN DynamicValue(RS_10_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_10_customer_demographics_cd_demo_sk_max) and in_bloom_filter(cs_bill_cdemo_sk, DynamicValue(RS_10_customer_demographics_cd_demo_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (cs_promo_sk BETWEEN DynamicValue(RS_22_promotion_p_promo_sk_min) AND DynamicValue(RS_22_promotion_p_promo_sk_max) and in_bloom_filter(cs_promo_sk, DynamicValue(RS_22_promotion_p_promo_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and cs_bill_cdemo_sk is not null and cs_promo_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_cdemo_sk","cs_item_sk","cs_promo_sk","cs_quantity","cs_list_price","cs_sales_price","cs_coupon_amt"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_115] + Group By Operator [GBY_114] (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_113] + Group By Operator [GBY_112] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_111] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_109] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_123] + Group By Operator [GBY_122] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_119] (rows=2300 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_117] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_130] + Group By Operator [GBY_129] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + Group By Operator [GBY_127] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_126] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_124] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_107] + Group By Operator [GBY_106] (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_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_103] (rows=232725 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query27.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query27.q.out new file mode 100644 index 0000000000..337a99d41f --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query27.q.out @@ -0,0 +1,203 @@ +PREHOOK: query: explain +select i_item_id, + s_state, grouping(s_state) g_state, + 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, store, item + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_store_sk = s_store_sk and + ss_cdemo_sk = cd_demo_sk and + cd_gender = 'M' and + cd_marital_status = 'U' and + cd_education_status = '2 yr Degree' and + d_year = 2001 and + s_state in ('SD','FL', 'MI', 'LA', 'MO', 'SC') + group by rollup (i_item_id, s_state) + order by i_item_id + ,s_state + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id, + s_state, grouping(s_state) g_state, + 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, store, item + where ss_sold_date_sk = d_date_sk and + ss_item_sk = i_item_sk and + ss_store_sk = s_store_sk and + ss_cdemo_sk = cd_demo_sk and + cd_gender = 'M' and + cd_marital_status = 'U' and + cd_education_status = '2 yr Degree' and + d_year = 2001 and + s_state in ('SD','FL', 'MI', 'LA', 'MO', 'SC') + group by rollup (i_item_id, s_state) + order by i_item_id + ,s_state + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (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 14 (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_140] + Limit [LIM_139] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_138] (rows=1264972921 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_137] + Select Operator [SEL_136] (rows=1264972921 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_135] (rows=1264972921 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],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, KEY._col1, KEY._col2 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_29] (rows=2529945843 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"],aggregations:["sum(_col2)","count(_col2)","sum(_col3)","count(_col3)","sum(_col4)","count(_col4)","sum(_col5)","count(_col5)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_56] (rows=843315281 width=88) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_27] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_100] (rows=843315281 width=88) + Conds:RS_24._col0=RS_126._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col7","_col9"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col0 + Select Operator [SEL_125] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_19] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_99] (rows=766650239 width=88) + Conds:RS_21._col1=RS_119._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col7"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_119] + PartitionCols:_col0 + Select Operator [SEL_118] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_117] (rows=1704 width=1910) + predicate:(s_state) IN ('SD', 'FL', 'MI', 'LA', 'MO', 'SC') + TableScan [TS_16] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_state"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_98] (rows=696954748 width=88) + Conds:RS_12._col0=RS_111._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_111] + PartitionCols:_col0 + Select Operator [SEL_110] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_109] (rows=36524 width=1119) + predicate:(d_year = 2001) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_97] (rows=633595212 width=88) + Conds:RS_134._col2=RS_103._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_103] + PartitionCols:_col0 + Select Operator [SEL_102] (rows=232725 width=385) + Output:["_col0"] + Filter Operator [FIL_101] (rows=232725 width=385) + predicate:((cd_education_status = '2 yr Degree') and (cd_gender = 'M') and (cd_marital_status = 'U')) + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_134] + PartitionCols:_col2 + Select Operator [SEL_133] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_132] (rows=575995635 width=88) + predicate:((ss_cdemo_sk BETWEEN DynamicValue(RS_10_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_10_customer_demographics_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_10_customer_demographics_cd_demo_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_22_store_s_store_sk_min) AND DynamicValue(RS_22_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_22_store_s_store_sk_bloom_filter))) and ss_cdemo_sk is not null and 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_item_sk","ss_cdemo_sk","ss_store_sk","ss_quantity","ss_list_price","ss_sales_price","ss_coupon_amt"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_116] + Group By Operator [GBY_115] (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_114] + Group By Operator [GBY_113] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_112] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_110] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_124] + Group By Operator [GBY_123] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_122] + Group By Operator [GBY_121] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_120] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_118] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_131] + Group By Operator [GBY_130] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_129] + Group By Operator [GBY_128] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_127] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_125] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_108] + Group By Operator [GBY_107] (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_106] + Group By Operator [GBY_105] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_104] (rows=232725 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_102] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query28.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query28.q.out new file mode 100644 index 0000000000..839e623e77 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query28.q.out @@ -0,0 +1,296 @@ +Warning: Shuffle Join MERGEJOIN[102][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[103][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[104][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[105][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[106][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 8' is a cross product +PREHOOK: query: explain +select * +from (select avg(ss_list_price) B1_LP + ,count(ss_list_price) B1_CNT + ,count(distinct ss_list_price) B1_CNTD + from store_sales + where ss_quantity between 0 and 5 + and (ss_list_price between 11 and 11+10 + or ss_coupon_amt between 460 and 460+1000 + or ss_wholesale_cost between 14 and 14+20)) B1, + (select avg(ss_list_price) B2_LP + ,count(ss_list_price) B2_CNT + ,count(distinct ss_list_price) B2_CNTD + from store_sales + where ss_quantity between 6 and 10 + and (ss_list_price between 91 and 91+10 + or ss_coupon_amt between 1430 and 1430+1000 + or ss_wholesale_cost between 32 and 32+20)) B2, + (select avg(ss_list_price) B3_LP + ,count(ss_list_price) B3_CNT + ,count(distinct ss_list_price) B3_CNTD + from store_sales + where ss_quantity between 11 and 15 + and (ss_list_price between 66 and 66+10 + or ss_coupon_amt between 920 and 920+1000 + or ss_wholesale_cost between 4 and 4+20)) B3, + (select avg(ss_list_price) B4_LP + ,count(ss_list_price) B4_CNT + ,count(distinct ss_list_price) B4_CNTD + from store_sales + where ss_quantity between 16 and 20 + and (ss_list_price between 142 and 142+10 + or ss_coupon_amt between 3054 and 3054+1000 + or ss_wholesale_cost between 80 and 80+20)) B4, + (select avg(ss_list_price) B5_LP + ,count(ss_list_price) B5_CNT + ,count(distinct ss_list_price) B5_CNTD + from store_sales + where ss_quantity between 21 and 25 + and (ss_list_price between 135 and 135+10 + or ss_coupon_amt between 14180 and 14180+1000 + or ss_wholesale_cost between 38 and 38+20)) B5, + (select avg(ss_list_price) B6_LP + ,count(ss_list_price) B6_CNT + ,count(distinct ss_list_price) B6_CNTD + from store_sales + where ss_quantity between 26 and 30 + and (ss_list_price between 28 and 28+10 + or ss_coupon_amt between 2513 and 2513+1000 + or ss_wholesale_cost between 42 and 42+20)) B6 +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * +from (select avg(ss_list_price) B1_LP + ,count(ss_list_price) B1_CNT + ,count(distinct ss_list_price) B1_CNTD + from store_sales + where ss_quantity between 0 and 5 + and (ss_list_price between 11 and 11+10 + or ss_coupon_amt between 460 and 460+1000 + or ss_wholesale_cost between 14 and 14+20)) B1, + (select avg(ss_list_price) B2_LP + ,count(ss_list_price) B2_CNT + ,count(distinct ss_list_price) B2_CNTD + from store_sales + where ss_quantity between 6 and 10 + and (ss_list_price between 91 and 91+10 + or ss_coupon_amt between 1430 and 1430+1000 + or ss_wholesale_cost between 32 and 32+20)) B2, + (select avg(ss_list_price) B3_LP + ,count(ss_list_price) B3_CNT + ,count(distinct ss_list_price) B3_CNTD + from store_sales + where ss_quantity between 11 and 15 + and (ss_list_price between 66 and 66+10 + or ss_coupon_amt between 920 and 920+1000 + or ss_wholesale_cost between 4 and 4+20)) B3, + (select avg(ss_list_price) B4_LP + ,count(ss_list_price) B4_CNT + ,count(distinct ss_list_price) B4_CNTD + from store_sales + where ss_quantity between 16 and 20 + and (ss_list_price between 142 and 142+10 + or ss_coupon_amt between 3054 and 3054+1000 + or ss_wholesale_cost between 80 and 80+20)) B4, + (select avg(ss_list_price) B5_LP + ,count(ss_list_price) B5_CNT + ,count(distinct ss_list_price) B5_CNTD + from store_sales + where ss_quantity between 21 and 25 + and (ss_list_price between 135 and 135+10 + or ss_coupon_amt between 14180 and 14180+1000 + or ss_wholesale_cost between 38 and 38+20)) B5, + (select avg(ss_list_price) B6_LP + ,count(ss_list_price) B6_CNT + ,count(distinct ss_list_price) B6_CNTD + from store_sales + where ss_quantity between 26 and 30 + and (ss_list_price between 28 and 28+10 + or ss_coupon_amt between 2513 and 2513+1000 + or ss_wholesale_cost between 42 and 42+20)) B6 +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 1 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 1 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 1 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 1 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 16 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 1 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 8 + File Output Operator [FS_59] + Limit [LIM_58] (rows=1 width=1397) + Number of rows:100 + Select Operator [SEL_57] (rows=1 width=1397) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] + Merge Join Operator [MERGEJOIN_106] (rows=1 width=1397) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_166] + Select Operator [SEL_165] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_164] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_163] + Group By Operator [GBY_162] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_161] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_130] + PartitionCols:_col0 + Group By Operator [GBY_124] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_118] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_112] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 91 AND 101 or ss_coupon_amt BETWEEN 1430 AND 2430 or ss_wholesale_cost BETWEEN 32 AND 52) and ss_quantity BETWEEN 6 AND 10) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_54] + Merge Join Operator [MERGEJOIN_105] (rows=1 width=1164) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_160] + Select Operator [SEL_159] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_158] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_157] + Group By Operator [GBY_156] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_155] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_129] + PartitionCols:_col0 + Group By Operator [GBY_123] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_117] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_111] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 66 AND 76 or ss_coupon_amt BETWEEN 920 AND 1920 or ss_wholesale_cost BETWEEN 4 AND 24) and ss_quantity BETWEEN 11 AND 15) + Please refer to the previous TableScan [TS_0] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_51] + Merge Join Operator [MERGEJOIN_104] (rows=1 width=931) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_154] + Select Operator [SEL_153] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_152] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_151] + Group By Operator [GBY_150] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_149] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + PartitionCols:_col0 + Group By Operator [GBY_122] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_116] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_110] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 142 AND 152 or ss_coupon_amt BETWEEN 3054 AND 4054 or ss_wholesale_cost BETWEEN 80 AND 100) and ss_quantity BETWEEN 16 AND 20) + Please refer to the previous TableScan [TS_0] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_48] + Merge Join Operator [MERGEJOIN_103] (rows=1 width=698) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_148] + Select Operator [SEL_147] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_146] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_145] + Group By Operator [GBY_144] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_143] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col0 + Group By Operator [GBY_121] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_115] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_109] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 135 AND 145 or ss_coupon_amt BETWEEN 14180 AND 15180 or ss_wholesale_cost BETWEEN 38 AND 58) and ss_quantity BETWEEN 21 AND 25) + Please refer to the previous TableScan [TS_0] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_45] + Merge Join Operator [MERGEJOIN_102] (rows=1 width=465) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_142] + Select Operator [SEL_141] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_140] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + Group By Operator [GBY_138] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_137] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col0 + Group By Operator [GBY_120] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_114] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_108] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 28 AND 38 or ss_coupon_amt BETWEEN 2513 AND 3513 or ss_wholesale_cost BETWEEN 42 AND 62) and ss_quantity BETWEEN 26 AND 30) + Please refer to the previous TableScan [TS_0] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_136] + Select Operator [SEL_135] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_134] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_133] + Group By Operator [GBY_132] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_131] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col0 + Group By Operator [GBY_119] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_113] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_107] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 11 AND 21 or ss_coupon_amt BETWEEN 460 AND 1460 or ss_wholesale_cost BETWEEN 14 AND 34) and ss_quantity BETWEEN 0 AND 5) + Please refer to the previous TableScan [TS_0] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query29.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query29.q.out new file mode 100644 index 0000000000..ec2561cac3 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query29.q.out @@ -0,0 +1,338 @@ +PREHOOK: query: explain +select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,sum(ss_quantity) as store_sales_quantity + ,sum(sr_return_quantity) as store_returns_quantity + ,sum(cs_quantity) as catalog_sales_quantity + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 1999 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 4 + 3 + and d2.d_year = 1999 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_year in (1999,1999+1,1999+2) + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + ,sum(ss_quantity) as store_sales_quantity + ,sum(sr_return_quantity) as store_returns_quantity + ,sum(cs_quantity) as catalog_sales_quantity + from + store_sales + ,store_returns + ,catalog_sales + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,item + where + d1.d_moy = 4 + and d1.d_year = 1999 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and ss_customer_sk = sr_customer_sk + and ss_item_sk = sr_item_sk + and ss_ticket_number = sr_ticket_number + and sr_returned_date_sk = d2.d_date_sk + and d2.d_moy between 4 and 4 + 3 + and d2.d_year = 1999 + and sr_customer_sk = cs_bill_customer_sk + and sr_item_sk = cs_item_sk + and cs_sold_date_sk = d3.d_date_sk + and d3.d_year in (1999,1999+1,1999+2) + group by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + order by + i_item_id + ,i_item_desc + ,s_store_id + ,s_store_name + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 10 <- Reducer 16 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Reducer 23 (BROADCAST_EDGE), Reducer 5 (BROADCAST_EDGE) +Map 19 <- Reducer 16 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 9 (BROADCAST_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 20 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 22 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 8 <- Map 22 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 6 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_278] + Limit [LIM_277] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_276] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_275] + Group By Operator [GBY_274] (rows=561226355 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_48] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_47] (rows=1122452711 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col1, _col2, _col7, _col8 + Top N Key Operator [TNK_98] (rows=1122452711 width=88) + keys:_col1, _col2, _col7, _col8,sort order:++++,top n:100 + Merge Join Operator [MERGEJOIN_214] (rows=1122452711 width=88) + Conds:RS_216._col0=RS_44._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col7","_col8"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_216] + PartitionCols:_col0 + Select Operator [SEL_215] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=1020411534 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_213] (rows=1020411534 width=88) + Conds:RS_39._col2=RS_258._col0(Inner),Output:["_col1","_col3","_col4","_col6","_col8","_col9"] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_258] + PartitionCols:_col0 + Select Operator [SEL_257] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + TableScan [TS_34] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id","s_store_name"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_212] (rows=927646829 width=88) + Conds:RS_222._col0=RS_37._col4(Inner),Output:["_col1","_col2","_col3","_col4","_col6"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_222] + PartitionCols:_col0 + Select Operator [SEL_221] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_220] (rows=73049 width=1119) + predicate:(d_year) IN (1999, 2000, 2001) + TableScan [TS_2] (rows=73049 width=1119) + default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col4 + Select Operator [SEL_33] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_211] (rows=843315281 width=88) + Conds:RS_30._col4=RS_250._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_250] + PartitionCols:_col0 + Select Operator [SEL_248] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_246] (rows=36524 width=1119) + predicate:((d_year = 1999) and d_moy BETWEEN 4 AND 7) + TableScan [TS_24] (rows=73049 width=1119) + default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_210] (rows=766650239 width=88) + Conds:RS_27._col0=RS_251._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_251] + PartitionCols:_col0 + Select Operator [SEL_249] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_247] (rows=18262 width=1119) + predicate:((d_moy = 4) and (d_year = 1999)) + Please refer to the previous TableScan [TS_24] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_209] (rows=696954748 width=88) + Conds:RS_17._col8, _col7=RS_273._col1, _col2(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col10","_col11","_col14"] + <-Map 19 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_273] + PartitionCols:_col1, _col2 + Select Operator [SEL_272] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_271] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_36_d3_d_date_sk_min) AND DynamicValue(RS_36_d3_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_36_d3_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_11] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_quantity"] + <-Reducer 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_240] + Group By Operator [GBY_238] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_235] + Group By Operator [GBY_232] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_229] (rows=57591150 width=77) + Output:["_col0"] + Select Operator [SEL_227] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_226] (rows=57591150 width=77) + predicate:(sr_customer_sk is not null and sr_returned_date_sk is not null) + TableScan [TS_8] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_customer_sk","sr_ticket_number","sr_return_quantity"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_243] + Group By Operator [GBY_241] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_236] + Group By Operator [GBY_233] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_230] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_227] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_270] + Group By Operator [GBY_269] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_225] + Group By Operator [GBY_224] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_223] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_221] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col8, _col7 + Merge Join Operator [MERGEJOIN_208] (rows=633595212 width=88) + Conds:RS_268._col2, _col1, _col4=RS_228._col2, _col1, _col3(Inner),Output:["_col0","_col1","_col3","_col5","_col6","_col7","_col8","_col10"] + <-Map 15 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_228] + PartitionCols:_col2, _col1, _col3 + Please refer to the previous Select Operator [SEL_227] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_268] + PartitionCols:_col2, _col1, _col4 + Select Operator [SEL_267] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_266] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_15_store_returns_sr_customer_sk_min) AND DynamicValue(RS_15_store_returns_sr_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_15_store_returns_sr_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_15_store_returns_sr_item_sk_min) AND DynamicValue(RS_15_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_15_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_43_item_i_item_sk_min) AND DynamicValue(RS_43_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_43_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_28_d1_d_date_sk_min) AND DynamicValue(RS_28_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_28_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_40_store_s_store_sk_min) AND DynamicValue(RS_40_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_40_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_15_store_returns_sr_ticket_number_min) AND DynamicValue(RS_15_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_15_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (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_ticket_number","ss_quantity"] + <-Reducer 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_239] + Please refer to the previous Group By Operator [GBY_238] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_242] + Please refer to the previous Group By Operator [GBY_241] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_245] + Group By Operator [GBY_244] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_237] + Group By Operator [GBY_234] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_231] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_227] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_256] + Group By Operator [GBY_255] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_254] + Group By Operator [GBY_253] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_252] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_249] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_263] + Group By Operator [GBY_262] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_261] + Group By Operator [GBY_260] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_259] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_257] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_265] + Group By Operator [GBY_264] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_219] + Group By Operator [GBY_218] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_217] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_215] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query3.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query3.q.out new file mode 100644 index 0000000000..acbe1c6137 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query3.q.out @@ -0,0 +1,135 @@ +PREHOOK: query: explain +select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) sum_agg + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manufact_id = 436 + and dt.d_moy=12 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,sum_agg desc + ,brand_id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) sum_agg + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manufact_id = 436 + and dt.d_moy=12 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,sum_agg desc + ,brand_id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_77] + Limit [LIM_76] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_75] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_74] + Group By Operator [GBY_73] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)"],keys:_col7, _col4, _col5 + Merge Join Operator [MERGEJOIN_53] (rows=696954748 width=88) + Conds:RS_12._col0=RS_64._col0(Inner),Output:["_col2","_col4","_col5","_col7"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_64] + PartitionCols:_col0 + Select Operator [SEL_63] (rows=36524 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_62] (rows=36524 width=1119) + predicate:(d_moy = 12) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,dt,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_52] (rows=633595212 width=88) + Conds:RS_72._col1=RS_56._col0(Inner),Output:["_col0","_col2","_col4","_col5"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_56] + PartitionCols:_col0 + Select Operator [SEL_55] (rows=231000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_54] (rows=231000 width=1436) + predicate:(i_manufact_id = 436) + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_brand","i_manufact_id"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_72] + PartitionCols:_col1 + Select Operator [SEL_71] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_70] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_10_item_i_item_sk_min) AND DynamicValue(RS_10_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_10_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_13_dt_d_date_sk_min) AND DynamicValue(RS_13_dt_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_dt_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_ext_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_61] + Group By Operator [GBY_60] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_59] + Group By Operator [GBY_58] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_57] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_55] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_69] + Group By Operator [GBY_68] (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_67] + Group By Operator [GBY_66] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_65] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_63] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query30.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query30.q.out new file mode 100644 index 0000000000..0d60cb3db5 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query30.q.out @@ -0,0 +1,221 @@ +PREHOOK: query: explain +with customer_total_return as + (select wr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(wr_return_amt) as ctr_total_return + from web_returns + ,date_dim + ,customer_address + where wr_returned_date_sk = d_date_sk + and d_year =2002 + and wr_returning_addr_sk = ca_address_sk + group by wr_returning_customer_sk + ,ca_state) + select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IL' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date,ctr_total_return +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@web_returns +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with customer_total_return as + (select wr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(wr_return_amt) as ctr_total_return + from web_returns + ,date_dim + ,customer_address + where wr_returned_date_sk = d_date_sk + and d_year =2002 + and wr_returning_addr_sk = ca_address_sk + group by wr_returning_customer_sk + ,ca_state) + select c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IL' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag + ,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address + ,c_last_review_date,ctr_total_return +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@web_returns +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 9 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 13 <- Map 11 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 6 <- Map 5 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 10 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 5 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_210] + Limit [LIM_209] (rows=100 width=860) + Number of rows:100 + Select Operator [SEL_208] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_63] + Select Operator [SEL_62] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Merge Join Operator [MERGEJOIN_177] (rows=96800003 width=860) + Conds:RS_59._col0=RS_60._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col17"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_59] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_171] (rows=88000001 width=860) + Conds:RS_180._col2=RS_187._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col0 + Select Operator [SEL_184] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_181] (rows=20000000 width=1014) + predicate:(ca_state = 'IL') + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_180] + PartitionCols:_col2 + Select Operator [SEL_179] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Filter Operator [FIL_178] (rows=80000000 width=860) + predicate:c_current_addr_sk is not null + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_current_addr_sk","c_salutation","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_day","c_birth_month","c_birth_year","c_birth_country","c_login","c_email_address","c_last_review_date"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_60] + PartitionCols:_col0 + Select Operator [SEL_55] (rows=8066666 width=1014) + Output:["_col0","_col2"] + Filter Operator [FIL_54] (rows=8066666 width=1014) + predicate:(_col2 > _col3) + Merge Join Operator [MERGEJOIN_176] (rows=24200000 width=1014) + Conds:RS_202._col1=RS_207._col1(Inner),Output:["_col0","_col2","_col3"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_207] + PartitionCols:_col1 + Select Operator [SEL_206] (rows=11000000 width=1014) + Output:["_col0","_col1"] + Group By Operator [GBY_205] (rows=11000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col0 + Select Operator [SEL_204] (rows=22000000 width=1014) + Output:["_col0","_col2"] + Group By Operator [GBY_203] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Group By Operator [GBY_42] (rows=44000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col6, _col1 + Merge Join Operator [MERGEJOIN_175] (rows=44000000 width=1014) + Conds:RS_38._col2=RS_189._col0(Inner),Output:["_col1","_col3","_col6"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_189] + PartitionCols:_col0 + Select Operator [SEL_186] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_183] (rows=40000000 width=1014) + predicate:ca_state is not null + Please refer to the previous TableScan [TS_3] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_174] (rows=15838314 width=92) + Conds:RS_195._col0=RS_199._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_195] + PartitionCols:_col0 + Select Operator [SEL_193] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_191] (rows=14398467 width=92) + predicate:(wr_returned_date_sk is not null and wr_returning_addr_sk is not null) + TableScan [TS_6] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_returning_customer_sk","wr_returning_addr_sk","wr_return_amt"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_199] + PartitionCols:_col0 + Select Operator [SEL_197] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_196] (rows=36524 width=1119) + predicate:(d_year = 2002) + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_202] + PartitionCols:_col1 + Select Operator [SEL_201] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_200] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1 + Group By Operator [GBY_22] (rows=44000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col6, _col1 + Merge Join Operator [MERGEJOIN_173] (rows=44000000 width=1014) + Conds:RS_18._col2=RS_188._col0(Inner),Output:["_col1","_col3","_col6"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_188] + PartitionCols:_col0 + Select Operator [SEL_185] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_182] (rows=40000000 width=1014) + predicate:ca_state is not null + Please refer to the previous TableScan [TS_3] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_172] (rows=15838314 width=92) + Conds:RS_194._col0=RS_198._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_194] + PartitionCols:_col0 + Select Operator [SEL_192] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_190] (rows=14398467 width=92) + predicate:(wr_returned_date_sk is not null and wr_returning_addr_sk is not null and wr_returning_customer_sk is not null) + Please refer to the previous TableScan [TS_6] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_198] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_197] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out new file mode 100644 index 0000000000..2965cbfce9 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out @@ -0,0 +1,570 @@ +PREHOOK: query: explain +with ss as + (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales + from store_sales,date_dim,customer_address + where ss_sold_date_sk = d_date_sk + and ss_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year), + ws as + (select ca_county,d_qoy, d_year,sum(ws_ext_sales_price) as web_sales + from web_sales,date_dim,customer_address + where ws_sold_date_sk = d_date_sk + and ws_bill_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year) + select /* tt */ + ss1.ca_county + ,ss1.d_year + ,ws2.web_sales/ws1.web_sales web_q1_q2_increase + ,ss2.store_sales/ss1.store_sales store_q1_q2_increase + ,ws3.web_sales/ws2.web_sales web_q2_q3_increase + ,ss3.store_sales/ss2.store_sales store_q2_q3_increase + from + ss ss1 + ,ss ss2 + ,ss ss3 + ,ws ws1 + ,ws ws2 + ,ws ws3 + where + ss1.d_qoy = 1 + and ss1.d_year = 2000 + and ss1.ca_county = ss2.ca_county + and ss2.d_qoy = 2 + and ss2.d_year = 2000 + and ss2.ca_county = ss3.ca_county + and ss3.d_qoy = 3 + and ss3.d_year = 2000 + and ss1.ca_county = ws1.ca_county + and ws1.d_qoy = 1 + and ws1.d_year = 2000 + and ws1.ca_county = ws2.ca_county + and ws2.d_qoy = 2 + and ws2.d_year = 2000 + and ws1.ca_county = ws3.ca_county + and ws3.d_qoy = 3 + and ws3.d_year =2000 + and case when ws1.web_sales > 0 then ws2.web_sales/ws1.web_sales else null end + > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end + and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end + > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end + order by ss1.d_year +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss as + (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales + from store_sales,date_dim,customer_address + where ss_sold_date_sk = d_date_sk + and ss_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year), + ws as + (select ca_county,d_qoy, d_year,sum(ws_ext_sales_price) as web_sales + from web_sales,date_dim,customer_address + where ws_sold_date_sk = d_date_sk + and ws_bill_addr_sk=ca_address_sk + group by ca_county,d_qoy, d_year) + select /* tt */ + ss1.ca_county + ,ss1.d_year + ,ws2.web_sales/ws1.web_sales web_q1_q2_increase + ,ss2.store_sales/ss1.store_sales store_q1_q2_increase + ,ws3.web_sales/ws2.web_sales web_q2_q3_increase + ,ss3.store_sales/ss2.store_sales store_q2_q3_increase + from + ss ss1 + ,ss ss2 + ,ss ss3 + ,ws ws1 + ,ws ws2 + ,ws ws3 + where + ss1.d_qoy = 1 + and ss1.d_year = 2000 + and ss1.ca_county = ss2.ca_county + and ss2.d_qoy = 2 + and ss2.d_year = 2000 + and ss2.ca_county = ss3.ca_county + and ss3.d_qoy = 3 + and ss3.d_year = 2000 + and ss1.ca_county = ws1.ca_county + and ws1.d_qoy = 1 + and ws1.d_year = 2000 + and ws1.ca_county = ws2.ca_county + and ws2.d_qoy = 2 + and ws2.d_year = 2000 + and ws1.ca_county = ws3.ca_county + and ws3.d_qoy = 3 + and ws3.d_year =2000 + and case when ws1.web_sales > 0 then ws2.web_sales/ws1.web_sales else null end + > case when ss1.store_sales > 0 then ss2.store_sales/ss1.store_sales else null end + and case when ws2.web_sales > 0 then ws3.web_sales/ws2.web_sales else null end + > case when ss2.store_sales > 0 then ss3.store_sales/ss2.store_sales else null end + order by ss1.d_year +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +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 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 33 (BROADCAST_EDGE) +Map 39 <- Reducer 15 (BROADCAST_EDGE), Reducer 34 (BROADCAST_EDGE) +Map 40 <- Reducer 19 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Map 41 <- Reducer 23 (BROADCAST_EDGE), Reducer 36 (BROADCAST_EDGE) +Map 42 <- Reducer 27 (BROADCAST_EDGE), Reducer 37 (BROADCAST_EDGE) +Map 43 <- Reducer 31 (BROADCAST_EDGE), Reducer 38 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 10 (SIMPLE_EDGE), Map 39 (SIMPLE_EDGE) +Reducer 13 <- Map 32 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE) +Reducer 15 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 10 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE) +Reducer 17 <- Map 32 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE) +Reducer 19 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Map 10 (SIMPLE_EDGE), Map 41 (SIMPLE_EDGE) +Reducer 21 <- Map 32 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 10 (SIMPLE_EDGE), Map 42 (SIMPLE_EDGE) +Reducer 25 <- Map 32 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 26 <- Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 10 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE) +Reducer 29 <- Map 32 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 3 <- Map 32 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Reducer 29 (SIMPLE_EDGE) +Reducer 31 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 36 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 38 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 14 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 18 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 22 (ONE_TO_ONE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 26 (ONE_TO_ONE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE) +Reducer 9 <- Reducer 30 (ONE_TO_ONE_EDGE), Reducer 8 (ONE_TO_ONE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 + File Output Operator [FS_140] + Select Operator [SEL_139] (rows=140306588 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_138] (rows=140306588 width=88) + predicate:CASE WHEN (_col6) THEN (CASE WHEN (_col7) THEN (((_col10 / _col2) > _col5)) ELSE (_col8) END) ELSE (CASE WHEN (_col7) THEN (((_col10 / _col2) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_465] (rows=280613177 width=88) + Conds:RS_135._col1=RS_585._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10"] + <-Reducer 30 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_585] + PartitionCols:_col0 + Group By Operator [GBY_584] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_132] + PartitionCols:_col0 + Group By Operator [GBY_131] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_460] (rows=174243235 width=135) + Conds:RS_127._col1=RS_516._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_516] + PartitionCols:_col0 + Select Operator [SEL_505] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_504] (rows=40000000 width=1014) + predicate:ca_county is not null + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_127] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_459] (rows=158402938 width=135) + Conds:RS_583._col0=RS_488._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_488] + PartitionCols:_col0 + Select Operator [SEL_477] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_471] (rows=18262 width=1119) + predicate:((d_qoy = 3) and (d_year = 2000)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 43 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_583] + PartitionCols:_col0 + Select Operator [SEL_582] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_581] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_128_customer_address_ca_address_sk_min) AND DynamicValue(RS_128_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_128_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_125_date_dim_d_date_sk_min) AND DynamicValue(RS_125_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_125_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_115] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_578] + Group By Operator [GBY_577] (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 + PARTITION_ONLY_SHUFFLE [RS_501] + Group By Operator [GBY_495] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_489] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_477] + <-Reducer 38 [BROADCAST_EDGE] vectorized + BROADCAST [RS_580] + Group By Operator [GBY_579] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_529] + Group By Operator [GBY_523] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_517] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + <-Reducer 8 [ONE_TO_ONE_EDGE] + FORWARD [RS_135] + PartitionCols:_col1 + Select Operator [SEL_114] (rows=255102883 width=88) + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_113] (rows=255102883 width=88) + predicate:CASE WHEN (_col5) THEN (CASE WHEN (_col9) THEN (((_col11 / _col8) > _col1)) ELSE (_col6) END) ELSE (CASE WHEN (_col9) THEN (((_col11 / _col8) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_464] (rows=510205766 width=88) + Conds:RS_110._col0=RS_576._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col11","_col12"] + <-Reducer 26 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_576] + PartitionCols:_col0 + Select Operator [SEL_575] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_574] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_104] + PartitionCols:_col0 + Group By Operator [GBY_103] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_458] (rows=174243235 width=135) + Conds:RS_99._col1=RS_514._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_514] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_505] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_99] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_457] (rows=158402938 width=135) + Conds:RS_573._col0=RS_486._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_486] + PartitionCols:_col0 + Select Operator [SEL_476] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_470] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Map 42 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_573] + PartitionCols:_col0 + Select Operator [SEL_572] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_571] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_100_customer_address_ca_address_sk_min) AND DynamicValue(RS_100_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_100_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_97_date_dim_d_date_sk_min) AND DynamicValue(RS_97_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_97_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_87] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_568] + Group By Operator [GBY_567] (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 + PARTITION_ONLY_SHUFFLE [RS_500] + Group By Operator [GBY_494] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_487] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_476] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_570] + Group By Operator [GBY_569] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_528] + Group By Operator [GBY_522] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_515] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + <-Reducer 7 [ONE_TO_ONE_EDGE] + FORWARD [RS_110] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_463] (rows=463823414 width=88) + Conds:RS_107._col0=RS_566._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9"] + <-Reducer 22 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_566] + PartitionCols:_col0 + Select Operator [SEL_565] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_564] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_84] + PartitionCols:_col0 + Group By Operator [GBY_83] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_456] (rows=174243235 width=135) + Conds:RS_79._col1=RS_512._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_512] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_505] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_79] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_455] (rows=158402938 width=135) + Conds:RS_563._col0=RS_484._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_484] + PartitionCols:_col0 + Select Operator [SEL_475] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_469] (rows=18262 width=1119) + predicate:((d_qoy = 1) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Map 41 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_563] + PartitionCols:_col0 + Select Operator [SEL_562] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_561] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_80_customer_address_ca_address_sk_min) AND DynamicValue(RS_80_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_80_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_77_date_dim_d_date_sk_min) AND DynamicValue(RS_77_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_77_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_67] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_558] + Group By Operator [GBY_557] (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 + PARTITION_ONLY_SHUFFLE [RS_499] + Group By Operator [GBY_493] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_485] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_475] + <-Reducer 36 [BROADCAST_EDGE] vectorized + BROADCAST [RS_560] + Group By Operator [GBY_559] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_527] + Group By Operator [GBY_521] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_513] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_107] + PartitionCols:_col0 + Select Operator [SEL_66] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_462] (rows=421657640 width=88) + Conds:RS_63._col0=RS_556._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col7"] + <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_556] + PartitionCols:_col0 + Group By Operator [GBY_555] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_57] + PartitionCols:_col0 + Group By Operator [GBY_56] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_454] (rows=696954748 width=88) + Conds:RS_52._col1=RS_510._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_510] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_505] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_453] (rows=633595212 width=88) + Conds:RS_554._col0=RS_482._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_482] + PartitionCols:_col0 + Select Operator [SEL_474] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_468] (rows=18262 width=1119) + predicate:((d_qoy = 3) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_554] + PartitionCols:_col0 + Select Operator [SEL_553] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_552] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_40] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_549] + Group By Operator [GBY_548] (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 + PARTITION_ONLY_SHUFFLE [RS_498] + Group By Operator [GBY_492] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_483] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_474] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_551] + Group By Operator [GBY_550] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_526] + Group By Operator [GBY_520] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_511] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_63] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_461] (rows=383325119 width=88) + Conds:RS_537._col0=RS_547._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 14 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_547] + PartitionCols:_col0 + Select Operator [SEL_546] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_545] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0 + Group By Operator [GBY_36] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_452] (rows=696954748 width=88) + Conds:RS_32._col1=RS_508._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_508] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_505] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_451] (rows=633595212 width=88) + Conds:RS_544._col0=RS_480._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_480] + PartitionCols:_col0 + Select Operator [SEL_473] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_467] (rows=18262 width=1119) + predicate:((d_qoy = 1) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Map 39 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_544] + PartitionCols:_col0 + Select Operator [SEL_543] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_542] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_33_customer_address_ca_address_sk_min) AND DynamicValue(RS_33_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_33_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_20] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_539] + Group By Operator [GBY_538] (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 + PARTITION_ONLY_SHUFFLE [RS_497] + Group By Operator [GBY_491] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_481] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_473] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_541] + Group By Operator [GBY_540] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_525] + Group By Operator [GBY_519] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_509] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_537] + PartitionCols:_col0 + Select Operator [SEL_536] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_535] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_450] (rows=696954748 width=88) + Conds:RS_12._col1=RS_506._col0(Inner),Output:["_col2","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_506] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_505] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_449] (rows=633595212 width=88) + Conds:RS_534._col0=RS_478._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_478] + PartitionCols:_col0 + Select Operator [SEL_472] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_466] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000)) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_534] + PartitionCols:_col0 + Select Operator [SEL_533] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_532] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_13_customer_address_ca_address_sk_min) AND DynamicValue(RS_13_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_13_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_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_addr_sk","ss_ext_sales_price"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_503] + Group By Operator [GBY_502] (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 + PARTITION_ONLY_SHUFFLE [RS_496] + Group By Operator [GBY_490] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_479] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_472] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_531] + Group By Operator [GBY_530] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_524] + Group By Operator [GBY_518] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_507] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_505] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query32.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query32.q.out new file mode 100644 index 0000000000..573f38de6a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query32.q.out @@ -0,0 +1,167 @@ +PREHOOK: query: explain +select sum(cs_ext_discount_amt) as `excess discount amount` +from + catalog_sales + ,item + ,date_dim +where +i_manufact_id = 269 +and i_item_sk = cs_item_sk +and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) +and d_date_sk = cs_sold_date_sk +and cs_ext_discount_amt + > ( + select + 1.3 * avg(cs_ext_discount_amt) + from + catalog_sales + ,date_dim + where + cs_item_sk = i_item_sk + and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) + and d_date_sk = cs_sold_date_sk + ) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select sum(cs_ext_discount_amt) as `excess discount amount` +from + catalog_sales + ,item + ,date_dim +where +i_manufact_id = 269 +and i_item_sk = cs_item_sk +and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) +and d_date_sk = cs_sold_date_sk +and cs_ext_discount_amt + > ( + select + 1.3 * avg(cs_ext_discount_amt) + from + catalog_sales + ,date_dim + where + cs_item_sk = i_item_sk + and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) + and d_date_sk = cs_sold_date_sk + ) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 2 (SIMPLE_EDGE) +Reducer 6 <- Map 9 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_129] + Limit [LIM_128] (rows=1 width=112) + Number of rows:100 + Group By Operator [GBY_127] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_36] + Group By Operator [GBY_35] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col2)"] + Select Operator [SEL_34] (rows=116155905 width=135) + Output:["_col2"] + Filter Operator [FIL_33] (rows=116155905 width=135) + predicate:(_col2 > _col5) + Merge Join Operator [MERGEJOIN_104] (rows=348467716 width=135) + Conds:RS_30._col1=RS_31._col2(Inner),Output:["_col2","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_101] (rows=316788826 width=135) + Conds:RS_123._col0=RS_107._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_107] + PartitionCols:_col0 + Select Operator [SEL_106] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_105] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-03-18 00:00:00' AND TIMESTAMP'1998-06-16 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_123] + PartitionCols:_col0 + Select Operator [SEL_122] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_121] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_24_item_i_item_sk_min) AND DynamicValue(RS_24_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_24_item_i_item_sk_bloom_filter))) and (cs_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(cs_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_discount_amt"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_120] + Group By Operator [GBY_119] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + Group By Operator [GBY_117] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_116] (rows=231000 width=1436) + Output:["_col0"] + Select Operator [SEL_114] (rows=231000 width=1436) + Output:["_col0"] + Filter Operator [FIL_113] (rows=231000 width=1436) + predicate:(i_manufact_id = 269) + TableScan [TS_20] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_manufact_id"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_112] + Group By Operator [GBY_111] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_110] + Group By Operator [GBY_109] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_108] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_106] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_31] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_103] (rows=174233858 width=135) + Conds:RS_126._col0=RS_115._col0(Inner),Output:["_col1","_col2"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_115] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_114] + <-Reducer 5 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_126] + PartitionCols:_col0 + Select Operator [SEL_125] (rows=158394413 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_124] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 + Please refer to the previous Merge Join Operator [MERGEJOIN_101] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out new file mode 100644 index 0000000000..86fe5e73b6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query33.q.out @@ -0,0 +1,486 @@ +PREHOOK: query: explain +with ss as ( + select + i_manufact_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id), + cs as ( + select + i_manufact_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id), + ws as ( + select + i_manufact_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id) + select i_manufact_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_manufact_id + order by total_sales +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss as ( + select + i_manufact_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id), + cs as ( + select + i_manufact_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id), + ws as ( + select + i_manufact_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_manufact_id in (select + i_manufact_id +from + item +where i_category in ('Books')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 3 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_manufact_id) + select i_manufact_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_manufact_id + order by total_sales +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 17 <- Reducer 21 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Map 32 <- Reducer 11 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE) +Map 33 <- Reducer 14 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 31 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 11 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 2 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 14 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 19 <- Map 28 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 32 (SIMPLE_EDGE) +Reducer 23 <- Map 28 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 24 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 20 (SIMPLE_EDGE), Map 33 (SIMPLE_EDGE) +Reducer 26 <- Map 28 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Map 28 (CUSTOM_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 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 2 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_374] + Limit [LIM_373] (rows=100 width=108) + Number of rows:100 + Select Operator [SEL_372] (rows=335408073 width=108) + Output:["_col0","_col1"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_371] + Group By Operator [GBY_370] (rows=335408073 width=108) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 10 [CONTAINS] vectorized + Reduce Output Operator [RS_386] + PartitionCols:_col0 + Group By Operator [GBY_385] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_384] (rows=191657247 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Group By Operator [GBY_70] (rows=383314495 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_307] (rows=383314495 width=135) + Conds:RS_66._col0=RS_67._col3(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_297] (rows=508200 width=1436) + Conds:RS_323._col1=RS_329._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col1 + Select Operator [SEL_322] (rows=462000 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_321] (rows=462000 width=1436) + predicate:i_manufact_id is not null + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_manufact_id"] + <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_329] + PartitionCols:_col0 + Group By Operator [GBY_328] (rows=115500 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_327] + PartitionCols:_col0 + Group By Operator [GBY_326] (rows=231000 width=1436) + Output:["_col0"],keys:i_manufact_id + Select Operator [SEL_325] (rows=231000 width=1436) + Output:["i_manufact_id"] + Filter Operator [FIL_324] (rows=231000 width=1436) + predicate:((i_category = 'Books') and i_manufact_id is not null) + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_category","i_manufact_id"] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col3 + Select Operator [SEL_62] (rows=348467716 width=135) + Output:["_col3","_col4"] + Merge Join Operator [MERGEJOIN_302] (rows=348467716 width=135) + Conds:RS_59._col1=RS_350._col0(Inner),Output:["_col2","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_350] + PartitionCols:_col0 + Select Operator [SEL_347] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_346] (rows=20000000 width=1014) + predicate:(ca_gmt_offset = -6) + 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_301] (rows=316788826 width=135) + Conds:RS_383._col0=RS_334._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_334] + PartitionCols:_col0 + Select Operator [SEL_331] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_330] (rows=18262 width=1119) + predicate:((d_moy = 3) and (d_year = 1999)) + 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 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_383] + PartitionCols:_col0 + Select Operator [SEL_382] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_381] (rows=287989836 width=135) + predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_60_customer_address_ca_address_sk_min) AND DynamicValue(RS_60_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_60_customer_address_ca_address_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_66_item_i_item_sk_min) AND DynamicValue(RS_66_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_66_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_57_date_dim_d_date_sk_min) AND DynamicValue(RS_57_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_57_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_47] (rows=287989836 width=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 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_380] + Group By Operator [GBY_379] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_242] + Group By Operator [GBY_241] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_240] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_297] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_376] + Group By Operator [GBY_375] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_342] + Group By Operator [GBY_339] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_335] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_378] + Group By Operator [GBY_377] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_358] + Group By Operator [GBY_355] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_351] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 13 [CONTAINS] vectorized + Reduce Output Operator [RS_398] + PartitionCols:_col0 + Group By Operator [GBY_397] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_396] (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(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_308] (rows=191667562 width=135) + Conds:RS_104._col0=RS_105._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_104] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_297] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col2 + Select Operator [SEL_100] (rows=174243235 width=135) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_305] (rows=174243235 width=135) + Conds:RS_97._col2=RS_352._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_352] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_347] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_97] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_304] (rows=158402938 width=135) + Conds:RS_395._col0=RS_336._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_336] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_331] + <-Map 33 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_395] + PartitionCols:_col0 + Select Operator [SEL_394] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_393] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_98_customer_address_ca_address_sk_min) AND DynamicValue(RS_98_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_98_customer_address_ca_address_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_104_item_i_item_sk_min) AND DynamicValue(RS_104_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_104_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_95_date_dim_d_date_sk_min) AND DynamicValue(RS_95_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_95_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_85] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_392] + Group By Operator [GBY_391] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_288] + Group By Operator [GBY_287] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_286] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_297] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_388] + Group By Operator [GBY_387] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_343] + Group By Operator [GBY_340] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_337] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_390] + Group By Operator [GBY_389] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_359] + Group By Operator [GBY_356] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_353] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_369] + PartitionCols:_col0 + Group By Operator [GBY_368] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_367] (rows=383325119 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0 + Group By Operator [GBY_33] (rows=766650239 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_306] (rows=766650239 width=88) + Conds:RS_29._col0=RS_30._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_297] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col2 + Select Operator [SEL_25] (rows=696954748 width=88) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_299] (rows=696954748 width=88) + Conds:RS_22._col2=RS_348._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_348] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_347] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_298] (rows=633595212 width=88) + Conds:RS_366._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_332] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_331] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_366] + PartitionCols:_col0 + Select Operator [SEL_365] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_364] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_23_customer_address_ca_address_sk_min) AND DynamicValue(RS_23_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_23_customer_address_ca_address_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_29_item_i_item_sk_min) AND DynamicValue(RS_29_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_29_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_20_date_dim_d_date_sk_min) AND DynamicValue(RS_20_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_20_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_10] (rows=575995635 width=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 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_345] + Group By Operator [GBY_344] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_341] + Group By Operator [GBY_338] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_333] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_361] + Group By Operator [GBY_360] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_357] + Group By Operator [GBY_354] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_349] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_363] + Group By Operator [GBY_362] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_206] + Group By Operator [GBY_205] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_204] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_297] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query34.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query34.q.out new file mode 100644 index 0000000000..7914c16876 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query34.q.out @@ -0,0 +1,217 @@ +PREHOOK: query: explain +select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) + and (household_demographics.hd_buy_potential = '>10000' or + household_demographics.hd_buy_potential = 'unknown') + and household_demographics.hd_vehicle_count > 0 + and (case when household_demographics.hd_vehicle_count > 0 + then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count + else null + end) > 1.2 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Mobile County','Maverick County','Huron County','Kittitas County', + 'Fairfield County','Jackson County','Barrow County','Pennington County') + group by ss_ticket_number,ss_customer_sk) dn,customer + where ss_customer_sk = c_customer_sk + and cnt between 15 and 20 + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28) + and (household_demographics.hd_buy_potential = '>10000' or + household_demographics.hd_buy_potential = 'unknown') + and household_demographics.hd_vehicle_count > 0 + and (case when household_demographics.hd_vehicle_count > 0 + then household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count + else null + end) > 1.2 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Mobile County','Maverick County','Huron County','Kittitas County', + 'Fairfield County','Jackson County','Barrow County','Pennington County') + group by ss_ticket_number,ss_customer_sk) dn,customer + where ss_customer_sk = c_customer_sk + and cnt between 15 and 20 + order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 5 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 4 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 10 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 7 <- Map 12 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 14 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 3 vectorized + File Output Operator [FS_140] + Select Operator [SEL_139] (rows=88000001 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_35] + Select Operator [SEL_34] (rows=88000001 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_100] (rows=88000001 width=860) + Conds:RS_102._col0=RS_138._col1(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_salutation","c_first_name","c_last_name","c_preferred_cust_flag"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_138] + PartitionCols:_col1 + Filter Operator [FIL_137] (rows=19166256 width=88) + predicate:_col2 BETWEEN 15 AND 20 + Select Operator [SEL_136] (rows=383325119 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_135] (rows=383325119 width=88) + Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col0, _col1 + Group By Operator [GBY_25] (rows=766650239 width=88) + Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col0, _col2 + Merge Join Operator [MERGEJOIN_99] (rows=766650239 width=88) + Conds:RS_21._col1=RS_124._col0(Inner),Output:["_col0","_col2"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=1200 width=107) + Output:["_col0"] + Filter Operator [FIL_122] (rows=1200 width=107) + predicate:((hd_buy_potential) IN ('>10000', 'unknown') and (hd_vehicle_count > 0) and CASE WHEN ((hd_vehicle_count > 0)) THEN (((UDFToDouble(hd_dep_count) / UDFToDouble(hd_vehicle_count)) > 1.2D)) ELSE (null) END) + TableScan [TS_18] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_buy_potential","hd_dep_count","hd_vehicle_count"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_98] (rows=696954748 width=88) + Conds:RS_14._col3=RS_116._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_116] + PartitionCols:_col0 + Select Operator [SEL_115] (rows=1704 width=1910) + Output:["_col0"] + Filter Operator [FIL_114] (rows=1704 width=1910) + predicate:(s_county) IN ('Mobile County', 'Maverick County', 'Huron County', 'Kittitas County', 'Fairfield County', 'Jackson County', 'Barrow County', 'Pennington County') + TableScan [TS_8] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_county"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_97] (rows=633595212 width=88) + Conds:RS_134._col0=RS_108._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_106] (rows=73049 width=1119) + predicate:((d_dom BETWEEN 1 AND 3 or d_dom BETWEEN 25 AND 28) and (d_year) IN (2000, 2001, 2002)) + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_dom"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_134] + PartitionCols:_col0 + Select Operator [SEL_133] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_132] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_31_customer_c_customer_sk_min) AND DynamicValue(RS_31_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_31_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_22_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_22_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_22_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_15_store_s_store_sk_min) AND DynamicValue(RS_15_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_15_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_2] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_hdemo_sk","ss_store_sk","ss_ticket_number"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_113] + Group By Operator [GBY_112] (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_111] + Group By Operator [GBY_110] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_109] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_107] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_119] + Group By Operator [GBY_118] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_117] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_115] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_129] + Group By Operator [GBY_128] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + Group By Operator [GBY_126] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_125] (rows=1200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_123] + <-Reducer 4 [BROADCAST_EDGE] vectorized + BROADCAST [RS_131] + Group By Operator [GBY_130] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_103] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query35.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query35.q.out new file mode 100644 index 0000000000..c2e1767d6d --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query35.q.out @@ -0,0 +1,349 @@ +PREHOOK: query: explain +select + ca_state, + cd_gender, + cd_marital_status, + count(*) cnt1, + avg(cd_dep_count), + max(cd_dep_count), + sum(cd_dep_count), + cd_dep_employed_count, + count(*) cnt2, + avg(cd_dep_employed_count), + max(cd_dep_employed_count), + sum(cd_dep_employed_count), + cd_dep_college_count, + count(*) cnt3, + avg(cd_dep_college_count), + max(cd_dep_college_count), + sum(cd_dep_college_count) + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk 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_qoy < 4) and + (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_qoy < 4) or + 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_qoy < 4)) + group by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + 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 + ca_state, + cd_gender, + cd_marital_status, + count(*) cnt1, + avg(cd_dep_count), + max(cd_dep_count), + sum(cd_dep_count), + cd_dep_employed_count, + count(*) cnt2, + avg(cd_dep_employed_count), + max(cd_dep_employed_count), + sum(cd_dep_employed_count), + cd_dep_college_count, + count(*) cnt3, + avg(cd_dep_college_count), + max(cd_dep_college_count), + sum(cd_dep_college_count) + from + customer c,customer_address ca,customer_demographics + where + c.c_current_addr_sk = ca.ca_address_sk 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_qoy < 4) and + (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_qoy < 4) or + 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_qoy < 4)) + group by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + order by ca_state, + cd_gender, + cd_marital_status, + cd_dep_count, + cd_dep_employed_count, + cd_dep_college_count + 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 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (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 3 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_230] + Limit [LIM_229] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_228] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_227] + Select Operator [SEL_226] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col14","_col15","_col16","_col17"] + Group By Operator [GBY_225] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","count(VALUE._col2)","max(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)","max(VALUE._col6)","sum(VALUE._col7)","count(VALUE._col8)","max(VALUE._col9)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_64] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"],aggregations:["count()","sum(_col8)","count(_col8)","max(_col8)","sum(_col9)","count(_col9)","max(_col9)","sum(_col10)","count(_col10)","max(_col10)"],keys:_col4, _col6, _col7, _col8, _col9, _col10 + Top N Key Operator [TNK_102] (rows=843315281 width=88) + keys:_col4, _col6, _col7, _col8, _col9, _col10,sort order:++++++,top n:100 + Select Operator [SEL_63] (rows=843315281 width=88) + Output:["_col4","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_62] (rows=843315281 width=88) + predicate:(_col12 is not null or _col14 is not null) + Merge Join Operator [MERGEJOIN_180] (rows=843315281 width=88) + Conds:RS_59._col0=RS_224._col0(Left Outer),Output:["_col4","_col6","_col7","_col8","_col9","_col10","_col12","_col14"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_224] + PartitionCols:_col0 + Select Operator [SEL_223] (rows=158394413 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_222] (rows=158394413 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Group By Operator [GBY_41] (rows=316788826 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_177] (rows=316788826 width=135) + Conds:RS_221._col0=RS_194._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_194] + PartitionCols:_col0 + Select Operator [SEL_189] (rows=12174 width=1119) + Output:["_col0"] + Filter Operator [FIL_188] (rows=12174 width=1119) + predicate:((d_qoy < 4) and (d_year = 1999)) + TableScan [TS_10] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_221] + PartitionCols:_col0 + Select Operator [SEL_220] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_219] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_38_date_dim_d_date_sk_min) AND DynamicValue(RS_38_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_38_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_31] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_218] + Group By Operator [GBY_217] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_201] + Group By Operator [GBY_198] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_195] (rows=12174 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_189] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_59] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_179] (rows=766650239 width=88) + Conds:RS_56._col0=RS_216._col0(Left Outer),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10","_col12"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_216] + PartitionCols:_col0 + Select Operator [SEL_215] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_214] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Group By Operator [GBY_27] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_176] (rows=158402938 width=135) + Conds:RS_213._col0=RS_192._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_192] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_189] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_213] + PartitionCols:_col0 + Select Operator [SEL_212] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_211] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_24_date_dim_d_date_sk_min) AND DynamicValue(RS_24_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_24_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_17] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_210] + Group By Operator [GBY_209] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_200] + Group By Operator [GBY_197] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_193] (rows=12174 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_189] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_56] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_178] (rows=696954748 width=88) + Conds:RS_53._col0=RS_54._col0(Left Semi),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_53] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_174] (rows=96800003 width=860) + Conds:RS_48._col1=RS_187._col0(Inner),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col0 + Select Operator [SEL_186] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + TableScan [TS_5] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_48] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_173] (rows=88000001 width=860) + Conds:RS_183._col2=RS_185._col0(Inner),Output:["_col0","_col1","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_183] + PartitionCols:_col2 + Select Operator [SEL_182] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_181] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_185] + PartitionCols:_col0 + Select Operator [SEL_184] (rows=40000000 width=1014) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_54] + PartitionCols:_col0 + Group By Operator [GBY_52] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_16] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_175] (rows=633595212 width=88) + Conds:RS_208._col0=RS_190._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_190] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_189] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_208] + PartitionCols:_col0 + Select Operator [SEL_207] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_206] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_53_c_c_customer_sk_min) AND DynamicValue(RS_53_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_53_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_14_date_dim_d_date_sk_min) AND DynamicValue(RS_14_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_14_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_7] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_203] + Group By Operator [GBY_202] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_199] + Group By Operator [GBY_196] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_191] (rows=12174 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_189] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_205] + Group By Operator [GBY_204] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_135] + Group By Operator [GBY_134] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] + Select Operator [SEL_133] (rows=96800003 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_174] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query36.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query36.q.out new file mode 100644 index 0000000000..ac72942646 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query36.q.out @@ -0,0 +1,196 @@ +PREHOOK: query: explain +select + sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,item + ,store + where + d1.d_year = 1999 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and s_state in ('SD','FL','MI','LA', + 'MO','SC','AL','GA') + group by rollup(i_category,i_class) + order by + lochierarchy desc + ,case when lochierarchy = 0 then i_category end + ,rank_within_parent + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ss_net_profit)/sum(ss_ext_sales_price) asc) as rank_within_parent + from + store_sales + ,date_dim d1 + ,item + ,store + where + d1.d_year = 1999 + and d1.d_date_sk = ss_sold_date_sk + and i_item_sk = ss_item_sk + and s_store_sk = ss_store_sk + and s_state in ('SD','FL','MI','LA', + 'MO','SC','AL','GA') + group by rollup(i_category,i_class) + order by + lochierarchy desc + ,case when lochierarchy = 0 then i_category end + ,rank_within_parent + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (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 <- 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_118] + Limit [LIM_117] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_116] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_115] + Select Operator [SEL_114] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + PTF Operator [PTF_113] (rows=1149975358 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(_col2 / _col3) ASC NULLS FIRST","partition by:":"(grouping(_col4, 1) + grouping(_col4, 0)), CASE WHEN ((grouping(_col4, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END"}] + Select Operator [SEL_112] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_111] + PartitionCols:(grouping(_col4, 1) + grouping(_col4, 0)), CASE WHEN ((grouping(_col4, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END + Select Operator [SEL_110] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_109] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_23] (rows=2299950717 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col0, _col1, 0L + Select Operator [SEL_21] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_82] (rows=766650239 width=88) + Conds:RS_18._col0=RS_100._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_100] + PartitionCols:_col0 + Select Operator [SEL_99] (rows=1704 width=1910) + Output:["_col0"] + Filter Operator [FIL_98] (rows=1704 width=1910) + predicate:(s_state) IN ('SD', 'FL', 'MI', 'LA', 'MO', 'SC', 'AL', 'GA') + TableScan [TS_15] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_state"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0 + Select Operator [SEL_14] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_81] (rows=696954748 width=88) + Conds:RS_11._col1=RS_92._col0(Inner),Output:["_col2","_col3","_col4","_col7","_col8"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_92] + PartitionCols:_col0 + Select Operator [SEL_91] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_80] (rows=633595212 width=88) + Conds:RS_108._col0=RS_85._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_85] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_83] (rows=36524 width=1119) + predicate:(d_year = 1999) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_106] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_12_item_i_item_sk_min) AND DynamicValue(RS_12_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_12_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_9_d1_d_date_sk_min) AND DynamicValue(RS_9_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_9_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_19_store_s_store_sk_min) AND DynamicValue(RS_19_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_19_store_s_store_sk_bloom_filter))) and 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_item_sk","ss_store_sk","ss_ext_sales_price","ss_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_97] + Group By Operator [GBY_96] (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_95] + Group By Operator [GBY_94] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_93] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_91] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_103] + Group By Operator [GBY_102] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_101] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_99] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_90] + Group By Operator [GBY_89] (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_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_86] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_84] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query37.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query37.q.out new file mode 100644 index 0000000000..58fc91e0fe --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query37.q.out @@ -0,0 +1,136 @@ +PREHOOK: query: explain +select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, catalog_sales + where i_current_price between 22 and 22 + 30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2001-06-02' as date) and (cast('2001-06-02' as date) + 60 days) + and i_manufact_id in (678,964,918,849) + and inv_quantity_on_hand between 100 and 500 + and cs_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, catalog_sales + where i_current_price between 22 and 22 + 30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2001-06-02' as date) and (cast('2001-06-02' as date) + 60 days) + and i_manufact_id in (678,964,918,849) + and inv_quantity_on_hand between 100 and 500 + and cs_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 8 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 6 <- Map 5 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 7 <- Map 10 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_96] + Limit [LIM_95] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_94] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] + Group By Operator [GBY_92] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_22] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],keys:_col2, _col3, _col4 + Top N Key Operator [TNK_43] (rows=316788826 width=135) + keys:_col2, _col3, _col4,sort order:+++,top n:100 + Merge Join Operator [MERGEJOIN_77] (rows=316788826 width=135) + Conds:RS_91._col0=RS_19._col0(Inner),Output:["_col2","_col3","_col4"] + <-Reducer 7 [ONE_TO_ONE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_17] (rows=5052960 width=15) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_76] (rows=5052960 width=15) + Conds:RS_14._col1=RS_86._col0(Inner),Output:["_col3","_col4","_col5","_col6"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_86] + PartitionCols:_col0 + Select Operator [SEL_85] (rows=51333 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_84] (rows=51333 width=1436) + predicate:((i_manufact_id) IN (678, 964, 918, 849) and i_current_price BETWEEN 22 AND 52) + TableScan [TS_8] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc","i_current_price","i_manufact_id"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_75] (rows=4593600 width=15) + Conds:RS_80._col0=RS_83._col0(Inner),Output:["_col1"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_80] + PartitionCols:_col0 + Select Operator [SEL_79] (rows=4176000 width=15) + Output:["_col0","_col1"] + Filter Operator [FIL_78] (rows=4176000 width=15) + predicate:inv_quantity_on_hand BETWEEN 100 AND 500 + TableScan [TS_2] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_quantity_on_hand"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_83] + PartitionCols:_col0 + Select Operator [SEL_82] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_81] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-06-02 00:00:00' AND TIMESTAMP'2001-08-01 00:00:00' + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_91] + PartitionCols:_col0 + Select Operator [SEL_90] (rows=287989836 width=135) + Output:["_col0"] + Filter Operator [FIL_89] (rows=287989836 width=135) + predicate:(cs_item_sk BETWEEN DynamicValue(RS_19_item_i_item_sk_min) AND DynamicValue(RS_19_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_19_item_i_item_sk_bloom_filter))) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=5052960)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_46] + Group By Operator [GBY_45] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=5052960)"] + Select Operator [SEL_44] (rows=5052960 width=15) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_17] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query38.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query38.q.out new file mode 100644 index 0000000000..d6071b887b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query38.q.out @@ -0,0 +1,285 @@ +PREHOOK: query: explain +select count(*) from ( + select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 +) hot_cust +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select count(*) from ( + select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 + intersect + select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212 + 11 +) hot_cust +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +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 1 <- Reducer 19 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 21 <- Reducer 13 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE) +Map 22 <- Reducer 17 (BROADCAST_EDGE) +Reducer 10 <- Map 21 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Map 18 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 13 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 22 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 15 <- Map 18 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 17 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 18 (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 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_240] + Limit [LIM_239] (rows=1 width=16) + Number of rows:100 + Group By Operator [GBY_238] (rows=1 width=16) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_237] + Group By Operator [GBY_236] (rows=1 width=16) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_235] (rows=1 width=108) + Filter Operator [FIL_234] (rows=1 width=108) + predicate:(_col3 = 3L) + Select Operator [SEL_233] (rows=152458212 width=108) + Output:["_col3"] + Group By Operator [GBY_232] (rows=152458212 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 12 [CONTAINS] vectorized + Reduce Output Operator [RS_252] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_251] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_250] (rows=87116929 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_249] (rows=174233858 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_248] (rows=174233858 width=135) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_39] (rows=348467716 width=135) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_175] (rows=348467716 width=135) + Conds:RS_35._col1=RS_215._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_215] + PartitionCols:_col0 + Select Operator [SEL_212] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_174] (rows=316788826 width=135) + Conds:RS_247._col0=RS_200._col0(Inner),Output:["_col1","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_200] + PartitionCols:_col0 + Select Operator [SEL_197] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_196] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date","d_month_seq"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_247] + PartitionCols:_col0 + Select Operator [SEL_246] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_245] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_36_customer_c_customer_sk_min) AND DynamicValue(RS_36_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_36_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_33_date_dim_d_date_sk_min) AND DynamicValue(RS_33_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_33_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_24] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_242] + Group By Operator [GBY_241] (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_208] + Group By Operator [GBY_205] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_201] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_197] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_244] + Group By Operator [GBY_243] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 18 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_221] + Group By Operator [GBY_219] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_216] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_212] + <-Reducer 16 [CONTAINS] vectorized + Reduce Output Operator [RS_262] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_261] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_260] (rows=43560808 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_259] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_258] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_64] (rows=174243235 width=135) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_177] (rows=174243235 width=135) + Conds:RS_60._col1=RS_217._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_217] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_212] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_60] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_176] (rows=158402938 width=135) + Conds:RS_257._col0=RS_202._col0(Inner),Output:["_col1","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_202] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_197] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_257] + PartitionCols:_col0 + Select Operator [SEL_256] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_255] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_58_date_dim_d_date_sk_min) AND DynamicValue(RS_58_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_58_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_49] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_254] + Group By Operator [GBY_253] (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_209] + Group By Operator [GBY_206] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_203] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_197] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_231] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_230] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 + Group By Operator [GBY_229] (rows=174238687 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_228] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_227] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_173] (rows=696954748 width=88) + Conds:RS_11._col1=RS_213._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_213] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_212] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_172] (rows=633595212 width=88) + Conds:RS_226._col0=RS_198._col0(Inner),Output:["_col1","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_198] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_197] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_226] + PartitionCols:_col0 + Select Operator [SEL_225] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_224] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_12_customer_c_customer_sk_min) AND DynamicValue(RS_12_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_12_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_9_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_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_customer_sk"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_223] + Group By Operator [GBY_222] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 18 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_220] + Group By Operator [GBY_218] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_214] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_212] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_211] + Group By Operator [GBY_210] (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_207] + 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_199] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_197] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query39.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query39.q.out new file mode 100644 index 0000000000..c4f110aafb --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query39.q.out @@ -0,0 +1,238 @@ +PREHOOK: query: explain +with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1999 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=4 + and inv2.d_moy=4+1 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1999 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=4 + and inv2.d_moy=4+1 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 8 <- Map 11 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_170] + Select Operator [SEL_169] (rows=12506076 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_44] + Merge Join Operator [MERGEJOIN_146] (rows=12506076 width=15) + Conds:RS_163._col0, _col1=RS_168._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_163] + PartitionCols:_col0, _col1 + Select Operator [SEL_162] (rows=11369160 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_161] (rows=11369160 width=15) + predicate:CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END + Select Operator [SEL_160] (rows=22738320 width=15) + Output:["_col0","_col1","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_159] (rows=22738320 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_15] (rows=45476640 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col3)","count(_col3)","sum(_col5)","sum(_col4)"],keys:_col1, _col2, _col0 + Select Operator [SEL_13] (rows=45476640 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_143] (rows=45476640 width=15) + Conds:RS_10._col1=RS_157._col0(Inner),Output:["_col2","_col3","_col5","_col6"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_157] + PartitionCols:_col0 + Select Operator [SEL_156] (rows=27 width=1029) + Output:["_col0","_col1"] + TableScan [TS_5] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_warehouse_name"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_142] (rows=41342400 width=15) + Conds:RS_148._col0=RS_154._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + PartitionCols:_col0 + Select Operator [SEL_147] (rows=37584000 width=15) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_0] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_warehouse_sk","inv_quantity_on_hand"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_154] + PartitionCols:_col0 + Select Operator [SEL_152] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_150] (rows=18262 width=1119) + predicate:((d_moy = 4) and (d_year = 1999)) + TableScan [TS_2] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_168] + PartitionCols:_col0, _col1 + Select Operator [SEL_167] (rows=11369160 width=15) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_166] (rows=11369160 width=15) + predicate:CASE WHEN (((UDFToDouble(_col3) / _col4) = 0)) THEN (false) ELSE (((power(((_col5 - ((_col6 * _col6) / _col4)) / CASE WHEN ((_col4 = 1L)) THEN (null) ELSE ((_col4 - 1)) END), 0.5) / (UDFToDouble(_col3) / _col4)) > 1.0D)) END + Select Operator [SEL_165] (rows=22738320 width=15) + Output:["_col0","_col1","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_164] (rows=22738320 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_35] (rows=45476640 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col3)","count(_col3)","sum(_col5)","sum(_col4)"],keys:_col1, _col2, _col0 + Select Operator [SEL_33] (rows=45476640 width=15) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_145] (rows=45476640 width=15) + Conds:RS_30._col1=RS_158._col0(Inner),Output:["_col2","_col3","_col5","_col6"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_158] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_156] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_144] (rows=41342400 width=15) + Conds:RS_149._col0=RS_155._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_149] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_147] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_155] + PartitionCols:_col0 + Select Operator [SEL_153] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_151] (rows=18262 width=1119) + predicate:((d_moy = 5) and (d_year = 1999)) + Please refer to the previous TableScan [TS_2] + +PREHOOK: query: with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1999 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=4 + and inv2.d_moy=4+1 + and inv1.cov > 1.5 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: with inv as +(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stdev,mean, case mean when 0 then null else stdev/mean end cov + from(select w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy + ,stddev_samp(inv_quantity_on_hand) stdev,avg(inv_quantity_on_hand) mean + from inventory + ,item + ,warehouse + ,date_dim + where inv_item_sk = i_item_sk + and inv_warehouse_sk = w_warehouse_sk + and inv_date_sk = d_date_sk + and d_year =1999 + group by w_warehouse_name,w_warehouse_sk,i_item_sk,d_moy) foo + where case mean when 0 then 0 else stdev/mean end > 1) +select inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean, inv1.cov + ,inv2.w_warehouse_sk,inv2.i_item_sk,inv2.d_moy,inv2.mean, inv2.cov +from inv inv1,inv inv2 +where inv1.i_item_sk = inv2.i_item_sk + and inv1.w_warehouse_sk = inv2.w_warehouse_sk + and inv1.d_moy=4 + and inv2.d_moy=4+1 + and inv1.cov > 1.5 +order by inv1.w_warehouse_sk,inv1.i_item_sk,inv1.d_moy,inv1.mean,inv1.cov + ,inv2.d_moy,inv2.mean, inv2.cov +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out new file mode 100644 index 0000000000..3a7113d56f --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query4.q.out @@ -0,0 +1,675 @@ +PREHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(((ss_ext_list_price-ss_ext_wholesale_cost-ss_ext_discount_amt)+ss_ext_sales_price)/2) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((cs_ext_list_price-cs_ext_wholesale_cost-cs_ext_discount_amt)+cs_ext_sales_price)/2) ) year_total + ,'c' sale_type + from customer + ,catalog_sales + ,date_dim + where c_customer_sk = cs_bill_customer_sk + and cs_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year +union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((ws_ext_list_price-ws_ext_wholesale_cost-ws_ext_discount_amt)+ws_ext_sales_price)/2) ) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.customer_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_c_firstyear + ,year_total t_c_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_c_secyear.customer_id + and t_s_firstyear.customer_id = t_c_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_c_firstyear.sale_type = 'c' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_c_secyear.sale_type = 'c' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_c_firstyear.dyear = 2001 + and t_c_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_c_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + order by t_s_secyear.customer_preferred_cust_flag +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum(((ss_ext_list_price-ss_ext_wholesale_cost-ss_ext_discount_amt)+ss_ext_sales_price)/2) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((cs_ext_list_price-cs_ext_wholesale_cost-cs_ext_discount_amt)+cs_ext_sales_price)/2) ) year_total + ,'c' sale_type + from customer + ,catalog_sales + ,date_dim + where c_customer_sk = cs_bill_customer_sk + and cs_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year +union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,c_preferred_cust_flag customer_preferred_cust_flag + ,c_birth_country customer_birth_country + ,c_login customer_login + ,c_email_address customer_email_address + ,d_year dyear + ,sum((((ws_ext_list_price-ws_ext_wholesale_cost-ws_ext_discount_amt)+ws_ext_sales_price)/2) ) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + group by c_customer_id + ,c_first_name + ,c_last_name + ,c_preferred_cust_flag + ,c_birth_country + ,c_login + ,c_email_address + ,d_year + ) + select t_s_secyear.customer_preferred_cust_flag + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_c_firstyear + ,year_total t_c_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_c_secyear.customer_id + and t_s_firstyear.customer_id = t_c_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_c_firstyear.sale_type = 'c' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_c_secyear.sale_type = 'c' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.dyear = 2001 + and t_s_secyear.dyear = 2001+1 + and t_c_firstyear.dyear = 2001 + and t_c_secyear.dyear = 2001+1 + and t_w_firstyear.dyear = 2001 + and t_w_secyear.dyear = 2001+1 + and t_s_firstyear.year_total > 0 + and t_c_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + and case when t_c_firstyear.year_total > 0 then t_c_secyear.year_total / t_c_firstyear.year_total else null end + > case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + order by t_s_secyear.customer_preferred_cust_flag +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +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 1 <- Reducer 8 (BROADCAST_EDGE) +Map 38 <- Reducer 24 (BROADCAST_EDGE), Reducer 36 (BROADCAST_EDGE) +Map 39 <- Reducer 28 (BROADCAST_EDGE), Reducer 37 (BROADCAST_EDGE) +Map 40 <- Reducer 19 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Map 41 <- Reducer 32 (BROADCAST_EDGE) +Map 42 <- Reducer 13 (BROADCAST_EDGE), Reducer 34 (BROADCAST_EDGE) +Reducer 10 <- Map 33 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 18 (ONE_TO_ONE_EDGE) +Reducer 13 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 40 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 15 <- Map 33 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE), Reducer 23 (ONE_TO_ONE_EDGE) +Reducer 18 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 31 (SIMPLE_EDGE) +Reducer 19 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 20 <- Map 38 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 21 <- Map 33 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) +Reducer 24 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 39 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 26 <- Map 33 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Reducer 26 (SIMPLE_EDGE) +Reducer 28 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 41 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 33 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 33 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) +Reducer 31 <- Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 33 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 33 (CUSTOM_SIMPLE_EDGE) +Reducer 36 <- Map 33 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 33 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 42 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_566] + Limit [LIM_565] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_564] (rows=127551441 width=88) + Output:["_col0"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_137] + Select Operator [SEL_136] (rows=127551441 width=88) + Output:["_col0"] + Filter Operator [FIL_135] (rows=127551441 width=88) + predicate:CASE WHEN (_col5) THEN (CASE WHEN (_col6) THEN ((_col7 > (_col1 / _col4))) ELSE ((null > (_col1 / _col4))) END) ELSE (_col8) END + Merge Join Operator [MERGEJOIN_462] (rows=255102883 width=88) + Conds:RS_519._col0=RS_133._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 12 [ONE_TO_ONE_EDGE] + FORWARD [RS_133] + PartitionCols:_col0 + Select Operator [SEL_131] (rows=231911707 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_130] (rows=231911707 width=88) + predicate:CASE WHEN (_col4) THEN (CASE WHEN (_col3) THEN (((_col11 / _col2) > _col5)) ELSE (_col6) END) ELSE (CASE WHEN (_col3) THEN (((_col11 / _col2) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_461] (rows=463823414 width=88) + Conds:RS_127._col0=RS_527._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col11"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_527] + PartitionCols:_col0 + Select Operator [SEL_526] (rows=174233858 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_525] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_121] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_120] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_457] (rows=348467716 width=135) + Conds:RS_116._col1=RS_500._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_500] + PartitionCols:_col0 + Select Operator [SEL_498] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_116] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_456] (rows=316788826 width=135) + Conds:RS_113._col0=RS_473._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_473] + PartitionCols:_col0 + Select Operator [SEL_467] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_463] (rows=36524 width=1119) + predicate:(d_year = 2002) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 42 [SIMPLE_EDGE] + SHUFFLE [RS_113] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_246] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_117_customer_c_customer_sk_min) AND DynamicValue(RS_117_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_117_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_114_date_dim_d_date_sk_min) AND DynamicValue(RS_114_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_114_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_105] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_521] + Group By Operator [GBY_520] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_490] + Group By Operator [GBY_484] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_474] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_467] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_523] + Group By Operator [GBY_522] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_513] + Group By Operator [GBY_509] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_501] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_498] + <-Reducer 18 [ONE_TO_ONE_EDGE] + FORWARD [RS_127] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_460] (rows=421657640 width=88) + Conds:RS_124._col0=RS_563._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9"] + <-Reducer 17 [ONE_TO_ONE_EDGE] + FORWARD [RS_124] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_459] (rows=383325119 width=88) + Conds:RS_81._col0=RS_535._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col7","_col8"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_535] + PartitionCols:_col0 + Select Operator [SEL_534] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_533] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_74] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_453] (rows=696954748 width=88) + Conds:RS_70._col1=RS_502._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_502] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_498] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_452] (rows=633595212 width=88) + Conds:RS_67._col0=RS_475._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_475] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_467] + <-Map 40 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col0 + Select Operator [SEL_61] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_240] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_71_customer_c_customer_sk_min) AND DynamicValue(RS_71_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_71_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_68_date_dim_d_date_sk_min) AND DynamicValue(RS_68_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_68_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_59] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_529] + Group By Operator [GBY_528] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_491] + Group By Operator [GBY_485] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_476] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_467] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_531] + Group By Operator [GBY_530] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_514] + Group By Operator [GBY_510] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_503] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_498] + <-Reducer 23 [ONE_TO_ONE_EDGE] + FORWARD [RS_81] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_458] (rows=127775039 width=88) + Conds:RS_545._col0=RS_555._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_545] + PartitionCols:_col0 + Select Operator [SEL_544] (rows=116159124 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_543] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_542] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_541] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_34] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_449] (rows=696954748 width=88) + Conds:RS_30._col1=RS_504._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_504] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_498] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_448] (rows=633595212 width=88) + Conds:RS_27._col0=RS_477._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_477] + PartitionCols:_col0 + Select Operator [SEL_468] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_464] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_3] + <-Map 38 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Select Operator [SEL_21] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_234] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_31_customer_c_customer_sk_min) AND DynamicValue(RS_31_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_31_customer_c_customer_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_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_19] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_537] + Group By Operator [GBY_536] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_492] + Group By Operator [GBY_486] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_478] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_468] + <-Reducer 36 [BROADCAST_EDGE] vectorized + BROADCAST [RS_539] + Group By Operator [GBY_538] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_515] + Group By Operator [GBY_511] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_505] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_498] + <-Reducer 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_555] + PartitionCols:_col0 + Select Operator [SEL_554] (rows=58077952 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_553] (rows=58077952 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_552] (rows=174233858 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_551] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_54] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_451] (rows=348467716 width=135) + Conds:RS_50._col1=RS_506._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_506] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_498] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_450] (rows=316788826 width=135) + Conds:RS_47._col0=RS_479._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_479] + PartitionCols:_col0 + Select Operator [SEL_469] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_465] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_3] + <-Map 39 [SIMPLE_EDGE] + SHUFFLE [RS_47] + PartitionCols:_col0 + Select Operator [SEL_41] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_237] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_51_customer_c_customer_sk_min) AND DynamicValue(RS_51_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_51_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_48_date_dim_d_date_sk_min) AND DynamicValue(RS_48_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_48_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_39] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] + <-Reducer 28 [BROADCAST_EDGE] vectorized + BROADCAST [RS_547] + Group By Operator [GBY_546] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_493] + Group By Operator [GBY_487] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_480] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_469] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_549] + Group By Operator [GBY_548] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_516] + Group By Operator [GBY_512] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_507] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_498] + <-Reducer 31 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_563] + PartitionCols:_col0 + Select Operator [SEL_562] (rows=29040539 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_561] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_560] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_559] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_101] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_100] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_455] (rows=174243235 width=135) + Conds:RS_96._col1=RS_508._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_508] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_498] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_454] (rows=158402938 width=135) + Conds:RS_93._col0=RS_481._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_481] + PartitionCols:_col0 + Select Operator [SEL_470] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_466] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_3] + <-Map 41 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col0 + Select Operator [SEL_87] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_243] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_94_date_dim_d_date_sk_min) AND DynamicValue(RS_94_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_94_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_85] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] + <-Reducer 32 [BROADCAST_EDGE] vectorized + BROADCAST [RS_557] + Group By Operator [GBY_556] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_494] + Group By Operator [GBY_488] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_482] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_470] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_519] + PartitionCols:_col0 + Select Operator [SEL_518] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_517] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col2)"],keys:_col5, _col6, _col7, _col8, _col9, _col10, _col11 + Merge Join Operator [MERGEJOIN_447] (rows=174243235 width=135) + Conds:RS_11._col1=RS_499._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 33 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_499] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_498] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_446] (rows=158402938 width=135) + Conds:RS_8._col0=RS_471._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_471] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_467] + <-Map 1 [SIMPLE_EDGE] + SHUFFLE [RS_8] + PartitionCols:_col0 + Select Operator [SEL_2] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_231] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_496] + Group By Operator [GBY_495] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_489] + Group By Operator [GBY_483] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_472] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_467] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query40.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query40.q.out new file mode 100644 index 0000000000..6c47dc47d6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query40.q.out @@ -0,0 +1,197 @@ +PREHOOK: query: explain +select + w_state + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('1998-04-08' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before + ,sum(case when (cast(d_date as date) >= cast ('1998-04-08' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after + from + catalog_sales left outer join catalog_returns on + (cs_order_number = cr_order_number + and cs_item_sk = cr_item_sk) + ,warehouse + ,item + ,date_dim + where + i_current_price between 0.99 and 1.49 + and i_item_sk = cs_item_sk + and cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and d_date between (cast ('1998-04-08' as date) - 30 days) + and (cast ('1998-04-08' as date) + 30 days) + group by + w_state,i_item_id + order by w_state,i_item_id +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + w_state + ,i_item_id + ,sum(case when (cast(d_date as date) < cast ('1998-04-08' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_before + ,sum(case when (cast(d_date as date) >= cast ('1998-04-08' as date)) + then cs_sales_price - coalesce(cr_refunded_cash,0) else 0 end) as sales_after + from + catalog_sales left outer join catalog_returns on + (cs_order_number = cr_order_number + and cs_item_sk = cr_item_sk) + ,warehouse + ,item + ,date_dim + where + i_current_price between 0.99 and 1.49 + and i_item_sk = cs_item_sk + and cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and d_date between (cast ('1998-04-08' as date) - 30 days) + and (cast ('1998-04-08' as date) + 30 days) + group by + w_state,i_item_id + order by w_state,i_item_id +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 12 (BROADCAST_EDGE), Reducer 14 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 11 (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) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_133] + Limit [LIM_132] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_131] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_130] + Group By Operator [GBY_129] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0, _col1 + Group By Operator [GBY_28] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col0, _col1 + Top N Key Operator [TNK_54] (rows=421645953 width=135) + keys:_col0, _col1,sort order:++,top n:100 + Select Operator [SEL_26] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_100] (rows=421645953 width=135) + Conds:RS_23._col1=RS_118._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + PartitionCols:_col0 + Select Operator [SEL_117] (rows=51333 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_116] (rows=51333 width=1436) + predicate:i_current_price BETWEEN 0.99 AND 1.49 + TableScan [TS_17] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_current_price"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_99] (rows=383314495 width=135) + Conds:RS_20._col0=RS_110._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_110] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=8116 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_108] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-03-09 00:00:00' AND TIMESTAMP'1998-05-08 00:00:00' + TableScan [TS_14] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_20] + PartitionCols:_col0 + Select Operator [SEL_13] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_98] (rows=348467716 width=135) + Conds:RS_10._col1=RS_102._col0(Inner),Output:["_col0","_col2","_col4","_col7","_col9"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=27 width=1029) + Output:["_col0","_col1"] + TableScan [TS_5] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_97] (rows=316788826 width=135) + Conds:RS_126._col2, _col3=RS_128._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col4","_col7"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col2, _col3 + Select Operator [SEL_125] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_124] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_24_item_i_item_sk_min) AND DynamicValue(RS_24_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_24_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and (cs_warehouse_sk BETWEEN DynamicValue(RS_11_warehouse_w_warehouse_sk_min) AND DynamicValue(RS_11_warehouse_w_warehouse_sk_max) and in_bloom_filter(cs_warehouse_sk, DynamicValue(RS_11_warehouse_w_warehouse_sk_bloom_filter))) and cs_sold_date_sk is not null and cs_warehouse_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_warehouse_sk","cs_item_sk","cs_order_number","cs_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_107] + Group By Operator [GBY_106] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_103] (rows=27 width=1029) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_115] + Group By Operator [GBY_114] (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_113] + Group By Operator [GBY_112] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_111] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_109] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_123] + Group By Operator [GBY_122] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_119] (rows=51333 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_117] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + PartitionCols:_col0, _col1 + Select Operator [SEL_127] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + TableScan [TS_3] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_refunded_cash"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query42.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query42.q.out new file mode 100644 index 0000000000..958b64d1e1 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query42.q.out @@ -0,0 +1,139 @@ +PREHOOK: query: explain +select dt.d_year + ,item.i_category_id + ,item.i_category + ,sum(ss_ext_sales_price) + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=1998 + group by dt.d_year + ,item.i_category_id + ,item.i_category + order by sum(ss_ext_sales_price) desc,dt.d_year + ,item.i_category_id + ,item.i_category +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select dt.d_year + ,item.i_category_id + ,item.i_category + ,sum(ss_ext_sales_price) + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=1998 + group by dt.d_year + ,item.i_category_id + ,item.i_category + order by sum(ss_ext_sales_price) desc,dt.d_year + ,item.i_category_id + ,item.i_category +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_79] + Limit [LIM_78] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_77] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_76] + Select Operator [SEL_75] (rows=348477374 width=88) + Output:["_col0","_col1","_col3"] + Group By Operator [GBY_74] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col5, _col6 + Merge Join Operator [MERGEJOIN_54] (rows=696954748 width=88) + Conds:RS_12._col1=RS_65._col0(Inner),Output:["_col2","_col5","_col6"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=231000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_63] (rows=231000 width=1436) + predicate:(i_manager_id = 1) + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category_id","i_category","i_manager_id"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_53] (rows=633595212 width=88) + Conds:RS_73._col0=RS_57._col0(Inner),Output:["_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_57] + PartitionCols:_col0 + Select Operator [SEL_56] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_55] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 1998)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,dt,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_72] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_71] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_dt_d_date_sk_min) AND DynamicValue(RS_10_dt_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_dt_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_ext_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_62] + Group By Operator [GBY_61] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_60] + Group By Operator [GBY_59] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_58] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_56] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_70] + Group By Operator [GBY_69] (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_68] + Group By Operator [GBY_67] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_66] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_64] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query43.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query43.q.out new file mode 100644 index 0000000000..15f041a471 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query43.q.out @@ -0,0 +1,135 @@ +PREHOOK: query: explain +select s_store_name, s_store_id, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from date_dim, store_sales, store + where d_date_sk = ss_sold_date_sk and + s_store_sk = ss_store_sk and + s_gmt_offset = -6 and + d_year = 1998 + group by s_store_name, s_store_id + order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales + 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 s_store_name, s_store_id, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from date_dim, store_sales, store + where d_date_sk = ss_sold_date_sk and + s_store_sk = ss_store_sk and + s_gmt_offset = -6 and + d_year = 1998 + group by s_store_name, s_store_id + order by s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales + 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 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_79] + Limit [LIM_78] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_77] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_76] + Group By Operator [GBY_75] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0, _col1 + Group By Operator [GBY_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col10, _col9 + Top N Key Operator [TNK_33] (rows=696954748 width=88) + keys:_col10, _col9,sort order:++,top n:100 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10"] + Merge Join Operator [MERGEJOIN_55] (rows=696954748 width=88) + Conds:RS_12._col1=RS_66._col0(Inner),Output:["_col2","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col12","_col13"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_66] + PartitionCols:_col0 + Select Operator [SEL_65] (rows=852 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_64] (rows=852 width=1910) + predicate:(s_gmt_offset = -6) + TableScan [TS_6] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id","s_store_name","s_gmt_offset"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_54] (rows=633595212 width=88) + Conds:RS_74._col0=RS_58._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_58] + PartitionCols:_col0 + Select Operator [SEL_57] (rows=36524 width=1119) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_56] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_day_name"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_74] + PartitionCols:_col0 + Select Operator [SEL_73] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_72] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_13_store_s_store_sk_min) AND DynamicValue(RS_13_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_13_store_s_store_sk_bloom_filter))) and 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"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_63] + Group By Operator [GBY_62] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_61] + Group By Operator [GBY_60] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_59] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_57] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_71] + Group By Operator [GBY_70] (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_69] + Group By Operator [GBY_68] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_67] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_65] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query44.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query44.q.out new file mode 100644 index 0000000000..67b4151940 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query44.q.out @@ -0,0 +1,193 @@ +Warning: Shuffle Join MERGEJOIN[101][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 8' is a cross product +PREHOOK: query: explain +select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing +from(select * + from (select item_sk,rank() over (order by rank_col asc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 410 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 410 + and ss_hdemo_sk is null + group by ss_store_sk))V1)V11 + where rnk < 11) asceding, + (select * + from (select item_sk,rank() over (order by rank_col desc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 410 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 410 + and ss_hdemo_sk is null + group by ss_store_sk))V2)V21 + where rnk < 11) descending, +item i1, +item i2 +where asceding.rnk = descending.rnk + and i1.i_item_sk=asceding.item_sk + and i2.i_item_sk=descending.item_sk +order by asceding.rnk +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing +from(select * + from (select item_sk,rank() over (order by rank_col asc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 410 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 410 + and ss_hdemo_sk is null + group by ss_store_sk))V1)V11 + where rnk < 11) asceding, + (select * + from (select item_sk,rank() over (order by rank_col desc) rnk + from (select ss_item_sk item_sk,avg(ss_net_profit) rank_col + from store_sales ss1 + where ss_store_sk = 410 + group by ss_item_sk + having avg(ss_net_profit) > 0.9*(select avg(ss_net_profit) rank_col + from store_sales + where ss_store_sk = 410 + and ss_hdemo_sk is null + group by ss_store_sk))V2)V21 + where rnk < 11) descending, +item i1, +item i2 +where asceding.rnk = descending.rnk + and i1.i_item_sk=asceding.item_sk + and i2.i_item_sk=descending.item_sk +order by asceding.rnk +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 8 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 1 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_135] + Limit [LIM_134] (rows=100 width=177) + Number of rows:100 + Select Operator [SEL_133] (rows=1393898919384048 width=177) + Output:["_col0","_col1","_col2"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_67] + Select Operator [SEL_66] (rows=1393898919384048 width=177) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_105] (rows=1393898919384048 width=177) + Conds:RS_63._col3=RS_64._col3(Inner),Output:["_col1","_col3","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_63] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_102] (rows=1267180808338276 width=177) + Conds:RS_107._col0=RS_127._col0(Inner),Output:["_col1","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_107] + PartitionCols:_col0 + Select Operator [SEL_106] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,i1,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_product_name"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col0 + Select Operator [SEL_126] (rows=1151982528066248 width=177) + Output:["_col0","_col1"] + Filter Operator [FIL_125] (rows=1151982528066248 width=177) + predicate:(rank_window_0 < 11) + PTF Operator [PTF_124] (rows=3455947584198744 width=177) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST","partition by:":"0"}] + Select Operator [SEL_123] (rows=3455947584198744 width=177) + Output:["_col0","_col1"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:0 + Filter Operator [FIL_20] (rows=3455947584198744 width=177) + predicate:(_col1 > _col2) + Merge Join Operator [MERGEJOIN_101] (rows=10367842752596232 width=177) + Conds:(Inner),Output:["_col0","_col1","_col2"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_122] + Select Operator [SEL_121] (rows=71999454 width=88) + Output:["_col0"] + Group By Operator [GBY_120] (rows=71999454 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_119] + PartitionCols:_col0 + Group By Operator [GBY_118] (rows=143998908 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col1)"],keys:true + Select Operator [SEL_117] (rows=143998908 width=88) + Output:["_col1"] + Filter Operator [FIL_116] (rows=143998908 width=88) + predicate:((ss_store_sk = 410) and ss_hdemo_sk is null) + TableScan [TS_9] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_hdemo_sk","ss_store_sk","ss_net_profit"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_115] + Select Operator [SEL_114] (rows=143998908 width=88) + Output:["_col0","_col1"] + Group By Operator [GBY_113] (rows=143998908 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_112] + PartitionCols:_col0 + Group By Operator [GBY_111] (rows=287997817 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_net_profit)","count(ss_net_profit)"],keys:ss_item_sk + Select Operator [SEL_110] (rows=287997817 width=88) + Output:["ss_item_sk","ss_net_profit"] + Filter Operator [FIL_109] (rows=287997817 width=88) + predicate:(ss_store_sk = 410) + TableScan [TS_2] (rows=575995635 width=88) + default@store_sales,ss1,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_store_sk","ss_net_profit"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_104] (rows=1267180808338276 width=177) + Conds:RS_108._col0=RS_132._col0(Inner),Output:["_col1","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_106] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_132] + PartitionCols:_col0 + Select Operator [SEL_131] (rows=1151982528066248 width=177) + Output:["_col0","_col1"] + Filter Operator [FIL_130] (rows=1151982528066248 width=177) + predicate:(rank_window_0 < 11) + PTF Operator [PTF_129] (rows=3455947584198744 width=177) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 DESC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_128] (rows=3455947584198744 width=177) + Output:["_col0","_col1"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:0 + Please refer to the previous Filter Operator [FIL_20] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query45.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query45.q.out new file mode 100644 index 0000000000..16d731a74e --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query45.q.out @@ -0,0 +1,195 @@ +PREHOOK: query: explain +select ca_zip, ca_county, sum(ws_sales_price) + from web_sales, customer, customer_address, date_dim, item + where ws_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ws_item_sk = i_item_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') + or + i_item_id in (select i_item_id + from item + where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + ) + ) + and ws_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip, ca_county + order by ca_zip, ca_county + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select ca_zip, ca_county, sum(ws_sales_price) + from web_sales, customer, customer_address, date_dim, item + where ws_bill_customer_sk = c_customer_sk + and c_current_addr_sk = ca_address_sk + and ws_item_sk = i_item_sk + and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') + or + i_item_id in (select i_item_id + from item + where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + ) + ) + and ws_sold_date_sk = d_date_sk + and d_qoy = 2 and d_year = 2000 + group by ca_zip, ca_county + order by ca_zip, ca_county + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 12 <- Reducer 10 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE) +Reducer 10 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 7 (SIMPLE_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (SIMPLE_EDGE), Reducer 11 (ONE_TO_ONE_EDGE) +Reducer 9 <- Reducer 13 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_151] + Limit [LIM_150] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_149] (rows=95833781 width=135) + Output:["_col0","_col1","_col2"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + Group By Operator [GBY_147] (rows=95833781 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0, _col1 + Group By Operator [GBY_40] (rows=191667562 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col8, _col7 + Top N Key Operator [TNK_69] (rows=191667562 width=135) + keys:_col8, _col7,sort order:++,top n:100 + Select Operator [SEL_39] (rows=191667562 width=135) + Output:["_col3","_col7","_col8"] + Filter Operator [FIL_38] (rows=191667562 width=135) + predicate:((substr(_col8, 1, 5)) IN ('85669', '86197', '88274', '83405', '86475', '85392', '85460', '80348', '81792') or _col15 is not null) + Select Operator [SEL_37] (rows=191667562 width=135) + Output:["_col3","_col7","_col8","_col15"] + Merge Join Operator [MERGEJOIN_119] (rows=191667562 width=135) + Conds:RS_34._col0=RS_35._col6(Inner),Output:["_col3","_col4","_col8","_col12"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_115] (rows=88000001 width=860) + Conds:RS_122._col1=RS_124._col0(Inner),Output:["_col0","_col3","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_122] + PartitionCols:_col1 + Select Operator [SEL_121] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_120] (rows=80000000 width=860) + predicate:c_current_addr_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 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_zip"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col6 + Merge Join Operator [MERGEJOIN_118] (rows=174243235 width=135) + Conds:RS_27._col0=RS_28._col1(Inner),Output:["_col3","_col6","_col7"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_116] (rows=508200 width=1436) + Conds:RS_127._col1=RS_133._col0(Left Outer),Output:["_col0","_col3"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col1 + Select Operator [SEL_125] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_5] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_133] + PartitionCols:_col0 + Select Operator [SEL_132] (rows=231000 width=1436) + Output:["_col0","_col1"] + Group By Operator [GBY_131] (rows=231000 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_130] + PartitionCols:_col0 + Group By Operator [GBY_129] (rows=462000 width=1436) + Output:["_col0"],keys:i_item_id + Select Operator [SEL_128] (rows=462000 width=1436) + Output:["i_item_id"] + Filter Operator [FIL_126] (rows=462000 width=1436) + predicate:(i_item_sk) IN (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) + Please refer to the previous TableScan [TS_5] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_117] (rows=158402938 width=135) + Conds:RS_146._col0=RS_136._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_136] + PartitionCols:_col0 + Select Operator [SEL_135] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_134] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000)) + TableScan [TS_17] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_146] + PartitionCols:_col0 + Select Operator [SEL_145] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_144] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_27_item_i_item_sk_min) AND DynamicValue(RS_27_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_27_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_21_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_14] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_143] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_102] + Group By Operator [GBY_101] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_100] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_116] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_141] + Group By Operator [GBY_140] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + Group By Operator [GBY_138] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_137] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_135] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query46.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query46.q.out new file mode 100644 index 0000000000..bc28482a71 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query46.q.out @@ -0,0 +1,266 @@ +PREHOOK: query: explain +select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and (household_demographics.hd_dep_count = 2 or + household_demographics.hd_vehicle_count= 1) + and date_dim.d_dow in (6,0) + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_city in ('Cedar Grove','Wildwood','Union','Salem','Highland Park') + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city) dn,customer,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and (household_demographics.hd_dep_count = 2 or + household_demographics.hd_vehicle_count= 1) + and date_dim.d_dow in (6,0) + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_city in ('Cedar Grove','Wildwood','Union','Salem','Highland Park') + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city) dn,customer,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 10 <- Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 5 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 12 <- Map 16 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 18 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 6 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_190] + Limit [LIM_189] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_188] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_45] + Select Operator [SEL_44] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_43] (rows=463823414 width=88) + predicate:(_col5 <> _col8) + Merge Join Operator [MERGEJOIN_144] (rows=463823414 width=88) + Conds:RS_40._col0=RS_187._col1(Inner),Output:["_col2","_col3","_col5","_col6","_col8","_col9","_col10"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_40] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_139] (rows=88000001 width=860) + Conds:RS_147._col1=RS_149._col0(Inner),Output:["_col0","_col2","_col3","_col5"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_149] + PartitionCols:_col0 + Select Operator [SEL_148] (rows=40000000 width=1014) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,current_addr,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_city"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_147] + PartitionCols:_col1 + Select Operator [SEL_146] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_145] (rows=80000000 width=860) + predicate:c_current_addr_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","c_first_name","c_last_name"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col1 + Select Operator [SEL_186] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_185] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_33] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col8, _col2, _col3 + Merge Join Operator [MERGEJOIN_143] (rows=843315281 width=88) + Conds:RS_29._col2=RS_150._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col8"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_150] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_148] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_142] (rows=766650239 width=88) + Conds:RS_26._col1=RS_172._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 18 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_172] + PartitionCols:_col0 + Select Operator [SEL_171] (rows=7200 width=107) + Output:["_col0"] + Filter Operator [FIL_170] (rows=7200 width=107) + predicate:((hd_dep_count = 2) or (hd_vehicle_count = 1)) + TableScan [TS_21] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col1 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_141] (rows=696954748 width=88) + Conds:RS_17._col4=RS_164._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7"] + <-Map 16 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_164] + PartitionCols:_col0 + Select Operator [SEL_163] (rows=1704 width=1910) + Output:["_col0"] + Filter Operator [FIL_162] (rows=1704 width=1910) + predicate:(s_city) IN ('Cedar Grove', 'Wildwood', 'Union', 'Salem', 'Highland Park') + TableScan [TS_11] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_city"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_140] (rows=633595212 width=88) + Conds:RS_184._col0=RS_156._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_156] + PartitionCols:_col0 + Select Operator [SEL_155] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_154] (rows=73049 width=1119) + predicate:((d_dow) IN (6, 0) and (d_year) IN (1998, 1999, 2000)) + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_dow"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_184] + PartitionCols:_col0 + Select Operator [SEL_183] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_182] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_30_customer_address_ca_address_sk_min) AND DynamicValue(RS_30_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_30_customer_address_ca_address_sk_bloom_filter))) and (ss_customer_sk BETWEEN DynamicValue(RS_40_customer_c_customer_sk_min) AND DynamicValue(RS_40_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_40_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_27_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_27_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_27_household_demographics_hd_demo_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_store_sk BETWEEN DynamicValue(RS_18_store_s_store_sk_min) AND DynamicValue(RS_18_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_18_store_s_store_sk_bloom_filter))) and ss_addr_sk is not null and ss_customer_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_ticket_number","ss_coupon_amt","ss_net_profit"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_161] + Group By Operator [GBY_160] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_159] + Group By Operator [GBY_158] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_157] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_155] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_169] + Group By Operator [GBY_168] (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_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=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_163] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_177] + Group By Operator [GBY_176] (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 + PARTITION_ONLY_SHUFFLE [RS_175] + Group By Operator [GBY_174] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_173] (rows=7200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_171] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_181] + Group By Operator [GBY_180] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=88000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_116] + Group By Operator [GBY_115] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=88000000)"] + Select Operator [SEL_114] (rows=88000001 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_139] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_179] + Group By Operator [GBY_178] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_153] + Group By Operator [GBY_152] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_151] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_148] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query47.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query47.q.out new file mode 100644 index 0000000000..a433ccd380 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query47.q.out @@ -0,0 +1,292 @@ +PREHOOK: query: explain +with v1 as( + select i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, + s_store_name, s_company_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + s_store_name, s_company_name + order by d_year, d_moy) rn + from item, store_sales, date_dim, store + where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + ( + d_year = 2000 or + ( d_year = 2000-1 and d_moy =12) or + ( d_year = 2000+1 and d_moy =1) + ) + group by i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy), + v2 as( + select v1.i_category + ,v1.d_year, v1.d_moy + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1.s_store_name = v1_lag.s_store_name and + v1.s_store_name = v1_lead.s_store_name and + v1.s_company_name = v1_lag.s_company_name and + v1.s_company_name = v1_lead.s_company_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2000 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, 3 + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with v1 as( + select i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, + s_store_name, s_company_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + s_store_name, s_company_name + order by d_year, d_moy) rn + from item, store_sales, date_dim, store + where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + ( + d_year = 2000 or + ( d_year = 2000-1 and d_moy =12) or + ( d_year = 2000+1 and d_moy =1) + ) + group by i_category, i_brand, + s_store_name, s_company_name, + d_year, d_moy), + v2 as( + select v1.i_category + ,v1.d_year, v1.d_moy + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1.s_store_name = v1_lag.s_store_name and + v1.s_store_name = v1_lead.s_store_name and + v1.s_company_name = v1_lag.s_company_name and + v1.s_company_name = v1_lead.s_company_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2000 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, 3 + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE) +Reducer 10 <- Reducer 5 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) +Reducer 3 <- Map 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 16 (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 9 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_334] + Limit [LIM_333] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_332] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_113] + Select Operator [SEL_112] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_281] (rows=463823414 width=88) + Conds:RS_109._col6, _col7, _col8, _col9, _col14=RS_319._col0, _col1, _col2, _col3, _col5(Inner),Output:["_col4","_col6","_col10","_col11","_col12","_col13","_col19"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + PartitionCols:_col0, _col1, _col2, _col3, _col5 + Select Operator [SEL_317] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_315] (rows=383325119 width=88) + predicate:rank_window_0 is not null + PTF Operator [PTF_313] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 ASC NULLS LAST, _col3 ASC NULLS LAST","partition by:":"_col1, _col0, _col4, _col5"}] + Select Operator [SEL_312] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_310] + PartitionCols:_col1, _col0, _col4, _col5 + Group By Operator [GBY_309] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_95] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col3)"],keys:_col0, _col1, _col4, _col5, _col7, _col8 + Merge Join Operator [MERGEJOIN_279] (rows=766650239 width=88) + Conds:RS_91._col2=RS_300._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col7","_col8"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_300] + PartitionCols:_col0 + Select Operator [SEL_299] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_298] (rows=1704 width=1910) + predicate:(s_company_name is not null and s_store_name is not null) + TableScan [TS_88] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_91] + PartitionCols:_col2 + Select Operator [SEL_87] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_278] (rows=696954748 width=88) + Conds:RS_84._col1=RS_292._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8","_col9"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_292] + PartitionCols:_col0 + Select Operator [SEL_291] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_290] (rows=462000 width=1436) + predicate:(i_brand is not null and i_category is not null) + TableScan [TS_78] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_84] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_277] (rows=633595212 width=88) + Conds:RS_308._col0=RS_284._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_284] + PartitionCols:_col0 + Select Operator [SEL_283] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_282] (rows=73049 width=1119) + predicate:((d_year = 2000) or (struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1))) + TableScan [TS_75] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + PartitionCols:_col0 + Select Operator [SEL_307] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_306] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_85_item_i_item_sk_min) AND DynamicValue(RS_85_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_85_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_82_date_dim_d_date_sk_min) AND DynamicValue(RS_82_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_82_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_92_store_s_store_sk_min) AND DynamicValue(RS_92_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_92_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_72] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_289] + Group By Operator [GBY_288] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_287] + Group By Operator [GBY_286] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_285] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_283] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_297] + Group By Operator [GBY_296] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + Group By Operator [GBY_294] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_293] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_291] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_305] + Group By Operator [GBY_304] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_303] + Group By Operator [GBY_302] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_301] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_299] + <-Reducer 9 [ONE_TO_ONE_EDGE] + FORWARD [RS_109] + PartitionCols:_col6, _col7, _col8, _col9, _col14 + Merge Join Operator [MERGEJOIN_280] (rows=421657640 width=88) + Conds:RS_320._col0, _col1, _col2, _col3, _col5=RS_331._col0, _col1, _col2, _col3, _col8(Inner),Output:["_col4","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + PartitionCols:_col0, _col1, _col2, _col3, _col5 + Select Operator [SEL_318] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_316] (rows=383325119 width=88) + predicate:rank_window_0 is not null + PTF Operator [PTF_314] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 ASC NULLS LAST, _col3 ASC NULLS LAST","partition by:":"_col1, _col0, _col4, _col5"}] + Please refer to the previous Select Operator [SEL_312] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_331] + PartitionCols:_col0, _col1, _col2, _col3, _col8 + Select Operator [SEL_330] (rows=31943759 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_329] (rows=31943759 width=88) + predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col7 - _col0)) / _col0) > 0.1)) ELSE (null) END + Select Operator [SEL_328] (rows=63887519 width=88) + Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_327] (rows=63887519 width=88) + predicate:((_col0 > 0) and (_col3 = 2000) and rank_window_1 is not null) + PTF Operator [PTF_326] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 ASC NULLS LAST, _col4 ASC NULLS LAST","partition by:":"_col2, _col1, _col5, _col6"}] + Select Operator [SEL_325] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_324] + PartitionCols:_col1, _col0, _col4, _col5 + Select Operator [SEL_323] (rows=383325119 width=88) + Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_322] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST, _col0 ASC NULLS FIRST, _col4 ASC NULLS FIRST, _col5 ASC NULLS FIRST, _col2 ASC NULLS FIRST","partition by:":"_col1, _col0, _col4, _col5, _col2"}] + Select Operator [SEL_321] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_311] + PartitionCols:_col1, _col0, _col4, _col5, _col2 + Please refer to the previous Group By Operator [GBY_309] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query48.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query48.q.out new file mode 100644 index 0000000000..2e3e1ac28c --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query48.q.out @@ -0,0 +1,252 @@ +PREHOOK: query: explain +select sum (ss_quantity) + from store_sales, store, customer_demographics, customer_address, date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 1998 + and + ( + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 100.00 and 150.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 50.00 and 100.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('KY', 'GA', 'NM') + and ss_net_profit between 0 and 2000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('MT', 'OR', 'IN') + and ss_net_profit between 150 and 3000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('WI', 'MO', 'WV') + and ss_net_profit between 50 and 25000 + ) + ) +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@customer_demographics +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_quantity) + from store_sales, store, customer_demographics, customer_address, date_dim + where s_store_sk = ss_store_sk + and ss_sold_date_sk = d_date_sk and d_year = 1998 + and + ( + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 100.00 and 150.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 50.00 and 100.00 + ) + or + ( + cd_demo_sk = ss_cdemo_sk + and + cd_marital_status = 'M' + and + cd_education_status = '4 yr Degree' + and + ss_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('KY', 'GA', 'NM') + and ss_net_profit between 0 and 2000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('MT', 'OR', 'IN') + and ss_net_profit between 150 and 3000 + ) + or + (ss_addr_sk = ca_address_sk + and + ca_country = 'United States' + and + ca_state in ('WI', 'MO', 'WV') + and ss_net_profit between 50 and 25000 + ) + ) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@customer_demographics +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 11 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 10 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_103] + Group By Operator [GBY_102] (rows=1 width=8) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_25] + Group By Operator [GBY_24] (rows=1 width=8) + Output:["_col0"],aggregations:["sum(_col1)"] + Merge Join Operator [MERGEJOIN_74] (rows=191662558 width=88) + Conds:RS_20._col0=RS_93._col0(Inner),Output:["_col1"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] + PartitionCols:_col0 + Select Operator [SEL_92] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_91] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_17] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_20] + PartitionCols:_col0 + Select Operator [SEL_16] (rows=174238686 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_15] (rows=174238686 width=88) + predicate:((_col10 and _col5) or (_col11 and _col6) or (_col9 and _col4)) + Merge Join Operator [MERGEJOIN_73] (rows=232318249 width=88) + Conds:RS_12._col2=RS_85._col0(Inner),Output:["_col0","_col3","_col4","_col5","_col6","_col9","_col10","_col11"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_85] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=20000000 width=1014) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_83] (rows=20000000 width=1014) + predicate:(ca_country = 'United States') + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state","ca_country"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_72] (rows=211198404 width=88) + Conds:RS_101._col1=RS_77._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_77] + PartitionCols:_col0 + Select Operator [SEL_76] (rows=465450 width=385) + Output:["_col0"] + Filter Operator [FIL_75] (rows=465450 width=385) + predicate:((cd_education_status = '4 yr Degree') and (cd_marital_status = 'M')) + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status","cd_education_status"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_101] + PartitionCols:_col1 + Select Operator [SEL_100] (rows=191998545 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_99] (rows=191998545 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_13_customer_address_ca_address_sk_min) AND DynamicValue(RS_13_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_13_customer_address_ca_address_sk_bloom_filter))) and (ss_cdemo_sk BETWEEN DynamicValue(RS_10_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_10_customer_demographics_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_10_customer_demographics_cd_demo_sk_bloom_filter))) and (ss_sales_price BETWEEN 100 AND 150 or ss_sales_price BETWEEN 50 AND 100 or ss_sales_price BETWEEN 150 AND 200) and (ss_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_cdemo_sk is not null and 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_cdemo_sk","ss_addr_sk","ss_store_sk","ss_quantity","ss_sales_price","ss_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_98] + Group By Operator [GBY_97] (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_96] + Group By Operator [GBY_95] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_94] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_92] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_82] + Group By Operator [GBY_81] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_80] + Group By Operator [GBY_79] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_78] (rows=465450 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_76] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_90] + Group By Operator [GBY_89] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_86] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_84] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query49.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query49.q.out new file mode 100644 index 0000000000..800f08ac1d --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query49.q.out @@ -0,0 +1,555 @@ +PREHOOK: query: explain +select + 'web' as channel + ,web.item + ,web.return_ratio + ,web.return_rank + ,web.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select ws.ws_item_sk as item + ,(cast(sum(coalesce(wr.wr_return_quantity,0)) as dec(15,4))/ + cast(sum(coalesce(ws.ws_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(wr.wr_return_amt,0)) as dec(15,4))/ + cast(sum(coalesce(ws.ws_net_paid,0)) as dec(15,4) )) as currency_ratio + from + web_sales ws left outer join web_returns wr + on (ws.ws_order_number = wr.wr_order_number and + ws.ws_item_sk = wr.wr_item_sk) + ,date_dim + where + wr.wr_return_amt > 10000 + and ws.ws_net_profit > 1 + and ws.ws_net_paid > 0 + and ws.ws_quantity > 0 + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by ws.ws_item_sk + ) in_web + ) web + where + ( + web.return_rank <= 10 + or + web.currency_rank <= 10 + ) + union + select + 'catalog' as channel + ,catalog.item + ,catalog.return_ratio + ,catalog.return_rank + ,catalog.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select + cs.cs_item_sk as item + ,(cast(sum(coalesce(cr.cr_return_quantity,0)) as dec(15,4))/ + cast(sum(coalesce(cs.cs_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(cr.cr_return_amount,0)) as dec(15,4))/ + cast(sum(coalesce(cs.cs_net_paid,0)) as dec(15,4) )) as currency_ratio + from + catalog_sales cs left outer join catalog_returns cr + on (cs.cs_order_number = cr.cr_order_number and + cs.cs_item_sk = cr.cr_item_sk) + ,date_dim + where + cr.cr_return_amount > 10000 + and cs.cs_net_profit > 1 + and cs.cs_net_paid > 0 + and cs.cs_quantity > 0 + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by cs.cs_item_sk + ) in_cat + ) catalog + where + ( + catalog.return_rank <= 10 + or + catalog.currency_rank <=10 + ) + union + select + 'store' as channel + ,store.item + ,store.return_ratio + ,store.return_rank + ,store.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select sts.ss_item_sk as item + ,(cast(sum(coalesce(sr.sr_return_quantity,0)) as dec(15,4))/cast(sum(coalesce(sts.ss_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(sr.sr_return_amt,0)) as dec(15,4))/cast(sum(coalesce(sts.ss_net_paid,0)) as dec(15,4) )) as currency_ratio + from + store_sales sts left outer join store_returns sr + on (sts.ss_ticket_number = sr.sr_ticket_number and sts.ss_item_sk = sr.sr_item_sk) + ,date_dim + where + sr.sr_return_amt > 10000 + and sts.ss_net_profit > 1 + and sts.ss_net_paid > 0 + and sts.ss_quantity > 0 + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by sts.ss_item_sk + ) in_store + ) store + where ( + store.return_rank <= 10 + or + store.currency_rank <= 10 + ) + order by 1,4,5 + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + 'web' as channel + ,web.item + ,web.return_ratio + ,web.return_rank + ,web.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select ws.ws_item_sk as item + ,(cast(sum(coalesce(wr.wr_return_quantity,0)) as dec(15,4))/ + cast(sum(coalesce(ws.ws_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(wr.wr_return_amt,0)) as dec(15,4))/ + cast(sum(coalesce(ws.ws_net_paid,0)) as dec(15,4) )) as currency_ratio + from + web_sales ws left outer join web_returns wr + on (ws.ws_order_number = wr.wr_order_number and + ws.ws_item_sk = wr.wr_item_sk) + ,date_dim + where + wr.wr_return_amt > 10000 + and ws.ws_net_profit > 1 + and ws.ws_net_paid > 0 + and ws.ws_quantity > 0 + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by ws.ws_item_sk + ) in_web + ) web + where + ( + web.return_rank <= 10 + or + web.currency_rank <= 10 + ) + union + select + 'catalog' as channel + ,catalog.item + ,catalog.return_ratio + ,catalog.return_rank + ,catalog.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select + cs.cs_item_sk as item + ,(cast(sum(coalesce(cr.cr_return_quantity,0)) as dec(15,4))/ + cast(sum(coalesce(cs.cs_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(cr.cr_return_amount,0)) as dec(15,4))/ + cast(sum(coalesce(cs.cs_net_paid,0)) as dec(15,4) )) as currency_ratio + from + catalog_sales cs left outer join catalog_returns cr + on (cs.cs_order_number = cr.cr_order_number and + cs.cs_item_sk = cr.cr_item_sk) + ,date_dim + where + cr.cr_return_amount > 10000 + and cs.cs_net_profit > 1 + and cs.cs_net_paid > 0 + and cs.cs_quantity > 0 + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by cs.cs_item_sk + ) in_cat + ) catalog + where + ( + catalog.return_rank <= 10 + or + catalog.currency_rank <=10 + ) + union + select + 'store' as channel + ,store.item + ,store.return_ratio + ,store.return_rank + ,store.currency_rank + from ( + select + item + ,return_ratio + ,currency_ratio + ,rank() over (order by return_ratio) as return_rank + ,rank() over (order by currency_ratio) as currency_rank + from + ( select sts.ss_item_sk as item + ,(cast(sum(coalesce(sr.sr_return_quantity,0)) as dec(15,4))/cast(sum(coalesce(sts.ss_quantity,0)) as dec(15,4) )) as return_ratio + ,(cast(sum(coalesce(sr.sr_return_amt,0)) as dec(15,4))/cast(sum(coalesce(sts.ss_net_paid,0)) as dec(15,4) )) as currency_ratio + from + store_sales sts left outer join store_returns sr + on (sts.ss_ticket_number = sr.sr_ticket_number and sts.ss_item_sk = sr.sr_item_sk) + ,date_dim + where + sr.sr_return_amt > 10000 + and sts.ss_net_profit > 1 + and sts.ss_net_paid > 0 + and sts.ss_quantity > 0 + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 12 + group by sts.ss_item_sk + ) in_store + ) store + where ( + store.return_rank <= 10 + or + store.currency_rank <= 10 + ) + order by 1,4,5 + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 13 (BROADCAST_EDGE) +Map 27 <- Reducer 19 (BROADCAST_EDGE) +Map 29 <- Reducer 25 (BROADCAST_EDGE) +Reducer 10 <- Union 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 12 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) +Reducer 15 <- Map 28 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 19 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) +Reducer 20 <- Map 12 (SIMPLE_EDGE), Map 29 (SIMPLE_EDGE) +Reducer 21 <- Map 30 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (SIMPLE_EDGE) +Reducer 24 <- Reducer 23 (SIMPLE_EDGE), Union 9 (CONTAINS) +Reducer 25 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 26 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 8 <- Union 7 (SIMPLE_EDGE), Union 9 (CONTAINS) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 11 vectorized + File Output Operator [FS_310] + Limit [LIM_309] (rows=100 width=101) + Number of rows:100 + Select Operator [SEL_308] (rows=5915494 width=101) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_307] + Select Operator [SEL_306] (rows=5915494 width=101) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_305] (rows=5915494 width=101) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Union 9 [SIMPLE_EDGE] + <-Reducer 24 [CONTAINS] vectorized + Reduce Output Operator [RS_351] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_350] (rows=11830988 width=101) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:_col0, _col3, _col4, _col1, _col2 + Top N Key Operator [TNK_349] (rows=11830988 width=101) + keys:_col0, _col3, _col4, _col1, _col2,sort order:+++++,top n:100 + Select Operator [SEL_348] (rows=8604378 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_347] (rows=8604378 width=88) + predicate:((_col0 <= 10) or (rank_window_1 <= 10)) + PTF Operator [PTF_346] (rows=12906568 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col4 AS decimal(15,4)) / CAST( _col5 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_345] (rows=12906568 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_344] + PartitionCols:0 + Select Operator [SEL_343] (rows=12906568 width=88) + Output:["rank_window_0","_col0","_col1","_col2","_col3","_col4"] + PTF Operator [PTF_342] (rows=12906568 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col1 AS decimal(15,4)) / CAST( _col2 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_341] (rows=12906568 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_340] + PartitionCols:0 + Group By Operator [GBY_339] (rows=12906568 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_89] + PartitionCols:_col0 + Group By Operator [GBY_88] (rows=25813137 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)"],keys:_col1 + Select Operator [SEL_86] (rows=25813137 width=88) + Output:["_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_237] (rows=25813137 width=88) + Conds:RS_83._col1, _col2=RS_338._col0, _col1(Inner),Output:["_col1","_col3","_col4","_col9","_col10"] + <-Map 30 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_338] + PartitionCols:_col0, _col1 + Select Operator [SEL_337] (rows=19197050 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_336] (rows=19197050 width=77) + predicate:(sr_return_amt > 10000) + TableScan [TS_77] (rows=57591150 width=77) + default@store_returns,sr,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number","sr_return_quantity","sr_return_amt"] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col1, _col2 + Merge Join Operator [MERGEJOIN_236] (rows=23466488 width=88) + Conds:RS_335._col0=RS_272._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_272] + PartitionCols:_col0 + Select Operator [SEL_267] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_266] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 2000)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_335] + PartitionCols:_col0 + Select Operator [SEL_334] (rows=21333171 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_333] (rows=21333171 width=88) + predicate:((ss_net_paid > 0) and (ss_net_profit > 1) and (ss_quantity > 0) and (ss_sold_date_sk BETWEEN DynamicValue(RS_81_date_dim_d_date_sk_min) AND DynamicValue(RS_81_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_81_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_71] (rows=575995635 width=88) + default@store_sales,sts,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ticket_number","ss_quantity","ss_net_paid","ss_net_profit"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_332] + Group By Operator [GBY_331] (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_279] + Group By Operator [GBY_276] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_273] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_267] + <-Reducer 8 [CONTAINS] vectorized + Reduce Output Operator [RS_304] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_303] (rows=11830988 width=101) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:_col0, _col3, _col4, _col1, _col2 + Top N Key Operator [TNK_302] (rows=11830988 width=101) + keys:_col0, _col3, _col4, _col1, _col2,sort order:+++++,top n:100 + Select Operator [SEL_301] (rows=3226610 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_300] (rows=3226610 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Union 7 [SIMPLE_EDGE] + <-Reducer 18 [CONTAINS] vectorized + Reduce Output Operator [RS_330] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_329] (rows=6453220 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:_col0, _col3, _col4, _col1, _col2 + Select Operator [SEL_328] (rows=4302070 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_327] (rows=4302070 width=135) + predicate:((_col0 <= 10) or (rank_window_1 <= 10)) + PTF Operator [PTF_326] (rows=6453105 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col4 AS decimal(15,4)) / CAST( _col5 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_325] (rows=6453105 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_324] + PartitionCols:0 + Select Operator [SEL_323] (rows=6453105 width=135) + Output:["rank_window_0","_col0","_col1","_col2","_col3","_col4"] + PTF Operator [PTF_322] (rows=6453105 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col1 AS decimal(15,4)) / CAST( _col2 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_321] (rows=6453105 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + PartitionCols:0 + Group By Operator [GBY_319] (rows=6453105 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col0 + Group By Operator [GBY_49] (rows=12906211 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)"],keys:_col1 + Select Operator [SEL_47] (rows=12906211 width=135) + Output:["_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_235] (rows=12906211 width=135) + Conds:RS_44._col1, _col2=RS_318._col0, _col1(Inner),Output:["_col1","_col3","_col4","_col9","_col10"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_318] + PartitionCols:_col0, _col1 + Select Operator [SEL_317] (rows=9599627 width=106) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_316] (rows=9599627 width=106) + predicate:(cr_return_amount > 10000) + TableScan [TS_38] (rows=28798881 width=106) + default@catalog_returns,cr,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_return_quantity","cr_return_amount"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col1, _col2 + Merge Join Operator [MERGEJOIN_234] (rows=11732919 width=135) + Conds:RS_315._col0=RS_270._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_270] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_267] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_315] + PartitionCols:_col0 + Select Operator [SEL_314] (rows=10666290 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_313] (rows=10666290 width=135) + predicate:((cs_net_paid > 0) and (cs_net_profit > 1) and (cs_quantity > 0) and (cs_sold_date_sk BETWEEN DynamicValue(RS_42_date_dim_d_date_sk_min) AND DynamicValue(RS_42_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_42_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_32] (rows=287989836 width=135) + default@catalog_sales,cs,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_order_number","cs_quantity","cs_net_paid","cs_net_profit"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_312] + Group By Operator [GBY_311] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_278] + Group By Operator [GBY_275] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_271] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_267] + <-Reducer 6 [CONTAINS] vectorized + Reduce Output Operator [RS_299] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_298] (rows=6453220 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],keys:_col0, _col3, _col4, _col1, _col2 + Select Operator [SEL_297] (rows=2151150 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_296] (rows=2151150 width=135) + predicate:((_col0 <= 10) or (rank_window_1 <= 10)) + PTF Operator [PTF_295] (rows=3226726 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col4 AS decimal(15,4)) / CAST( _col5 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_294] (rows=3226726 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_293] + PartitionCols:0 + Select Operator [SEL_292] (rows=3226726 width=135) + Output:["rank_window_0","_col0","_col1","_col2","_col3","_col4"] + PTF Operator [PTF_291] (rows=3226726 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"(CAST( _col1 AS decimal(15,4)) / CAST( _col2 AS decimal(15,4))) ASC NULLS LAST","partition by:":"0"}] + Select Operator [SEL_290] (rows=3226726 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_289] + PartitionCols:0 + Group By Operator [GBY_288] (rows=3226726 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0 + Group By Operator [GBY_17] (rows=6453452 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)"],keys:_col1 + Select Operator [SEL_15] (rows=6453452 width=135) + Output:["_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_233] (rows=6453452 width=135) + Conds:RS_12._col1, _col2=RS_287._col0, _col1(Inner),Output:["_col1","_col3","_col4","_col9","_col10"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_287] + PartitionCols:_col0, _col1 + Select Operator [SEL_286] (rows=4799489 width=92) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_285] (rows=4799489 width=92) + predicate:(wr_return_amt > 10000) + TableScan [TS_6] (rows=14398467 width=92) + default@web_returns,wr,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number","wr_return_quantity","wr_return_amt"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1, _col2 + Merge Join Operator [MERGEJOIN_232] (rows=5866775 width=135) + Conds:RS_284._col0=RS_268._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_268] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_267] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_284] + PartitionCols:_col0 + Select Operator [SEL_283] (rows=5333432 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_282] (rows=5333432 width=135) + predicate:((ws_net_paid > 0) and (ws_net_profit > 1) and (ws_quantity > 0) and (ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,ws,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_order_number","ws_quantity","ws_net_paid","ws_net_profit"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_281] + Group By Operator [GBY_280] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_277] + Group By Operator [GBY_274] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_269] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_267] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query5.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query5.q.out new file mode 100644 index 0000000000..60907b56db --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query5.q.out @@ -0,0 +1,595 @@ +PREHOOK: query: explain +with ssr as + (select s_store_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ss_store_sk as store_sk, + ss_sold_date_sk as date_sk, + ss_ext_sales_price as sales_price, + ss_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from store_sales + union all + select sr_store_sk as store_sk, + sr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + sr_return_amt as return_amt, + sr_net_loss as net_loss + from store_returns + ) salesreturns, + date_dim, + store + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and store_sk = s_store_sk + group by s_store_id) + , + csr as + (select cp_catalog_page_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select cs_catalog_page_sk as page_sk, + cs_sold_date_sk as date_sk, + cs_ext_sales_price as sales_price, + cs_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from catalog_sales + union all + select cr_catalog_page_sk as page_sk, + cr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + cr_return_amount as return_amt, + cr_net_loss as net_loss + from catalog_returns + ) salesreturns, + date_dim, + catalog_page + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and page_sk = cp_catalog_page_sk + group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ws_web_site_sk as wsr_web_site_sk, + ws_sold_date_sk as date_sk, + ws_ext_sales_price as sales_price, + ws_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from web_sales + union all + select ws_web_site_sk as wsr_web_site_sk, + wr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + wr_return_amt as return_amt, + wr_net_loss as net_loss + from web_returns left outer join web_sales on + ( wr_item_sk = ws_item_sk + and wr_order_number = ws_order_number) + ) salesreturns, + date_dim, + web_site + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and wsr_web_site_sk = web_site_sk + group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , 'store' || s_store_id as id + , sales + , returns + , (profit - profit_loss) as profit + from ssr + union all + select 'catalog channel' as channel + , 'catalog_page' || cp_catalog_page_id as id + , sales + , returns + , (profit - profit_loss) as profit + from csr + union all + select 'web channel' as channel + , 'web_site' || web_site_id as id + , sales + , returns + , (profit - profit_loss) as profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_page +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Input: default@web_site +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ssr as + (select s_store_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ss_store_sk as store_sk, + ss_sold_date_sk as date_sk, + ss_ext_sales_price as sales_price, + ss_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from store_sales + union all + select sr_store_sk as store_sk, + sr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + sr_return_amt as return_amt, + sr_net_loss as net_loss + from store_returns + ) salesreturns, + date_dim, + store + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and store_sk = s_store_sk + group by s_store_id) + , + csr as + (select cp_catalog_page_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select cs_catalog_page_sk as page_sk, + cs_sold_date_sk as date_sk, + cs_ext_sales_price as sales_price, + cs_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from catalog_sales + union all + select cr_catalog_page_sk as page_sk, + cr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + cr_return_amount as return_amt, + cr_net_loss as net_loss + from catalog_returns + ) salesreturns, + date_dim, + catalog_page + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and page_sk = cp_catalog_page_sk + group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(sales_price) as sales, + sum(profit) as profit, + sum(return_amt) as returns, + sum(net_loss) as profit_loss + from + ( select ws_web_site_sk as wsr_web_site_sk, + ws_sold_date_sk as date_sk, + ws_ext_sales_price as sales_price, + ws_net_profit as profit, + cast(0 as decimal(7,2)) as return_amt, + cast(0 as decimal(7,2)) as net_loss + from web_sales + union all + select ws_web_site_sk as wsr_web_site_sk, + wr_returned_date_sk as date_sk, + cast(0 as decimal(7,2)) as sales_price, + cast(0 as decimal(7,2)) as profit, + wr_return_amt as return_amt, + wr_net_loss as net_loss + from web_returns left outer join web_sales on + ( wr_item_sk = ws_item_sk + and wr_order_number = ws_order_number) + ) salesreturns, + date_dim, + web_site + where date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 14 days) + and wsr_web_site_sk = web_site_sk + group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , 'store' || s_store_id as id + , sales + , returns + , (profit - profit_loss) as profit + from ssr + union all + select 'catalog channel' as channel + , 'catalog_page' || cp_catalog_page_id as id + , sales + , returns + , (profit - profit_loss) as profit + from csr + union all + select 'web channel' as channel + , 'web_site' || web_site_id as id + , sales + , returns + , (profit - profit_loss) as profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_page +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Input: default@web_site +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Union 2 (CONTAINS) +Map 22 <- Reducer 15 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE), Union 23 (CONTAINS) +Map 24 <- Union 23 (CONTAINS) +Map 27 <- Reducer 19 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE), Union 28 (CONTAINS) +Map 29 <- Reducer 32 (BROADCAST_EDGE), Reducer 33 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Map 9 <- Union 2 (CONTAINS) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 10 (SIMPLE_EDGE), Union 23 (SIMPLE_EDGE) +Reducer 13 <- Map 25 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 15 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 10 (SIMPLE_EDGE), Union 28 (SIMPLE_EDGE) +Reducer 17 <- Map 34 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 19 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 25 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 10 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE) +Reducer 30 <- Map 29 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE), Union 28 (CONTAINS) +Reducer 32 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 34 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 20 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 7 <- Union 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_305] + Limit [LIM_304] (rows=100 width=110) + Number of rows:100 + Select Operator [SEL_303] (rows=1136898901 width=110) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_302] + Select Operator [SEL_301] (rows=1136898901 width=110) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_300] (rows=1136898901 width=110) + Output:["_col0","_col1","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 6 [SIMPLE_EDGE] + <-Reducer 14 [CONTAINS] vectorized + Reduce Output Operator [RS_318] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_317] (rows=2273797803 width=110) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_316] (rows=757932601 width=110) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_315] (rows=191657181 width=132) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_314] (rows=191657181 width=132) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col0 + Group By Operator [GBY_44] (rows=383314363 width=132) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col4)","sum(_col3)","sum(_col5)"],keys:_col8 + Merge Join Operator [MERGEJOIN_219] (rows=383314363 width=132) + Conds:RS_40._col0=RS_310._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col8"] + <-Map 25 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_310] + PartitionCols:_col0 + Select Operator [SEL_309] (rows=46000 width=460) + Output:["_col0","_col1"] + TableScan [TS_35] (rows=46000 width=460) + default@catalog_page,catalog_page,Tbl:COMPLETE,Col:NONE,Output:["cp_catalog_page_sk","cp_catalog_page_id"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_218] (rows=348467596 width=132) + Conds:Union 23._col1=RS_273._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_273] + PartitionCols:_col0 + Select Operator [SEL_270] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_269] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-08-04 00:00:00' AND TIMESTAMP'1998-08-18 00:00:00' + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Union 23 [SIMPLE_EDGE] + <-Map 22 [CONTAINS] vectorized + Reduce Output Operator [RS_335] + PartitionCols:_col1 + Select Operator [SEL_334] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_333] (rows=287989836 width=135) + predicate:((cs_catalog_page_sk BETWEEN DynamicValue(RS_41_catalog_page_cp_catalog_page_sk_min) AND DynamicValue(RS_41_catalog_page_cp_catalog_page_sk_max) and in_bloom_filter(cs_catalog_page_sk, DynamicValue(RS_41_catalog_page_cp_catalog_page_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_38_date_dim_d_date_sk_min) AND DynamicValue(RS_38_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_38_date_dim_d_date_sk_bloom_filter))) and cs_catalog_page_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_250] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_catalog_page_sk","cs_ext_sales_price","cs_net_profit"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_330] + Group By Operator [GBY_329] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 10 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_281] + Group By Operator [GBY_278] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_274] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_270] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_332] + Group By Operator [GBY_331] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_313] + Group By Operator [GBY_312] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_311] (rows=46000 width=460) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_309] + <-Map 24 [CONTAINS] vectorized + Reduce Output Operator [RS_338] + PartitionCols:_col1 + Select Operator [SEL_337] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_336] (rows=28798881 width=106) + predicate:(cr_catalog_page_sk is not null and cr_returned_date_sk is not null) + TableScan [TS_255] (rows=28798881 width=106) + Output:["cr_returned_date_sk","cr_catalog_page_sk","cr_return_amount","cr_net_loss"] + <-Reducer 18 [CONTAINS] vectorized + Reduce Output Operator [RS_328] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_327] (rows=2273797803 width=110) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_326] (rows=757932601 width=110) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_325] (rows=182955399 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_324] (rows=182955399 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col0 + Group By Operator [GBY_76] (rows=365910798 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col4)","sum(_col3)","sum(_col5)"],keys:_col8 + Merge Join Operator [MERGEJOIN_221] (rows=365910798 width=135) + Conds:RS_72._col0=RS_320._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col8"] + <-Map 34 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_320] + PartitionCols:_col0 + Select Operator [SEL_319] (rows=84 width=1850) + Output:["_col0","_col1"] + TableScan [TS_67] (rows=84 width=1850) + default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_site_id"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_220] (rows=332646173 width=135) + Conds:Union 28._col1=RS_275._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_275] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_270] + <-Union 28 [SIMPLE_EDGE] + <-Map 27 [CONTAINS] vectorized + Reduce Output Operator [RS_346] + PartitionCols:_col1 + Select Operator [SEL_345] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_344] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_73_web_site_web_site_sk_min) AND DynamicValue(RS_73_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_73_web_site_web_site_sk_bloom_filter))) and ws_sold_date_sk is not null and ws_web_site_sk is not null) + TableScan [TS_260] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_web_site_sk","ws_ext_sales_price","ws_net_profit"] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_342] + Group By Operator [GBY_341] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_323] + Group By Operator [GBY_322] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_321] (rows=84 width=1850) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_319] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_340] + Group By Operator [GBY_339] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 10 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_282] + Group By Operator [GBY_279] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_276] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_270] + <-Reducer 30 [CONTAINS] + Reduce Output Operator [RS_268] + PartitionCols:_col1 + Select Operator [SEL_266] (rows=158402938 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_265] (rows=158402938 width=135) + Conds:RS_362._col0, _col2=RS_349._col1, _col2(Inner),Output:["_col1","_col3","_col6","_col7"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_349] + PartitionCols:_col1, _col2 + Select Operator [SEL_348] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_347] (rows=14398467 width=92) + predicate:wr_returned_date_sk is not null + TableScan [TS_55] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_item_sk","wr_order_number","wr_return_amt","wr_net_loss"] + <-Map 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_362] + PartitionCols:_col0, _col2 + Select Operator [SEL_361] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_360] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_59_web_returns_wr_item_sk_min) AND DynamicValue(RS_59_web_returns_wr_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_59_web_returns_wr_item_sk_bloom_filter))) and (ws_order_number BETWEEN DynamicValue(RS_59_web_returns_wr_order_number_min) AND DynamicValue(RS_59_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_59_web_returns_wr_order_number_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_73_web_site_web_site_sk_min) AND DynamicValue(RS_73_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_73_web_site_web_site_sk_bloom_filter))) and ws_web_site_sk is not null) + TableScan [TS_52] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_item_sk","ws_web_site_sk","ws_order_number"] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_343] + Please refer to the previous Group By Operator [GBY_341] + <-Reducer 32 [BROADCAST_EDGE] vectorized + BROADCAST [RS_357] + Group By Operator [GBY_356] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=14398467)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_354] + Group By Operator [GBY_352] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=14398467)"] + Select Operator [SEL_350] (rows=14398467 width=92) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_348] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_359] + Group By Operator [GBY_358] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=14398467)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_355] + Group By Operator [GBY_353] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=14398467)"] + Select Operator [SEL_351] (rows=14398467 width=92) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_348] + <-Reducer 5 [CONTAINS] vectorized + Reduce Output Operator [RS_299] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_298] (rows=2273797803 width=110) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_297] (rows=757932601 width=110) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_296] (rows=383320021 width=87) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_295] (rows=383320021 width=87) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Group By Operator [GBY_20] (rows=766640042 width=87) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col2)","sum(_col4)","sum(_col3)","sum(_col5)"],keys:_col8 + Merge Join Operator [MERGEJOIN_217] (rows=766640042 width=87) + Conds:RS_16._col0=RS_286._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col8"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_286] + PartitionCols:_col0 + Select Operator [SEL_285] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_11] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_216] (rows=696945478 width=87) + Conds:Union 2._col1=RS_271._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_271] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_270] + <-Union 2 [SIMPLE_EDGE] + <-Map 1 [CONTAINS] vectorized + Reduce Output Operator [RS_294] + PartitionCols:_col1 + Select Operator [SEL_293] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_292] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_14_date_dim_d_date_sk_min) AND DynamicValue(RS_14_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_14_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_17_store_s_store_sk_min) AND DynamicValue(RS_17_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_17_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_222] (rows=575995635 width=88) + Output:["ss_sold_date_sk","ss_store_sk","ss_ext_sales_price","ss_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_284] + Group By Operator [GBY_283] (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_280] + Group By Operator [GBY_277] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_272] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_270] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_291] + Group By Operator [GBY_290] (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_289] + Group By Operator [GBY_288] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_287] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_285] + <-Map 9 [CONTAINS] vectorized + Reduce Output Operator [RS_308] + PartitionCols:_col1 + Select Operator [SEL_307] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_306] (rows=57591150 width=77) + predicate:(sr_returned_date_sk is not null and sr_store_sk is not null) + TableScan [TS_233] (rows=57591150 width=77) + Output:["sr_returned_date_sk","sr_store_sk","sr_return_amt","sr_net_loss"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query50.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query50.q.out new file mode 100644 index 0000000000..7d7fee1153 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query50.q.out @@ -0,0 +1,254 @@ +PREHOOK: query: explain +select + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk <= 30 ) then 1 else 0 end) as `30 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 30) and + (sr_returned_date_sk - ss_sold_date_sk <= 60) then 1 else 0 end ) as `31-60 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 60) and + (sr_returned_date_sk - ss_sold_date_sk <= 90) then 1 else 0 end) as `61-90 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 90) and + (sr_returned_date_sk - ss_sold_date_sk <= 120) then 1 else 0 end) as `91-120 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 120) then 1 else 0 end) as `>120 days` +from + store_sales + ,store_returns + ,store + ,date_dim d1 + ,date_dim d2 +where + d2.d_year = 2000 +and d2.d_moy = 9 +and ss_ticket_number = sr_ticket_number +and ss_item_sk = sr_item_sk +and ss_sold_date_sk = d1.d_date_sk +and sr_returned_date_sk = d2.d_date_sk +and ss_customer_sk = sr_customer_sk +and ss_store_sk = s_store_sk +group by + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +order by s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk <= 30 ) then 1 else 0 end) as `30 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 30) and + (sr_returned_date_sk - ss_sold_date_sk <= 60) then 1 else 0 end ) as `31-60 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 60) and + (sr_returned_date_sk - ss_sold_date_sk <= 90) then 1 else 0 end) as `61-90 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 90) and + (sr_returned_date_sk - ss_sold_date_sk <= 120) then 1 else 0 end) as `91-120 days` + ,sum(case when (sr_returned_date_sk - ss_sold_date_sk > 120) then 1 else 0 end) as `>120 days` +from + store_sales + ,store_returns + ,store + ,date_dim d1 + ,date_dim d2 +where + d2.d_year = 2000 +and d2.d_moy = 9 +and ss_ticket_number = sr_ticket_number +and ss_item_sk = sr_item_sk +and ss_sold_date_sk = d1.d_date_sk +and sr_returned_date_sk = d2.d_date_sk +and ss_customer_sk = sr_customer_sk +and ss_store_sk = s_store_sk +group by + s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +order by s_store_name + ,s_company_id + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 12 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 10 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_132] + Limit [LIM_131] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_130] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_129] + Group By Operator [GBY_128] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 + Group By Operator [GBY_22] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"],aggregations:["sum(_col11)","sum(_col12)","sum(_col13)","sum(_col14)","sum(_col15)"],keys:_col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 + Top N Key Operator [TNK_43] (rows=766650239 width=88) + keys:_col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10,sort order:++++++++++,top n:100 + Merge Join Operator [MERGEJOIN_96] (rows=766650239 width=88) + Conds:RS_18._col0=RS_127._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col0 + Select Operator [SEL_126] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_125] (rows=18262 width=1119) + predicate:((d_moy = 9) and (d_year = 2000)) + TableScan [TS_15] (rows=73049 width=1119) + default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0 + Select Operator [SEL_14] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + Merge Join Operator [MERGEJOIN_95] (rows=696954748 width=88) + Conds:RS_11._col3=RS_116._col0(Inner),Output:["_col0","_col5","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_116] + PartitionCols:_col0 + Select Operator [SEL_115] (rows=1704 width=1910) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + TableScan [TS_6] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_company_id","s_street_number","s_street_name","s_street_type","s_suite_number","s_city","s_county","s_state","s_zip"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_94] (rows=633595212 width=88) + Conds:RS_124._col1, _col2, _col4=RS_99._col1, _col2, _col3(Inner),Output:["_col0","_col3","_col5"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_99] + PartitionCols:_col1, _col2, _col3 + Select Operator [SEL_98] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_97] (rows=57591150 width=77) + predicate:(sr_customer_sk is not null and sr_returned_date_sk is not null) + TableScan [TS_3] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_customer_sk","sr_ticket_number"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col1, _col2, _col4 + Select Operator [SEL_123] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_122] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_9_store_returns_sr_customer_sk_min) AND DynamicValue(RS_9_store_returns_sr_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_9_store_returns_sr_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_9_store_returns_sr_item_sk_min) AND DynamicValue(RS_9_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_9_store_returns_sr_item_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_12_store_s_store_sk_min) AND DynamicValue(RS_12_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_12_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_9_store_returns_sr_ticket_number_min) AND DynamicValue(RS_9_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_9_store_returns_sr_ticket_number_bloom_filter))) and ss_customer_sk is not null and 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_item_sk","ss_customer_sk","ss_store_sk","ss_ticket_number"] + <-Reducer 10 [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=57591152)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_108] + Group By Operator [GBY_105] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_102] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_98] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_121] + Group By Operator [GBY_120] (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_119] + Group By Operator [GBY_118] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_117] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_115] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_110] + Group By Operator [GBY_109] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_106] + Group By Operator [GBY_103] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_100] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_98] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_112] + Group By Operator [GBY_111] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_107] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_101] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_98] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query51.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query51.q.out new file mode 100644 index 0000000000..540c167b28 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query51.q.out @@ -0,0 +1,222 @@ +PREHOOK: query: explain +WITH web_v1 as ( +select + ws_item_sk item_sk, d_date, + sum(sum(ws_sales_price)) + over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from web_sales + ,date_dim +where ws_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ws_item_sk is not NULL +group by ws_item_sk, d_date), +store_v1 as ( +select + ss_item_sk item_sk, d_date, + sum(sum(ss_sales_price)) + over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from store_sales + ,date_dim +where ss_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ss_item_sk is not NULL +group by ss_item_sk, d_date) + select * +from (select item_sk + ,d_date + ,web_sales + ,store_sales + ,max(web_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative + ,max(store_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative + from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk + ,case when web.d_date is not null then web.d_date else store.d_date end d_date + ,web.cume_sales web_sales + ,store.cume_sales store_sales + from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk + and web.d_date = store.d_date) + )x )y +where web_cumulative > store_cumulative +order by item_sk + ,d_date +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +WITH web_v1 as ( +select + ws_item_sk item_sk, d_date, + sum(sum(ws_sales_price)) + over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from web_sales + ,date_dim +where ws_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ws_item_sk is not NULL +group by ws_item_sk, d_date), +store_v1 as ( +select + ss_item_sk item_sk, d_date, + sum(sum(ss_sales_price)) + over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales +from store_sales + ,date_dim +where ss_sold_date_sk=d_date_sk + and d_month_seq between 1212 and 1212+11 + and ss_item_sk is not NULL +group by ss_item_sk, d_date) + select * +from (select item_sk + ,d_date + ,web_sales + ,store_sales + ,max(web_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative + ,max(store_sales) + over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative + from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk + ,case when web.d_date is not null then web.d_date else store.d_date end d_date + ,web.cume_sales web_sales + ,store.cume_sales store_sales + from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk + and web.d_date = store.d_date) + )x )y +where web_cumulative > store_cumulative +order by item_sk + ,d_date +limit 100 +POSTHOOK: type: QUERY +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 1 <- Reducer 8 (BROADCAST_EDGE) +Map 12 <- Reducer 11 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- 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 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 12 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_117] + Limit [LIM_116] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_115] (rows=116159124 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_114] + Select Operator [SEL_113] (rows=116159124 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_112] (rows=116159124 width=88) + predicate:(max_window_0 > max_window_1) + PTF Operator [PTF_111] (rows=348477374 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"CASE WHEN (_col4 is not null) THEN (_col4) ELSE (_col1) END ASC NULLS LAST","partition by:":"CASE WHEN (_col3 is not null) THEN (_col3) ELSE (_col0) END"}] + Select Operator [SEL_110] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:CASE WHEN (_col3 is not null) THEN (_col3) ELSE (_col0) END + Merge Join Operator [MERGEJOIN_87] (rows=348477374 width=88) + Conds:RS_40._col0, _col1=RS_41._col0, _col1(Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0, _col1 + Select Operator [SEL_37] (rows=79201469 width=135) + Output:["_col0","_col1","_col2"] + PTF Operator [PTF_36] (rows=79201469 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST","partition by:":"_col0"}] + Group By Operator [GBY_32] (rows=79201469 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Group By Operator [GBY_30] (rows=158402938 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col1, _col4 + Merge Join Operator [MERGEJOIN_86] (rows=158402938 width=135) + Conds:RS_108._col0=RS_92._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_92] + PartitionCols:_col0 + Select Operator [SEL_89] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_88] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date","d_month_seq"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_106] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_27_date_dim_d_date_sk_min) AND DynamicValue(RS_27_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_27_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_20] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_sales_price"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_97] + Group By Operator [GBY_95] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_93] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_89] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0, _col1 + Select Operator [SEL_17] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"] + PTF Operator [PTF_16] (rows=316797606 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST","partition by:":"_col0"}] + Group By Operator [GBY_12] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0 + Group By Operator [GBY_10] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col1, _col4 + Merge Join Operator [MERGEJOIN_85] (rows=633595212 width=88) + Conds:RS_102._col0=RS_90._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_90] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_89] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_100] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_sales_price"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_99] + Group By Operator [GBY_98] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_96] + Group By Operator [GBY_94] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_91] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_89] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query52.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query52.q.out new file mode 100644 index 0000000000..e5aae29afd --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query52.q.out @@ -0,0 +1,139 @@ +PREHOOK: query: explain +select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) ext_price + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=1998 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,ext_price desc + ,brand_id +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select dt.d_year + ,item.i_brand_id brand_id + ,item.i_brand brand + ,sum(ss_ext_sales_price) ext_price + from date_dim dt + ,store_sales + ,item + where dt.d_date_sk = store_sales.ss_sold_date_sk + and store_sales.ss_item_sk = item.i_item_sk + and item.i_manager_id = 1 + and dt.d_moy=12 + and dt.d_year=1998 + group by dt.d_year + ,item.i_brand + ,item.i_brand_id + order by dt.d_year + ,ext_price desc + ,brand_id +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_79] + Select Operator [SEL_78] (rows=100 width=88) + Output:["_col0","_col1","_col2","_col3"] + Limit [LIM_77] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_76] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_75] + Group By Operator [GBY_74] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col5, _col6 + Merge Join Operator [MERGEJOIN_54] (rows=696954748 width=88) + Conds:RS_12._col1=RS_65._col0(Inner),Output:["_col2","_col5","_col6"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=231000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_63] (rows=231000 width=1436) + predicate:(i_manager_id = 1) + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_brand","i_manager_id"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_53] (rows=633595212 width=88) + Conds:RS_73._col0=RS_57._col0(Inner),Output:["_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_57] + PartitionCols:_col0 + Select Operator [SEL_56] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_55] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 1998)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,dt,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_72] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_71] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_dt_d_date_sk_min) AND DynamicValue(RS_10_dt_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_dt_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_ext_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_62] + Group By Operator [GBY_61] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_60] + Group By Operator [GBY_59] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_58] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_56] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_70] + Group By Operator [GBY_69] (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_68] + Group By Operator [GBY_67] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_66] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_64] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query53.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query53.q.out new file mode 100644 index 0000000000..ef769803d9 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query53.q.out @@ -0,0 +1,161 @@ +PREHOOK: query: explain +select * from +(select i_manufact_id, +sum(ss_sales_price) sum_sales, +avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and +ss_sold_date_sk = d_date_sk and +ss_store_sk = s_store_sk and +d_month_seq in (1212,1212+1,1212+2,1212+3,1212+4,1212+5,1212+6,1212+7,1212+8,1212+9,1212+10,1212+11) and +((i_category in ('Books','Children','Electronics') and +i_class in ('personal','portable','reference','self-help') and +i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) +or(i_category in ('Women','Music','Men') and +i_class in ('accessories','classical','fragrances','pants') and +i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manufact_id, d_qoy ) tmp1 +where case when avg_quarterly_sales > 0 + then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales + else null end > 0.1 +order by avg_quarterly_sales, + sum_sales, + i_manufact_id +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * from +(select i_manufact_id, +sum(ss_sales_price) sum_sales, +avg(sum(ss_sales_price)) over (partition by i_manufact_id) avg_quarterly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and +ss_sold_date_sk = d_date_sk and +ss_store_sk = s_store_sk and +d_month_seq in (1212,1212+1,1212+2,1212+3,1212+4,1212+5,1212+6,1212+7,1212+8,1212+9,1212+10,1212+11) and +((i_category in ('Books','Children','Electronics') and +i_class in ('personal','portable','reference','self-help') and +i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) +or(i_category in ('Women','Music','Men') and +i_class in ('accessories','classical','fragrances','pants') and +i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manufact_id, d_qoy ) tmp1 +where case when avg_quarterly_sales > 0 + then abs (sum_sales - avg_quarterly_sales)/ avg_quarterly_sales + else null end > 0.1 +order by avg_quarterly_sales, + sum_sales, + i_manufact_id +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_86] + Limit [LIM_85] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_84] (rows=174238687 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_27] + Select Operator [SEL_24] (rows=174238687 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_36] (rows=174238687 width=88) + predicate:CASE WHEN ((avg_window_0 > 0)) THEN (((abs((_col2 - avg_window_0)) / avg_window_0) > 0.1)) ELSE (null) END + Select Operator [SEL_23] (rows=348477374 width=88) + Output:["avg_window_0","_col0","_col2"] + PTF Operator [PTF_22] (rows=348477374 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS FIRST","partition by:":"_col0"}] + Select Operator [SEL_19] (rows=348477374 width=88) + Output:["_col0","_col2"] + Group By Operator [GBY_18] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col4, _col6 + Merge Join Operator [MERGEJOIN_62] (rows=696954748 width=88) + Conds:RS_12._col0=RS_73._col0(Inner),Output:["_col2","_col4","_col6"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_72] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_71] (rows=73049 width=1119) + predicate:(d_month_seq) IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq","d_qoy"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_61] (rows=633595212 width=88) + Conds:RS_81._col1=RS_65._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=462000 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_63] (rows=462000 width=1436) + predicate:(((i_category) IN ('Books', 'Children', 'Electronics') and (i_class) IN ('personal', 'portable', 'reference', 'self-help') and (i_brand) IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) or ((i_category) IN ('Women', 'Music', 'Men') and (i_class) IN ('accessories', 'classical', 'fragrances', 'pants') and (i_brand) IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1'))) + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_class","i_category","i_manufact_id"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_81] + PartitionCols:_col1 + Select Operator [SEL_80] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_79] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_10_item_i_item_sk_min) AND DynamicValue(RS_10_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_10_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_date_dim_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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_70] + Group By Operator [GBY_69] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_68] + Group By Operator [GBY_67] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_66] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_64] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_78] + Group By Operator [GBY_77] (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_76] + Group By Operator [GBY_75] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_74] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_72] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query54.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query54.q.out new file mode 100644 index 0000000000..bbab0e55b5 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query54.q.out @@ -0,0 +1,456 @@ +Warning: Shuffle Join MERGEJOIN[277][tables = [$hdt$_1, $hdt$_2, $hdt$_3, $hdt$_0, $hdt$_4]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[279][tables = [$hdt$_1, $hdt$_2, $hdt$_3, $hdt$_0, $hdt$_4, $hdt$_5, $hdt$_6]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[280][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 8' is a cross product +Warning: Shuffle Join MERGEJOIN[281][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 9' is a cross product +PREHOOK: query: explain +with my_customers as ( + select distinct c_customer_sk + , c_current_addr_sk + from + ( select cs_sold_date_sk sold_date_sk, + cs_bill_customer_sk customer_sk, + cs_item_sk item_sk + from catalog_sales + union all + select ws_sold_date_sk sold_date_sk, + ws_bill_customer_sk customer_sk, + ws_item_sk item_sk + from web_sales + ) cs_or_ws_sales, + item, + date_dim, + customer + where sold_date_sk = d_date_sk + and item_sk = i_item_sk + and i_category = 'Jewelry' + and i_class = 'consignment' + and c_customer_sk = cs_or_ws_sales.customer_sk + and d_moy = 3 + and d_year = 1999 + ) + , my_revenue as ( + select c_customer_sk, + sum(ss_ext_sales_price) as revenue + from my_customers, + store_sales, + customer_address, + store, + date_dim + where c_current_addr_sk = ca_address_sk + and ca_county = s_county + and ca_state = s_state + and ss_sold_date_sk = d_date_sk + and c_customer_sk = ss_customer_sk + and d_month_seq between (select distinct d_month_seq+1 + from date_dim where d_year = 1999 and d_moy = 3) + and (select distinct d_month_seq+3 + from date_dim where d_year = 1999 and d_moy = 3) + group by c_customer_sk + ) + , segments as + (select cast((revenue/50) as int) as segment + from my_revenue + ) + select segment, count(*) as num_customers, segment*50 as segment_base + from segments + group by segment + order by segment, num_customers + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with my_customers as ( + select distinct c_customer_sk + , c_current_addr_sk + from + ( select cs_sold_date_sk sold_date_sk, + cs_bill_customer_sk customer_sk, + cs_item_sk item_sk + from catalog_sales + union all + select ws_sold_date_sk sold_date_sk, + ws_bill_customer_sk customer_sk, + ws_item_sk item_sk + from web_sales + ) cs_or_ws_sales, + item, + date_dim, + customer + where sold_date_sk = d_date_sk + and item_sk = i_item_sk + and i_category = 'Jewelry' + and i_class = 'consignment' + and c_customer_sk = cs_or_ws_sales.customer_sk + and d_moy = 3 + and d_year = 1999 + ) + , my_revenue as ( + select c_customer_sk, + sum(ss_ext_sales_price) as revenue + from my_customers, + store_sales, + customer_address, + store, + date_dim + where c_current_addr_sk = ca_address_sk + and ca_county = s_county + and ca_state = s_state + and ss_sold_date_sk = d_date_sk + and c_customer_sk = ss_customer_sk + and d_month_seq between (select distinct d_month_seq+1 + from date_dim where d_year = 1999 and d_moy = 3) + and (select distinct d_month_seq+3 + from date_dim where d_year = 1999 and d_moy = 3) + group by c_customer_sk + ) + , segments as + (select cast((revenue/50) as int) as segment + from my_revenue + ) + select segment, count(*) as num_customers, segment*50 as segment_base + from segments + group by segment + order by segment, num_customers + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +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 18 <- Reducer 17 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE), Union 19 (CONTAINS) +Map 22 <- Reducer 24 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE), Union 19 (CONTAINS) +Map 27 <- Reducer 17 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 20 <- Map 23 (SIMPLE_EDGE), Union 19 (SIMPLE_EDGE) +Reducer 21 <- Map 25 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 25 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (SIMPLE_EDGE) +Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Reducer 29 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Map 28 (SIMPLE_EDGE) +Reducer 32 <- Reducer 31 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 28 (SIMPLE_EDGE) +Reducer 35 <- Map 34 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 27 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 30 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 34 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 32 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 33 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 12 vectorized + File Output Operator [FS_370] + Limit [LIM_369] (rows=100 width=158) + Number of rows:100 + Select Operator [SEL_368] (rows=1614130953450400 width=158) + Output:["_col0","_col1","_col2"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_367] + Select Operator [SEL_366] (rows=1614130953450400 width=158) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_365] (rows=1614130953450400 width=158) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_364] + PartitionCols:_col0 + Group By Operator [GBY_363] (rows=3228261906900801 width=158) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col0 + Select Operator [SEL_362] (rows=3228261906900801 width=158) + Output:["_col0"] + Group By Operator [GBY_361] (rows=3228261906900801 width=158) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_118] + PartitionCols:_col0 + Group By Operator [GBY_117] (rows=6456523813801603 width=158) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_116] (rows=6456523813801603 width=158) + Output:["_col0","_col1"] + Filter Operator [FIL_115] (rows=6456523813801603 width=158) + predicate:_col2 BETWEEN _col3 AND _col4 + Merge Join Operator [MERGEJOIN_281] (rows=58108714324214428 width=158) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_360] + Group By Operator [GBY_359] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_341] + PartitionCols:_col0 + Group By Operator [GBY_338] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_335] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_332] (rows=18262 width=1119) + predicate:((d_moy = 3) and (d_year = 1999)) + TableScan [TS_41] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_112] + Select Operator [SEL_103] (rows=6363893803988 width=1226) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_280] (rows=6363893803988 width=1226) + Conds:(Inner),Output:["_col0","_col4","_col11","_col13"] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_358] + Select Operator [SEL_357] (rows=1 width=8) + Filter Operator [FIL_356] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_355] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_354] + Group By Operator [GBY_353] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_352] (rows=9131 width=1119) + Group By Operator [GBY_351] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_340] + PartitionCols:_col0 + Group By Operator [GBY_337] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_334] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Filter Operator [FIL_332] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_100] + Select Operator [SEL_84] (rows=6363893803988 width=1217) + Output:["_col0","_col4","_col11","_col13"] + Merge Join Operator [MERGEJOIN_279] (rows=6363893803988 width=1217) + Conds:(Left Outer),Output:["_col5","_col9","_col12","_col13"] + <-Reducer 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_344] + Group By Operator [GBY_342] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_339] + PartitionCols:_col0 + Group By Operator [GBY_336] (rows=18262 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_333] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Filter Operator [FIL_332] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_81] + Merge Join Operator [MERGEJOIN_278] (rows=696954748 width=97) + Conds:RS_78._col7=RS_323._col0(Inner),Output:["_col5","_col9","_col12"] + <-Map 34 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col0 + Select Operator [SEL_322] (rows=73049 width=1119) + Output:["_col0","_col1"] + TableScan [TS_56] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col7 + Merge Join Operator [MERGEJOIN_277] (rows=633595212 width=97) + Conds:(Inner),Output:["_col5","_col7","_col9"] + <-Reducer 30 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_350] + Select Operator [SEL_349] (rows=1 width=8) + Filter Operator [FIL_348] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_347] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_346] + Group By Operator [GBY_345] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_343] (rows=9131 width=1119) + Please refer to the previous Group By Operator [GBY_342] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_75] + Merge Join Operator [MERGEJOIN_276] (rows=633595212 width=88) + Conds:RS_72._col5=RS_331._col1(Inner),Output:["_col5","_col7","_col9"] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_331] + PartitionCols:_col1 + Select Operator [SEL_330] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_329] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_30_customer_c_customer_sk_min) AND DynamicValue(RS_30_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_30_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_79_date_dim_d_date_sk_min) AND DynamicValue(RS_79_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_79_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_38] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_sales_price"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_321] + Group By Operator [GBY_319] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_303] + Group By Operator [GBY_302] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_301] (rows=80000000 width=860) + Output:["_col0"] + Select Operator [SEL_299] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_298] (rows=80000000 width=860) + predicate:c_current_addr_sk is not null + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_328] + Group By Operator [GBY_327] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_326] + Group By Operator [GBY_325] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_324] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_322] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col5 + Merge Join Operator [MERGEJOIN_275] (rows=316240138 width=135) + Conds:RS_69._col0=RS_318._col1(Inner),Output:["_col5"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_318] + PartitionCols:_col1 + Select Operator [SEL_317] (rows=287491029 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_316] (rows=287491029 width=135) + Output:["_col0","_col1"],keys:KEY._col0, KEY._col1 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0, _col1 + Group By Operator [GBY_34] (rows=574982058 width=135) + Output:["_col0","_col1"],keys:_col1, _col0 + Merge Join Operator [MERGEJOIN_274] (rows=574982058 width=135) + Conds:RS_300._col0=RS_31._col0(Inner),Output:["_col0","_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_300] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_299] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Select Operator [SEL_29] (rows=522710951 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_273] (rows=522710951 width=135) + Conds:RS_26._col2=RS_312._col0(Inner),Output:["_col1"] + <-Map 25 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_312] + PartitionCols:_col0 + Select Operator [SEL_311] (rows=115500 width=1436) + Output:["_col0"] + Filter Operator [FIL_310] (rows=115500 width=1436) + predicate:((i_category = 'Jewelry') and (i_class = 'consignment')) + TableScan [TS_20] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_class","i_category"] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_272] (rows=475191764 width=135) + Conds:Union 19._col0=RS_306._col0(Inner),Output:["_col1","_col2"] + <-Map 23 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_306] + PartitionCols:_col0 + Select Operator [SEL_305] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_304] (rows=18262 width=1119) + predicate:((d_moy = 3) and (d_year = 1999)) + TableScan [TS_17] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Union 19 [SIMPLE_EDGE] + <-Map 18 [CONTAINS] vectorized + Reduce Output Operator [RS_379] + PartitionCols:_col0 + Select Operator [SEL_378] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_377] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_30_customer_c_customer_sk_min) AND DynamicValue(RS_30_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_30_customer_c_customer_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_27_item_i_item_sk_min) AND DynamicValue(RS_27_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_27_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_24_date_dim_d_date_sk_min) AND DynamicValue(RS_24_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_24_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_282] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_320] + Please refer to the previous Group By Operator [GBY_319] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_372] + Group By Operator [GBY_371] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_309] + Group By Operator [GBY_308] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_307] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_305] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_375] + Group By Operator [GBY_374] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_315] + Group By Operator [GBY_314] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_313] (rows=115500 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_311] + <-Map 22 [CONTAINS] vectorized + Reduce Output Operator [RS_382] + PartitionCols:_col0 + Select Operator [SEL_381] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_380] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_27_item_i_item_sk_min) AND DynamicValue(RS_27_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_27_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_24_date_dim_d_date_sk_min) AND DynamicValue(RS_24_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_24_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_287] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_373] + Please refer to the previous Group By Operator [GBY_371] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_376] + Please refer to the previous Group By Operator [GBY_374] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_271] (rows=44000000 width=1014) + Conds:RS_294._col1, _col2=RS_297._col0, _col1(Inner),Output:["_col0"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_294] + PartitionCols:_col1, _col2 + Select Operator [SEL_293] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_292] (rows=40000000 width=1014) + predicate:(ca_county is not null and ca_state is not null) + TableScan [TS_0] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county","ca_state"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_297] + PartitionCols:_col0, _col1 + Select Operator [SEL_296] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_295] (rows=1704 width=1910) + predicate:(s_county is not null and s_state is not null) + TableScan [TS_3] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_county","s_state"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query55.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query55.q.out new file mode 100644 index 0000000000..a115fe84e0 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query55.q.out @@ -0,0 +1,123 @@ +PREHOOK: query: explain +select i_brand_id brand_id, i_brand brand, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=36 + and d_moy=12 + and d_year=2001 + group by i_brand, i_brand_id + order by ext_price desc, i_brand_id +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_brand_id brand_id, i_brand brand, + sum(ss_ext_sales_price) ext_price + from date_dim, store_sales, item + where d_date_sk = ss_sold_date_sk + and ss_item_sk = i_item_sk + and i_manager_id=36 + and d_moy=12 + and d_year=2001 + group by i_brand, i_brand_id + order by ext_price desc, i_brand_id +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_79] + Limit [LIM_78] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_77] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_76] + Select Operator [SEL_75] (rows=348477374 width=88) + Output:["_col1","_col2","_col3"] + Group By Operator [GBY_74] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col5, _col6 + Merge Join Operator [MERGEJOIN_54] (rows=696954748 width=88) + Conds:RS_12._col1=RS_65._col0(Inner),Output:["_col2","_col5","_col6"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=231000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_63] (rows=231000 width=1436) + predicate:(i_manager_id = 36) + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_brand","i_manager_id"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_53] (rows=633595212 width=88) + Conds:RS_73._col0=RS_57._col0(Inner),Output:["_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_57] + PartitionCols:_col0 + Select Operator [SEL_56] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_55] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 2001)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_72] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_71] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_ext_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_62] + Group By Operator [GBY_61] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_60] + Group By Operator [GBY_59] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_58] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_56] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_70] + Group By Operator [GBY_69] (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_68] + Group By Operator [GBY_67] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_66] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_64] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out new file mode 100644 index 0000000000..ff109ad062 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query56.q.out @@ -0,0 +1,470 @@ +PREHOOK: query: explain +with ss as ( + select i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id), + cs as ( + select i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id), + ws as ( + select i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id) + select i_item_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by total_sales + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss as ( + select i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id), + cs as ( + select i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id), + ws as ( + select i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from item +where i_color in ('orchid','chiffon','lace')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 2000 + and d_moy = 1 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -8 + group by i_item_id) + select i_item_id ,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by total_sales + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 17 <- Reducer 21 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Map 32 <- Reducer 11 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE) +Map 33 <- Reducer 14 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 31 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 11 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 2 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 14 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 19 <- Map 28 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 32 (SIMPLE_EDGE) +Reducer 23 <- Map 28 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 24 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 20 (SIMPLE_EDGE), Map 33 (SIMPLE_EDGE) +Reducer 26 <- Map 28 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Map 28 (CUSTOM_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 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 2 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_370] + Limit [LIM_369] (rows=100 width=108) + Number of rows:100 + Select Operator [SEL_368] (rows=335408073 width=108) + Output:["_col0","_col1"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_367] + Group By Operator [GBY_366] (rows=335408073 width=108) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 10 [CONTAINS] vectorized + Reduce Output Operator [RS_382] + PartitionCols:_col0 + Group By Operator [GBY_381] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_380] (rows=191657247 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col0 + Group By Operator [GBY_68] (rows=383314495 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_304] (rows=383314495 width=135) + Conds:RS_64._col0=RS_65._col3(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_294] (rows=508200 width=1436) + Conds:RS_319._col1=RS_325._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + PartitionCols:_col1 + Select Operator [SEL_318] (rows=462000 width=1436) + Output:["_col0","_col1"] + 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] vectorized + FORWARD [RS_325] + PartitionCols:_col0 + Group By Operator [GBY_324] (rows=231000 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col0 + Group By Operator [GBY_322] (rows=462000 width=1436) + Output:["_col0"],keys:i_item_id + Select Operator [SEL_321] (rows=462000 width=1436) + Output:["i_item_id"] + Filter Operator [FIL_320] (rows=462000 width=1436) + predicate:(i_color) IN ('orchid', 'chiffon', 'lace') + TableScan [TS_2] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_id","i_color"] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col3 + Select Operator [SEL_60] (rows=348467716 width=135) + Output:["_col3","_col4"] + Merge Join Operator [MERGEJOIN_299] (rows=348467716 width=135) + Conds:RS_57._col1=RS_346._col0(Inner),Output:["_col2","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_346] + PartitionCols:_col0 + Select Operator [SEL_343] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_342] (rows=20000000 width=1014) + predicate:(ca_gmt_offset = -8) + TableScan [TS_15] (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_57] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_298] (rows=316788826 width=135) + Conds:RS_379._col0=RS_330._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_330] + PartitionCols:_col0 + Select Operator [SEL_327] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_326] (rows=18262 width=1119) + predicate:((d_moy = 1) and (d_year = 2000)) + TableScan [TS_12] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_379] + PartitionCols:_col0 + Select Operator [SEL_378] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_377] (rows=287989836 width=135) + predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_58_customer_address_ca_address_sk_min) AND DynamicValue(RS_58_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_58_customer_address_ca_address_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_55_date_dim_d_date_sk_min) AND DynamicValue(RS_55_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_55_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_45] (rows=287989836 width=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 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_376] + Group By Operator [GBY_375] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_239] + Group By Operator [GBY_238] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_237] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_294] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_372] + Group By Operator [GBY_371] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_338] + Group By Operator [GBY_335] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_331] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_327] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_374] + Group By Operator [GBY_373] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_354] + Group By Operator [GBY_351] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_347] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_343] + <-Reducer 13 [CONTAINS] vectorized + Reduce Output Operator [RS_394] + PartitionCols:_col0 + Group By Operator [GBY_393] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_392] (rows=95833781 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_106] + PartitionCols:_col0 + Group By Operator [GBY_105] (rows=191667562 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_305] (rows=191667562 width=135) + Conds:RS_101._col0=RS_102._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_101] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_294] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_102] + PartitionCols:_col2 + Select Operator [SEL_97] (rows=174243235 width=135) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_302] (rows=174243235 width=135) + Conds:RS_94._col2=RS_348._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_348] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_343] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_301] (rows=158402938 width=135) + Conds:RS_391._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_332] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_327] + <-Map 33 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_391] + PartitionCols:_col0 + Select Operator [SEL_390] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_389] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_95_customer_address_ca_address_sk_min) AND DynamicValue(RS_95_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_95_customer_address_ca_address_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_101_item_i_item_sk_min) AND DynamicValue(RS_101_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_101_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_92_date_dim_d_date_sk_min) AND DynamicValue(RS_92_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_92_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_82] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_388] + Group By Operator [GBY_387] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_285] + Group By Operator [GBY_284] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_283] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_294] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_384] + Group By Operator [GBY_383] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_339] + Group By Operator [GBY_336] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_333] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_327] + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_386] + Group By Operator [GBY_385] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_355] + Group By Operator [GBY_352] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_349] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_343] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_365] + PartitionCols:_col0 + Group By Operator [GBY_364] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Group By Operator [GBY_363] (rows=383325119 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Group By Operator [GBY_32] (rows=766650239 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_303] (rows=766650239 width=88) + Conds:RS_28._col0=RS_29._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_294] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col2 + Select Operator [SEL_24] (rows=696954748 width=88) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_296] (rows=696954748 width=88) + Conds:RS_21._col2=RS_344._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_344] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_343] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_295] (rows=633595212 width=88) + Conds:RS_362._col0=RS_328._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_328] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_327] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_362] + PartitionCols:_col0 + Select Operator [SEL_361] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_360] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_22_customer_address_ca_address_sk_min) AND DynamicValue(RS_22_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_22_customer_address_ca_address_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_28_item_i_item_sk_min) AND DynamicValue(RS_28_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_28_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_19_date_dim_d_date_sk_min) AND DynamicValue(RS_19_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_19_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_9] (rows=575995635 width=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 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_341] + Group By Operator [GBY_340] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_337] + Group By Operator [GBY_334] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_329] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_327] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_357] + Group By Operator [GBY_356] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_353] + Group By Operator [GBY_350] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_345] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_343] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_359] + Group By Operator [GBY_358] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_203] + 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_201] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_294] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query57.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query57.q.out new file mode 100644 index 0000000000..71b1fda262 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query57.q.out @@ -0,0 +1,286 @@ +PREHOOK: query: explain +with v1 as( + select i_category, i_brand, + cc_name, + d_year, d_moy, + sum(cs_sales_price) sum_sales, + avg(sum(cs_sales_price)) over + (partition by i_category, i_brand, + cc_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + cc_name + order by d_year, d_moy) rn + from item, catalog_sales, date_dim, call_center + where cs_item_sk = i_item_sk and + cs_sold_date_sk = d_date_sk and + cc_call_center_sk= cs_call_center_sk and + ( + d_year = 2000 or + ( d_year = 2000-1 and d_moy =12) or + ( d_year = 2000+1 and d_moy =1) + ) + group by i_category, i_brand, + cc_name , d_year, d_moy), + v2 as( + select v1.i_category, v1.i_brand + ,v1.d_year, v1.d_moy + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1. cc_name = v1_lag. cc_name and + v1. cc_name = v1_lead. cc_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2000 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, 3 + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@call_center +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with v1 as( + select i_category, i_brand, + cc_name, + d_year, d_moy, + sum(cs_sales_price) sum_sales, + avg(sum(cs_sales_price)) over + (partition by i_category, i_brand, + cc_name, d_year) + avg_monthly_sales, + rank() over + (partition by i_category, i_brand, + cc_name + order by d_year, d_moy) rn + from item, catalog_sales, date_dim, call_center + where cs_item_sk = i_item_sk and + cs_sold_date_sk = d_date_sk and + cc_call_center_sk= cs_call_center_sk and + ( + d_year = 2000 or + ( d_year = 2000-1 and d_moy =12) or + ( d_year = 2000+1 and d_moy =1) + ) + group by i_category, i_brand, + cc_name , d_year, d_moy), + v2 as( + select v1.i_category, v1.i_brand + ,v1.d_year, v1.d_moy + ,v1.avg_monthly_sales + ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum + from v1, v1 v1_lag, v1 v1_lead + where v1.i_category = v1_lag.i_category and + v1.i_category = v1_lead.i_category and + v1.i_brand = v1_lag.i_brand and + v1.i_brand = v1_lead.i_brand and + v1. cc_name = v1_lag. cc_name and + v1. cc_name = v1_lead. cc_name and + v1.rn = v1_lag.rn + 1 and + v1.rn = v1_lead.rn - 1) + select * + from v2 + where d_year = 2000 and + avg_monthly_sales > 0 and + case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 + order by sum_sales - avg_monthly_sales, 3 + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@call_center +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE) +Reducer 10 <- Reducer 5 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) +Reducer 3 <- Map 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 16 (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 9 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_334] + Limit [LIM_333] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_332] (rows=231905278 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_113] + Select Operator [SEL_112] (rows=231905278 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_281] (rows=231905278 width=135) + Conds:RS_109._col5, _col6, _col12, _col7=RS_319._col0, _col1, _col4, _col2(Inner),Output:["_col3","_col5","_col6","_col8","_col9","_col10","_col11","_col16"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + PartitionCols:_col0, _col1, _col4, _col2 + Select Operator [SEL_317] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_315] (rows=191657247 width=135) + predicate:rank_window_0 is not null + PTF Operator [PTF_313] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 ASC NULLS LAST, _col3 ASC NULLS LAST","partition by:":"_col1, _col0, _col4"}] + Select Operator [SEL_312] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_310] + PartitionCols:_col1, _col0, _col4 + Group By Operator [GBY_309] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_95] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col3)"],keys:_col0, _col1, _col4, _col5, _col7 + Merge Join Operator [MERGEJOIN_279] (rows=383314495 width=135) + Conds:RS_91._col2=RS_300._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col7"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_300] + PartitionCols:_col0 + Select Operator [SEL_299] (rows=60 width=2045) + Output:["_col0","_col1"] + Filter Operator [FIL_298] (rows=60 width=2045) + predicate:cc_name is not null + TableScan [TS_88] (rows=60 width=2045) + default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_91] + PartitionCols:_col2 + Select Operator [SEL_87] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_278] (rows=348467716 width=135) + Conds:RS_84._col2=RS_292._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col8","_col9"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_292] + PartitionCols:_col0 + Select Operator [SEL_291] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_290] (rows=462000 width=1436) + predicate:(i_brand is not null and i_category is not null) + TableScan [TS_78] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_84] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_277] (rows=316788826 width=135) + Conds:RS_308._col0=RS_284._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_284] + PartitionCols:_col0 + Select Operator [SEL_283] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_282] (rows=73049 width=1119) + predicate:((d_year = 2000) or (struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1))) + TableScan [TS_75] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + PartitionCols:_col0 + Select Operator [SEL_307] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_306] (rows=287989836 width=135) + predicate:((cs_call_center_sk BETWEEN DynamicValue(RS_92_call_center_cc_call_center_sk_min) AND DynamicValue(RS_92_call_center_cc_call_center_sk_max) and in_bloom_filter(cs_call_center_sk, DynamicValue(RS_92_call_center_cc_call_center_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_85_item_i_item_sk_min) AND DynamicValue(RS_85_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_85_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_82_date_dim_d_date_sk_min) AND DynamicValue(RS_82_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_82_date_dim_d_date_sk_bloom_filter))) and cs_call_center_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_72] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_item_sk","cs_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_289] + Group By Operator [GBY_288] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_287] + Group By Operator [GBY_286] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_285] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_283] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_297] + Group By Operator [GBY_296] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + Group By Operator [GBY_294] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_293] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_291] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_305] + Group By Operator [GBY_304] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_303] + Group By Operator [GBY_302] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_301] (rows=60 width=2045) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_299] + <-Reducer 9 [ONE_TO_ONE_EDGE] + FORWARD [RS_109] + PartitionCols:_col5, _col6, _col12, _col7 + Merge Join Operator [MERGEJOIN_280] (rows=210822976 width=135) + Conds:RS_320._col0, _col1, _col4, _col2=RS_331._col0, _col1, _col7, _col2(Inner),Output:["_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + PartitionCols:_col0, _col1, _col4, _col2 + Select Operator [SEL_318] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_316] (rows=191657247 width=135) + predicate:rank_window_0 is not null + PTF Operator [PTF_314] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 ASC NULLS LAST, _col3 ASC NULLS LAST","partition by:":"_col1, _col0, _col4"}] + Please refer to the previous Select Operator [SEL_312] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_331] + PartitionCols:_col0, _col1, _col7, _col2 + Select Operator [SEL_330] (rows=15971437 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_329] (rows=15971437 width=135) + predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col6 - _col0)) / _col0) > 0.1)) ELSE (null) END + Select Operator [SEL_328] (rows=31942874 width=135) + Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_327] (rows=31942874 width=135) + predicate:((_col0 > 0) and (_col3 = 2000) and rank_window_1 is not null) + PTF Operator [PTF_326] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 ASC NULLS LAST, _col4 ASC NULLS LAST","partition by:":"_col2, _col1, _col5"}] + Select Operator [SEL_325] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_324] + PartitionCols:_col1, _col0, _col4 + Select Operator [SEL_323] (rows=191657247 width=135) + Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5"] + PTF Operator [PTF_322] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST, _col0 ASC NULLS FIRST, _col4 ASC NULLS FIRST, _col2 ASC NULLS FIRST","partition by:":"_col1, _col0, _col4, _col2"}] + Select Operator [SEL_321] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_311] + PartitionCols:_col1, _col0, _col4, _col2 + Please refer to the previous Group By Operator [GBY_309] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out new file mode 100644 index 0000000000..6b7abb4d54 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query58.q.out @@ -0,0 +1,433 @@ +Warning: Shuffle Join MERGEJOIN[401][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 25' is a cross product +PREHOOK: query: explain +with ss_items as + (select i_item_id item_id + ,sum(ss_ext_sales_price) ss_item_rev + from store_sales + ,item + ,date_dim + where ss_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and ss_sold_date_sk = d_date_sk + group by i_item_id), + cs_items as + (select i_item_id item_id + ,sum(cs_ext_sales_price) cs_item_rev + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and cs_sold_date_sk = d_date_sk + group by i_item_id), + ws_items as + (select i_item_id item_id + ,sum(ws_ext_sales_price) ws_item_rev + from web_sales + ,item + ,date_dim + where ws_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq =(select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and ws_sold_date_sk = d_date_sk + group by i_item_id) + select ss_items.item_id + ,ss_item_rev + ,ss_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ss_dev + ,cs_item_rev + ,cs_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 cs_dev + ,ws_item_rev + ,ws_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ws_dev + ,(ss_item_rev+cs_item_rev+ws_item_rev)/3 average + from ss_items,cs_items,ws_items + where ss_items.item_id=cs_items.item_id + and ss_items.item_id=ws_items.item_id + and ss_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + and ss_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and cs_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and cs_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and ws_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + order by item_id + ,ss_item_rev + limit 100 +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@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss_items as + (select i_item_id item_id + ,sum(ss_ext_sales_price) ss_item_rev + from store_sales + ,item + ,date_dim + where ss_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and ss_sold_date_sk = d_date_sk + group by i_item_id), + cs_items as + (select i_item_id item_id + ,sum(cs_ext_sales_price) cs_item_rev + from catalog_sales + ,item + ,date_dim + where cs_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq = (select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and cs_sold_date_sk = d_date_sk + group by i_item_id), + ws_items as + (select i_item_id item_id + ,sum(ws_ext_sales_price) ws_item_rev + from web_sales + ,item + ,date_dim + where ws_item_sk = i_item_sk + and d_date in (select d_date + from date_dim + where d_week_seq =(select d_week_seq + from date_dim + where d_date = '1998-02-19')) + and ws_sold_date_sk = d_date_sk + group by i_item_id) + select ss_items.item_id + ,ss_item_rev + ,ss_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ss_dev + ,cs_item_rev + ,cs_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 cs_dev + ,ws_item_rev + ,ws_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ws_dev + ,(ss_item_rev+cs_item_rev+ws_item_rev)/3 average + from ss_items,cs_items,ws_items + where ss_items.item_id=cs_items.item_id + and ss_items.item_id=ws_items.item_id + and ss_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + and ss_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and cs_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and cs_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev + and ws_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev + and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev + order by item_id + ,ss_item_rev + limit 100 +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@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 20 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 29 <- Reducer 13 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE) +Map 30 <- Reducer 17 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) +Reducer 10 <- Map 29 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 30 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 15 <- Reducer 14 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (SIMPLE_EDGE), Reducer 27 (ONE_TO_ONE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 28 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 28 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Reducer 26 (SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 16 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_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_481] + Limit [LIM_480] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_479] (rows=14606 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_160] + Select Operator [SEL_159] (rows=14606 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_155] (rows=14606 width=135) + predicate:(_col1 BETWEEN _col10 AND _col11 and _col5 BETWEEN _col10 AND _col11 and _col9 BETWEEN _col2 AND _col3 and _col9 BETWEEN _col6 AND _col7) + Merge Join Operator [MERGEJOIN_416] (rows=95833780 width=135) + Conds:RS_152._col0=RS_478._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col9","_col10","_col11"] + <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_478] + PartitionCols:_col0 + Select Operator [SEL_477] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_476] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_144] + PartitionCols:_col0 + Group By Operator [GBY_143] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_414] (rows=174243235 width=135) + Conds:RS_139._col0=RS_140._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_140] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_403] (rows=80353 width=1119) + Conds:RS_434._col1=RS_450._col0(Inner),Output:["_col0"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_434] + PartitionCols:_col1 + Select Operator [SEL_433] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_432] (rows=73049 width=1119) + predicate:d_date is not null + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 27 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_450] + PartitionCols:_col0 + Group By Operator [GBY_449] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Group By Operator [GBY_30] (rows=80353 width=1119) + Output:["_col0"],keys:_col2 + Merge Join Operator [MERGEJOIN_402] (rows=80353 width=1119) + Conds:RS_26._col1=RS_447._col1(Inner),Output:["_col2"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_447] + PartitionCols:_col1 + Select Operator [SEL_445] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_443] (rows=73049 width=1119) + predicate:(d_date is not null and d_week_seq is not null) + TableScan [TS_20] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_401] (rows=36524 width=1128) + Conds:(Inner),Output:["_col1"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_448] + Select Operator [SEL_446] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_444] (rows=36524 width=1119) + predicate:((d_date = '1998-02-19') and d_week_seq is not null) + Please refer to the previous TableScan [TS_20] + <-Reducer 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_442] + Select Operator [SEL_441] (rows=1 width=8) + Filter Operator [FIL_440] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_439] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_438] + Group By Operator [GBY_437] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_436] (rows=36524 width=1119) + Filter Operator [FIL_435] (rows=36524 width=1119) + predicate:(d_date = '1998-02-19') + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_139] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_408] (rows=158402938 width=135) + Conds:RS_475._col1=RS_422._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_422] + PartitionCols:_col0 + Select Operator [SEL_417] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Map 30 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_475] + PartitionCols:_col1 + Select Operator [SEL_474] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_473] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_137_item_i_item_sk_min) AND DynamicValue(RS_137_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_137_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_140_date_dim_d_date_sk_min) AND DynamicValue(RS_140_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_140_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_98] (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 [BROADCAST_EDGE] vectorized + BROADCAST [RS_470] + Group By Operator [GBY_469] (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_429] + Group By Operator [GBY_426] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_423] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_417] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_472] + Group By Operator [GBY_471] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_360] + Group By Operator [GBY_359] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_358] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_403] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_152] + PartitionCols:_col0 + Filter Operator [FIL_150] (rows=4732408 width=88) + predicate:(_col1 BETWEEN _col6 AND _col7 and _col5 BETWEEN _col2 AND _col3) + Merge Join Operator [MERGEJOIN_415] (rows=383325119 width=88) + Conds:RS_458._col0=RS_468._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_468] + PartitionCols:_col0 + Select Operator [SEL_467] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_466] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_95] + PartitionCols:_col0 + Group By Operator [GBY_94] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_413] (rows=696954748 width=88) + Conds:RS_90._col0=RS_91._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_91] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_403] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_90] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_404] (rows=633595212 width=88) + Conds:RS_465._col1=RS_420._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_420] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_417] + <-Map 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_465] + PartitionCols:_col1 + Select Operator [SEL_464] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_463] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_88_item_i_item_sk_min) AND DynamicValue(RS_88_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_88_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_91_date_dim_d_date_sk_min) AND DynamicValue(RS_91_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_91_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_49] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ext_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_460] + Group By Operator [GBY_459] (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_428] + Group By Operator [GBY_425] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_421] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_417] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_462] + Group By Operator [GBY_461] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_314] + Group By Operator [GBY_313] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_312] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_403] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_458] + PartitionCols:_col0 + Select Operator [SEL_457] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_456] (rows=174233858 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col0 + Group By Operator [GBY_45] (rows=348467716 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_412] (rows=348467716 width=135) + Conds:RS_41._col0=RS_42._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_403] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_400] (rows=316788826 width=135) + Conds:RS_455._col1=RS_418._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_418] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_417] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_455] + PartitionCols:_col1 + Select Operator [SEL_454] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_453] (rows=287989836 width=135) + 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_42_date_dim_d_date_sk_min) AND DynamicValue(RS_42_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_42_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_sales_price"] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_452] + Group By Operator [GBY_451] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_264] + Group By Operator [GBY_263] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_262] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_403] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_431] + Group By Operator [GBY_430] (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_427] + Group By Operator [GBY_424] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_419] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_417] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query59.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query59.q.out new file mode 100644 index 0000000000..80a9b2c58a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query59.q.out @@ -0,0 +1,291 @@ +PREHOOK: query: explain +with wss as + (select d_week_seq, + ss_store_sk, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from store_sales,date_dim + where d_date_sk = ss_sold_date_sk + group by d_week_seq,ss_store_sk + ) + select s_store_name1,s_store_id1,d_week_seq1 + ,sun_sales1/sun_sales2,mon_sales1/mon_sales2 + ,tue_sales1/tue_sales1,wed_sales1/wed_sales2,thu_sales1/thu_sales2 + ,fri_sales1/fri_sales2,sat_sales1/sat_sales2 + from + (select s_store_name s_store_name1,wss.d_week_seq d_week_seq1 + ,s_store_id s_store_id1,sun_sales sun_sales1 + ,mon_sales mon_sales1,tue_sales tue_sales1 + ,wed_sales wed_sales1,thu_sales thu_sales1 + ,fri_sales fri_sales1,sat_sales sat_sales1 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + ss_store_sk = s_store_sk and + d_month_seq between 1185 and 1185 + 11) y, + (select s_store_name s_store_name2,wss.d_week_seq d_week_seq2 + ,s_store_id s_store_id2,sun_sales sun_sales2 + ,mon_sales mon_sales2,tue_sales tue_sales2 + ,wed_sales wed_sales2,thu_sales thu_sales2 + ,fri_sales fri_sales2,sat_sales sat_sales2 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + ss_store_sk = s_store_sk and + d_month_seq between 1185+ 12 and 1185 + 23) x + where s_store_id1=s_store_id2 + and d_week_seq1=d_week_seq2-52 + order by s_store_name1,s_store_id1,d_week_seq1 +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 +with wss as + (select d_week_seq, + ss_store_sk, + sum(case when (d_day_name='Sunday') then ss_sales_price else null end) sun_sales, + sum(case when (d_day_name='Monday') then ss_sales_price else null end) mon_sales, + sum(case when (d_day_name='Tuesday') then ss_sales_price else null end) tue_sales, + sum(case when (d_day_name='Wednesday') then ss_sales_price else null end) wed_sales, + sum(case when (d_day_name='Thursday') then ss_sales_price else null end) thu_sales, + sum(case when (d_day_name='Friday') then ss_sales_price else null end) fri_sales, + sum(case when (d_day_name='Saturday') then ss_sales_price else null end) sat_sales + from store_sales,date_dim + where d_date_sk = ss_sold_date_sk + group by d_week_seq,ss_store_sk + ) + select s_store_name1,s_store_id1,d_week_seq1 + ,sun_sales1/sun_sales2,mon_sales1/mon_sales2 + ,tue_sales1/tue_sales1,wed_sales1/wed_sales2,thu_sales1/thu_sales2 + ,fri_sales1/fri_sales2,sat_sales1/sat_sales2 + from + (select s_store_name s_store_name1,wss.d_week_seq d_week_seq1 + ,s_store_id s_store_id1,sun_sales sun_sales1 + ,mon_sales mon_sales1,tue_sales tue_sales1 + ,wed_sales wed_sales1,thu_sales thu_sales1 + ,fri_sales fri_sales1,sat_sales sat_sales1 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + ss_store_sk = s_store_sk and + d_month_seq between 1185 and 1185 + 11) y, + (select s_store_name s_store_name2,wss.d_week_seq d_week_seq2 + ,s_store_id s_store_id2,sun_sales sun_sales2 + ,mon_sales mon_sales2,tue_sales tue_sales2 + ,wed_sales wed_sales2,thu_sales thu_sales2 + ,fri_sales fri_sales2,sat_sales sat_sales2 + from wss,store,date_dim d + where d.d_week_seq = wss.d_week_seq and + ss_store_sk = s_store_sk and + d_month_seq between 1185+ 12 and 1185 + 23) x + where s_store_id1=s_store_id2 + and d_week_seq1=d_week_seq2-52 + order by s_store_name1,s_store_id1,d_week_seq1 +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 17 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 18 <- Reducer 14 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE) +Reducer 10 <- Map 18 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 15 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 19 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 15 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 16 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 13 (SIMPLE_EDGE), 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_230] + Limit [LIM_229] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_228] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_58] + Select Operator [SEL_57] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Merge Join Operator [MERGEJOIN_182] (rows=421657640 width=88) + Conds:RS_54._col2, _col1=RS_55._col0, _col7(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col14","_col15","_col16"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0, _col7 + Select Operator [SEL_53] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_181] (rows=383325119 width=88) + Conds:RS_50._col1=RS_217._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col10"] + <-Map 19 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_45] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_180] (rows=348477374 width=88) + Conds:RS_227._col0=RS_213._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_213] + PartitionCols:_col0 + Select Operator [SEL_211] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_209] (rows=73049 width=1119) + 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 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_227] + PartitionCols:_col0 + Group By Operator [GBY_226] (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 10 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0, _col1 + Group By Operator [GBY_38] (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_36] (rows=633595212 width=88) + Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_179] (rows=633595212 width=88) + Conds:RS_225._col0=RS_188._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col8","_col9","_col10","_col11"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_188] + PartitionCols:_col0 + Select Operator [SEL_185] (rows=73049 width=1119) + Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_183] (rows=73049 width=1119) + predicate:d_week_seq is not null + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_week_seq","d_day_name"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] + PartitionCols:_col0 + Select Operator [SEL_224] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_223] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_34_date_dim_d_date_sk_min) AND DynamicValue(RS_34_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_34_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_51_store_s_store_sk_min) AND DynamicValue(RS_51_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_51_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_27] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_store_sk","ss_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_215] + Group By Operator [GBY_214] (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_193] + Group By Operator [GBY_191] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_189] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_185] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_222] + Group By Operator [GBY_221] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_220] + Group By Operator [GBY_219] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_218] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_216] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_54] + PartitionCols:_col2, _col1 + Select Operator [SEL_26] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Merge Join Operator [MERGEJOIN_178] (rows=383325119 width=88) + Conds:RS_23._col1=RS_197._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col11","_col12"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_197] + PartitionCols:_col0 + Select Operator [SEL_196] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + TableScan [TS_18] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id","s_store_name"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_177] (rows=348477374 width=88) + Conds:RS_207._col0=RS_212._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_212] + PartitionCols:_col0 + Select Operator [SEL_210] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_208] (rows=73049 width=1119) + predicate:(d_month_seq BETWEEN 1185 AND 1196 and d_week_seq is not null) + Please refer to the previous TableScan [TS_15] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_207] + PartitionCols:_col0 + Group By Operator [GBY_206] (rows=316797606 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0, _col1 + Group By Operator [GBY_11] (rows=633595212 width=88) + 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_176] (rows=633595212 width=88) + Conds:RS_205._col0=RS_186._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_186] + PartitionCols:_col0 + Select Operator [SEL_184] (rows=73049 width=1119) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Please refer to the previous Filter Operator [FIL_183] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_205] + PartitionCols:_col0 + Select Operator [SEL_204] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_203] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_24_store_s_store_sk_min) AND DynamicValue(RS_24_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_24_store_s_store_sk_bloom_filter))) and 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"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_202] + Group By Operator [GBY_201] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_200] + Group By Operator [GBY_199] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_198] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_196] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_195] + Group By Operator [GBY_194] (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_192] + Group By Operator [GBY_190] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_187] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_184] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out new file mode 100644 index 0000000000..a39a1c1a37 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query6.q.out @@ -0,0 +1,274 @@ +Warning: Map Join MAPJOIN[175][bigTable=?] in task 'Reducer 15' is a cross product +PREHOOK: query: explain +select a.ca_state state, count(*) cnt + from customer_address a + ,customer c + ,store_sales s + ,date_dim d + ,item i + where a.ca_address_sk = c.c_current_addr_sk + and c.c_customer_sk = s.ss_customer_sk + and s.ss_sold_date_sk = d.d_date_sk + and s.ss_item_sk = i.i_item_sk + and d.d_month_seq = + (select distinct (d_month_seq) + from date_dim + where d_year = 2000 + and d_moy = 2 ) + and i.i_current_price > 1.2 * + (select avg(j.i_current_price) + from item j + where j.i_category = i.i_category) + group by a.ca_state + having count(*) >= 10 + order by cnt + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select a.ca_state state, count(*) cnt + from customer_address a + ,customer c + ,store_sales s + ,date_dim d + ,item i + where a.ca_address_sk = c.c_current_addr_sk + and c.c_customer_sk = s.ss_customer_sk + and s.ss_sold_date_sk = d.d_date_sk + and s.ss_item_sk = i.i_item_sk + and d.d_month_seq = + (select distinct (d_month_seq) + from date_dim + where d_year = 2000 + and d_moy = 2 ) + and i.i_current_price > 1.2 * + (select avg(j.i_current_price) + from item j + where j.i_category = i.i_category) + group by a.ca_state + having count(*) >= 10 + order by cnt + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 17 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 19 (BROADCAST_EDGE) +Reducer 16 <- Map 20 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 14 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (SIMPLE_EDGE) +Reducer 3 <- Reducer 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 16 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 22 (ONE_TO_ONE_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_234] + Limit [LIM_233] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_232] (rows=46850848 width=88) + Output:["_col0","_col1"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_231] + Filter Operator [FIL_230] (rows=46850848 width=88) + predicate:(_col1 >= 10L) + Group By Operator [GBY_229] (rows=140552546 width=88) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col0 + Group By Operator [GBY_68] (rows=281105093 width=88) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col0 + Select Operator [SEL_67] (rows=281105093 width=88) + Output:["_col0"] + Filter Operator [FIL_66] (rows=281105093 width=88) + predicate:(_col1 > _col4) + Merge Join Operator [MERGEJOIN_179] (rows=843315281 width=88) + Conds:RS_63._col2=RS_228._col0(Inner),Output:["_col0","_col1","_col4"] + <-Reducer 22 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_228] + PartitionCols:_col0 + Select Operator [SEL_227] (rows=231000 width=1436) + Output:["_col0","_col1"] + Group By Operator [GBY_226] (rows=231000 width=1436) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] + PartitionCols:_col0 + Group By Operator [GBY_224] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"],aggregations:["sum(i_current_price)","count(i_current_price)"],keys:i_category + Filter Operator [FIL_223] (rows=462000 width=1436) + predicate:i_category is not null + TableScan [TS_56] (rows=462000 width=1436) + default@item,j,Tbl:COMPLETE,Col:NONE,Output:["i_current_price","i_category"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_63] + PartitionCols:_col2 + Select Operator [SEL_55] (rows=766650239 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_178] (rows=766650239 width=88) + Conds:RS_52._col0=RS_53._col0(Inner),Output:["_col4","_col5","_col9"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col0 + Select Operator [SEL_45] (rows=80353 width=1119) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_176] (rows=80353 width=1119) + Conds:RS_214._col0=RS_217._col1(Inner),Output:["_col2"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_217] + PartitionCols:_col1 + Select Operator [SEL_216] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_215] (rows=73049 width=1119) + predicate:d_month_seq is not null + TableScan [TS_36] (rows=73049 width=1119) + default@date_dim,d,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Reducer 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_214] + PartitionCols:_col0 + Map Join Operator [MAPJOIN_213] (rows=9131 width=1128) + Conds:(Inner),Output:["_col0"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_211] + Select Operator [SEL_210] (rows=1 width=8) + Filter Operator [FIL_209] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_208] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_207] + Group By Operator [GBY_206] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_205] (rows=9131 width=1119) + Group By Operator [GBY_204] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_203] + PartitionCols:_col0 + Group By Operator [GBY_201] (rows=18262 width=1119) + Output:["_col0"],keys:d_month_seq + Select Operator [SEL_199] (rows=18262 width=1119) + Output:["d_month_seq"] + Filter Operator [FIL_197] (rows=18262 width=1119) + predicate:((d_moy = 2) and (d_year = 2000)) + TableScan [TS_15] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_month_seq","d_year","d_moy"] + <-Group By Operator [GBY_212] (rows=9131 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_202] + PartitionCols:_col0 + Group By Operator [GBY_200] (rows=18262 width=1119) + Output:["_col0"],keys:d_month_seq + Select Operator [SEL_198] (rows=18262 width=1119) + Output:["d_month_seq"] + Filter Operator [FIL_196] (rows=18262 width=1119) + predicate:((d_moy = 2) and (d_year = 2000) and d_month_seq is not null) + Please refer to the previous TableScan [TS_15] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_177] (rows=696954748 width=88) + Conds:RS_49._col2=RS_50._col0(Inner),Output:["_col0","_col4","_col5","_col9"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_174] (rows=88000001 width=860) + Conds:RS_191._col1=RS_193._col0(Inner),Output:["_col0","_col3"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_191] + PartitionCols:_col1 + Select Operator [SEL_190] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_189] (rows=80000000 width=860) + predicate:c_current_addr_sk is not null + TableScan [TS_6] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_193] + PartitionCols:_col0 + Select Operator [SEL_192] (rows=40000000 width=1014) + Output:["_col0","_col1"] + TableScan [TS_9] (rows=40000000 width=1014) + default@customer_address,a,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_173] (rows=633595212 width=88) + Conds:RS_222._col1=RS_183._col0(Inner),Output:["_col0","_col2","_col4","_col5"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_183] + PartitionCols:_col0 + Select Operator [SEL_182] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_181] (rows=462000 width=1436) + predicate:i_category is not null + TableScan [TS_3] (rows=462000 width=1436) + default@item,i,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_category"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_222] + PartitionCols:_col1 + Select Operator [SEL_221] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_220] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_50_c_c_customer_sk_min) AND DynamicValue(RS_50_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_50_c_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_47_i_i_item_sk_min) AND DynamicValue(RS_47_i_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_47_i_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_53_d_d_date_sk_min) AND DynamicValue(RS_53_d_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_53_d_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,s,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_customer_sk"] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_195] + Group By Operator [GBY_194] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=88000000)"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_118] + Group By Operator [GBY_117] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=88000000)"] + Select Operator [SEL_116] (rows=88000001 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_174] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_219] + Group By Operator [GBY_218] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_123] + Group By Operator [GBY_122] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_121] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_45] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_188] + Group By Operator [GBY_187] (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_186] + Group By Operator [GBY_185] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_184] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_182] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out new file mode 100644 index 0000000000..1b072934a4 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query60.q.out @@ -0,0 +1,496 @@ +PREHOOK: query: explain +with ss as ( + select + i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + cs as ( + select + i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + ws as ( + select + i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id) + select + i_item_id +,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by i_item_id + ,total_sales + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss as ( + select + i_item_id,sum(ss_ext_sales_price) total_sales + from + store_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and ss_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + cs as ( + select + i_item_id,sum(cs_ext_sales_price) total_sales + from + catalog_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and cs_item_sk = i_item_sk + and cs_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and cs_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id), + ws as ( + select + i_item_id,sum(ws_ext_sales_price) total_sales + from + web_sales, + date_dim, + customer_address, + item + where + i_item_id in (select + i_item_id +from + item +where i_category in ('Children')) + and ws_item_sk = i_item_sk + and ws_sold_date_sk = d_date_sk + and d_year = 1999 + and d_moy = 9 + and ws_bill_addr_sk = ca_address_sk + and ca_gmt_offset = -6 + group by i_item_id) + select + i_item_id +,sum(total_sales) total_sales + from (select * from ss + union all + select * from cs + union all + select * from ws) tmp1 + group by i_item_id + order by i_item_id + ,total_sales + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 17 <- Reducer 21 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Map 32 <- Reducer 11 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE) +Map 33 <- Reducer 14 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 31 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 11 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 2 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 14 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 19 <- Map 28 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 32 (SIMPLE_EDGE) +Reducer 23 <- Map 28 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 24 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 20 (SIMPLE_EDGE), Map 33 (SIMPLE_EDGE) +Reducer 26 <- Map 28 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Map 28 (CUSTOM_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 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 2 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_375] + Limit [LIM_374] (rows=100 width=108) + Number of rows:100 + Select Operator [SEL_373] (rows=335408073 width=108) + Output:["_col0","_col1"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_372] + Group By Operator [GBY_371] (rows=335408073 width=108) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 10 [CONTAINS] vectorized + Reduce Output Operator [RS_388] + PartitionCols:_col0 + Group By Operator [GBY_387] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Top N Key Operator [TNK_386] (rows=670816147 width=108) + keys:_col0,sort order:+,top n:100 + Group By Operator [GBY_385] (rows=191657247 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_69] + PartitionCols:_col0 + Group By Operator [GBY_68] (rows=383314495 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_305] (rows=383314495 width=135) + Conds:RS_64._col0=RS_65._col3(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_295] (rows=508200 width=1436) + Conds:RS_323._col1=RS_329._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col1 + Select Operator [SEL_322] (rows=462000 width=1436) + Output:["_col0","_col1"] + 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] vectorized + FORWARD [RS_329] + PartitionCols:_col0 + Group By Operator [GBY_328] (rows=115500 width=1436) + Output:["_col0"],keys:KEY._col0 + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_327] + PartitionCols:_col0 + Group By Operator [GBY_326] (rows=231000 width=1436) + Output:["_col0"],keys:i_item_id + Select Operator [SEL_325] (rows=231000 width=1436) + Output:["i_item_id"] + Filter Operator [FIL_324] (rows=231000 width=1436) + predicate:(i_category = 'Children') + TableScan [TS_2] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_id","i_category"] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col3 + Select Operator [SEL_60] (rows=348467716 width=135) + Output:["_col3","_col4"] + Merge Join Operator [MERGEJOIN_300] (rows=348467716 width=135) + Conds:RS_57._col1=RS_350._col0(Inner),Output:["_col2","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_350] + PartitionCols:_col0 + Select Operator [SEL_347] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_346] (rows=20000000 width=1014) + predicate:(ca_gmt_offset = -6) + TableScan [TS_15] (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_57] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_299] (rows=316788826 width=135) + Conds:RS_384._col0=RS_334._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_334] + PartitionCols:_col0 + Select Operator [SEL_331] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_330] (rows=18262 width=1119) + predicate:((d_moy = 9) and (d_year = 1999)) + TableScan [TS_12] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_384] + PartitionCols:_col0 + Select Operator [SEL_383] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_382] (rows=287989836 width=135) + predicate:((cs_bill_addr_sk BETWEEN DynamicValue(RS_58_customer_address_ca_address_sk_min) AND DynamicValue(RS_58_customer_address_ca_address_sk_max) and in_bloom_filter(cs_bill_addr_sk, DynamicValue(RS_58_customer_address_ca_address_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_64_item_i_item_sk_min) AND DynamicValue(RS_64_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_64_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_55_date_dim_d_date_sk_min) AND DynamicValue(RS_55_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_55_date_dim_d_date_sk_bloom_filter))) and cs_bill_addr_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_45] (rows=287989836 width=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 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_381] + Group By Operator [GBY_380] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_240] + Group By Operator [GBY_239] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_238] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_295] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_377] + Group By Operator [GBY_376] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_342] + Group By Operator [GBY_339] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_335] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_379] + Group By Operator [GBY_378] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_358] + Group By Operator [GBY_355] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_351] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 13 [CONTAINS] vectorized + Reduce Output Operator [RS_401] + PartitionCols:_col0 + Group By Operator [GBY_400] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Top N Key Operator [TNK_399] (rows=670816147 width=108) + keys:_col0,sort order:+,top n:100 + Group By Operator [GBY_398] (rows=95833781 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_106] + PartitionCols:_col0 + Group By Operator [GBY_105] (rows=191667562 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_306] (rows=191667562 width=135) + Conds:RS_101._col0=RS_102._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_101] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_295] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_102] + PartitionCols:_col2 + Select Operator [SEL_97] (rows=174243235 width=135) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_303] (rows=174243235 width=135) + Conds:RS_94._col2=RS_352._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_352] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_347] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_302] (rows=158402938 width=135) + Conds:RS_397._col0=RS_336._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_336] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_331] + <-Map 33 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_397] + PartitionCols:_col0 + Select Operator [SEL_396] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_395] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_95_customer_address_ca_address_sk_min) AND DynamicValue(RS_95_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_95_customer_address_ca_address_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_101_item_i_item_sk_min) AND DynamicValue(RS_101_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_101_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_92_date_dim_d_date_sk_min) AND DynamicValue(RS_92_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_92_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_82] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_394] + Group By Operator [GBY_393] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_286] + Group By Operator [GBY_285] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_284] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_295] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_390] + Group By Operator [GBY_389] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_343] + Group By Operator [GBY_340] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_337] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_392] + Group By Operator [GBY_391] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_359] + Group By Operator [GBY_356] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_353] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_370] + PartitionCols:_col0 + Group By Operator [GBY_369] (rows=670816147 width=108) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Top N Key Operator [TNK_368] (rows=670816147 width=108) + keys:_col0,sort order:+,top n:100 + Group By Operator [GBY_367] (rows=383325119 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Group By Operator [GBY_32] (rows=766650239 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col7)"],keys:_col1 + Merge Join Operator [MERGEJOIN_304] (rows=766650239 width=88) + Conds:RS_28._col0=RS_29._col2(Inner),Output:["_col1","_col7"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_295] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col2 + Select Operator [SEL_24] (rows=696954748 width=88) + Output:["_col2","_col4"] + Merge Join Operator [MERGEJOIN_297] (rows=696954748 width=88) + Conds:RS_21._col2=RS_348._col0(Inner),Output:["_col1","_col3"] + <-Map 28 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_348] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_347] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_296] (rows=633595212 width=88) + Conds:RS_366._col0=RS_332._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_332] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_331] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_366] + PartitionCols:_col0 + Select Operator [SEL_365] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_364] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_22_customer_address_ca_address_sk_min) AND DynamicValue(RS_22_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_22_customer_address_ca_address_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_28_item_i_item_sk_min) AND DynamicValue(RS_28_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_28_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_19_date_dim_d_date_sk_min) AND DynamicValue(RS_19_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_19_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_9] (rows=575995635 width=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 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_345] + Group By Operator [GBY_344] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_341] + Group By Operator [GBY_338] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_333] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_331] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_361] + Group By Operator [GBY_360] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_357] + Group By Operator [GBY_354] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_349] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_347] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_363] + Group By Operator [GBY_362] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_204] + Group By Operator [GBY_203] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_202] (rows=508200 width=1436) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_295] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query61.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query61.q.out new file mode 100644 index 0000000000..dc3041726b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query61.q.out @@ -0,0 +1,418 @@ +Warning: Shuffle Join MERGEJOIN[273][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 9' is a cross product +PREHOOK: query: explain +select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 +from + (select sum(ss_ext_sales_price) promotions + from store_sales + ,store + ,promotion + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_promo_sk = p_promo_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Electronics' + and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y') + and s_gmt_offset = -7 + and d_year = 1999 + and d_moy = 11) promotional_sales, + (select sum(ss_ext_sales_price) total + from store_sales + ,store + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Electronics' + and s_gmt_offset = -7 + and d_year = 1999 + and d_moy = 11) all_sales +order by promotions, total +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@promotion +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 +from + (select sum(ss_ext_sales_price) promotions + from store_sales + ,store + ,promotion + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_promo_sk = p_promo_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Electronics' + and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y') + and s_gmt_offset = -7 + and d_year = 1999 + and d_moy = 11) promotional_sales, + (select sum(ss_ext_sales_price) total + from store_sales + ,store + ,date_dim + ,customer + ,customer_address + ,item + where ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and ss_customer_sk= c_customer_sk + and ca_address_sk = c_current_addr_sk + and ss_item_sk = i_item_sk + and ca_gmt_offset = -7 + and i_category = 'Electronics' + and s_gmt_offset = -7 + and d_year = 1999 + and d_moy = 11) all_sales +order by promotions, total +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@promotion +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 19 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE) +Map 32 <- Reducer 17 (BROADCAST_EDGE), Reducer 23 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 30 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 11 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 15 <- Map 28 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 11 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 32 (SIMPLE_EDGE) +Reducer 23 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 24 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 27 <- Reducer 26 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 18 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 28 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 20 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 24 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Map 28 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 31 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 16 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 10 vectorized + File Output Operator [FS_353] + Limit [LIM_352] (rows=1 width=225) + Number of rows:100 + Select Operator [SEL_351] (rows=1 width=225) + Output:["_col0","_col1","_col2"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_90] + Select Operator [SEL_89] (rows=1 width=225) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_273] (rows=1 width=225) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_350] + Select Operator [SEL_349] (rows=1 width=112) + Output:["_col0","_col1"] + Group By Operator [GBY_348] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_83] + Group By Operator [GBY_82] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col1)"] + Merge Join Operator [MERGEJOIN_272] (rows=843315281 width=88) + Conds:RS_78._col0=RS_319._col0(Inner),Output:["_col1"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + PartitionCols:_col0 + Select Operator [SEL_316] (rows=231000 width=1436) + Output:["_col0"] + Filter Operator [FIL_315] (rows=231000 width=1436) + predicate:(i_category = 'Electronics') + TableScan [TS_29] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col0 + Select Operator [SEL_74] (rows=766650239 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_271] (rows=766650239 width=88) + Conds:RS_71._col0=RS_72._col1(Inner),Output:["_col3","_col5"] + <-Reducer 26 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_71] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_268] (rows=88000001 width=860) + Conds:RS_310._col1=RS_333._col0(Inner),Output:["_col0"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_310] + PartitionCols:_col1 + Select Operator [SEL_307] (rows=80000000 width=860) + Output:["_col0","_col1"] + Filter Operator [FIL_306] (rows=80000000 width=860) + predicate:c_current_addr_sk is not null + TableScan [TS_19] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_addr_sk"] + <-Map 31 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_333] + PartitionCols:_col0 + Select Operator [SEL_331] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_330] (rows=20000000 width=1014) + predicate:(ca_gmt_offset = -7) + TableScan [TS_32] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col1 + Select Operator [SEL_67] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_270] (rows=696954748 width=88) + Conds:RS_64._col3=RS_278._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_278] + PartitionCols:_col0 + Select Operator [SEL_275] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_274] (rows=852 width=1910) + predicate:(s_gmt_offset = -7) + TableScan [TS_3] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_gmt_offset"] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_64] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_269] (rows=633595212 width=88) + Conds:RS_347._col0=RS_298._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_298] + PartitionCols:_col0 + Select Operator [SEL_295] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_294] (rows=18262 width=1119) + predicate:((d_moy = 11) and (d_year = 1999)) + TableScan [TS_16] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_347] + PartitionCols:_col0 + Select Operator [SEL_346] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_345] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_71_customer_c_customer_sk_min) AND DynamicValue(RS_71_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_71_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_79_item_i_item_sk_min) AND DynamicValue(RS_79_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_79_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_62_date_dim_d_date_sk_min) AND DynamicValue(RS_62_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_62_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_65_store_s_store_sk_min) AND DynamicValue(RS_65_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_65_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_52] (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 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_340] + Group By Operator [GBY_339] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 11 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_283] + Group By Operator [GBY_281] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_279] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_275] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_338] + Group By Operator [GBY_337] (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_303] + Group By Operator [GBY_301] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_299] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_295] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_342] + Group By Operator [GBY_341] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=88000000)"] + <-Reducer 26 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_239] + Group By Operator [GBY_238] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=88000000)"] + Select Operator [SEL_237] (rows=88000001 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_268] + <-Reducer 30 [BROADCAST_EDGE] vectorized + BROADCAST [RS_344] + Group By Operator [GBY_343] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_324] + Group By Operator [GBY_322] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_320] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_316] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_336] + Select Operator [SEL_335] (rows=1 width=112) + Output:["_col0","_col1"] + Group By Operator [GBY_334] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_43] + Group By Operator [GBY_42] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col1)"] + Merge Join Operator [MERGEJOIN_267] (rows=1020411534 width=88) + Conds:RS_38._col2=RS_332._col0(Inner),Output:["_col1"] + <-Map 31 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_332] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_331] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_266] (rows=927646829 width=88) + Conds:RS_35._col0=RS_317._col0(Inner),Output:["_col1","_col2"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_317] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_316] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Select Operator [SEL_28] (rows=843315281 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_265] (rows=843315281 width=88) + Conds:RS_25._col2=RS_308._col0(Inner),Output:["_col1","_col3","_col6"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_307] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_264] (rows=766650239 width=88) + Conds:RS_22._col0=RS_296._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_296] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_295] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_263] (rows=696954748 width=88) + Conds:RS_12._col4=RS_288._col0(Inner),Output:["_col0","_col1","_col2","_col5"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_288] + PartitionCols:_col0 + Select Operator [SEL_287] (rows=2300 width=1179) + Output:["_col0"] + Filter Operator [FIL_286] (rows=2300 width=1179) + predicate:((p_channel_dmail = 'Y') or (p_channel_email = 'Y') or (p_channel_tv = 'Y')) + TableScan [TS_6] (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 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_262] (rows=633595212 width=88) + Conds:RS_329._col3=RS_276._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_276] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_275] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_329] + PartitionCols:_col3 + Select Operator [SEL_328] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_327] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_26_customer_c_customer_sk_min) AND DynamicValue(RS_26_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_26_customer_c_customer_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_36_item_i_item_sk_min) AND DynamicValue(RS_36_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_36_item_i_item_sk_bloom_filter))) and (ss_promo_sk BETWEEN DynamicValue(RS_13_promotion_p_promo_sk_min) AND DynamicValue(RS_13_promotion_p_promo_sk_max) and in_bloom_filter(ss_promo_sk, DynamicValue(RS_13_promotion_p_promo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_23_date_dim_d_date_sk_min) AND DynamicValue(RS_23_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_23_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_10_store_s_store_sk_min) AND DynamicValue(RS_10_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_10_store_s_store_sk_bloom_filter))) and ss_customer_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_0] (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 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_285] + Group By Operator [GBY_284] (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_282] + Group By Operator [GBY_280] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_277] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_275] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_293] + Group By Operator [GBY_292] (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_291] + Group By Operator [GBY_290] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_289] (rows=2300 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_287] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_305] + Group By Operator [GBY_304] (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_302] + Group By Operator [GBY_300] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_297] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_295] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_314] + Group By Operator [GBY_313] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_312] + Group By Operator [GBY_311] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_309] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_307] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_326] + Group By Operator [GBY_325] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + Group By Operator [GBY_321] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_318] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_316] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query63.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query63.q.out new file mode 100644 index 0000000000..ca35387965 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query63.q.out @@ -0,0 +1,163 @@ +PREHOOK: query: explain +select * +from (select i_manager_id + ,sum(ss_sales_price) sum_sales + ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales + from item + ,store_sales + ,date_dim + ,store + where ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and d_month_seq in (1212,1212+1,1212+2,1212+3,1212+4,1212+5,1212+6,1212+7,1212+8,1212+9,1212+10,1212+11) + and (( i_category in ('Books','Children','Electronics') + and i_class in ('personal','portable','refernece','self-help') + and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) + or( i_category in ('Women','Music','Men') + and i_class in ('accessories','classical','fragrances','pants') + and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manager_id, d_moy) tmp1 +where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 +order by i_manager_id + ,avg_monthly_sales + ,sum_sales +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * +from (select i_manager_id + ,sum(ss_sales_price) sum_sales + ,avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales + from item + ,store_sales + ,date_dim + ,store + where ss_item_sk = i_item_sk + and ss_sold_date_sk = d_date_sk + and ss_store_sk = s_store_sk + and d_month_seq in (1212,1212+1,1212+2,1212+3,1212+4,1212+5,1212+6,1212+7,1212+8,1212+9,1212+10,1212+11) + and (( i_category in ('Books','Children','Electronics') + and i_class in ('personal','portable','refernece','self-help') + and i_brand in ('scholaramalgamalg #14','scholaramalgamalg #7', + 'exportiunivamalg #9','scholaramalgamalg #9')) + or( i_category in ('Women','Music','Men') + and i_class in ('accessories','classical','fragrances','pants') + and i_brand in ('amalgimporto #1','edu packscholar #1','exportiimporto #1', + 'importoamalg #1'))) +group by i_manager_id, d_moy) tmp1 +where case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 +order by i_manager_id + ,avg_monthly_sales + ,sum_sales +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 7 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Map 8 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_86] + Limit [LIM_85] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_84] (rows=174238687 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_27] + Select Operator [SEL_24] (rows=174238687 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_36] (rows=174238687 width=88) + predicate:CASE WHEN ((avg_window_0 > 0)) THEN (((abs((_col2 - avg_window_0)) / avg_window_0) > 0.1)) ELSE (null) END + Select Operator [SEL_23] (rows=348477374 width=88) + Output:["avg_window_0","_col0","_col2"] + PTF Operator [PTF_22] (rows=348477374 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS FIRST","partition by:":"_col0"}] + Select Operator [SEL_19] (rows=348477374 width=88) + Output:["_col0","_col2"] + Group By Operator [GBY_18] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)"],keys:_col4, _col6 + Merge Join Operator [MERGEJOIN_62] (rows=696954748 width=88) + Conds:RS_12._col0=RS_73._col0(Inner),Output:["_col2","_col4","_col6"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_72] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_71] (rows=73049 width=1119) + predicate:(d_month_seq) IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq","d_moy"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_61] (rows=633595212 width=88) + Conds:RS_81._col1=RS_65._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=462000 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_63] (rows=462000 width=1436) + predicate:(((i_category) IN ('Books', 'Children', 'Electronics') and (i_class) IN ('personal', 'portable', 'refernece', 'self-help') and (i_brand) IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) or ((i_category) IN ('Women', 'Music', 'Men') and (i_class) IN ('accessories', 'classical', 'fragrances', 'pants') and (i_brand) IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1'))) + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_class","i_category","i_manager_id"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_81] + PartitionCols:_col1 + Select Operator [SEL_80] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_79] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_10_item_i_item_sk_min) AND DynamicValue(RS_10_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_10_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_date_dim_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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_70] + Group By Operator [GBY_69] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_68] + Group By Operator [GBY_67] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_66] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_64] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_78] + Group By Operator [GBY_77] (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_76] + Group By Operator [GBY_75] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_74] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_72] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query64.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query64.q.out new file mode 100644 index 0000000000..bb03305d82 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query64.q.out @@ -0,0 +1,1038 @@ +Warning: Shuffle Join MERGEJOIN[932][tables = [$hdt$_2, $hdt$_3, $hdt$_4, $hdt$_1]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[933][tables = [$hdt$_2, $hdt$_3, $hdt$_4, $hdt$_1, $hdt$_5]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[947][tables = [$hdt$_3, $hdt$_4, $hdt$_5, $hdt$_2]] in Stage 'Reducer 26' is a cross product +Warning: Shuffle Join MERGEJOIN[948][tables = [$hdt$_3, $hdt$_4, $hdt$_5, $hdt$_2, $hdt$_6]] in Stage 'Reducer 27' is a cross product +PREHOOK: query: explain +with cs_ui as + (select cs_item_sk + ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund + from catalog_sales + ,catalog_returns + where cs_item_sk = cr_item_sk + and cs_order_number = cr_order_number + group by cs_item_sk + having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), +cross_sales as + (select i_product_name product_name + ,i_item_sk item_sk + ,s_store_name store_name + ,s_zip store_zip + ,ad1.ca_street_number b_street_number + ,ad1.ca_street_name b_streen_name + ,ad1.ca_city b_city + ,ad1.ca_zip b_zip + ,ad2.ca_street_number c_street_number + ,ad2.ca_street_name c_street_name + ,ad2.ca_city c_city + ,ad2.ca_zip c_zip + ,d1.d_year as syear + ,d2.d_year as fsyear + ,d3.d_year s2year + ,count(*) cnt + ,sum(ss_wholesale_cost) s1 + ,sum(ss_list_price) s2 + ,sum(ss_coupon_amt) s3 + FROM store_sales + ,store_returns + ,cs_ui + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,customer + ,customer_demographics cd1 + ,customer_demographics cd2 + ,promotion + ,household_demographics hd1 + ,household_demographics hd2 + ,customer_address ad1 + ,customer_address ad2 + ,income_band ib1 + ,income_band ib2 + ,item + WHERE ss_store_sk = s_store_sk AND + ss_sold_date_sk = d1.d_date_sk AND + ss_customer_sk = c_customer_sk AND + ss_cdemo_sk= cd1.cd_demo_sk AND + ss_hdemo_sk = hd1.hd_demo_sk AND + ss_addr_sk = ad1.ca_address_sk and + ss_item_sk = i_item_sk and + ss_item_sk = sr_item_sk and + ss_ticket_number = sr_ticket_number and + ss_item_sk = cs_ui.cs_item_sk and + c_current_cdemo_sk = cd2.cd_demo_sk AND + c_current_hdemo_sk = hd2.hd_demo_sk AND + c_current_addr_sk = ad2.ca_address_sk and + c_first_sales_date_sk = d2.d_date_sk and + c_first_shipto_date_sk = d3.d_date_sk and + ss_promo_sk = p_promo_sk and + hd1.hd_income_band_sk = ib1.ib_income_band_sk and + hd2.hd_income_band_sk = ib2.ib_income_band_sk and + cd1.cd_marital_status <> cd2.cd_marital_status and + i_color in ('maroon','burnished','dim','steel','navajo','chocolate') and + i_current_price between 35 and 35 + 10 and + i_current_price between 35 + 1 and 35 + 15 +group by i_product_name + ,i_item_sk + ,s_store_name + ,s_zip + ,ad1.ca_street_number + ,ad1.ca_street_name + ,ad1.ca_city + ,ad1.ca_zip + ,ad2.ca_street_number + ,ad2.ca_street_name + ,ad2.ca_city + ,ad2.ca_zip + ,d1.d_year + ,d2.d_year + ,d3.d_year +) +select cs1.product_name + ,cs1.store_name + ,cs1.store_zip + ,cs1.b_street_number + ,cs1.b_streen_name + ,cs1.b_city + ,cs1.b_zip + ,cs1.c_street_number + ,cs1.c_street_name + ,cs1.c_city + ,cs1.c_zip + ,cs1.syear + ,cs1.cnt + ,cs1.s1 + ,cs1.s2 + ,cs1.s3 + ,cs2.s1 + ,cs2.s2 + ,cs2.s3 + ,cs2.syear + ,cs2.cnt +from cross_sales cs1,cross_sales cs2 +where cs1.item_sk=cs2.item_sk and + cs1.syear = 2000 and + cs2.syear = 2000 + 1 and + cs2.cnt <= cs1.cnt and + cs1.store_name = cs2.store_name and + cs1.store_zip = cs2.store_zip +order by cs1.product_name + ,cs1.store_name + ,cs2.cnt +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +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@household_demographics +PREHOOK: Input: default@income_band +PREHOOK: Input: default@item +PREHOOK: Input: default@promotion +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with cs_ui as + (select cs_item_sk + ,sum(cs_ext_list_price) as sale,sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit) as refund + from catalog_sales + ,catalog_returns + where cs_item_sk = cr_item_sk + and cs_order_number = cr_order_number + group by cs_item_sk + having sum(cs_ext_list_price)>2*sum(cr_refunded_cash+cr_reversed_charge+cr_store_credit)), +cross_sales as + (select i_product_name product_name + ,i_item_sk item_sk + ,s_store_name store_name + ,s_zip store_zip + ,ad1.ca_street_number b_street_number + ,ad1.ca_street_name b_streen_name + ,ad1.ca_city b_city + ,ad1.ca_zip b_zip + ,ad2.ca_street_number c_street_number + ,ad2.ca_street_name c_street_name + ,ad2.ca_city c_city + ,ad2.ca_zip c_zip + ,d1.d_year as syear + ,d2.d_year as fsyear + ,d3.d_year s2year + ,count(*) cnt + ,sum(ss_wholesale_cost) s1 + ,sum(ss_list_price) s2 + ,sum(ss_coupon_amt) s3 + FROM store_sales + ,store_returns + ,cs_ui + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 + ,store + ,customer + ,customer_demographics cd1 + ,customer_demographics cd2 + ,promotion + ,household_demographics hd1 + ,household_demographics hd2 + ,customer_address ad1 + ,customer_address ad2 + ,income_band ib1 + ,income_band ib2 + ,item + WHERE ss_store_sk = s_store_sk AND + ss_sold_date_sk = d1.d_date_sk AND + ss_customer_sk = c_customer_sk AND + ss_cdemo_sk= cd1.cd_demo_sk AND + ss_hdemo_sk = hd1.hd_demo_sk AND + ss_addr_sk = ad1.ca_address_sk and + ss_item_sk = i_item_sk and + ss_item_sk = sr_item_sk and + ss_ticket_number = sr_ticket_number and + ss_item_sk = cs_ui.cs_item_sk and + c_current_cdemo_sk = cd2.cd_demo_sk AND + c_current_hdemo_sk = hd2.hd_demo_sk AND + c_current_addr_sk = ad2.ca_address_sk and + c_first_sales_date_sk = d2.d_date_sk and + c_first_shipto_date_sk = d3.d_date_sk and + ss_promo_sk = p_promo_sk and + hd1.hd_income_band_sk = ib1.ib_income_band_sk and + hd2.hd_income_band_sk = ib2.ib_income_band_sk and + cd1.cd_marital_status <> cd2.cd_marital_status and + i_color in ('maroon','burnished','dim','steel','navajo','chocolate') and + i_current_price between 35 and 35 + 10 and + i_current_price between 35 + 1 and 35 + 15 +group by i_product_name + ,i_item_sk + ,s_store_name + ,s_zip + ,ad1.ca_street_number + ,ad1.ca_street_name + ,ad1.ca_city + ,ad1.ca_zip + ,ad2.ca_street_number + ,ad2.ca_street_name + ,ad2.ca_city + ,ad2.ca_zip + ,d1.d_year + ,d2.d_year + ,d3.d_year +) +select cs1.product_name + ,cs1.store_name + ,cs1.store_zip + ,cs1.b_street_number + ,cs1.b_streen_name + ,cs1.b_city + ,cs1.b_zip + ,cs1.c_street_number + ,cs1.c_street_name + ,cs1.c_city + ,cs1.c_zip + ,cs1.syear + ,cs1.cnt + ,cs1.s1 + ,cs1.s2 + ,cs1.s3 + ,cs2.s1 + ,cs2.s2 + ,cs2.s3 + ,cs2.syear + ,cs2.cnt +from cross_sales cs1,cross_sales cs2 +where cs1.item_sk=cs2.item_sk and + cs1.syear = 2000 and + cs2.syear = 2000 + 1 and + cs2.cnt <= cs1.cnt and + cs1.store_name = cs2.store_name and + cs1.store_zip = cs2.store_zip +order by cs1.product_name + ,cs1.store_name + ,cs2.cnt +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +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@household_demographics +POSTHOOK: Input: default@income_band +POSTHOOK: Input: default@item +POSTHOOK: Input: default@promotion +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 20 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE), Reducer 42 (BROADCAST_EDGE), Reducer 52 (BROADCAST_EDGE), Reducer 55 (BROADCAST_EDGE), Reducer 58 (BROADCAST_EDGE), Reducer 61 (BROADCAST_EDGE), Reducer 64 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE), Reducer 70 (BROADCAST_EDGE) +Map 39 <- Reducer 20 (BROADCAST_EDGE), Reducer 44 (BROADCAST_EDGE), Reducer 45 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE) +Map 72 <- Reducer 37 (BROADCAST_EDGE), Reducer 38 (BROADCAST_EDGE), Reducer 48 (BROADCAST_EDGE), Reducer 53 (BROADCAST_EDGE), Reducer 56 (BROADCAST_EDGE), Reducer 59 (BROADCAST_EDGE), Reducer 62 (BROADCAST_EDGE), Reducer 65 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE), Reducer 68 (BROADCAST_EDGE), Reducer 71 (BROADCAST_EDGE) +Map 73 <- Reducer 37 (BROADCAST_EDGE), Reducer 49 (BROADCAST_EDGE), Reducer 50 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE), Reducer 68 (BROADCAST_EDGE) +Reducer 10 <- Map 63 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 60 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 63 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 69 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 66 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 15 <- Map 69 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) +Reducer 20 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 19 (SIMPLE_EDGE), Map 72 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (SIMPLE_EDGE), Reducer 47 (ONE_TO_ONE_EDGE) +Reducer 24 <- Map 54 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) +Reducer 25 <- Map 51 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 26 <- Map 54 (CUSTOM_SIMPLE_EDGE), Reducer 25 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 54 (CUSTOM_SIMPLE_EDGE), Reducer 26 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 57 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) +Reducer 29 <- Map 60 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 41 (ONE_TO_ONE_EDGE) +Reducer 30 <- Map 63 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) +Reducer 31 <- Map 60 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Map 63 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE) +Reducer 33 <- Map 69 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) +Reducer 34 <- Map 66 (SIMPLE_EDGE), Reducer 33 (SIMPLE_EDGE) +Reducer 35 <- Map 69 (SIMPLE_EDGE), Reducer 34 (SIMPLE_EDGE) +Reducer 36 <- Reducer 35 (SIMPLE_EDGE) +Reducer 37 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 38 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 54 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 40 <- Map 39 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE) +Reducer 41 <- Reducer 40 (SIMPLE_EDGE) +Reducer 42 <- Reducer 41 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 43 (CUSTOM_SIMPLE_EDGE) +Reducer 45 <- Map 43 (CUSTOM_SIMPLE_EDGE) +Reducer 46 <- Map 43 (SIMPLE_EDGE), Map 73 (SIMPLE_EDGE) +Reducer 47 <- Reducer 46 (SIMPLE_EDGE) +Reducer 48 <- Reducer 47 (CUSTOM_SIMPLE_EDGE) +Reducer 49 <- Map 43 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Map 51 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 50 <- Map 43 (CUSTOM_SIMPLE_EDGE) +Reducer 52 <- Map 51 (CUSTOM_SIMPLE_EDGE) +Reducer 53 <- Map 51 (CUSTOM_SIMPLE_EDGE) +Reducer 55 <- Map 54 (CUSTOM_SIMPLE_EDGE) +Reducer 56 <- Map 54 (CUSTOM_SIMPLE_EDGE) +Reducer 58 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 59 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 54 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 61 <- Map 60 (CUSTOM_SIMPLE_EDGE) +Reducer 62 <- Map 60 (CUSTOM_SIMPLE_EDGE) +Reducer 64 <- Map 63 (CUSTOM_SIMPLE_EDGE) +Reducer 65 <- Map 63 (CUSTOM_SIMPLE_EDGE) +Reducer 67 <- Map 66 (CUSTOM_SIMPLE_EDGE) +Reducer 68 <- Map 66 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 54 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 70 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 71 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 57 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 60 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 18 vectorized + File Output Operator [FS_1159] + Select Operator [SEL_1158] (rows=1690951576740429824 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20"] + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_207] + Select Operator [SEL_206] (rows=1690951576740429824 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"] + Filter Operator [FIL_205] (rows=1690951576740429824 width=1) + predicate:(_col19 <= _col12) + Merge Join Operator [MERGEJOIN_957] (rows=5072854730221289472 width=1) + Conds:RS_1115._col2, _col1, _col3=RS_1157._col1, _col0, _col2(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col19","_col20","_col21","_col22"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1115] + PartitionCols:_col2, _col1, _col3 + Select Operator [SEL_1114] (rows=4611686018427387903 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + Group By Operator [GBY_1113] (rows=4611686018427387903 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_98] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 + Group By Operator [GBY_97] (rows=9223372036854775807 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col6, _col13, _col7, _col16, _col17, _col18, _col19, _col4, _col5, _col9, _col10, _col11, _col12, _col14 + Merge Join Operator [MERGEJOIN_941] (rows=9223372036854775807 width=1) + Conds:RS_93._col8=RS_1098._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col16","_col17","_col18","_col19"] + <-Map 69 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1098] + PartitionCols:_col0 + Select Operator [SEL_1097] (rows=40000000 width=1014) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_88] (rows=40000000 width=1014) + default@customer_address,ad2,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_street_number","ca_street_name","ca_city","ca_zip"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col8 + Merge Join Operator [MERGEJOIN_940] (rows=8769349558452694016 width=1) + Conds:RS_90._col0=RS_999._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Map 66 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_999] + PartitionCols:_col0 + Select Operator [SEL_998] (rows=5703 width=1436) + Output:["_col0","_col1"] + Filter Operator [FIL_997] (rows=5703 width=1436) + predicate:((i_color) IN ('maroon', 'burnished', 'dim', 'steel', 'navajo', 'chocolate') and i_current_price BETWEEN 35 AND 45 and i_current_price BETWEEN 36 AND 50) + TableScan [TS_85] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price","i_color","i_product_name"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_90] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=7972135789438331904 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Merge Join Operator [MERGEJOIN_939] (rows=7972135789438331904 width=1) + Conds:RS_81._col1=RS_1099._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10","_col13","_col14","_col15","_col16"] + <-Map 69 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1099] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1097] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_81] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_938] (rows=7247396015133587456 width=1) + Conds:RS_78._col9=RS_1087._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10"] + <-Map 63 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1087] + PartitionCols:_col0 + Select Operator [SEL_1084] (rows=7200 width=107) + Output:["_col0"] + Filter Operator [FIL_1083] (rows=7200 width=107) + predicate:hd_income_band_sk is not null + TableScan [TS_60] (rows=7200 width=107) + default@household_demographics,hd1,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_income_band_sk"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_78] + PartitionCols:_col9 + Select Operator [SEL_72] (rows=6588541689136829440 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_71] (rows=6588541689136829440 width=1) + predicate:(_col13 <> _col16) + Merge Join Operator [MERGEJOIN_937] (rows=6588541689136829440 width=1) + Conds:RS_68._col10=RS_1073._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col16"] + <-Map 60 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1073] + PartitionCols:_col0 + Select Operator [SEL_1070] (rows=1861800 width=385) + Output:["_col0","_col1"] + TableScan [TS_51] (rows=1861800 width=385) + default@customer_demographics,cd1,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col10 + Merge Join Operator [MERGEJOIN_936] (rows=5989583223940033536 width=1) + Conds:RS_65._col1=RS_1085._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 63 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1085] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1084] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col1 + Select Operator [SEL_59] (rows=5445075540108469248 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Merge Join Operator [MERGEJOIN_935] (rows=5445075540108469248 width=1) + Conds:RS_56._col2=RS_1071._col0(Inner),Output:["_col0","_col3","_col4","_col5","_col6","_col7","_col9","_col11","_col12","_col13","_col15","_col16","_col17","_col21"] + <-Map 60 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1071] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1070] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_56] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_934] (rows=4950068565536034816 width=1) + Conds:RS_53._col1, _col10, _col8=RS_1060._col0, _col4, _col5(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col11","_col12","_col13","_col15","_col16","_col17"] + <-Map 57 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1060] + PartitionCols:_col0, _col4, _col5 + Select Operator [SEL_1059] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_1058] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null and c_first_sales_date_sk is not null and c_first_shipto_date_sk is not null) + TableScan [TS_48] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk","c_first_shipto_date_sk","c_first_sales_date_sk"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col1, _col10, _col8 + Select Operator [SEL_47] (rows=4500062234769263681 width=2) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Merge Join Operator [MERGEJOIN_933] (rows=4500062234769263681 width=2) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1032] + Select Operator [SEL_1026] (rows=73049 width=1119) + Output:["_col0","_col1"] + TableScan [TS_31] (rows=73049 width=1119) + default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_44] + Merge Join Operator [MERGEJOIN_932] (rows=61603337961769 width=1208) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13","_col14","_col15"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1030] + Select Operator [SEL_1024] (rows=73049 width=1119) + Output:["_col0","_col1"] + Please refer to the previous TableScan [TS_31] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_41] + Merge Join Operator [MERGEJOIN_931] (rows=843315281 width=88) + Conds:RS_38._col6=RS_1048._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13"] + <-Map 51 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1048] + PartitionCols:_col0 + Select Operator [SEL_1047] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1046] (rows=1704 width=1910) + predicate:(s_store_name is not null and s_zip is not null) + TableScan [TS_28] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_zip"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col6 + Merge Join Operator [MERGEJOIN_930] (rows=766650239 width=88) + Conds:RS_35._col0=RS_1036._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Map 54 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1036] + PartitionCols:_col0 + Select Operator [SEL_1031] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_1025] (rows=36524 width=1119) + predicate:(d_year = 2000) + Please refer to the previous TableScan [TS_31] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Select Operator [SEL_24] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Merge Join Operator [MERGEJOIN_929] (rows=696954748 width=88) + Conds:RS_21._col1=RS_1018._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col10"] + <-Reducer 41 [ONE_TO_ONE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1018] + PartitionCols:_col0 + Select Operator [SEL_1017] (rows=52798137 width=135) + Output:["_col0"] + Filter Operator [FIL_1016] (rows=52798137 width=135) + predicate:(_col1 > (2 * _col2)) + Group By Operator [GBY_1015] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 40 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col0 + Group By Operator [GBY_13] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","sum(_col5)"],keys:_col0 + Merge Join Operator [MERGEJOIN_928] (rows=316788826 width=135) + Conds:RS_1014._col0, _col1=RS_979._col0, _col1(Inner),Output:["_col0","_col2","_col5"] + <-Map 43 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_979] + PartitionCols:_col0, _col1 + Select Operator [SEL_978] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + TableScan [TS_7] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_refunded_cash","cr_reversed_charge","cr_store_credit"] + <-Map 39 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1014] + PartitionCols:_col0, _col1 + Select Operator [SEL_1013] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1012] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_10_catalog_returns_cr_item_sk_min) AND DynamicValue(RS_10_catalog_returns_cr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_10_catalog_returns_cr_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_19_store_returns_sr_item_sk_min) AND DynamicValue(RS_19_store_returns_sr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_19_store_returns_sr_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_91_item_i_item_sk_min) AND DynamicValue(RS_91_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_91_item_i_item_sk_bloom_filter))) and (cs_order_number BETWEEN DynamicValue(RS_10_catalog_returns_cr_order_number_min) AND DynamicValue(RS_10_catalog_returns_cr_order_number_max) and in_bloom_filter(cs_order_number, DynamicValue(RS_10_catalog_returns_cr_order_number_bloom_filter)))) + TableScan [TS_5] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk","cs_order_number","cs_ext_list_price"] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1009] + Group By Operator [GBY_1007] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 66 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1005] + Group By Operator [GBY_1003] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1000] (rows=5703 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_998] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_975] + Group By Operator [GBY_973] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_969] + Group By Operator [GBY_965] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_960] (rows=57591150 width=77) + Output:["_col0"] + Select Operator [SEL_958] (rows=57591150 width=77) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] + <-Reducer 44 [BROADCAST_EDGE] vectorized + BROADCAST [RS_994] + Group By Operator [GBY_993] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=28798880)"] + <-Map 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_989] + Group By Operator [GBY_985] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=28798880)"] + Select Operator [SEL_980] (rows=28798881 width=106) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_978] + <-Reducer 45 [BROADCAST_EDGE] vectorized + BROADCAST [RS_996] + Group By Operator [GBY_995] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=28798880)"] + <-Map 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_990] + Group By Operator [GBY_986] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=28798880)"] + Select Operator [SEL_981] (rows=28798881 width=106) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_978] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_927] (rows=633595212 width=88) + Conds:RS_1112._col1, _col7=RS_959._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col10"] + <-Map 19 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_959] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_958] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1112] + PartitionCols:_col1, _col7 + Select Operator [SEL_1111] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_1110] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_82_ad1_ca_address_sk_min) AND DynamicValue(RS_82_ad1_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_82_ad1_ca_address_sk_bloom_filter))) and (ss_cdemo_sk BETWEEN DynamicValue(RS_57_cd1_cd_demo_sk_min) AND DynamicValue(RS_57_cd1_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_57_cd1_cd_demo_sk_bloom_filter))) and (ss_customer_sk BETWEEN DynamicValue(RS_54_customer_c_customer_sk_min) AND DynamicValue(RS_54_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_54_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_66_hd1_hd_demo_sk_min) AND DynamicValue(RS_66_hd1_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_66_hd1_hd_demo_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_19_store_returns_sr_item_sk_min) AND DynamicValue(RS_19_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_19_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_22_catalog_sales_cs_item_sk_min) AND DynamicValue(RS_22_catalog_sales_cs_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_22_catalog_sales_cs_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_91_item_i_item_sk_min) AND DynamicValue(RS_91_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_91_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_36_d1_d_date_sk_min) AND DynamicValue(RS_36_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_36_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_39_store_s_store_sk_min) AND DynamicValue(RS_39_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_39_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_19_store_returns_sr_ticket_number_min) AND DynamicValue(RS_19_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_19_store_returns_sr_ticket_number_bloom_filter))) and ss_addr_sk is not null and ss_cdemo_sk is not null and ss_customer_sk is not null and ss_hdemo_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_0] (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_cdemo_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1008] + Please refer to the previous Group By Operator [GBY_1007] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_974] + Please refer to the previous Group By Operator [GBY_973] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_977] + Group By Operator [GBY_976] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_970] + Group By Operator [GBY_966] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_961] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_958] + <-Reducer 42 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1023] + Group By Operator [GBY_1022] (rows=1 width=228) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=52798136)"] + <-Reducer 41 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1021] + Group By Operator [GBY_1020] (rows=1 width=228) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=52798136)"] + Select Operator [SEL_1019] (rows=52798137 width=135) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1017] + <-Reducer 52 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1057] + Group By Operator [GBY_1056] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 51 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1054] + Group By Operator [GBY_1052] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1049] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1047] + <-Reducer 55 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1045] + Group By Operator [GBY_1044] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1042] + Group By Operator [GBY_1040] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1037] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1031] + <-Reducer 58 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1069] + Group By Operator [GBY_1068] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1066] + Group By Operator [GBY_1064] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_1061] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1059] + <-Reducer 61 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1082] + Group By Operator [GBY_1081] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1861800)"] + <-Map 60 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1079] + Group By Operator [GBY_1077] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1861800)"] + Select Operator [SEL_1072] (rows=1861800 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1070] + <-Reducer 64 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1096] + Group By Operator [GBY_1095] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1093] + Group By Operator [GBY_1091] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1086] (rows=7200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1084] + <-Reducer 70 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1109] + Group By Operator [GBY_1108] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1106] + Group By Operator [GBY_1104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_1100] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1097] + <-Reducer 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1157] + PartitionCols:_col1, _col0, _col2 + Select Operator [SEL_1156] (rows=4611686018427387903 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_1155] (rows=4611686018427387903 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8, KEY._col9, KEY._col10, KEY._col11, KEY._col12, KEY._col13 + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_199] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 + Group By Operator [GBY_198] (rows=9223372036854775807 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"],aggregations:["count()","sum(_col1)","sum(_col2)","sum(_col3)"],keys:_col6, _col13, _col7, _col16, _col17, _col18, _col19, _col4, _col5, _col9, _col10, _col11, _col12, _col14 + Merge Join Operator [MERGEJOIN_956] (rows=9223372036854775807 width=1) + Conds:RS_194._col8=RS_1101._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col13","_col14","_col16","_col17","_col18","_col19"] + <-Map 69 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1101] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1097] + <-Reducer 34 [SIMPLE_EDGE] + SHUFFLE [RS_194] + PartitionCols:_col8 + Merge Join Operator [MERGEJOIN_955] (rows=8769349558452694016 width=1) + Conds:RS_191._col0=RS_1001._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Map 66 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1001] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_998] + <-Reducer 33 [SIMPLE_EDGE] + SHUFFLE [RS_191] + PartitionCols:_col0 + Select Operator [SEL_185] (rows=7972135789438331904 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Merge Join Operator [MERGEJOIN_954] (rows=7972135789438331904 width=1) + Conds:RS_182._col1=RS_1102._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10","_col13","_col14","_col15","_col16"] + <-Map 69 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1102] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1097] + <-Reducer 32 [SIMPLE_EDGE] + SHUFFLE [RS_182] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_953] (rows=7247396015133587456 width=1) + Conds:RS_179._col9=RS_1090._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10"] + <-Map 63 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1090] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1084] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_179] + PartitionCols:_col9 + Select Operator [SEL_173] (rows=6588541689136829440 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_172] (rows=6588541689136829440 width=1) + predicate:(_col13 <> _col16) + Merge Join Operator [MERGEJOIN_952] (rows=6588541689136829440 width=1) + Conds:RS_169._col10=RS_1076._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col11","_col12","_col13","_col16"] + <-Map 60 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1076] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1070] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_169] + PartitionCols:_col10 + Merge Join Operator [MERGEJOIN_951] (rows=5989583223940033536 width=1) + Conds:RS_166._col1=RS_1088._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 63 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1088] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1084] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_166] + PartitionCols:_col1 + Select Operator [SEL_160] (rows=5445075540108469248 width=1) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Merge Join Operator [MERGEJOIN_950] (rows=5445075540108469248 width=1) + Conds:RS_157._col2=RS_1074._col0(Inner),Output:["_col0","_col3","_col4","_col5","_col6","_col7","_col9","_col11","_col12","_col13","_col15","_col16","_col17","_col21"] + <-Map 60 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1074] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1070] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_157] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_949] (rows=4950068565536034816 width=1) + Conds:RS_154._col1, _col10, _col8=RS_1062._col0, _col4, _col5(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col11","_col12","_col13","_col15","_col16","_col17"] + <-Map 57 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1062] + PartitionCols:_col0, _col4, _col5 + Please refer to the previous Select Operator [SEL_1059] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_154] + PartitionCols:_col1, _col10, _col8 + Select Operator [SEL_148] (rows=4500062234769263681 width=2) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + Merge Join Operator [MERGEJOIN_948] (rows=4500062234769263681 width=2) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1035] + Select Operator [SEL_1029] (rows=73049 width=1119) + Output:["_col0","_col1"] + Please refer to the previous TableScan [TS_31] + <-Reducer 26 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_145] + Merge Join Operator [MERGEJOIN_947] (rows=61603337961769 width=1208) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13","_col14","_col15"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1033] + Select Operator [SEL_1027] (rows=73049 width=1119) + Output:["_col0","_col1"] + Please refer to the previous TableScan [TS_31] + <-Reducer 25 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_142] + Merge Join Operator [MERGEJOIN_946] (rows=843315281 width=88) + Conds:RS_139._col6=RS_1050._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13"] + <-Map 51 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1050] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1047] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_139] + PartitionCols:_col6 + Merge Join Operator [MERGEJOIN_945] (rows=766650239 width=88) + Conds:RS_136._col0=RS_1038._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Map 54 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1038] + PartitionCols:_col0 + Select Operator [SEL_1034] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_1028] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_31] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_136] + PartitionCols:_col0 + Select Operator [SEL_125] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Merge Join Operator [MERGEJOIN_944] (rows=696954748 width=88) + Conds:RS_122._col1=RS_1134._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col10"] + <-Reducer 47 [ONE_TO_ONE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1134] + PartitionCols:_col0 + Select Operator [SEL_1133] (rows=52798137 width=135) + Output:["_col0"] + Filter Operator [FIL_1132] (rows=52798137 width=135) + predicate:(_col1 > (2 * _col2)) + Group By Operator [GBY_1131] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 46 [SIMPLE_EDGE] + SHUFFLE [RS_115] + PartitionCols:_col0 + Group By Operator [GBY_114] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","sum(_col5)"],keys:_col0 + Merge Join Operator [MERGEJOIN_943] (rows=316788826 width=135) + Conds:RS_1130._col0, _col1=RS_982._col0, _col1(Inner),Output:["_col0","_col2","_col5"] + <-Map 43 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_982] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_978] + <-Map 73 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1130] + PartitionCols:_col0, _col1 + Select Operator [SEL_1129] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1128] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_111_catalog_returns_cr_item_sk_min) AND DynamicValue(RS_111_catalog_returns_cr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_111_catalog_returns_cr_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_120_store_returns_sr_item_sk_min) AND DynamicValue(RS_120_store_returns_sr_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_120_store_returns_sr_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_192_item_i_item_sk_min) AND DynamicValue(RS_192_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_192_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_91_item_i_item_sk_min) AND DynamicValue(RS_91_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_91_item_i_item_sk_bloom_filter))) and (cs_order_number BETWEEN DynamicValue(RS_111_catalog_returns_cr_order_number_min) AND DynamicValue(RS_111_catalog_returns_cr_order_number_max) and in_bloom_filter(cs_order_number, DynamicValue(RS_111_catalog_returns_cr_order_number_bloom_filter)))) + TableScan [TS_106] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk","cs_order_number","cs_ext_list_price"] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1011] + Please refer to the previous Group By Operator [GBY_1007] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1118] + Group By Operator [GBY_1116] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_971] + Group By Operator [GBY_967] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_963] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_958] + <-Reducer 68 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1127] + Group By Operator [GBY_1125] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 66 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1006] + Group By Operator [GBY_1004] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1002] (rows=5703 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_998] + <-Reducer 49 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1122] + Group By Operator [GBY_1121] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=28798880)"] + <-Map 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_991] + Group By Operator [GBY_987] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=28798880)"] + Select Operator [SEL_983] (rows=28798881 width=106) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_978] + <-Reducer 50 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1124] + Group By Operator [GBY_1123] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=28798880)"] + <-Map 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_992] + Group By Operator [GBY_988] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=28798880)"] + Select Operator [SEL_984] (rows=28798881 width=106) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_978] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_122] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_942] (rows=633595212 width=88) + Conds:RS_1154._col1, _col7=RS_962._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col8","_col9","_col10"] + <-Map 19 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_962] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_958] + <-Map 72 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1154] + PartitionCols:_col1, _col7 + Select Operator [SEL_1153] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_1152] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_183_ad1_ca_address_sk_min) AND DynamicValue(RS_183_ad1_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_183_ad1_ca_address_sk_bloom_filter))) and (ss_cdemo_sk BETWEEN DynamicValue(RS_158_cd1_cd_demo_sk_min) AND DynamicValue(RS_158_cd1_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_158_cd1_cd_demo_sk_bloom_filter))) and (ss_customer_sk BETWEEN DynamicValue(RS_155_customer_c_customer_sk_min) AND DynamicValue(RS_155_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_155_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_167_hd1_hd_demo_sk_min) AND DynamicValue(RS_167_hd1_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_167_hd1_hd_demo_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_120_store_returns_sr_item_sk_min) AND DynamicValue(RS_120_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_120_store_returns_sr_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_123_catalog_sales_cs_item_sk_min) AND DynamicValue(RS_123_catalog_sales_cs_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_123_catalog_sales_cs_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_192_item_i_item_sk_min) AND DynamicValue(RS_192_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_192_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_91_item_i_item_sk_min) AND DynamicValue(RS_91_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_91_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_137_d1_d_date_sk_min) AND DynamicValue(RS_137_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_137_d1_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_140_store_s_store_sk_min) AND DynamicValue(RS_140_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_140_store_s_store_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_120_store_returns_sr_ticket_number_min) AND DynamicValue(RS_120_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_120_store_returns_sr_ticket_number_bloom_filter))) and ss_addr_sk is not null and ss_cdemo_sk is not null and ss_customer_sk is not null and ss_hdemo_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_101] (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_cdemo_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1010] + Please refer to the previous Group By Operator [GBY_1007] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1117] + Please refer to the previous Group By Operator [GBY_1116] + <-Reducer 68 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1126] + Please refer to the previous Group By Operator [GBY_1125] + <-Reducer 38 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1120] + Group By Operator [GBY_1119] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=57591152)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_972] + Group By Operator [GBY_968] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=57591152)"] + Select Operator [SEL_964] (rows=57591150 width=77) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_958] + <-Reducer 48 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1139] + Group By Operator [GBY_1138] (rows=1 width=228) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=52798136)"] + <-Reducer 47 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1137] + Group By Operator [GBY_1136] (rows=1 width=228) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=52798136)"] + Select Operator [SEL_1135] (rows=52798137 width=135) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1133] + <-Reducer 53 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1143] + Group By Operator [GBY_1142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 51 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1055] + Group By Operator [GBY_1053] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1051] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1047] + <-Reducer 56 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1141] + Group By Operator [GBY_1140] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 54 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1043] + Group By Operator [GBY_1041] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1039] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1034] + <-Reducer 59 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1145] + Group By Operator [GBY_1144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1067] + Group By Operator [GBY_1065] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_1063] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1059] + <-Reducer 62 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1147] + Group By Operator [GBY_1146] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1861800)"] + <-Map 60 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1080] + Group By Operator [GBY_1078] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1861800)"] + Select Operator [SEL_1075] (rows=1861800 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1070] + <-Reducer 65 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1149] + Group By Operator [GBY_1148] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1094] + Group By Operator [GBY_1092] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1089] (rows=7200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1084] + <-Reducer 71 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1151] + Group By Operator [GBY_1150] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1107] + Group By Operator [GBY_1105] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_1103] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1097] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query65.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query65.q.out new file mode 100644 index 0000000000..6e492c4e7e --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query65.q.out @@ -0,0 +1,235 @@ +PREHOOK: query: explain +select + s_store_name, + i_item_desc, + sc.revenue, + i_current_price, + i_wholesale_cost, + i_brand + from store, item, + (select ss_store_sk, avg(revenue) as ave + from + (select ss_store_sk, ss_item_sk, + sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1212 and 1212+11 + group by ss_store_sk, ss_item_sk) sa + group by ss_store_sk) sb, + (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1212 and 1212+11 + group by ss_store_sk, ss_item_sk) sc + where sb.ss_store_sk = sc.ss_store_sk and + sc.revenue <= 0.1 * sb.ave and + s_store_sk = sc.ss_store_sk and + i_item_sk = sc.ss_item_sk + order by s_store_name, i_item_desc +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + s_store_name, + i_item_desc, + sc.revenue, + i_current_price, + i_wholesale_cost, + i_brand + from store, item, + (select ss_store_sk, avg(revenue) as ave + from + (select ss_store_sk, ss_item_sk, + sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1212 and 1212+11 + group by ss_store_sk, ss_item_sk) sa + group by ss_store_sk) sb, + (select ss_store_sk, ss_item_sk, sum(ss_sales_price) as revenue + from store_sales, date_dim + where ss_sold_date_sk = d_date_sk and d_month_seq between 1212 and 1212+11 + group by ss_store_sk, ss_item_sk) sc + where sb.ss_store_sk = sc.ss_store_sk and + sc.revenue <= 0.1 * sb.ave and + s_store_sk = sc.ss_store_sk and + i_item_sk = sc.ss_item_sk + order by s_store_name, i_item_desc +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 13 <- Reducer 12 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE) +Reducer 10 <- Map 13 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 14 (SIMPLE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Map 16 (SIMPLE_EDGE), 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_179] + Limit [LIM_178] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_177] (rows=140552545 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_48] + Select Operator [SEL_47] (rows=140552545 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_134] (rows=140552545 width=88) + Conds:RS_44._col1=RS_156._col0(Inner),Output:["_col2","_col6","_col8","_col9","_col10","_col11"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_156] + PartitionCols:_col0 + Select Operator [SEL_155] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_35] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_desc","i_current_price","i_wholesale_cost","i_brand"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_133] (rows=127775039 width=88) + Conds:RS_41._col0=RS_148._col0(Inner),Output:["_col1","_col2","_col6"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + PartitionCols:_col0 + Select Operator [SEL_147] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_33] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_41] + PartitionCols:_col0 + Filter Operator [FIL_40] (rows=116159124 width=88) + predicate:(_col2 <= _col4) + Merge Join Operator [MERGEJOIN_132] (rows=348477374 width=88) + Conds:RS_166._col0=RS_176._col0(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_176] + PartitionCols:_col0 + Select Operator [SEL_175] (rows=158398803 width=88) + Output:["_col0","_col1"] + Group By Operator [GBY_174] (rows=158398803 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 + Select Operator [SEL_173] (rows=316797606 width=88) + Output:["_col1","_col2"] + Group By Operator [GBY_172] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0 + Group By Operator [GBY_24] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_131] (rows=633595212 width=88) + Conds:RS_171._col0=RS_139._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + PartitionCols:_col0 + Select Operator [SEL_136] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_135] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] + PartitionCols:_col0 + Select Operator [SEL_170] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_169] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_42_store_s_store_sk_min) AND DynamicValue(RS_42_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_42_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_14] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_154] + Group By Operator [GBY_152] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_151] + Group By Operator [GBY_150] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_149] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_147] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_168] + Group By Operator [GBY_167] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_144] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_140] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_136] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_166] + PartitionCols:_col0 + Group By Operator [GBY_165] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0, _col1 + Group By Operator [GBY_10] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_130] (rows=633595212 width=88) + Conds:RS_164._col0=RS_137._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_137] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_136] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_164] + PartitionCols:_col0 + Select Operator [SEL_163] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_162] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_45_item_i_item_sk_min) AND DynamicValue(RS_45_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_45_item_i_item_sk_bloom_filter))) and (ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_42_store_s_store_sk_min) AND DynamicValue(RS_42_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_42_store_s_store_sk_bloom_filter))) and 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_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_153] + Please refer to the previous Group By Operator [GBY_152] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_161] + Group By Operator [GBY_160] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_159] + Group By Operator [GBY_158] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_157] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_155] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_146] + Group By Operator [GBY_145] (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_143] + Group By Operator [GBY_141] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_138] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_136] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query66.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query66.q.out new file mode 100644 index 0000000000..d719b47603 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query66.q.out @@ -0,0 +1,726 @@ +PREHOOK: query: explain +select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + ,sum(jan_sales) as jan_sales + ,sum(feb_sales) as feb_sales + ,sum(mar_sales) as mar_sales + ,sum(apr_sales) as apr_sales + ,sum(may_sales) as may_sales + ,sum(jun_sales) as jun_sales + ,sum(jul_sales) as jul_sales + ,sum(aug_sales) as aug_sales + ,sum(sep_sales) as sep_sales + ,sum(oct_sales) as oct_sales + ,sum(nov_sales) as nov_sales + ,sum(dec_sales) as dec_sales + ,sum(jan_sales/w_warehouse_sq_ft) as jan_sales_per_sq_foot + ,sum(feb_sales/w_warehouse_sq_ft) as feb_sales_per_sq_foot + ,sum(mar_sales/w_warehouse_sq_ft) as mar_sales_per_sq_foot + ,sum(apr_sales/w_warehouse_sq_ft) as apr_sales_per_sq_foot + ,sum(may_sales/w_warehouse_sq_ft) as may_sales_per_sq_foot + ,sum(jun_sales/w_warehouse_sq_ft) as jun_sales_per_sq_foot + ,sum(jul_sales/w_warehouse_sq_ft) as jul_sales_per_sq_foot + ,sum(aug_sales/w_warehouse_sq_ft) as aug_sales_per_sq_foot + ,sum(sep_sales/w_warehouse_sq_ft) as sep_sales_per_sq_foot + ,sum(oct_sales/w_warehouse_sq_ft) as oct_sales_per_sq_foot + ,sum(nov_sales/w_warehouse_sq_ft) as nov_sales_per_sq_foot + ,sum(dec_sales/w_warehouse_sq_ft) as dec_sales_per_sq_foot + ,sum(jan_net) as jan_net + ,sum(feb_net) as feb_net + ,sum(mar_net) as mar_net + ,sum(apr_net) as apr_net + ,sum(may_net) as may_net + ,sum(jun_net) as jun_net + ,sum(jul_net) as jul_net + ,sum(aug_net) as aug_net + ,sum(sep_net) as sep_net + ,sum(oct_net) as oct_net + ,sum(nov_net) as nov_net + ,sum(dec_net) as dec_net + from ( + (select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then ws_sales_price* ws_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then ws_sales_price* ws_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then ws_sales_price* ws_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then ws_sales_price* ws_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then ws_sales_price* ws_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then ws_sales_price* ws_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then ws_sales_price* ws_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then ws_sales_price* ws_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then ws_sales_price* ws_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then ws_sales_price* ws_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then ws_sales_price* ws_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then ws_sales_price* ws_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as dec_net + from + web_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + ws_warehouse_sk = w_warehouse_sk + and ws_sold_date_sk = d_date_sk + and ws_sold_time_sk = t_time_sk + and ws_ship_mode_sk = sm_ship_mode_sk + and d_year = 2002 + and t_time between 49530 and 49530+28800 + and sm_carrier in ('DIAMOND','AIRBORNE') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + ) + union all + (select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then cs_ext_sales_price* cs_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then cs_ext_sales_price* cs_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then cs_ext_sales_price* cs_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then cs_ext_sales_price* cs_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then cs_ext_sales_price* cs_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then cs_ext_sales_price* cs_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then cs_ext_sales_price* cs_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then cs_ext_sales_price* cs_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then cs_ext_sales_price* cs_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then cs_ext_sales_price* cs_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then cs_ext_sales_price* cs_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then cs_ext_sales_price* cs_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as dec_net + from + catalog_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and cs_sold_time_sk = t_time_sk + and cs_ship_mode_sk = sm_ship_mode_sk + and d_year = 2002 + and t_time between 49530 AND 49530+28800 + and sm_carrier in ('DIAMOND','AIRBORNE') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + ) + ) x + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + order by w_warehouse_name + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@ship_mode +PREHOOK: Input: default@time_dim +PREHOOK: Input: default@warehouse +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + ,sum(jan_sales) as jan_sales + ,sum(feb_sales) as feb_sales + ,sum(mar_sales) as mar_sales + ,sum(apr_sales) as apr_sales + ,sum(may_sales) as may_sales + ,sum(jun_sales) as jun_sales + ,sum(jul_sales) as jul_sales + ,sum(aug_sales) as aug_sales + ,sum(sep_sales) as sep_sales + ,sum(oct_sales) as oct_sales + ,sum(nov_sales) as nov_sales + ,sum(dec_sales) as dec_sales + ,sum(jan_sales/w_warehouse_sq_ft) as jan_sales_per_sq_foot + ,sum(feb_sales/w_warehouse_sq_ft) as feb_sales_per_sq_foot + ,sum(mar_sales/w_warehouse_sq_ft) as mar_sales_per_sq_foot + ,sum(apr_sales/w_warehouse_sq_ft) as apr_sales_per_sq_foot + ,sum(may_sales/w_warehouse_sq_ft) as may_sales_per_sq_foot + ,sum(jun_sales/w_warehouse_sq_ft) as jun_sales_per_sq_foot + ,sum(jul_sales/w_warehouse_sq_ft) as jul_sales_per_sq_foot + ,sum(aug_sales/w_warehouse_sq_ft) as aug_sales_per_sq_foot + ,sum(sep_sales/w_warehouse_sq_ft) as sep_sales_per_sq_foot + ,sum(oct_sales/w_warehouse_sq_ft) as oct_sales_per_sq_foot + ,sum(nov_sales/w_warehouse_sq_ft) as nov_sales_per_sq_foot + ,sum(dec_sales/w_warehouse_sq_ft) as dec_sales_per_sq_foot + ,sum(jan_net) as jan_net + ,sum(feb_net) as feb_net + ,sum(mar_net) as mar_net + ,sum(apr_net) as apr_net + ,sum(may_net) as may_net + ,sum(jun_net) as jun_net + ,sum(jul_net) as jul_net + ,sum(aug_net) as aug_net + ,sum(sep_net) as sep_net + ,sum(oct_net) as oct_net + ,sum(nov_net) as nov_net + ,sum(dec_net) as dec_net + from ( + (select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then ws_sales_price* ws_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then ws_sales_price* ws_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then ws_sales_price* ws_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then ws_sales_price* ws_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then ws_sales_price* ws_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then ws_sales_price* ws_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then ws_sales_price* ws_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then ws_sales_price* ws_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then ws_sales_price* ws_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then ws_sales_price* ws_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then ws_sales_price* ws_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then ws_sales_price* ws_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then ws_net_paid_inc_tax * ws_quantity else 0 end) as dec_net + from + web_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + ws_warehouse_sk = w_warehouse_sk + and ws_sold_date_sk = d_date_sk + and ws_sold_time_sk = t_time_sk + and ws_ship_mode_sk = sm_ship_mode_sk + and d_year = 2002 + and t_time between 49530 and 49530+28800 + and sm_carrier in ('DIAMOND','AIRBORNE') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + ) + union all + (select + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers + ,d_year as year + ,sum(case when d_moy = 1 + then cs_ext_sales_price* cs_quantity else 0 end) as jan_sales + ,sum(case when d_moy = 2 + then cs_ext_sales_price* cs_quantity else 0 end) as feb_sales + ,sum(case when d_moy = 3 + then cs_ext_sales_price* cs_quantity else 0 end) as mar_sales + ,sum(case when d_moy = 4 + then cs_ext_sales_price* cs_quantity else 0 end) as apr_sales + ,sum(case when d_moy = 5 + then cs_ext_sales_price* cs_quantity else 0 end) as may_sales + ,sum(case when d_moy = 6 + then cs_ext_sales_price* cs_quantity else 0 end) as jun_sales + ,sum(case when d_moy = 7 + then cs_ext_sales_price* cs_quantity else 0 end) as jul_sales + ,sum(case when d_moy = 8 + then cs_ext_sales_price* cs_quantity else 0 end) as aug_sales + ,sum(case when d_moy = 9 + then cs_ext_sales_price* cs_quantity else 0 end) as sep_sales + ,sum(case when d_moy = 10 + then cs_ext_sales_price* cs_quantity else 0 end) as oct_sales + ,sum(case when d_moy = 11 + then cs_ext_sales_price* cs_quantity else 0 end) as nov_sales + ,sum(case when d_moy = 12 + then cs_ext_sales_price* cs_quantity else 0 end) as dec_sales + ,sum(case when d_moy = 1 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jan_net + ,sum(case when d_moy = 2 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as feb_net + ,sum(case when d_moy = 3 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as mar_net + ,sum(case when d_moy = 4 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as apr_net + ,sum(case when d_moy = 5 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as may_net + ,sum(case when d_moy = 6 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jun_net + ,sum(case when d_moy = 7 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as jul_net + ,sum(case when d_moy = 8 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as aug_net + ,sum(case when d_moy = 9 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as sep_net + ,sum(case when d_moy = 10 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as oct_net + ,sum(case when d_moy = 11 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as nov_net + ,sum(case when d_moy = 12 + then cs_net_paid_inc_ship_tax * cs_quantity else 0 end) as dec_net + from + catalog_sales + ,warehouse + ,date_dim + ,time_dim + ,ship_mode + where + cs_warehouse_sk = w_warehouse_sk + and cs_sold_date_sk = d_date_sk + and cs_sold_time_sk = t_time_sk + and cs_ship_mode_sk = sm_ship_mode_sk + and d_year = 2002 + and t_time between 49530 AND 49530+28800 + and sm_carrier in ('DIAMOND','AIRBORNE') + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,d_year + ) + ) x + group by + w_warehouse_name + ,w_warehouse_sq_ft + ,w_city + ,w_county + ,w_state + ,w_country + ,ship_carriers + ,year + order by w_warehouse_name + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@ship_mode +POSTHOOK: Input: default@time_dim +POSTHOOK: Input: default@warehouse +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE) +Map 27 <- Reducer 17 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE), Reducer 23 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 10 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) +Reducer 13 <- Map 18 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 21 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 15 <- Map 24 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 17 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 18 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 21 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 24 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 8 <- Union 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_275] + Select Operator [SEL_274] (rows=100 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41","_col42","_col43"] + Limit [LIM_273] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_272] (rows=158120068 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_271] + Group By Operator [GBY_270] (rows=158120068 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)","sum(VALUE._col7)","sum(VALUE._col8)","sum(VALUE._col9)","sum(VALUE._col10)","sum(VALUE._col11)","sum(VALUE._col12)","sum(VALUE._col13)","sum(VALUE._col14)","sum(VALUE._col15)","sum(VALUE._col16)","sum(VALUE._col17)","sum(VALUE._col18)","sum(VALUE._col19)","sum(VALUE._col20)","sum(VALUE._col21)","sum(VALUE._col22)","sum(VALUE._col23)","sum(VALUE._col24)","sum(VALUE._col25)","sum(VALUE._col26)","sum(VALUE._col27)","sum(VALUE._col28)","sum(VALUE._col29)","sum(VALUE._col30)","sum(VALUE._col31)","sum(VALUE._col32)","sum(VALUE._col33)","sum(VALUE._col34)","sum(VALUE._col35)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Union 7 [SIMPLE_EDGE] + <-Reducer 16 [CONTAINS] vectorized + Reduce Output Operator [RS_291] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_290] (rows=316240137 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"],aggregations:["sum(_col6)","sum(_col7)","sum(_col8)","sum(_col9)","sum(_col10)","sum(_col11)","sum(_col12)","sum(_col13)","sum(_col14)","sum(_col15)","sum(_col16)","sum(_col17)","sum(_col18)","sum(_col19)","sum(_col20)","sum(_col21)","sum(_col22)","sum(_col23)","sum(_col24)","sum(_col25)","sum(_col26)","sum(_col27)","sum(_col28)","sum(_col29)","sum(_col30)","sum(_col31)","sum(_col32)","sum(_col33)","sum(_col34)","sum(_col35)","sum(_col36)","sum(_col37)","sum(_col38)","sum(_col39)","sum(_col40)","sum(_col41)"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Top N Key Operator [TNK_289] (rows=316240137 width=135) + keys:_col0, _col1, _col2, _col3, _col4, _col5,sort order:++++++,top n:100 + Select Operator [SEL_288] (rows=316240137 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"] + Group By Operator [GBY_287] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)","sum(VALUE._col7)","sum(VALUE._col8)","sum(VALUE._col9)","sum(VALUE._col10)","sum(VALUE._col11)","sum(VALUE._col12)","sum(VALUE._col13)","sum(VALUE._col14)","sum(VALUE._col15)","sum(VALUE._col16)","sum(VALUE._col17)","sum(VALUE._col18)","sum(VALUE._col19)","sum(VALUE._col20)","sum(VALUE._col21)","sum(VALUE._col22)","sum(VALUE._col23)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_60] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29"],aggregations:["sum(_col8)","sum(_col9)","sum(_col10)","sum(_col11)","sum(_col12)","sum(_col13)","sum(_col14)","sum(_col15)","sum(_col16)","sum(_col17)","sum(_col18)","sum(_col19)","sum(_col20)","sum(_col21)","sum(_col22)","sum(_col23)","sum(_col24)","sum(_col25)","sum(_col26)","sum(_col27)","sum(_col28)","sum(_col29)","sum(_col30)","sum(_col31)"],keys:_col2, _col3, _col4, _col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_202] (rows=421645953 width=135) + Conds:RS_56._col1=RS_254._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_254] + PartitionCols:_col0 + Select Operator [SEL_251] (rows=1 width=0) + Output:["_col0"] + Filter Operator [FIL_250] (rows=1 width=0) + predicate:(sm_carrier) IN ('DIAMOND', 'AIRBORNE') + TableScan [TS_18] (rows=1 width=0) + default@ship_mode,ship_mode,Tbl:PARTIAL,Col:NONE,Output:["sm_ship_mode_sk","sm_carrier"] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_56] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_201] (rows=383314495 width=135) + Conds:RS_53._col0=RS_242._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_242] + PartitionCols:_col0 + Select Operator [SEL_239] (rows=9600 width=471) + Output:["_col0"] + Filter Operator [FIL_238] (rows=9600 width=471) + predicate:t_time BETWEEN 49530 AND 78330 + TableScan [TS_15] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_time"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col0 + Select Operator [SEL_46] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + Merge Join Operator [MERGEJOIN_200] (rows=348467716 width=135) + Conds:RS_43._col3=RS_230._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col20","_col21","_col22","_col23","_col24","_col25"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_230] + PartitionCols:_col0 + Select Operator [SEL_227] (rows=27 width=1029) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + TableScan [TS_6] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_warehouse_name","w_warehouse_sq_ft","w_city","w_county","w_state","w_country"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_199] (rows=316788826 width=135) + Conds:RS_286._col0=RS_219._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_219] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=36524 width=1119) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Filter Operator [FIL_215] (rows=36524 width=1119) + predicate:(d_year = 2002) + TableScan [TS_3] (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] vectorized + SHUFFLE [RS_286] + PartitionCols:_col0 + Select Operator [SEL_285] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_284] (rows=287989836 width=135) + predicate:((cs_ship_mode_sk BETWEEN DynamicValue(RS_57_ship_mode_sm_ship_mode_sk_min) AND DynamicValue(RS_57_ship_mode_sm_ship_mode_sk_max) and in_bloom_filter(cs_ship_mode_sk, DynamicValue(RS_57_ship_mode_sm_ship_mode_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_41_date_dim_d_date_sk_min) AND DynamicValue(RS_41_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_41_date_dim_d_date_sk_bloom_filter))) and (cs_sold_time_sk BETWEEN DynamicValue(RS_54_time_dim_t_time_sk_min) AND DynamicValue(RS_54_time_dim_t_time_sk_max) and in_bloom_filter(cs_sold_time_sk, DynamicValue(RS_54_time_dim_t_time_sk_bloom_filter))) and (cs_warehouse_sk BETWEEN DynamicValue(RS_44_warehouse_w_warehouse_sk_min) AND DynamicValue(RS_44_warehouse_w_warehouse_sk_max) and in_bloom_filter(cs_warehouse_sk, DynamicValue(RS_44_warehouse_w_warehouse_sk_bloom_filter))) and cs_ship_mode_sk is not null and cs_sold_date_sk is not null and cs_sold_time_sk is not null and cs_warehouse_sk is not null) + TableScan [TS_32] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_sold_time_sk","cs_ship_mode_sk","cs_warehouse_sk","cs_quantity","cs_ext_sales_price","cs_net_paid_inc_ship_tax"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_277] + Group By Operator [GBY_276] (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_224] + Group By Operator [GBY_222] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_220] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_216] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_279] + Group By Operator [GBY_278] (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_235] + Group By Operator [GBY_233] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_231] (rows=27 width=1029) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_227] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_281] + Group By Operator [GBY_280] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_247] + Group By Operator [GBY_245] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_243] (rows=9600 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_239] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_283] + Group By Operator [GBY_282] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_259] + Group By Operator [GBY_257] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_255] (rows=1 width=0) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_251] + <-Reducer 6 [CONTAINS] vectorized + Reduce Output Operator [RS_269] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_268] (rows=316240137 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"],aggregations:["sum(_col6)","sum(_col7)","sum(_col8)","sum(_col9)","sum(_col10)","sum(_col11)","sum(_col12)","sum(_col13)","sum(_col14)","sum(_col15)","sum(_col16)","sum(_col17)","sum(_col18)","sum(_col19)","sum(_col20)","sum(_col21)","sum(_col22)","sum(_col23)","sum(_col24)","sum(_col25)","sum(_col26)","sum(_col27)","sum(_col28)","sum(_col29)","sum(_col30)","sum(_col31)","sum(_col32)","sum(_col33)","sum(_col34)","sum(_col35)","sum(_col36)","sum(_col37)","sum(_col38)","sum(_col39)","sum(_col40)","sum(_col41)"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Top N Key Operator [TNK_267] (rows=316240137 width=135) + keys:_col0, _col1, _col2, _col3, _col4, _col5,sort order:++++++,top n:100 + Select Operator [SEL_266] (rows=316240137 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31","_col32","_col33","_col34","_col35","_col36","_col37","_col38","_col39","_col40","_col41"] + Group By Operator [GBY_265] (rows=105417161 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)","sum(VALUE._col3)","sum(VALUE._col4)","sum(VALUE._col5)","sum(VALUE._col6)","sum(VALUE._col7)","sum(VALUE._col8)","sum(VALUE._col9)","sum(VALUE._col10)","sum(VALUE._col11)","sum(VALUE._col12)","sum(VALUE._col13)","sum(VALUE._col14)","sum(VALUE._col15)","sum(VALUE._col16)","sum(VALUE._col17)","sum(VALUE._col18)","sum(VALUE._col19)","sum(VALUE._col20)","sum(VALUE._col21)","sum(VALUE._col22)","sum(VALUE._col23)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_28] (rows=210834322 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29"],aggregations:["sum(_col8)","sum(_col9)","sum(_col10)","sum(_col11)","sum(_col12)","sum(_col13)","sum(_col14)","sum(_col15)","sum(_col16)","sum(_col17)","sum(_col18)","sum(_col19)","sum(_col20)","sum(_col21)","sum(_col22)","sum(_col23)","sum(_col24)","sum(_col25)","sum(_col26)","sum(_col27)","sum(_col28)","sum(_col29)","sum(_col30)","sum(_col31)"],keys:_col2, _col3, _col4, _col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_198] (rows=210834322 width=135) + Conds:RS_24._col1=RS_252._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_252] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_251] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_197] (rows=191667562 width=135) + Conds:RS_21._col0=RS_240._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_240] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_239] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Select Operator [SEL_14] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26","_col27","_col28","_col29","_col30","_col31"] + Merge Join Operator [MERGEJOIN_196] (rows=174243235 width=135) + Conds:RS_11._col3=RS_228._col0(Inner),Output:["_col1","_col2","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18","_col20","_col21","_col22","_col23","_col24","_col25"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_228] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_227] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_195] (rows=158402938 width=135) + Conds:RS_264._col0=RS_217._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col18"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_217] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_216] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_264] + PartitionCols:_col0 + Select Operator [SEL_263] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_262] (rows=144002668 width=135) + predicate:((ws_ship_mode_sk BETWEEN DynamicValue(RS_25_ship_mode_sm_ship_mode_sk_min) AND DynamicValue(RS_25_ship_mode_sm_ship_mode_sk_max) and in_bloom_filter(ws_ship_mode_sk, DynamicValue(RS_25_ship_mode_sm_ship_mode_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_date_dim_d_date_sk_bloom_filter))) and (ws_sold_time_sk BETWEEN DynamicValue(RS_22_time_dim_t_time_sk_min) AND DynamicValue(RS_22_time_dim_t_time_sk_max) and in_bloom_filter(ws_sold_time_sk, DynamicValue(RS_22_time_dim_t_time_sk_bloom_filter))) and (ws_warehouse_sk BETWEEN DynamicValue(RS_12_warehouse_w_warehouse_sk_min) AND DynamicValue(RS_12_warehouse_w_warehouse_sk_max) and in_bloom_filter(ws_warehouse_sk, DynamicValue(RS_12_warehouse_w_warehouse_sk_bloom_filter))) and ws_ship_mode_sk is not null and ws_sold_date_sk is not null and ws_sold_time_sk is not null and ws_warehouse_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_sold_time_sk","ws_ship_mode_sk","ws_warehouse_sk","ws_quantity","ws_sales_price","ws_net_paid_inc_tax"] + <-Reducer 11 [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)"] + <-Map 10 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_223] + Group By Operator [GBY_221] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_218] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_216] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_237] + Group By Operator [GBY_236] (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_234] + Group By Operator [GBY_232] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_229] (rows=27 width=1029) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_227] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_249] + Group By Operator [GBY_248] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_246] + Group By Operator [GBY_244] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_241] (rows=9600 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_239] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_261] + Group By Operator [GBY_260] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_258] + Group By Operator [GBY_256] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_253] (rows=1 width=0) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_251] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query67.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query67.q.out new file mode 100644 index 0000000000..ef3301ce36 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query67.q.out @@ -0,0 +1,222 @@ +PREHOOK: query: explain +select * +from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rank() over (partition by i_category order by sumsales desc) rk + from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales + from store_sales + ,date_dim + ,store + ,item + where ss_sold_date_sk=d_date_sk + and ss_item_sk=i_item_sk + and ss_store_sk = s_store_sk + and d_month_seq between 1212 and 1212+11 + group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2 +where rk <= 100 +order by i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rk +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * +from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rank() over (partition by i_category order by sumsales desc) rk + from (select i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales + from store_sales + ,date_dim + ,store + ,item + where ss_sold_date_sk=d_date_sk + and ss_item_sk=i_item_sk + and ss_store_sk = s_store_sk + and d_month_seq between 1212 and 1212+11 + group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2 +where rk <= 100 +order by i_category + ,i_class + ,i_brand + ,i_product_name + ,d_year + ,d_qoy + ,d_moy + ,s_store_id + ,sumsales + ,rk +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 7 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 6 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 10 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 9 <- Map 12 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_118] + Limit [LIM_117] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_116] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_115] + Select Operator [SEL_114] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Filter Operator [FIL_113] (rows=1149975358 width=88) + predicate:(rank_window_0 <= 100) + PTF Operator [PTF_112] (rows=3449926075 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col8 DESC NULLS LAST","partition by:":"_col2"}] + Select Operator [SEL_111] (rows=3449926075 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_110] + PartitionCols:_col2 + Select Operator [SEL_109] (rows=3449926075 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Group By Operator [GBY_108] (rows=3449926075 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7, KEY._col8 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 + Group By Operator [GBY_21] (rows=6899852151 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"],aggregations:["sum(_col10)"],keys:_col1, _col2, _col3, _col4, _col6, _col7, _col8, _col9, 0L + Merge Join Operator [MERGEJOIN_82] (rows=766650239 width=88) + Conds:RS_84._col0=RS_18._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col8","_col9","_col10"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_84] + PartitionCols:_col0 + Select Operator [SEL_83] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_class","i_category","i_product_name"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0 + Select Operator [SEL_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_81] (rows=696954748 width=88) + Conds:RS_13._col2=RS_97._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col7","_col9"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_97] + PartitionCols:_col0 + Select Operator [SEL_96] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_8] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_13] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_80] (rows=633595212 width=88) + Conds:RS_107._col0=RS_90._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_90] + PartitionCols:_col0 + Select Operator [SEL_89] (rows=73049 width=1119) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_88] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq","d_year","d_moy","d_qoy"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_107] + PartitionCols:_col0 + Select Operator [SEL_106] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_105] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_17_item_i_item_sk_min) AND DynamicValue(RS_17_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_17_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_11_date_dim_d_date_sk_min) AND DynamicValue(RS_11_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_11_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_14_store_s_store_sk_min) AND DynamicValue(RS_14_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_14_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_2] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_quantity","ss_sales_price"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_95] + Group By Operator [GBY_94] (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_93] + Group By Operator [GBY_92] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_91] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_89] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_102] + Group By Operator [GBY_101] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_100] + Group By Operator [GBY_99] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_98] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_96] + <-Reducer 6 [BROADCAST_EDGE] vectorized + BROADCAST [RS_104] + Group By Operator [GBY_103] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_87] + Group By Operator [GBY_86] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_85] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_83] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query68.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query68.q.out new file mode 100644 index 0000000000..bd56c8ad18 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query68.q.out @@ -0,0 +1,280 @@ +PREHOOK: query: explain +select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,extended_price + ,extended_tax + ,list_price + from (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_ext_sales_price) extended_price + ,sum(ss_ext_list_price) list_price + ,sum(ss_ext_tax) extended_tax + from store_sales + ,date_dim + ,store + ,household_demographics + ,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_dep_count = 2 or + household_demographics.hd_vehicle_count= 1) + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_city in ('Cedar Grove','Wildwood') + group by ss_ticket_number + ,ss_customer_sk + ,ss_addr_sk,ca_city) dn + ,customer + ,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,ss_ticket_number + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select c_last_name + ,c_first_name + ,ca_city + ,bought_city + ,ss_ticket_number + ,extended_price + ,extended_tax + ,list_price + from (select ss_ticket_number + ,ss_customer_sk + ,ca_city bought_city + ,sum(ss_ext_sales_price) extended_price + ,sum(ss_ext_list_price) list_price + ,sum(ss_ext_tax) extended_tax + from store_sales + ,date_dim + ,store + ,household_demographics + ,customer_address + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and store_sales.ss_addr_sk = customer_address.ca_address_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_dep_count = 2 or + household_demographics.hd_vehicle_count= 1) + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_city in ('Cedar Grove','Wildwood') + group by ss_ticket_number + ,ss_customer_sk + ,ss_addr_sk,ca_city) dn + ,customer + ,customer_address current_addr + where ss_customer_sk = c_customer_sk + and customer.c_current_addr_sk = current_addr.ca_address_sk + and current_addr.ca_city <> bought_city + order by c_last_name + ,ss_ticket_number + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 10 <- Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 5 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 12 <- Map 16 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 18 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Reducer 13 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 6 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_190] + Limit [LIM_189] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_188] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_45] + Select Operator [SEL_44] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_43] (rows=463823414 width=88) + predicate:(_col5 <> _col8) + Merge Join Operator [MERGEJOIN_144] (rows=463823414 width=88) + Conds:RS_40._col0=RS_187._col1(Inner),Output:["_col2","_col3","_col5","_col6","_col8","_col9","_col10","_col11"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_40] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_139] (rows=88000001 width=860) + Conds:RS_147._col1=RS_149._col0(Inner),Output:["_col0","_col2","_col3","_col5"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_149] + PartitionCols:_col0 + Select Operator [SEL_148] (rows=40000000 width=1014) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,current_addr,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_city"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_147] + PartitionCols:_col1 + Select Operator [SEL_146] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_145] (rows=80000000 width=860) + predicate:c_current_addr_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","c_first_name","c_last_name"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col1 + Select Operator [SEL_186] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Group By Operator [GBY_185] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_34] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_33] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col0, _col9, _col2, _col3 + Merge Join Operator [MERGEJOIN_143] (rows=843315281 width=88) + Conds:RS_29._col2=RS_150._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6","_col9"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_150] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_148] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_142] (rows=766650239 width=88) + Conds:RS_26._col1=RS_172._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6"] + <-Map 18 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_172] + PartitionCols:_col0 + Select Operator [SEL_171] (rows=7200 width=107) + Output:["_col0"] + Filter Operator [FIL_170] (rows=7200 width=107) + predicate:((hd_dep_count = 2) or (hd_vehicle_count = 1)) + TableScan [TS_21] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col1 + Select Operator [SEL_20] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_141] (rows=696954748 width=88) + Conds:RS_17._col4=RS_164._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7","_col8"] + <-Map 16 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_164] + PartitionCols:_col0 + Select Operator [SEL_163] (rows=1704 width=1910) + Output:["_col0"] + Filter Operator [FIL_162] (rows=1704 width=1910) + predicate:(s_city) IN ('Cedar Grove', 'Wildwood') + TableScan [TS_11] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_city"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_140] (rows=633595212 width=88) + Conds:RS_184._col0=RS_156._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_156] + PartitionCols:_col0 + Select Operator [SEL_155] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_154] (rows=73049 width=1119) + predicate:((d_year) IN (1998, 1999, 2000) and d_dom BETWEEN 1 AND 2) + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_dom"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_184] + PartitionCols:_col0 + Select Operator [SEL_183] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_182] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_30_customer_address_ca_address_sk_min) AND DynamicValue(RS_30_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_30_customer_address_ca_address_sk_bloom_filter))) and (ss_customer_sk BETWEEN DynamicValue(RS_40_customer_c_customer_sk_min) AND DynamicValue(RS_40_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_40_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_27_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_27_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_27_household_demographics_hd_demo_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_store_sk BETWEEN DynamicValue(RS_18_store_s_store_sk_min) AND DynamicValue(RS_18_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_18_store_s_store_sk_bloom_filter))) and ss_addr_sk is not null and ss_customer_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_5] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_ticket_number","ss_ext_sales_price","ss_ext_list_price","ss_ext_tax"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_161] + Group By Operator [GBY_160] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_159] + Group By Operator [GBY_158] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_157] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_155] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_169] + Group By Operator [GBY_168] (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_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=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_163] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_177] + Group By Operator [GBY_176] (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 + PARTITION_ONLY_SHUFFLE [RS_175] + Group By Operator [GBY_174] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_173] (rows=7200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_171] + <-Reducer 5 [BROADCAST_EDGE] vectorized + BROADCAST [RS_181] + Group By Operator [GBY_180] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=88000000)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_116] + Group By Operator [GBY_115] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=88000000)"] + Select Operator [SEL_114] (rows=88000001 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_139] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_179] + Group By Operator [GBY_178] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_153] + Group By Operator [GBY_152] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_151] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_148] + 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 0000000000..ef07151000 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query69.q.out @@ -0,0 +1,335 @@ +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 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (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 3 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_234] + Limit [LIM_233] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_232] (rows=105414410 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_231] + Select Operator [SEL_230] (rows=105414410 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col6"] + Group By Operator [GBY_229] (rows=105414410 width=88) + 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=210828820 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count()"],keys:_col6, _col7, _col8, _col9, _col10 + Top N Key Operator [TNK_104] (rows=210828820 width=88) + keys:_col6, _col7, _col8, _col9, _col10,sort order:+++++,top n:100 + Select Operator [SEL_66] (rows=210828820 width=88) + Output:["_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_65] (rows=210828820 width=88) + predicate:_col14 is null + Merge Join Operator [MERGEJOIN_183] (rows=421657640 width=88) + Conds:RS_62._col0=RS_228._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col14"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_228] + PartitionCols:_col0 + Select Operator [SEL_227] (rows=158394413 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_226] (rows=158394413 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_59] + PartitionCols:_col0 + Group By Operator [GBY_58] (rows=316788826 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_180] (rows=316788826 width=135) + Conds:RS_225._col0=RS_198._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_198] + PartitionCols:_col0 + Select Operator [SEL_193] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_192] (rows=36524 width=1119) + predicate:((d_year = 1999) and d_moy BETWEEN 1 AND 3) + TableScan [TS_11] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] + PartitionCols:_col0 + Select Operator [SEL_224] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_223] (rows=287989836 width=135) + predicate:((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=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_222] + Group By Operator [GBY_221] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_62] + PartitionCols:_col0 + Select Operator [SEL_47] (rows=383325119 width=88) + Output:["_col0","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_46] (rows=383325119 width=88) + predicate:_col12 is null + Merge Join Operator [MERGEJOIN_182] (rows=766650239 width=88) + Conds:RS_43._col0=RS_220._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col12"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_220] + PartitionCols:_col0 + Select Operator [SEL_219] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_218] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col0 + Group By Operator [GBY_28] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_179] (rows=158402938 width=135) + Conds:RS_217._col0=RS_196._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_196] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_215] (rows=144002668 width=135) + predicate:((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=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 18 [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 14 [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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_43] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_181] (rows=696954748 width=88) + Conds:RS_40._col0=RS_41._col0(Left Semi),Output:["_col0","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_40] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_177] (rows=96800003 width=860) + Conds:RS_35._col1=RS_191._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_191] + PartitionCols:_col0 + Select Operator [SEL_190] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + TableScan [TS_6] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,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=88000001 width=860) + 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=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_184] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_189] + PartitionCols:_col0 + Select Operator [SEL_188] (rows=40000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_187] (rows=40000000 width=1014) + predicate:(ca_state) IN ('CO', 'IL', 'MN') + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0 + Group By Operator [GBY_39] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_17] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_178] (rows=633595212 width=88) + Conds:RS_212._col0=RS_194._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_212] + PartitionCols:_col0 + Select Operator [SEL_211] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_210] (rows=575995635 width=88) + 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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [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 14 [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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 9 [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=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_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=96800000)"] + Select Operator [SEL_135] (rows=96800003 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_177] + 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 0000000000..794dfe932b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query7.q.out @@ -0,0 +1,197 @@ +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 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (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 14 (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_139] + Limit [LIM_138] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_137] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_136] + Select Operator [SEL_135] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_134] (rows=421657640 width=88) + 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_29] + PartitionCols:_col0 + Group By Operator [GBY_28] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["sum(_col2)","count(_col2)","sum(_col3)","count(_col3)","sum(_col5)","count(_col5)","sum(_col4)","count(_col4)"],keys:_col8 + Top N Key Operator [TNK_55] (rows=843315281 width=88) + keys:_col8,sort order:+,top n:100 + Merge Join Operator [MERGEJOIN_99] (rows=843315281 width=88) + Conds:RS_24._col0=RS_125._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col0 + Select Operator [SEL_124] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_19] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_98] (rows=766650239 width=88) + Conds:RS_21._col1=RS_118._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + PartitionCols:_col0 + Select Operator [SEL_117] (rows=2300 width=1179) + Output:["_col0"] + Filter Operator [FIL_116] (rows=2300 width=1179) + predicate:((p_channel_email = 'N') or (p_channel_event = 'N')) + TableScan [TS_16] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_email","p_channel_event"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_97] (rows=696954748 width=88) + Conds:RS_12._col0=RS_110._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_110] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_108] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_6] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_96] (rows=633595212 width=88) + Conds:RS_133._col2=RS_102._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=232725 width=385) + Output:["_col0"] + Filter Operator [FIL_100] (rows=232725 width=385) + predicate:((cd_education_status = 'Primary') and (cd_gender = 'F') and (cd_marital_status = 'W')) + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_133] + PartitionCols:_col2 + Select Operator [SEL_132] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_131] (rows=575995635 width=88) + predicate:((ss_cdemo_sk BETWEEN DynamicValue(RS_10_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_10_customer_demographics_cd_demo_sk_max) and in_bloom_filter(ss_cdemo_sk, DynamicValue(RS_10_customer_demographics_cd_demo_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_25_item_i_item_sk_min) AND DynamicValue(RS_25_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_25_item_i_item_sk_bloom_filter))) and (ss_promo_sk BETWEEN DynamicValue(RS_22_promotion_p_promo_sk_min) AND DynamicValue(RS_22_promotion_p_promo_sk_max) and in_bloom_filter(ss_promo_sk, DynamicValue(RS_22_promotion_p_promo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,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_115] + Group By Operator [GBY_114] (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_113] + Group By Operator [GBY_112] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_111] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_109] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_123] + Group By Operator [GBY_122] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_119] (rows=2300 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_117] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_130] + Group By Operator [GBY_129] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + Group By Operator [GBY_127] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_126] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_124] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_107] + Group By Operator [GBY_106] (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_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_103] (rows=232725 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + 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 0000000000..4367ad85a6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query70.q.out @@ -0,0 +1,268 @@ +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 16 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 17 <- Reducer 14 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE) +Reducer 10 <- Map 17 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Map 18 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Map 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (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 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_187] + Limit [LIM_186] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_185] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_184] + Select Operator [SEL_183] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + PTF Operator [PTF_182] (rows=1149975358 width=88) + 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_181] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_180] + PartitionCols:(grouping(_col3, 1) + grouping(_col3, 0)), CASE WHEN ((grouping(_col3, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END + Select Operator [SEL_179] (rows=1149975358 width=88) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_178] (rows=1149975358 width=88) + 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=2299950717 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)"],keys:_col0, _col1, 0L + Select Operator [SEL_46] (rows=766650239 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_134] (rows=766650239 width=88) + Conds:RS_43._col7=RS_177._col0(Inner),Output:["_col2","_col6","_col7"] + <-Reducer 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_177] + PartitionCols:_col0 + Select Operator [SEL_176] (rows=116159124 width=88) + Output:["_col0"] + Filter Operator [FIL_175] (rows=116159124 width=88) + predicate:(rank_window_0 <= 5) + PTF Operator [PTF_174] (rows=348477374 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 DESC NULLS LAST","partition by:":"_col0"}] + Select Operator [SEL_173] (rows=348477374 width=88) + Output:["_col0","_col1"] + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_172] + PartitionCols:_col0 + Group By Operator [GBY_171] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col0 + Group By Operator [GBY_25] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col5 + Merge Join Operator [MERGEJOIN_133] (rows=696954748 width=88) + Conds:RS_21._col1=RS_162._col0(Inner),Output:["_col2","_col5"] + <-Map 18 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_162] + PartitionCols:_col0 + Select Operator [SEL_161] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_160] (rows=1704 width=1910) + predicate:s_state is not null + TableScan [TS_15] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_state"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_132] (rows=633595212 width=88) + Conds:RS_170._col0=RS_139._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + PartitionCols:_col0 + Select Operator [SEL_136] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_135] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_170] + PartitionCols:_col0 + Select Operator [SEL_169] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_168] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_19_date_dim_d_date_sk_min) AND DynamicValue(RS_19_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_19_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_22_store_s_store_sk_min) AND DynamicValue(RS_22_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_22_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_9] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_store_sk","ss_net_profit"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_159] + Group By Operator [GBY_158] (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_144] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_140] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_136] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_167] + Group By Operator [GBY_166] (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 + PARTITION_ONLY_SHUFFLE [RS_165] + Group By Operator [GBY_164] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_163] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_161] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col7 + Merge Join Operator [MERGEJOIN_131] (rows=696954748 width=88) + Conds:RS_40._col1=RS_149._col0(Inner),Output:["_col2","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_149] + PartitionCols:_col0 + Select Operator [SEL_148] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_147] (rows=1704 width=1910) + predicate:s_state is not null + TableScan [TS_6] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_county","s_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_130] (rows=633595212 width=88) + Conds:RS_157._col0=RS_137._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_137] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_136] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_157] + PartitionCols:_col0 + Select Operator [SEL_156] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_155] (rows=575995635 width=88) + 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_store_sk BETWEEN DynamicValue(RS_41_store_s_store_sk_min) AND DynamicValue(RS_41_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_41_store_s_store_sk_bloom_filter))) and 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_net_profit"] + <-Reducer 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_154] + Group By Operator [GBY_153] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_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=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_148] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_146] + Group By Operator [GBY_145] (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_143] + Group By Operator [GBY_141] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_138] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_136] + 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 0000000000..62035732e9 --- /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=670816149 width=108) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_186] + Select Operator [SEL_185] (rows=670816149 width=108) + Output:["_col1","_col2","_col3","_col4","_col5"] + Group By Operator [GBY_184] (rows=670816149 width=108) + 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=1341632299 width=108) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col0)"],keys:_col4, _col7, _col8, _col5 + Merge Join Operator [MERGEJOIN_140] (rows=1341632299 width=108) + 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=86400 width=471) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_171] (rows=86400 width=471) + predicate:(t_meal_time) IN ('breakfast', 'dinner') + TableScan [TS_35] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,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=1219665700 width=108) + 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=231000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_161] (rows=231000 width=1436) + predicate:(i_manager_id = 1) + TableScan [TS_32] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,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=316788826 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_145] (rows=316788826 width=135) + 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=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_189] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 2001)) + 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 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_199] + PartitionCols:_col0 + Select Operator [SEL_198] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_197] (rows=287989836 width=135) + 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=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,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=231000 width=1436) + 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=86400 width=471) + 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=18262 width=1119) + 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=633595212 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_149] (rows=633595212 width=88) + 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=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_200] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 2001)) + TableScan [TS_24] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_210] + PartitionCols:_col0 + Select Operator [SEL_209] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_208] (rows=575995635 width=88) + 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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,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=18262 width=1119) + 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=158402938 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_141] (rows=158402938 width=135) + 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=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_153] (rows=18262 width=1119) + predicate:((d_moy = 12) and (d_year = 2001)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_183] + PartitionCols:_col0 + Select Operator [SEL_182] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_181] (rows=144002668 width=135) + 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=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,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=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_154] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query72.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query72.q.out new file mode 100644 index 0000000000..4acc9b2e97 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query72.q.out @@ -0,0 +1,337 @@ +PREHOOK: query: explain +select i_item_desc + ,w_warehouse_name + ,d1.d_week_seq + ,count(case when p_promo_sk is null then 1 else 0 end) no_promo + ,count(case when p_promo_sk is not null then 1 else 0 end) promo + ,count(*) total_cnt +from catalog_sales +join inventory on (cs_item_sk = inv_item_sk) +join warehouse on (w_warehouse_sk=inv_warehouse_sk) +join item on (i_item_sk = cs_item_sk) +join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) +join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) +join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) +join date_dim d2 on (inv_date_sk = d2.d_date_sk) +join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) +left outer join promotion on (cs_promo_sk=p_promo_sk) +left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) +where d1.d_week_seq = d2.d_week_seq + and inv_quantity_on_hand < cs_quantity + and d3.d_date > d1.d_date + 5 + and hd_buy_potential = '1001-5000' + and d1.d_year = 2001 + and hd_buy_potential = '1001-5000' + and cd_marital_status = 'M' + and d1.d_year = 2001 +group by i_item_desc,w_warehouse_name,d1.d_week_seq +order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@promotion +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_desc + ,w_warehouse_name + ,d1.d_week_seq + ,count(case when p_promo_sk is null then 1 else 0 end) no_promo + ,count(case when p_promo_sk is not null then 1 else 0 end) promo + ,count(*) total_cnt +from catalog_sales +join inventory on (cs_item_sk = inv_item_sk) +join warehouse on (w_warehouse_sk=inv_warehouse_sk) +join item on (i_item_sk = cs_item_sk) +join customer_demographics on (cs_bill_cdemo_sk = cd_demo_sk) +join household_demographics on (cs_bill_hdemo_sk = hd_demo_sk) +join date_dim d1 on (cs_sold_date_sk = d1.d_date_sk) +join date_dim d2 on (inv_date_sk = d2.d_date_sk) +join date_dim d3 on (cs_ship_date_sk = d3.d_date_sk) +left outer join promotion on (cs_promo_sk=p_promo_sk) +left outer join catalog_returns on (cr_item_sk = cs_item_sk and cr_order_number = cs_order_number) +where d1.d_week_seq = d2.d_week_seq + and inv_quantity_on_hand < cs_quantity + and d3.d_date > d1.d_date + 5 + and hd_buy_potential = '1001-5000' + and d1.d_year = 2001 + and hd_buy_potential = '1001-5000' + and cd_marital_status = 'M' + and d1.d_year = 2001 +group by i_item_desc,w_warehouse_name,d1.d_week_seq +order by total_cnt desc, i_item_desc, w_warehouse_name, d_week_seq +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@promotion +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 16 <- Reducer 14 (BROADCAST_EDGE), Reducer 18 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE) +Reducer 10 <- Map 28 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 29 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 15 (SIMPLE_EDGE) +Reducer 20 <- Map 19 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 26 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 17 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 19 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Map 21 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 23 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 25 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 26 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 13 vectorized + File Output Operator [FS_310] + Limit [LIM_309] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_308] (rows=37725837 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_307] + Group By Operator [GBY_306] (rows=37725837 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_65] (rows=75451674 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(_col5)","count(_col6)","count()"],keys:_col3, _col2, _col4 + Select Operator [SEL_63] (rows=75451674 width=135) + Output:["_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_251] (rows=75451674 width=135) + Conds:RS_60._col0, _col2=RS_305._col0, _col1(Left Outer),Output:["_col3","_col4","_col5","_col6"] + <-Map 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_305] + PartitionCols:_col0, _col1 + Select Operator [SEL_304] (rows=28798881 width=106) + Output:["_col0","_col1"] + TableScan [TS_55] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_60] + PartitionCols:_col0, _col2 + Merge Join Operator [MERGEJOIN_250] (rows=68592430 width=135) + Conds:RS_57._col1=RS_303._col0(Left Outer),Output:["_col0","_col2","_col3","_col4","_col5","_col6"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_303] + PartitionCols:_col0 + Select Operator [SEL_302] (rows=2300 width=1179) + Output:["_col0"] + TableScan [TS_53] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_57] + PartitionCols:_col1 + Select Operator [SEL_52] (rows=62356754 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_51] (rows=62356754 width=135) + predicate:(_col12 > _col8) + Merge Join Operator [MERGEJOIN_249] (rows=187070264 width=135) + Conds:RS_48._col0=RS_290._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7","_col8","_col12"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_290] + PartitionCols:_col0 + Select Operator [SEL_289] (rows=73049 width=1119) + Output:["_col0","_col1"] + TableScan [TS_43] (rows=73049 width=1119) + default@date_dim,d3,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_48] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_248] (rows=170063873 width=135) + Conds:RS_45._col4, _col7=RS_301._col0, _col1(Inner),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col7","_col8"] + <-Map 25 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_301] + PartitionCols:_col0, _col1 + Select Operator [SEL_300] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_299] (rows=73049 width=1119) + predicate:d_week_seq is not null + TableScan [TS_40] (rows=73049 width=1119) + default@date_dim,d2,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_week_seq"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col4, _col7 + Select Operator [SEL_39] (rows=154603518 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_247] (rows=154603518 width=135) + Conds:RS_36._col2=RS_283._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col10","_col11"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_283] + PartitionCols:_col0 + Select Operator [SEL_282] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_281] (rows=3600 width=107) + predicate:(hd_buy_potential = '1001-5000') + TableScan [TS_30] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_buy_potential"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_246] (rows=140548650 width=135) + Conds:RS_33._col0=RS_275._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col10","_col11"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_275] + PartitionCols:_col0 + Select Operator [SEL_274] (rows=36524 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_273] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_week_seq is not null) + TableScan [TS_27] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date","d_week_seq","d_year"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Select Operator [SEL_26] (rows=127771498 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_245] (rows=127771498 width=135) + Conds:RS_23._col4=RS_267._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col11"] + <-Map 19 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_267] + PartitionCols:_col0 + Select Operator [SEL_266] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_18] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_desc"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_244] (rows=116155905 width=135) + Conds:RS_20._col2=RS_260._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_260] + PartitionCols:_col0 + Select Operator [SEL_259] (rows=930900 width=385) + Output:["_col0"] + Filter Operator [FIL_258] (rows=930900 width=385) + predicate:(cd_marital_status = 'M') + TableScan [TS_15] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_20] + PartitionCols:_col2 + Select Operator [SEL_14] (rows=105596275 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_13] (rows=105596275 width=135) + predicate:(_col3 < _col13) + Merge Join Operator [MERGEJOIN_243] (rows=316788826 width=135) + Conds:RS_10._col1=RS_298._col4(Inner),Output:["_col0","_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_242] (rows=41342400 width=15) + Conds:RS_253._col2=RS_255._col0(Inner),Output:["_col0","_col1","_col3","_col5"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_253] + PartitionCols:_col2 + Select Operator [SEL_252] (rows=37584000 width=15) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_0] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_warehouse_sk","inv_quantity_on_hand"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_255] + PartitionCols:_col0 + Select Operator [SEL_254] (rows=27 width=1029) + Output:["_col0","_col1"] + TableScan [TS_2] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_warehouse_name"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_298] + PartitionCols:_col4 + Select Operator [SEL_297] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_296] (rows=287989836 width=135) + predicate:((cs_bill_cdemo_sk BETWEEN DynamicValue(RS_21_customer_demographics_cd_demo_sk_min) AND DynamicValue(RS_21_customer_demographics_cd_demo_sk_max) and in_bloom_filter(cs_bill_cdemo_sk, DynamicValue(RS_21_customer_demographics_cd_demo_sk_bloom_filter))) and (cs_bill_hdemo_sk BETWEEN DynamicValue(RS_37_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_37_household_demographics_hd_demo_sk_max) and in_bloom_filter(cs_bill_hdemo_sk, DynamicValue(RS_37_household_demographics_hd_demo_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_10_inventory_inv_item_sk_min) AND DynamicValue(RS_10_inventory_inv_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_10_inventory_inv_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_24_item_i_item_sk_min) AND DynamicValue(RS_24_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_24_item_i_item_sk_bloom_filter))) and (cs_ship_date_sk BETWEEN DynamicValue(RS_49_d3_d_date_sk_min) AND DynamicValue(RS_49_d3_d_date_sk_max) and in_bloom_filter(cs_ship_date_sk, DynamicValue(RS_49_d3_d_date_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_34_d1_d_date_sk_min) AND DynamicValue(RS_34_d1_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_34_d1_d_date_sk_bloom_filter))) and cs_bill_cdemo_sk is not null and cs_bill_hdemo_sk is not null and cs_ship_date_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_4] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_date_sk","cs_bill_cdemo_sk","cs_bill_hdemo_sk","cs_item_sk","cs_promo_sk","cs_order_number","cs_quantity"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_257] + Group By Operator [GBY_256] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=41342400)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_157] + Group By Operator [GBY_156] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=41342400)"] + Select Operator [SEL_155] (rows=41342400 width=15) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_242] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_265] + Group By Operator [GBY_264] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_263] + Group By Operator [GBY_262] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_261] (rows=930900 width=385) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_259] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_272] + Group By Operator [GBY_271] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_270] + Group By Operator [GBY_269] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_268] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_266] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_280] + Group By Operator [GBY_279] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_278] + Group By Operator [GBY_277] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_276] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_274] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_288] + Group By Operator [GBY_287] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_286] + Group By Operator [GBY_285] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_284] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_282] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_295] + Group By Operator [GBY_294] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_293] + Group By Operator [GBY_292] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_291] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_289] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query73.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query73.q.out new file mode 100644 index 0000000000..093c6a12ad --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query73.q.out @@ -0,0 +1,211 @@ +PREHOOK: query: explain +select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_buy_potential = '>10000' or + household_demographics.hd_buy_potential = 'unknown') + and household_demographics.hd_vehicle_count > 0 + and case when household_demographics.hd_vehicle_count > 0 then + household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Mobile County','Maverick County','Huron County','Kittitas County') + group by ss_ticket_number,ss_customer_sk) dj,customer + where ss_customer_sk = c_customer_sk + and cnt between 1 and 5 + order by cnt desc +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select c_last_name + ,c_first_name + ,c_salutation + ,c_preferred_cust_flag + ,ss_ticket_number + ,cnt from + (select ss_ticket_number + ,ss_customer_sk + ,count(*) cnt + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and date_dim.d_dom between 1 and 2 + and (household_demographics.hd_buy_potential = '>10000' or + household_demographics.hd_buy_potential = 'unknown') + and household_demographics.hd_vehicle_count > 0 + and case when household_demographics.hd_vehicle_count > 0 then + household_demographics.hd_dep_count/ household_demographics.hd_vehicle_count else null end > 1 + and date_dim.d_year in (2000,2000+1,2000+2) + and store.s_county in ('Mobile County','Maverick County','Huron County','Kittitas County') + group by ss_ticket_number,ss_customer_sk) dj,customer + where ss_customer_sk = c_customer_sk + and cnt between 1 and 5 + order by cnt desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 5 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 4 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 10 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 7 <- Map 12 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 14 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 3 vectorized + File Output Operator [FS_140] + Select Operator [SEL_139] (rows=88000001 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_35] + Select Operator [SEL_34] (rows=88000001 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_100] (rows=88000001 width=860) + Conds:RS_102._col0=RS_138._col1(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col7"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4"] + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_salutation","c_first_name","c_last_name","c_preferred_cust_flag"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_138] + PartitionCols:_col1 + Filter Operator [FIL_137] (rows=19166256 width=88) + predicate:_col2 BETWEEN 1 AND 5 + Select Operator [SEL_136] (rows=383325119 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_135] (rows=383325119 width=88) + Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col0, _col1 + Group By Operator [GBY_25] (rows=766650239 width=88) + Output:["_col0","_col1","_col2"],aggregations:["count()"],keys:_col0, _col2 + Merge Join Operator [MERGEJOIN_99] (rows=766650239 width=88) + Conds:RS_21._col1=RS_124._col0(Inner),Output:["_col0","_col2"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=1200 width=107) + Output:["_col0"] + Filter Operator [FIL_122] (rows=1200 width=107) + predicate:((hd_buy_potential) IN ('>10000', 'unknown') and (hd_vehicle_count > 0) and CASE WHEN ((hd_vehicle_count > 0)) THEN (((UDFToDouble(hd_dep_count) / UDFToDouble(hd_vehicle_count)) > 1.0D)) ELSE (null) END) + TableScan [TS_18] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_buy_potential","hd_dep_count","hd_vehicle_count"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_98] (rows=696954748 width=88) + Conds:RS_14._col3=RS_116._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_116] + PartitionCols:_col0 + Select Operator [SEL_115] (rows=1704 width=1910) + Output:["_col0"] + Filter Operator [FIL_114] (rows=1704 width=1910) + predicate:(s_county) IN ('Mobile County', 'Maverick County', 'Huron County', 'Kittitas County') + TableScan [TS_8] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_county"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_97] (rows=633595212 width=88) + Conds:RS_134._col0=RS_108._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_106] (rows=73049 width=1119) + predicate:((d_year) IN (2000, 2001, 2002) and d_dom BETWEEN 1 AND 2) + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_dom"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_134] + PartitionCols:_col0 + Select Operator [SEL_133] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_132] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_31_customer_c_customer_sk_min) AND DynamicValue(RS_31_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_31_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_22_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_22_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_22_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_15_store_s_store_sk_min) AND DynamicValue(RS_15_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_15_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_2] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_hdemo_sk","ss_store_sk","ss_ticket_number"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_113] + Group By Operator [GBY_112] (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_111] + Group By Operator [GBY_110] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_109] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_107] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_119] + Group By Operator [GBY_118] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_117] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_115] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_129] + Group By Operator [GBY_128] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + Group By Operator [GBY_126] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_125] (rows=1200 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_123] + <-Reducer 4 [BROADCAST_EDGE] vectorized + BROADCAST [RS_131] + Group By Operator [GBY_130] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_103] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query74.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query74.q.out new file mode 100644 index 0000000000..f134712aeb --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query74.q.out @@ -0,0 +1,423 @@ +PREHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ss_net_paid) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + and d_year in (2001,2001+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ws_net_paid) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + and d_year in (2001,2001+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ) + select + t_s_secyear.customer_id, t_s_secyear.customer_first_name, t_s_secyear.customer_last_name + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.year = 2001 + and t_s_secyear.year = 2001+1 + and t_w_firstyear.year = 2001 + and t_w_secyear.year = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by 2,1,3 +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with year_total as ( + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ss_net_paid) year_total + ,'s' sale_type + from customer + ,store_sales + ,date_dim + where c_customer_sk = ss_customer_sk + and ss_sold_date_sk = d_date_sk + and d_year in (2001,2001+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + union all + select c_customer_id customer_id + ,c_first_name customer_first_name + ,c_last_name customer_last_name + ,d_year as year + ,max(ws_net_paid) year_total + ,'w' sale_type + from customer + ,web_sales + ,date_dim + where c_customer_sk = ws_bill_customer_sk + and ws_sold_date_sk = d_date_sk + and d_year in (2001,2001+1) + group by c_customer_id + ,c_first_name + ,c_last_name + ,d_year + ) + select + t_s_secyear.customer_id, t_s_secyear.customer_first_name, t_s_secyear.customer_last_name + from year_total t_s_firstyear + ,year_total t_s_secyear + ,year_total t_w_firstyear + ,year_total t_w_secyear + where t_s_secyear.customer_id = t_s_firstyear.customer_id + and t_s_firstyear.customer_id = t_w_secyear.customer_id + and t_s_firstyear.customer_id = t_w_firstyear.customer_id + and t_s_firstyear.sale_type = 's' + and t_w_firstyear.sale_type = 'w' + and t_s_secyear.sale_type = 's' + and t_w_secyear.sale_type = 'w' + and t_s_firstyear.year = 2001 + and t_s_secyear.year = 2001+1 + and t_w_firstyear.year = 2001 + and t_w_secyear.year = 2001+1 + and t_s_firstyear.year_total > 0 + and t_w_firstyear.year_total > 0 + and case when t_w_firstyear.year_total > 0 then t_w_secyear.year_total / t_w_firstyear.year_total else null end + > case when t_s_firstyear.year_total > 0 then t_s_secyear.year_total / t_s_firstyear.year_total else null end + order by 2,1,3 +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +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 1 <- Reducer 8 (BROADCAST_EDGE) +Map 26 <- Reducer 18 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE) +Map 27 <- Reducer 22 (BROADCAST_EDGE) +Map 28 <- Reducer 13 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE) +Reducer 10 <- Map 23 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE), Reducer 17 (ONE_TO_ONE_EDGE) +Reducer 13 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 26 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 15 <- Map 23 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 18 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 27 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 20 <- Map 23 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 23 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 28 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_357] + Limit [LIM_356] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_355] (rows=210828820 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_90] + Select Operator [SEL_89] (rows=210828820 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_88] (rows=210828820 width=88) + predicate:CASE WHEN (_col7) THEN (CASE WHEN (_col8) THEN (((_col1 / _col6) > _col9)) ELSE (_col10) END) ELSE (CASE WHEN (_col8) THEN (((_col1 / _col6) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_282] (rows=421657640 width=88) + Conds:RS_323._col0=RS_86._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 12 [ONE_TO_ONE_EDGE] + FORWARD [RS_86] + PartitionCols:_col0 + Select Operator [SEL_84] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_281] (rows=383325119 width=88) + Conds:RS_81._col0=RS_332._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_332] + PartitionCols:_col0 + Group By Operator [GBY_331] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_74] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(_col2)"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_279] (rows=696954748 width=88) + Conds:RS_70._col1=RS_312._col0(Inner),Output:["_col2","_col5","_col6","_col7"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_312] + PartitionCols:_col0 + Select Operator [SEL_310] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_278] (rows=633595212 width=88) + Conds:RS_330._col0=RS_291._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_291] + PartitionCols:_col0 + Select Operator [SEL_286] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_283] (rows=36524 width=1119) + predicate:((d_year = 2002) and (d_year) IN (2001, 2002)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_330] + PartitionCols:_col0 + Select Operator [SEL_329] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_328] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_71_customer_c_customer_sk_min) AND DynamicValue(RS_71_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_71_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_68_date_dim_d_date_sk_min) AND DynamicValue(RS_68_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_68_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_59] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_325] + Group By Operator [GBY_324] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_302] + Group By Operator [GBY_298] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_292] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_286] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_327] + Group By Operator [GBY_326] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + Group By Operator [GBY_317] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_313] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_310] + <-Reducer 17 [ONE_TO_ONE_EDGE] + FORWARD [RS_81] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_280] (rows=127775039 width=88) + Conds:RS_344._col0=RS_354._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_344] + PartitionCols:_col0 + Select Operator [SEL_343] (rows=116159124 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_342] (rows=116159124 width=88) + predicate:(_col3 > 0) + Select Operator [SEL_341] (rows=348477374 width=88) + Output:["_col0","_col3"] + Group By Operator [GBY_340] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_34] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(_col2)"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_275] (rows=696954748 width=88) + Conds:RS_30._col1=RS_314._col0(Inner),Output:["_col2","_col5","_col6","_col7"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_314] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_274] (rows=633595212 width=88) + Conds:RS_339._col0=RS_293._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_293] + PartitionCols:_col0 + Select Operator [SEL_287] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_284] (rows=36524 width=1119) + predicate:((d_year = 2001) and (d_year) IN (2001, 2002)) + Please refer to the previous TableScan [TS_3] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_339] + PartitionCols:_col0 + Select Operator [SEL_338] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_337] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_31_customer_c_customer_sk_min) AND DynamicValue(RS_31_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_31_customer_c_customer_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_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_19] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_334] + Group By Operator [GBY_333] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_303] + Group By Operator [GBY_299] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_294] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_287] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_336] + Group By Operator [GBY_335] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + Group By Operator [GBY_318] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_315] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_310] + <-Reducer 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_354] + PartitionCols:_col0 + Select Operator [SEL_353] (rows=29040539 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_352] (rows=29040539 width=135) + predicate:(_col3 > 0) + Select Operator [SEL_351] (rows=87121617 width=135) + Output:["_col0","_col3"] + Group By Operator [GBY_350] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_54] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(_col2)"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_277] (rows=174243235 width=135) + Conds:RS_50._col1=RS_316._col0(Inner),Output:["_col2","_col5","_col6","_col7"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_316] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_276] (rows=158402938 width=135) + Conds:RS_349._col0=RS_295._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + PartitionCols:_col0 + Select Operator [SEL_288] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_285] (rows=36524 width=1119) + predicate:((d_year = 2001) and (d_year) IN (2001, 2002)) + Please refer to the previous TableScan [TS_3] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_349] + PartitionCols:_col0 + Select Operator [SEL_348] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_347] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_48_date_dim_d_date_sk_min) AND DynamicValue(RS_48_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_48_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_39] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_346] + Group By Operator [GBY_345] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_304] + Group By Operator [GBY_300] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_296] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_288] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col0 + Select Operator [SEL_322] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_321] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["max(_col2)"],keys:_col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_273] (rows=174243235 width=135) + Conds:RS_11._col1=RS_311._col0(Inner),Output:["_col2","_col5","_col6","_col7"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_311] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_310] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_272] (rows=158402938 width=135) + Conds:RS_309._col0=RS_289._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_289] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_286] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_309] + PartitionCols:_col0 + Select Operator [SEL_308] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_307] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_306] + Group By Operator [GBY_305] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_301] + Group By Operator [GBY_297] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_290] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_286] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query75.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query75.q.out new file mode 100644 index 0000000000..26acc79059 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query75.q.out @@ -0,0 +1,674 @@ +PREHOOK: query: explain +WITH all_sales AS ( + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,SUM(sales_cnt) AS sales_cnt + ,SUM(sales_amt) AS sales_amt + FROM (SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,cs_quantity - COALESCE(cr_return_quantity,0) AS sales_cnt + ,cs_ext_sales_price - COALESCE(cr_return_amount,0.0) AS sales_amt + FROM catalog_sales JOIN item ON i_item_sk=cs_item_sk + JOIN date_dim ON d_date_sk=cs_sold_date_sk + LEFT JOIN catalog_returns ON (cs_order_number=cr_order_number + AND cs_item_sk=cr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ss_quantity - COALESCE(sr_return_quantity,0) AS sales_cnt + ,ss_ext_sales_price - COALESCE(sr_return_amt,0.0) AS sales_amt + FROM store_sales JOIN item ON i_item_sk=ss_item_sk + JOIN date_dim ON d_date_sk=ss_sold_date_sk + LEFT JOIN store_returns ON (ss_ticket_number=sr_ticket_number + AND ss_item_sk=sr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ws_quantity - COALESCE(wr_return_quantity,0) AS sales_cnt + ,ws_ext_sales_price - COALESCE(wr_return_amt,0.0) AS sales_amt + FROM web_sales JOIN item ON i_item_sk=ws_item_sk + JOIN date_dim ON d_date_sk=ws_sold_date_sk + LEFT JOIN web_returns ON (ws_order_number=wr_order_number + AND ws_item_sk=wr_item_sk) + WHERE i_category='Sports') sales_detail + GROUP BY d_year, i_brand_id, i_class_id, i_category_id, i_manufact_id) + SELECT prev_yr.d_year AS prev_year + ,curr_yr.d_year AS year + ,curr_yr.i_brand_id + ,curr_yr.i_class_id + ,curr_yr.i_category_id + ,curr_yr.i_manufact_id + ,prev_yr.sales_cnt AS prev_yr_cnt + ,curr_yr.sales_cnt AS curr_yr_cnt + ,curr_yr.sales_cnt-prev_yr.sales_cnt AS sales_cnt_diff + ,curr_yr.sales_amt-prev_yr.sales_amt AS sales_amt_diff + FROM all_sales curr_yr, all_sales prev_yr + WHERE curr_yr.i_brand_id=prev_yr.i_brand_id + AND curr_yr.i_class_id=prev_yr.i_class_id + AND curr_yr.i_category_id=prev_yr.i_category_id + AND curr_yr.i_manufact_id=prev_yr.i_manufact_id + AND curr_yr.d_year=2002 + AND prev_yr.d_year=2002-1 + AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 + ORDER BY sales_cnt_diff + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +WITH all_sales AS ( + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,SUM(sales_cnt) AS sales_cnt + ,SUM(sales_amt) AS sales_amt + FROM (SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,cs_quantity - COALESCE(cr_return_quantity,0) AS sales_cnt + ,cs_ext_sales_price - COALESCE(cr_return_amount,0.0) AS sales_amt + FROM catalog_sales JOIN item ON i_item_sk=cs_item_sk + JOIN date_dim ON d_date_sk=cs_sold_date_sk + LEFT JOIN catalog_returns ON (cs_order_number=cr_order_number + AND cs_item_sk=cr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ss_quantity - COALESCE(sr_return_quantity,0) AS sales_cnt + ,ss_ext_sales_price - COALESCE(sr_return_amt,0.0) AS sales_amt + FROM store_sales JOIN item ON i_item_sk=ss_item_sk + JOIN date_dim ON d_date_sk=ss_sold_date_sk + LEFT JOIN store_returns ON (ss_ticket_number=sr_ticket_number + AND ss_item_sk=sr_item_sk) + WHERE i_category='Sports' + UNION + SELECT d_year + ,i_brand_id + ,i_class_id + ,i_category_id + ,i_manufact_id + ,ws_quantity - COALESCE(wr_return_quantity,0) AS sales_cnt + ,ws_ext_sales_price - COALESCE(wr_return_amt,0.0) AS sales_amt + FROM web_sales JOIN item ON i_item_sk=ws_item_sk + JOIN date_dim ON d_date_sk=ws_sold_date_sk + LEFT JOIN web_returns ON (ws_order_number=wr_order_number + AND ws_item_sk=wr_item_sk) + WHERE i_category='Sports') sales_detail + GROUP BY d_year, i_brand_id, i_class_id, i_category_id, i_manufact_id) + SELECT prev_yr.d_year AS prev_year + ,curr_yr.d_year AS year + ,curr_yr.i_brand_id + ,curr_yr.i_class_id + ,curr_yr.i_category_id + ,curr_yr.i_manufact_id + ,prev_yr.sales_cnt AS prev_yr_cnt + ,curr_yr.sales_cnt AS curr_yr_cnt + ,curr_yr.sales_cnt-prev_yr.sales_cnt AS sales_cnt_diff + ,curr_yr.sales_amt-prev_yr.sales_amt AS sales_amt_diff + FROM all_sales curr_yr, all_sales prev_yr + WHERE curr_yr.i_brand_id=prev_yr.i_brand_id + AND curr_yr.i_class_id=prev_yr.i_class_id + AND curr_yr.i_category_id=prev_yr.i_category_id + AND curr_yr.i_manufact_id=prev_yr.i_manufact_id + AND curr_yr.d_year=2002 + AND prev_yr.d_year=2002-1 + AND CAST(curr_yr.sales_cnt AS DECIMAL(17,2))/CAST(prev_yr.sales_cnt AS DECIMAL(17,2))<0.9 + ORDER BY sales_cnt_diff + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 14 <- Reducer 18 (BROADCAST_EDGE), Reducer 39 (BROADCAST_EDGE) +Map 46 <- Reducer 22 (BROADCAST_EDGE), Reducer 40 (BROADCAST_EDGE) +Map 48 <- Reducer 26 (BROADCAST_EDGE), Reducer 41 (BROADCAST_EDGE) +Map 49 <- Reducer 29 (BROADCAST_EDGE), Reducer 42 (BROADCAST_EDGE) +Map 50 <- Reducer 33 (BROADCAST_EDGE), Reducer 43 (BROADCAST_EDGE) +Map 51 <- Reducer 37 (BROADCAST_EDGE), Reducer 44 (BROADCAST_EDGE) +Reducer 11 <- Union 10 (SIMPLE_EDGE), Union 12 (CONTAINS) +Reducer 13 <- Union 12 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE) +Reducer 16 <- Map 38 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 17 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 20 <- Map 38 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 45 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 22 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 17 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE) +Reducer 24 <- Map 38 (SIMPLE_EDGE), Reducer 23 (SIMPLE_EDGE) +Reducer 25 <- Map 47 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 26 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 17 (SIMPLE_EDGE), Map 49 (SIMPLE_EDGE) +Reducer 28 <- Map 38 (SIMPLE_EDGE), Reducer 27 (SIMPLE_EDGE) +Reducer 29 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 30 <- Map 17 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE) +Reducer 31 <- Map 38 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Map 45 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE), Union 10 (CONTAINS) +Reducer 33 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 17 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE) +Reducer 35 <- Map 38 (SIMPLE_EDGE), Reducer 34 (SIMPLE_EDGE) +Reducer 36 <- Map 47 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE), Union 12 (CONTAINS) +Reducer 37 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Union 3 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 40 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 41 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 43 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Union 5 (SIMPLE_EDGE) +Reducer 7 <- Reducer 13 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 1 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE), Union 10 (CONTAINS) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_651] + Select Operator [SEL_650] (rows=100 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Limit [LIM_649] (rows=100 width=111) + Number of rows:100 + Select Operator [SEL_648] (rows=70276244 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_175] + Select Operator [SEL_174] (rows=70276244 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_173] (rows=70276244 width=111) + predicate:((_col13 / _col6) < 0.9) + Merge Join Operator [MERGEJOIN_530] (rows=210828734 width=111) + Conds:RS_643._col0, _col1, _col2, _col3=RS_647._col0, _col1, _col2, _col3(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col11","_col12","_col13"] + <-Reducer 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_647] + PartitionCols:_col0, _col1, _col2, _col3 + Select Operator [SEL_646] (rows=191662482 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_645] (rows=191662482 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3 + Group By Operator [GBY_644] (rows=383324964 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Union 12 [SIMPLE_EDGE] + <-Reducer 11 [CONTAINS] vectorized + Reduce Output Operator [RS_661] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_660] (rows=766649929 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_659] (rows=574982367 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Union 10 [SIMPLE_EDGE] + <-Reducer 32 [CONTAINS] + Reduce Output Operator [RS_563] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_562] (rows=1149964734 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_560] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_559] (rows=766650239 width=88) + Conds:RS_671._col0, _col1=RS_126._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 45 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_671] + PartitionCols:_col0, _col1 + Select Operator [SEL_669] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_22] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number","sr_return_quantity","sr_return_amt"] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_126] + PartitionCols:_col0, _col1 + Select Operator [SEL_124] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_525] (rows=696954748 width=88) + Conds:RS_121._col1=RS_616._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_616] + PartitionCols:_col0 + Select Operator [SEL_607] (rows=231000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_606] (rows=231000 width=1436) + predicate:((i_category = 'Sports') and i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_manufact_id is not null) + TableScan [TS_8] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id","i_category","i_manufact_id"] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_121] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_524] (rows=633595212 width=88) + Conds:RS_688._col0=RS_588._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_588] + PartitionCols:_col0 + Select Operator [SEL_578] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_574] (rows=36524 width=1119) + predicate:(d_year = 2002) + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_688] + PartitionCols:_col0 + Select Operator [SEL_687] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_686] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_122_item_i_item_sk_min) AND DynamicValue(RS_122_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_122_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_119_date_dim_d_date_sk_min) AND DynamicValue(RS_119_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_119_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_109] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ticket_number","ss_quantity","ss_ext_sales_price"] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_683] + Group By Operator [GBY_682] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_602] + Group By Operator [GBY_596] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_589] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_578] + <-Reducer 43 [BROADCAST_EDGE] vectorized + BROADCAST [RS_685] + Group By Operator [GBY_684] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_630] + Group By Operator [GBY_624] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_617] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + <-Reducer 9 [CONTAINS] + Reduce Output Operator [RS_544] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_543] (rows=1149964734 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_541] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_540] (rows=383314495 width=135) + Conds:RS_571._col0, _col1=RS_104._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_571] + PartitionCols:_col0, _col1 + Select Operator [SEL_569] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_0] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_return_quantity","cr_return_amount"] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_104] + PartitionCols:_col0, _col1 + Select Operator [SEL_102] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_522] (rows=348467716 width=135) + Conds:RS_99._col1=RS_614._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_614] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_607] + <-Reducer 27 [SIMPLE_EDGE] + SHUFFLE [RS_99] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_521] (rows=316788826 width=135) + Conds:RS_658._col0=RS_586._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_586] + PartitionCols:_col0 + Select Operator [SEL_577] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_573] (rows=36524 width=1119) + predicate:(d_year = 2002) + Please refer to the previous TableScan [TS_5] + <-Map 49 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_658] + PartitionCols:_col0 + Select Operator [SEL_657] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_656] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_100_item_i_item_sk_min) AND DynamicValue(RS_100_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_100_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_97_date_dim_d_date_sk_min) AND DynamicValue(RS_97_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_97_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_87] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_order_number","cs_quantity","cs_ext_sales_price"] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_653] + Group By Operator [GBY_652] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_601] + Group By Operator [GBY_595] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_587] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_577] + <-Reducer 42 [BROADCAST_EDGE] vectorized + BROADCAST [RS_655] + Group By Operator [GBY_654] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_629] + Group By Operator [GBY_623] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_615] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + <-Reducer 36 [CONTAINS] + Reduce Output Operator [RS_568] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_567] (rows=766649929 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_565] (rows=191667562 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_564] (rows=191667562 width=135) + Conds:RS_681._col0, _col1=RS_155._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 47 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_681] + PartitionCols:_col0, _col1 + Select Operator [SEL_679] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_51] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number","wr_return_quantity","wr_return_amt"] + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_155] + PartitionCols:_col0, _col1 + Select Operator [SEL_153] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_528] (rows=174243235 width=135) + Conds:RS_150._col1=RS_618._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_618] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_607] + <-Reducer 34 [SIMPLE_EDGE] + SHUFFLE [RS_150] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_527] (rows=158402938 width=135) + Conds:RS_695._col0=RS_590._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_590] + PartitionCols:_col0 + Select Operator [SEL_579] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_575] (rows=36524 width=1119) + predicate:(d_year = 2002) + Please refer to the previous TableScan [TS_5] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_695] + PartitionCols:_col0 + Select Operator [SEL_694] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_693] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_151_item_i_item_sk_min) AND DynamicValue(RS_151_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_151_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_148_date_dim_d_date_sk_min) AND DynamicValue(RS_148_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_148_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_138] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_order_number","ws_quantity","ws_ext_sales_price"] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_690] + Group By Operator [GBY_689] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_603] + Group By Operator [GBY_597] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_591] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_579] + <-Reducer 44 [BROADCAST_EDGE] vectorized + BROADCAST [RS_692] + Group By Operator [GBY_691] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_631] + Group By Operator [GBY_625] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_619] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_643] + PartitionCols:_col0, _col1, _col2, _col3 + Select Operator [SEL_642] (rows=191662482 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Group By Operator [GBY_641] (rows=191662482 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3 + Group By Operator [GBY_640] (rows=383324964 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 25 [CONTAINS] + Reduce Output Operator [RS_558] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_557] (rows=766649929 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_555] (rows=191667562 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_554] (rows=191667562 width=135) + Conds:RS_680._col0, _col1=RS_70._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 47 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_680] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_679] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col0, _col1 + Select Operator [SEL_68] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_519] (rows=174243235 width=135) + Conds:RS_65._col1=RS_612._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_612] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_607] + <-Reducer 23 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_518] (rows=158402938 width=135) + Conds:RS_678._col0=RS_584._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_584] + PartitionCols:_col0 + Select Operator [SEL_576] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_572] (rows=36524 width=1119) + predicate:(d_year = 2001) + Please refer to the previous TableScan [TS_5] + <-Map 48 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_678] + PartitionCols:_col0 + Select Operator [SEL_677] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_676] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_66_item_i_item_sk_min) AND DynamicValue(RS_66_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_66_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_63_date_dim_d_date_sk_min) AND DynamicValue(RS_63_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_63_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_53] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_order_number","ws_quantity","ws_ext_sales_price"] + <-Reducer 26 [BROADCAST_EDGE] vectorized + BROADCAST [RS_673] + Group By Operator [GBY_672] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_600] + Group By Operator [GBY_594] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_585] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_576] + <-Reducer 41 [BROADCAST_EDGE] vectorized + BROADCAST [RS_675] + Group By Operator [GBY_674] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_628] + Group By Operator [GBY_622] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_613] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_639] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_638] (rows=766649929 width=111) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_637] (rows=574982367 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Union 3 [SIMPLE_EDGE] + <-Reducer 2 [CONTAINS] + Reduce Output Operator [RS_535] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_534] (rows=1149964734 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_532] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_531] (rows=383314495 width=135) + Conds:RS_570._col0, _col1=RS_19._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_570] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_569] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0, _col1 + Select Operator [SEL_17] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_513] (rows=348467716 width=135) + Conds:RS_14._col1=RS_608._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_608] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_607] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_512] (rows=316788826 width=135) + Conds:RS_636._col0=RS_580._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_580] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_576] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_636] + PartitionCols:_col0 + Select Operator [SEL_635] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_634] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_15_item_i_item_sk_min) AND DynamicValue(RS_15_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_15_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_2] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_order_number","cs_quantity","cs_ext_sales_price"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_605] + Group By Operator [GBY_604] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_598] + Group By Operator [GBY_592] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_581] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_576] + <-Reducer 39 [BROADCAST_EDGE] vectorized + BROADCAST [RS_633] + Group By Operator [GBY_632] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_626] + Group By Operator [GBY_620] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_609] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + <-Reducer 21 [CONTAINS] + Reduce Output Operator [RS_553] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_552] (rows=1149964734 width=103) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],keys:_col0, _col1, _col2, _col3, _col4, _col5 + Select Operator [SEL_550] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_549] (rows=766650239 width=88) + Conds:RS_670._col0, _col1=RS_41._col0, _col1(Right Outer),Output:["_col2","_col3","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Map 45 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_670] + PartitionCols:_col0, _col1 + Please refer to the previous Select Operator [SEL_669] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col0, _col1 + Select Operator [SEL_39] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_516] (rows=696954748 width=88) + Conds:RS_36._col1=RS_610._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col10"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_610] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_607] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_515] (rows=633595212 width=88) + Conds:RS_668._col0=RS_582._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 17 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_582] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_576] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_668] + PartitionCols:_col0 + Select Operator [SEL_667] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_666] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_37_item_i_item_sk_min) AND DynamicValue(RS_37_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_37_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_34_date_dim_d_date_sk_min) AND DynamicValue(RS_34_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_34_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_24] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ticket_number","ss_quantity","ss_ext_sales_price"] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_663] + Group By Operator [GBY_662] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_599] + Group By Operator [GBY_593] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_583] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_576] + <-Reducer 40 [BROADCAST_EDGE] vectorized + BROADCAST [RS_665] + Group By Operator [GBY_664] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_627] + Group By Operator [GBY_621] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_611] (rows=231000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_607] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query76.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query76.q.out new file mode 100644 index 0000000000..21c17f5a51 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query76.q.out @@ -0,0 +1,272 @@ +PREHOOK: query: explain +select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( + SELECT 'store' as channel, 'ss_addr_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price + FROM store_sales, item, date_dim + WHERE ss_addr_sk IS NULL + AND ss_sold_date_sk=d_date_sk + AND ss_item_sk=i_item_sk + UNION ALL + SELECT 'web' as channel, 'ws_web_page_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price + FROM web_sales, item, date_dim + WHERE ws_web_page_sk IS NULL + AND ws_sold_date_sk=d_date_sk + AND ws_item_sk=i_item_sk + UNION ALL + SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price + FROM catalog_sales, item, date_dim + WHERE cs_warehouse_sk IS NULL + AND cs_sold_date_sk=d_date_sk + AND cs_item_sk=i_item_sk) foo +GROUP BY channel, col_name, d_year, d_qoy, i_category +ORDER BY channel, col_name, d_year, d_qoy, i_category +limit 100 +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@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select channel, col_name, d_year, d_qoy, i_category, COUNT(*) sales_cnt, SUM(ext_sales_price) sales_amt FROM ( + SELECT 'store' as channel, 'ss_addr_sk' col_name, d_year, d_qoy, i_category, ss_ext_sales_price ext_sales_price + FROM store_sales, item, date_dim + WHERE ss_addr_sk IS NULL + AND ss_sold_date_sk=d_date_sk + AND ss_item_sk=i_item_sk + UNION ALL + SELECT 'web' as channel, 'ws_web_page_sk' col_name, d_year, d_qoy, i_category, ws_ext_sales_price ext_sales_price + FROM web_sales, item, date_dim + WHERE ws_web_page_sk IS NULL + AND ws_sold_date_sk=d_date_sk + AND ws_item_sk=i_item_sk + UNION ALL + SELECT 'catalog' as channel, 'cs_warehouse_sk' col_name, d_year, d_qoy, i_category, cs_ext_sales_price ext_sales_price + FROM catalog_sales, item, date_dim + WHERE cs_warehouse_sk IS NULL + AND cs_sold_date_sk=d_date_sk + AND cs_item_sk=i_item_sk) foo +GROUP BY channel, col_name, d_year, d_qoy, i_category +ORDER BY channel, col_name, d_year, d_qoy, i_category +limit 100 +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@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 14 <- Reducer 16 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Map 17 <- Reducer 10 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE) +Map 20 <- Reducer 13 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 1 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 12 <- Map 21 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE), Union 4 (CONTAINS) +Reducer 13 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS) +Reducer 5 <- Union 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 1 (SIMPLE_EDGE), Map 17 (SIMPLE_EDGE) +Reducer 9 <- Map 18 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE), Union 4 (CONTAINS) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_191] + Limit [LIM_190] (rows=100 width=108) + Number of rows:100 + Select Operator [SEL_189] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_188] + Group By Operator [GBY_187] (rows=304916424 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Union 4 [SIMPLE_EDGE] + <-Reducer 12 [CONTAINS] + Reduce Output Operator [RS_161] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_160] (rows=609832848 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["count()","sum(_col5)"],keys:_col0, _col1, _col2, _col3, _col4 + Top N Key Operator [TNK_159] (rows=609832848 width=108) + keys:_col0, _col1, _col2, _col3, _col4,sort order:+++++,top n:100 + Select Operator [SEL_157] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_156] (rows=174233858 width=135) + Conds:RS_39._col0=RS_207._col0(Inner),Output:["_col2","_col4","_col6","_col7"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_207] + PartitionCols:_col0 + Select Operator [SEL_206] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + TableScan [TS_34] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_142] (rows=158394413 width=135) + Conds:RS_215._col1=RS_167._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_167] + PartitionCols:_col0 + Select Operator [SEL_162] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_category"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_215] + PartitionCols:_col1 + Select Operator [SEL_214] (rows=143994918 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_213] (rows=143994918 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_37_item_i_item_sk_min) AND DynamicValue(RS_37_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_37_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_40_date_dim_d_date_sk_min) AND DynamicValue(RS_40_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_40_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null and cs_warehouse_sk is null) + TableScan [TS_29] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_warehouse_sk","cs_item_sk","cs_ext_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_205] + Group By Operator [GBY_204] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_174] + Group By Operator [GBY_171] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_168] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_162] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_212] + Group By Operator [GBY_211] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_210] + Group By Operator [GBY_209] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_208] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_206] + <-Reducer 3 [CONTAINS] + Reduce Output Operator [RS_149] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_148] (rows=609832848 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["count()","sum(_col5)"],keys:_col0, _col1, _col2, _col3, _col4 + Top N Key Operator [TNK_147] (rows=609832848 width=108) + keys:_col0, _col1, _col2, _col3, _col4,sort order:+++++,top n:100 + Select Operator [SEL_145] (rows=348477373 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_144] (rows=348477373 width=88) + Conds:RS_10._col2=RS_178._col0(Inner),Output:["_col1","_col4","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_178] + PartitionCols:_col0 + Select Operator [SEL_177] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_138] (rows=316797605 width=88) + Conds:RS_163._col0=RS_186._col1(Inner),Output:["_col1","_col2","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_163] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_162] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_186] + PartitionCols:_col1 + Select Operator [SEL_185] (rows=287997817 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_184] (rows=287997817 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_7_item_i_item_sk_min) AND DynamicValue(RS_7_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_7_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_11_date_dim_d_date_sk_min) AND DynamicValue(RS_11_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_11_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is null and ss_sold_date_sk is not null) + TableScan [TS_2] (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 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_183] + Group By Operator [GBY_182] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_181] + Group By Operator [GBY_180] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_179] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_177] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_176] + Group By Operator [GBY_175] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_172] + Group By Operator [GBY_169] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_164] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_162] + <-Reducer 9 [CONTAINS] + Reduce Output Operator [RS_155] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_154] (rows=609832848 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["count()","sum(_col5)"],keys:_col0, _col1, _col2, _col3, _col4 + Top N Key Operator [TNK_153] (rows=609832848 width=108) + keys:_col0, _col1, _col2, _col3, _col4,sort order:+++++,top n:100 + Select Operator [SEL_151] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_150] (rows=87121617 width=135) + Conds:RS_24._col0=RS_195._col0(Inner),Output:["_col2","_col4","_col6","_col7"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_195] + PartitionCols:_col0 + Select Operator [SEL_194] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + TableScan [TS_19] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_140] (rows=79201469 width=135) + Conds:RS_203._col1=RS_165._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_165] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_162] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_203] + PartitionCols:_col1 + Select Operator [SEL_202] (rows=72001334 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_201] (rows=72001334 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_22_item_i_item_sk_min) AND DynamicValue(RS_22_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_22_item_i_item_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_sold_date_sk is not null and ws_web_page_sk is null) + TableScan [TS_14] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_web_page_sk","ws_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_193] + Group By Operator [GBY_192] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_173] + Group By Operator [GBY_170] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_166] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_162] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_200] + Group By Operator [GBY_199] (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_198] + Group By Operator [GBY_197] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_196] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_194] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query77.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query77.q.out new file mode 100644 index 0000000000..476df14731 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query77.q.out @@ -0,0 +1,504 @@ +Warning: Shuffle Join MERGEJOIN[225][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 14' is a cross product +PREHOOK: query: explain +with ss as + (select s_store_sk, + sum(ss_ext_sales_price) as sales, + sum(ss_net_profit) as profit + from store_sales, + date_dim, + store + where ss_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ss_store_sk = s_store_sk + group by s_store_sk) + , + sr as + (select s_store_sk, + sum(sr_return_amt) as returns, + sum(sr_net_loss) as profit_loss + from store_returns, + date_dim, + store + where sr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and sr_store_sk = s_store_sk + group by s_store_sk), + cs as + (select cs_call_center_sk, + sum(cs_ext_sales_price) as sales, + sum(cs_net_profit) as profit + from catalog_sales, + date_dim + where cs_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + group by cs_call_center_sk + ), + cr as + (select + sum(cr_return_amount) as returns, + sum(cr_net_loss) as profit_loss + from catalog_returns, + date_dim + where cr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + ), + ws as + ( select wp_web_page_sk, + sum(ws_ext_sales_price) as sales, + sum(ws_net_profit) as profit + from web_sales, + date_dim, + web_page + where ws_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ws_web_page_sk = wp_web_page_sk + group by wp_web_page_sk), + wr as + (select wp_web_page_sk, + sum(wr_return_amt) as returns, + sum(wr_net_loss) as profit_loss + from web_returns, + date_dim, + web_page + where wr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and wr_web_page_sk = wp_web_page_sk + group by wp_web_page_sk) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , ss.s_store_sk as id + , sales + , coalesce(returns, 0) as returns + , (profit - coalesce(profit_loss,0)) as profit + from ss left join sr + on ss.s_store_sk = sr.s_store_sk + union all + select 'catalog channel' as channel + , cs_call_center_sk as id + , sales + , returns + , (profit - profit_loss) as profit + from cs + , cr + union all + select 'web channel' as channel + , ws.wp_web_page_sk as id + , sales + , coalesce(returns, 0) returns + , (profit - coalesce(profit_loss,0)) as profit + from ws left join wr + on ws.wp_web_page_sk = wr.wp_web_page_sk + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_page +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ss as + (select s_store_sk, + sum(ss_ext_sales_price) as sales, + sum(ss_net_profit) as profit + from store_sales, + date_dim, + store + where ss_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ss_store_sk = s_store_sk + group by s_store_sk) + , + sr as + (select s_store_sk, + sum(sr_return_amt) as returns, + sum(sr_net_loss) as profit_loss + from store_returns, + date_dim, + store + where sr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and sr_store_sk = s_store_sk + group by s_store_sk), + cs as + (select cs_call_center_sk, + sum(cs_ext_sales_price) as sales, + sum(cs_net_profit) as profit + from catalog_sales, + date_dim + where cs_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + group by cs_call_center_sk + ), + cr as + (select + sum(cr_return_amount) as returns, + sum(cr_net_loss) as profit_loss + from catalog_returns, + date_dim + where cr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + ), + ws as + ( select wp_web_page_sk, + sum(ws_ext_sales_price) as sales, + sum(ws_net_profit) as profit + from web_sales, + date_dim, + web_page + where ws_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ws_web_page_sk = wp_web_page_sk + group by wp_web_page_sk), + wr as + (select wp_web_page_sk, + sum(wr_return_amt) as returns, + sum(wr_net_loss) as profit_loss + from web_returns, + date_dim, + web_page + where wr_returned_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and wr_web_page_sk = wp_web_page_sk + group by wp_web_page_sk) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , ss.s_store_sk as id + , sales + , coalesce(returns, 0) as returns + , (profit - coalesce(profit_loss,0)) as profit + from ss left join sr + on ss.s_store_sk = sr.s_store_sk + union all + select 'catalog channel' as channel + , cs_call_center_sk as id + , sales + , returns + , (profit - profit_loss) as profit + from cs + , cr + union all + select 'web channel' as channel + , ws.wp_web_page_sk as id + , sales + , coalesce(returns, 0) returns + , (profit - coalesce(profit_loss,0)) as profit + from ws left join wr + on ws.wp_web_page_sk = wr.wp_web_page_sk + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_page +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 9 (BROADCAST_EDGE) +Map 25 <- Reducer 15 (BROADCAST_EDGE) +Map 27 <- Reducer 21 (BROADCAST_EDGE) +Reducer 10 <- Map 24 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 25 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 15 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 26 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 27 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 23 (ONE_TO_ONE_EDGE), Union 5 (CONTAINS) +Reducer 21 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 28 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 11 (ONE_TO_ONE_EDGE), Reducer 3 (ONE_TO_ONE_EDGE), Union 5 (CONTAINS) +Reducer 6 <- Union 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_271] + Limit [LIM_270] (rows=100 width=167) + Number of rows:100 + Select Operator [SEL_269] (rows=890990106 width=167) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_268] + Select Operator [SEL_267] (rows=890990106 width=167) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_266] (rows=890990106 width=167) + Output:["_col0","_col1","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 14 [CONTAINS] + Reduce Output Operator [RS_230] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_229] (rows=1781980212 width=167) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_228] (rows=593993404 width=167) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_226] (rows=158394413 width=360) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_225] (rows=158394413 width=360) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_278] + Group By Operator [GBY_277] (rows=158394413 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col0 + Group By Operator [GBY_44] (rows=316788826 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","sum(_col3)"],keys:_col1 + Merge Join Operator [MERGEJOIN_212] (rows=316788826 width=135) + Conds:RS_276._col0=RS_242._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_242] + PartitionCols:_col0 + Select Operator [SEL_238] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_237] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-08-04 00:00:00' AND TIMESTAMP'1998-09-03 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 25 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_276] + PartitionCols:_col0 + Select Operator [SEL_275] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_274] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_41_date_dim_d_date_sk_min) AND DynamicValue(RS_41_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_41_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_34] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_ext_sales_price","cs_net_profit"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_273] + Group By Operator [GBY_272] (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_252] + Group By Operator [GBY_249] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_243] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_238] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_283] + Group By Operator [GBY_282] (rows=1 width=224) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_59] + Group By Operator [GBY_58] (rows=1 width=224) + Output:["_col0","_col1"],aggregations:["sum(_col1)","sum(_col2)"] + Merge Join Operator [MERGEJOIN_213] (rows=31678769 width=106) + Conds:RS_281._col0=RS_244._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_244] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_238] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_281] + PartitionCols:_col0 + Select Operator [SEL_280] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_279] (rows=28798881 width=106) + predicate:cr_returned_date_sk is not null + TableScan [TS_48] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_return_amount","cr_net_loss"] + <-Reducer 20 [CONTAINS] + Reduce Output Operator [RS_236] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_235] (rows=1781980212 width=167) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_234] (rows=593993404 width=167) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_232] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_231] (rows=87121617 width=135) + Conds:RS_290._col0=RS_295._col0(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_290] + PartitionCols:_col0 + Group By Operator [GBY_289] (rows=79201469 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_79] + PartitionCols:_col0 + Group By Operator [GBY_78] (rows=158402938 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_76] (rows=158402938 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_214] (rows=158402938 width=135) + Conds:RS_288._col0=RS_245._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_245] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_238] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_288] + PartitionCols:_col0 + Select Operator [SEL_287] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_286] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_74_date_dim_d_date_sk_min) AND DynamicValue(RS_74_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_74_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null and ws_web_page_sk is not null) + TableScan [TS_67] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_web_page_sk","ws_ext_sales_price","ws_net_profit"] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_285] + Group By Operator [GBY_284] (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_253] + Group By Operator [GBY_250] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_246] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_238] + <-Reducer 23 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_295] + PartitionCols:_col0 + Group By Operator [GBY_294] (rows=7919157 width=92) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col0 + Group By Operator [GBY_93] (rows=15838314 width=92) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_91] (rows=15838314 width=92) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_215] (rows=15838314 width=92) + Conds:RS_293._col0=RS_247._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_247] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_238] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_293] + PartitionCols:_col0 + Select Operator [SEL_292] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_291] (rows=14398467 width=92) + predicate:(wr_returned_date_sk is not null and wr_web_page_sk is not null) + TableScan [TS_82] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_web_page_sk","wr_return_amt","wr_net_loss"] + <-Reducer 4 [CONTAINS] + Reduce Output Operator [RS_224] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_223] (rows=1781980212 width=167) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_222] (rows=593993404 width=167) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_220] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_219] (rows=348477374 width=88) + Conds:RS_260._col0=RS_265._col0(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_265] + PartitionCols:_col0 + Group By Operator [GBY_264] (rows=31675133 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Group By Operator [GBY_26] (rows=63350266 width=77) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_24] (rows=63350266 width=77) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_211] (rows=63350266 width=77) + Conds:RS_263._col0=RS_241._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_241] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_238] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_263] + PartitionCols:_col0 + Select Operator [SEL_262] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_261] (rows=57591150 width=77) + predicate:(sr_returned_date_sk is not null and sr_store_sk is not null) + TableScan [TS_15] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_store_sk","sr_return_amt","sr_net_loss"] + <-Reducer 3 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_260] + PartitionCols:_col0 + Group By Operator [GBY_259] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col0 + Group By Operator [GBY_11] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","sum(_col2)"],keys:_col0 + Select Operator [SEL_9] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_210] (rows=633595212 width=88) + Conds:RS_258._col0=RS_239._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_239] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_238] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_258] + PartitionCols:_col0 + Select Operator [SEL_257] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_256] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_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=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_store_sk","ss_ext_sales_price","ss_net_profit"] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_255] + Group By Operator [GBY_254] (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_251] + Group By Operator [GBY_248] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_240] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_238] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query78.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query78.q.out new file mode 100644 index 0000000000..0337b5dbb4 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query78.q.out @@ -0,0 +1,345 @@ +PREHOOK: query: explain +with ws as + (select d_year AS ws_sold_year, ws_item_sk, + ws_bill_customer_sk ws_customer_sk, + sum(ws_quantity) ws_qty, + sum(ws_wholesale_cost) ws_wc, + sum(ws_sales_price) ws_sp + from web_sales + left join web_returns on wr_order_number=ws_order_number and ws_item_sk=wr_item_sk + join date_dim on ws_sold_date_sk = d_date_sk + where wr_order_number is null + group by d_year, ws_item_sk, ws_bill_customer_sk + ), +cs as + (select d_year AS cs_sold_year, cs_item_sk, + cs_bill_customer_sk cs_customer_sk, + sum(cs_quantity) cs_qty, + sum(cs_wholesale_cost) cs_wc, + sum(cs_sales_price) cs_sp + from catalog_sales + left join catalog_returns on cr_order_number=cs_order_number and cs_item_sk=cr_item_sk + join date_dim on cs_sold_date_sk = d_date_sk + where cr_order_number is null + group by d_year, cs_item_sk, cs_bill_customer_sk + ), +ss as + (select d_year AS ss_sold_year, ss_item_sk, + ss_customer_sk, + sum(ss_quantity) ss_qty, + sum(ss_wholesale_cost) ss_wc, + sum(ss_sales_price) ss_sp + from store_sales + left join store_returns on sr_ticket_number=ss_ticket_number and ss_item_sk=sr_item_sk + join date_dim on ss_sold_date_sk = d_date_sk + where sr_ticket_number is null + group by d_year, ss_item_sk, ss_customer_sk + ) + select +ss_sold_year, ss_item_sk, ss_customer_sk, +round(ss_qty/(coalesce(ws_qty+cs_qty,1)),2) ratio, +ss_qty store_qty, ss_wc store_wholesale_cost, ss_sp store_sales_price, +coalesce(ws_qty,0)+coalesce(cs_qty,0) other_chan_qty, +coalesce(ws_wc,0)+coalesce(cs_wc,0) other_chan_wholesale_cost, +coalesce(ws_sp,0)+coalesce(cs_sp,0) other_chan_sales_price +from ss +left join ws on (ws_sold_year=ss_sold_year and ws_item_sk=ss_item_sk and ws_customer_sk=ss_customer_sk) +left join cs on (cs_sold_year=ss_sold_year and cs_item_sk=cs_item_sk and cs_customer_sk=ss_customer_sk) +where coalesce(ws_qty,0)>0 and coalesce(cs_qty, 0)>0 and ss_sold_year=2000 +order by + ss_sold_year, ss_item_sk, ss_customer_sk, + ss_qty desc, ss_wc desc, ss_sp desc, + other_chan_qty, + other_chan_wholesale_cost, + other_chan_sales_price, + round(ss_qty/(coalesce(ws_qty+cs_qty,1)),2) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ws as + (select d_year AS ws_sold_year, ws_item_sk, + ws_bill_customer_sk ws_customer_sk, + sum(ws_quantity) ws_qty, + sum(ws_wholesale_cost) ws_wc, + sum(ws_sales_price) ws_sp + from web_sales + left join web_returns on wr_order_number=ws_order_number and ws_item_sk=wr_item_sk + join date_dim on ws_sold_date_sk = d_date_sk + where wr_order_number is null + group by d_year, ws_item_sk, ws_bill_customer_sk + ), +cs as + (select d_year AS cs_sold_year, cs_item_sk, + cs_bill_customer_sk cs_customer_sk, + sum(cs_quantity) cs_qty, + sum(cs_wholesale_cost) cs_wc, + sum(cs_sales_price) cs_sp + from catalog_sales + left join catalog_returns on cr_order_number=cs_order_number and cs_item_sk=cr_item_sk + join date_dim on cs_sold_date_sk = d_date_sk + where cr_order_number is null + group by d_year, cs_item_sk, cs_bill_customer_sk + ), +ss as + (select d_year AS ss_sold_year, ss_item_sk, + ss_customer_sk, + sum(ss_quantity) ss_qty, + sum(ss_wholesale_cost) ss_wc, + sum(ss_sales_price) ss_sp + from store_sales + left join store_returns on sr_ticket_number=ss_ticket_number and ss_item_sk=sr_item_sk + join date_dim on ss_sold_date_sk = d_date_sk + where sr_ticket_number is null + group by d_year, ss_item_sk, ss_customer_sk + ) + select +ss_sold_year, ss_item_sk, ss_customer_sk, +round(ss_qty/(coalesce(ws_qty+cs_qty,1)),2) ratio, +ss_qty store_qty, ss_wc store_wholesale_cost, ss_sp store_sales_price, +coalesce(ws_qty,0)+coalesce(cs_qty,0) other_chan_qty, +coalesce(ws_wc,0)+coalesce(cs_wc,0) other_chan_wholesale_cost, +coalesce(ws_sp,0)+coalesce(cs_sp,0) other_chan_sales_price +from ss +left join ws on (ws_sold_year=ss_sold_year and ws_item_sk=ss_item_sk and ws_customer_sk=ss_customer_sk) +left join cs on (cs_sold_year=ss_sold_year and cs_item_sk=cs_item_sk and cs_customer_sk=ss_customer_sk) +where coalesce(ws_qty,0)>0 and coalesce(cs_qty, 0)>0 and ss_sold_year=2000 +order by + ss_sold_year, ss_item_sk, ss_customer_sk, + ss_qty desc, ss_wc desc, ss_sp desc, + other_chan_qty, + other_chan_wholesale_cost, + other_chan_sales_price, + round(ss_qty/(coalesce(ws_qty+cs_qty,1)),2) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 14 <- Reducer 7 (BROADCAST_EDGE) +Map 17 <- Reducer 10 (BROADCAST_EDGE) +Map 20 <- Reducer 13 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 1 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (SIMPLE_EDGE), Map 16 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (ONE_TO_ONE_EDGE), Reducer 9 (ONE_TO_ONE_EDGE) +Reducer 5 <- Reducer 12 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 7 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 1 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_238] + Limit [LIM_237] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_236] (rows=52707204 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_73] + Select Operator [SEL_72] (rows=52707204 width=88) + Output:["_col0","_col1","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + Filter Operator [FIL_71] (rows=52707204 width=88) + predicate:CASE WHEN (_col11 is not null) THEN ((_col11 > 0L)) ELSE (false) END + Merge Join Operator [MERGEJOIN_191] (rows=105414409 width=88) + Conds:RS_68._col1=RS_235._col0(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col7","_col8","_col9","_col11","_col12","_col13"] + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_235] + PartitionCols:_col0 + Select Operator [SEL_234] (rows=87116929 width=135) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_233] (rows=87116929 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_65] + PartitionCols:_col0, _col1 + Group By Operator [GBY_64] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col2, _col3 + Merge Join Operator [MERGEJOIN_189] (rows=174233858 width=135) + Conds:RS_198._col0=RS_61._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_198] + PartitionCols:_col0 + Select Operator [SEL_193] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_192] (rows=36524 width=1119) + predicate:(d_year = 2000) + TableScan [TS_0] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0 + Select Operator [SEL_59] (rows=158394413 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_58] (rows=158394413 width=135) + predicate:_col8 is null + Merge Join Operator [MERGEJOIN_188] (rows=316788826 width=135) + Conds:RS_230._col2, _col3=RS_232._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5","_col6","_col8"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_230] + PartitionCols:_col2, _col3 + Select Operator [SEL_229] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_228] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_60_date_dim_d_date_sk_min) AND DynamicValue(RS_60_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_60_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_50] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_order_number","cs_quantity","cs_wholesale_cost","cs_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_227] + Group By Operator [GBY_226] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + 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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_232] + PartitionCols:_col0, _col1 + Select Operator [SEL_231] (rows=28798881 width=106) + Output:["_col0","_col1"] + TableScan [TS_53] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col1 + Filter Operator [FIL_45] (rows=95831279 width=88) + predicate:CASE WHEN (_col7 is not null) THEN ((_col7 > 0L)) ELSE (false) END + Merge Join Operator [MERGEJOIN_190] (rows=191662559 width=88) + Conds:RS_215._col1, _col0=RS_225._col1, _col0(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col7","_col8","_col9"] + <-Reducer 3 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_215] + PartitionCols:_col1, _col0 + Select Operator [SEL_214] (rows=174238687 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_213] (rows=174238687 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0, _col1 + Group By Operator [GBY_17] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col3, _col2 + Merge Join Operator [MERGEJOIN_185] (rows=348477374 width=88) + Conds:RS_194._col0=RS_14._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col0 + Select Operator [SEL_12] (rows=316797606 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_11] (rows=316797606 width=88) + predicate:_col8 is null + Merge Join Operator [MERGEJOIN_184] (rows=633595212 width=88) + Conds:RS_210._col1, _col3=RS_212._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5","_col6","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_210] + PartitionCols:_col1, _col3 + Select Operator [SEL_209] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_208] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_3] (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_ticket_number","ss_quantity","ss_wholesale_cost","ss_sales_price"] + <-Reducer 7 [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 1 [CUSTOM_SIMPLE_EDGE] vectorized + 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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_212] + PartitionCols:_col0, _col1 + Select Operator [SEL_211] (rows=57591150 width=77) + Output:["_col0","_col1"] + TableScan [TS_6] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number"] + <-Reducer 9 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_225] + PartitionCols:_col1, _col0 + Select Operator [SEL_224] (rows=43560808 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_223] (rows=43560808 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0, _col1 + Group By Operator [GBY_38] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)"],keys:_col3, _col2 + Merge Join Operator [MERGEJOIN_187] (rows=87121617 width=135) + Conds:RS_196._col0=RS_35._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_196] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Select Operator [SEL_33] (rows=79201469 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_32] (rows=79201469 width=135) + predicate:_col8 is null + Merge Join Operator [MERGEJOIN_186] (rows=158402938 width=135) + Conds:RS_220._col1, _col3=RS_222._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col4","_col5","_col6","_col8"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_220] + PartitionCols:_col1, _col3 + Select Operator [SEL_219] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_218] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_34_date_dim_d_date_sk_min) AND DynamicValue(RS_34_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_34_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_24] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_order_number","ws_quantity","ws_wholesale_cost","ws_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_217] + Group By Operator [GBY_216] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + 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=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Map 19 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_222] + PartitionCols:_col0, _col1 + Select Operator [SEL_221] (rows=14398467 width=92) + Output:["_col0","_col1"] + TableScan [TS_27] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query79.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query79.q.out new file mode 100644 index 0000000000..717a5b35b3 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query79.q.out @@ -0,0 +1,201 @@ +PREHOOK: query: explain +select + c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,store.s_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (household_demographics.hd_dep_count = 8 or household_demographics.hd_vehicle_count > 0) + and date_dim.d_dow = 1 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_number_employees between 200 and 295 + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer + where ss_customer_sk = c_customer_sk + order by c_last_name,c_first_name,substr(s_city,1,30), profit +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + c_last_name,c_first_name,substr(s_city,1,30),ss_ticket_number,amt,profit + from + (select ss_ticket_number + ,ss_customer_sk + ,store.s_city + ,sum(ss_coupon_amt) amt + ,sum(ss_net_profit) profit + from store_sales,date_dim,store,household_demographics + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_store_sk = store.s_store_sk + and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk + and (household_demographics.hd_dep_count = 8 or household_demographics.hd_vehicle_count > 0) + and date_dim.d_dow = 1 + and date_dim.d_year in (1998,1998+1,1998+2) + and store.s_number_employees between 200 and 295 + group by ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city) ms,customer + where ss_customer_sk = c_customer_sk + order by c_last_name,c_first_name,substr(s_city,1,30), profit +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 5 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 4 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Map 10 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 7 <- Map 12 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Map 14 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 3 vectorized + File Output Operator [FS_140] + Limit [LIM_139] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_138] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_33] + Select Operator [SEL_32] (rows=421657640 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_100] (rows=421657640 width=88) + Conds:RS_102._col0=RS_137._col1(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7","_col8"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_137] + PartitionCols:_col1 + Select Operator [SEL_136] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Group By Operator [GBY_135] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_26] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_25] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col2, _col3, _col6 + Merge Join Operator [MERGEJOIN_99] (rows=766650239 width=88) + Conds:RS_21._col1=RS_124._col0(Inner),Output:["_col0","_col2","_col3","_col4","_col5","_col6"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=6000 width=107) + Output:["_col0"] + Filter Operator [FIL_122] (rows=6000 width=107) + predicate:((hd_dep_count = 8) or (hd_vehicle_count > 0)) + TableScan [TS_18] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col1 + Select Operator [SEL_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_98] (rows=696954748 width=88) + Conds:RS_14._col4=RS_116._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col7","_col10"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_116] + PartitionCols:_col0 + Select Operator [SEL_115] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_114] (rows=1704 width=1910) + predicate:s_number_employees BETWEEN 200 AND 295 + TableScan [TS_8] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_number_employees","s_city"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_97] (rows=633595212 width=88) + Conds:RS_134._col0=RS_108._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_107] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_106] (rows=36524 width=1119) + predicate:((d_dow = 1) and (d_year) IN (1998, 1999, 2000)) + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_dow"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_134] + PartitionCols:_col0 + Select Operator [SEL_133] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_132] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_29_customer_c_customer_sk_min) AND DynamicValue(RS_29_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_29_customer_c_customer_sk_bloom_filter))) and (ss_hdemo_sk BETWEEN DynamicValue(RS_22_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_22_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_22_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_15_store_s_store_sk_min) AND DynamicValue(RS_15_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_15_store_s_store_sk_bloom_filter))) and ss_customer_sk is not null and ss_hdemo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_2] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_hdemo_sk","ss_addr_sk","ss_store_sk","ss_ticket_number","ss_coupon_amt","ss_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_113] + Group By Operator [GBY_112] (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_111] + Group By Operator [GBY_110] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_109] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_107] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_119] + Group By Operator [GBY_118] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_117] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_115] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_129] + Group By Operator [GBY_128] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + Group By Operator [GBY_126] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_125] (rows=6000 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_123] + <-Reducer 4 [BROADCAST_EDGE] vectorized + BROADCAST [RS_131] + Group By Operator [GBY_130] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_103] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query8.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query8.q.out new file mode 100644 index 0000000000..a4ca727ada --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query8.q.out @@ -0,0 +1,399 @@ +PREHOOK: query: explain +select s_store_name + ,sum(ss_net_profit) + from store_sales + ,date_dim + ,store, + (select ca_zip + from ( + (SELECT substr(ca_zip,1,5) ca_zip + FROM customer_address + WHERE substr(ca_zip,1,5) IN ( + '89436','30868','65085','22977','83927','77557', + '58429','40697','80614','10502','32779', + '91137','61265','98294','17921','18427', + '21203','59362','87291','84093','21505', + '17184','10866','67898','25797','28055', + '18377','80332','74535','21757','29742', + '90885','29898','17819','40811','25990', + '47513','89531','91068','10391','18846', + '99223','82637','41368','83658','86199', + '81625','26696','89338','88425','32200', + '81427','19053','77471','36610','99823', + '43276','41249','48584','83550','82276', + '18842','78890','14090','38123','40936', + '34425','19850','43286','80072','79188', + '54191','11395','50497','84861','90733', + '21068','57666','37119','25004','57835', + '70067','62878','95806','19303','18840', + '19124','29785','16737','16022','49613', + '89977','68310','60069','98360','48649', + '39050','41793','25002','27413','39736', + '47208','16515','94808','57648','15009', + '80015','42961','63982','21744','71853', + '81087','67468','34175','64008','20261', + '11201','51799','48043','45645','61163', + '48375','36447','57042','21218','41100', + '89951','22745','35851','83326','61125', + '78298','80752','49858','52940','96976', + '63792','11376','53582','18717','90226', + '50530','94203','99447','27670','96577', + '57856','56372','16165','23427','54561', + '28806','44439','22926','30123','61451', + '92397','56979','92309','70873','13355', + '21801','46346','37562','56458','28286', + '47306','99555','69399','26234','47546', + '49661','88601','35943','39936','25632', + '24611','44166','56648','30379','59785', + '11110','14329','93815','52226','71381', + '13842','25612','63294','14664','21077', + '82626','18799','60915','81020','56447', + '76619','11433','13414','42548','92713', + '70467','30884','47484','16072','38936', + '13036','88376','45539','35901','19506', + '65690','73957','71850','49231','14276', + '20005','18384','76615','11635','38177', + '55607','41369','95447','58581','58149', + '91946','33790','76232','75692','95464', + '22246','51061','56692','53121','77209', + '15482','10688','14868','45907','73520', + '72666','25734','17959','24677','66446', + '94627','53535','15560','41967','69297', + '11929','59403','33283','52232','57350', + '43933','40921','36635','10827','71286', + '19736','80619','25251','95042','15526', + '36496','55854','49124','81980','35375', + '49157','63512','28944','14946','36503', + '54010','18767','23969','43905','66979', + '33113','21286','58471','59080','13395', + '79144','70373','67031','38360','26705', + '50906','52406','26066','73146','15884', + '31897','30045','61068','45550','92454', + '13376','14354','19770','22928','97790', + '50723','46081','30202','14410','20223', + '88500','67298','13261','14172','81410', + '93578','83583','46047','94167','82564', + '21156','15799','86709','37931','74703', + '83103','23054','70470','72008','49247', + '91911','69998','20961','70070','63197', + '54853','88191','91830','49521','19454', + '81450','89091','62378','25683','61869', + '51744','36580','85778','36871','48121', + '28810','83712','45486','67393','26935', + '42393','20132','55349','86057','21309', + '80218','10094','11357','48819','39734', + '40758','30432','21204','29467','30214', + '61024','55307','74621','11622','68908', + '33032','52868','99194','99900','84936', + '69036','99149','45013','32895','59004', + '32322','14933','32936','33562','72550', + '27385','58049','58200','16808','21360', + '32961','18586','79307','15492')) + intersect + (select ca_zip + from (SELECT substr(ca_zip,1,5) ca_zip,count(*) cnt + FROM customer_address, customer + WHERE ca_address_sk = c_current_addr_sk and + c_preferred_cust_flag='Y' + group by ca_zip + having count(*) > 10)A1))A2) V1 + where ss_store_sk = s_store_sk + and ss_sold_date_sk = d_date_sk + and d_qoy = 1 and d_year = 2002 + and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) + group by s_store_name + order by s_store_name + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select s_store_name + ,sum(ss_net_profit) + from store_sales + ,date_dim + ,store, + (select ca_zip + from ( + (SELECT substr(ca_zip,1,5) ca_zip + FROM customer_address + WHERE substr(ca_zip,1,5) IN ( + '89436','30868','65085','22977','83927','77557', + '58429','40697','80614','10502','32779', + '91137','61265','98294','17921','18427', + '21203','59362','87291','84093','21505', + '17184','10866','67898','25797','28055', + '18377','80332','74535','21757','29742', + '90885','29898','17819','40811','25990', + '47513','89531','91068','10391','18846', + '99223','82637','41368','83658','86199', + '81625','26696','89338','88425','32200', + '81427','19053','77471','36610','99823', + '43276','41249','48584','83550','82276', + '18842','78890','14090','38123','40936', + '34425','19850','43286','80072','79188', + '54191','11395','50497','84861','90733', + '21068','57666','37119','25004','57835', + '70067','62878','95806','19303','18840', + '19124','29785','16737','16022','49613', + '89977','68310','60069','98360','48649', + '39050','41793','25002','27413','39736', + '47208','16515','94808','57648','15009', + '80015','42961','63982','21744','71853', + '81087','67468','34175','64008','20261', + '11201','51799','48043','45645','61163', + '48375','36447','57042','21218','41100', + '89951','22745','35851','83326','61125', + '78298','80752','49858','52940','96976', + '63792','11376','53582','18717','90226', + '50530','94203','99447','27670','96577', + '57856','56372','16165','23427','54561', + '28806','44439','22926','30123','61451', + '92397','56979','92309','70873','13355', + '21801','46346','37562','56458','28286', + '47306','99555','69399','26234','47546', + '49661','88601','35943','39936','25632', + '24611','44166','56648','30379','59785', + '11110','14329','93815','52226','71381', + '13842','25612','63294','14664','21077', + '82626','18799','60915','81020','56447', + '76619','11433','13414','42548','92713', + '70467','30884','47484','16072','38936', + '13036','88376','45539','35901','19506', + '65690','73957','71850','49231','14276', + '20005','18384','76615','11635','38177', + '55607','41369','95447','58581','58149', + '91946','33790','76232','75692','95464', + '22246','51061','56692','53121','77209', + '15482','10688','14868','45907','73520', + '72666','25734','17959','24677','66446', + '94627','53535','15560','41967','69297', + '11929','59403','33283','52232','57350', + '43933','40921','36635','10827','71286', + '19736','80619','25251','95042','15526', + '36496','55854','49124','81980','35375', + '49157','63512','28944','14946','36503', + '54010','18767','23969','43905','66979', + '33113','21286','58471','59080','13395', + '79144','70373','67031','38360','26705', + '50906','52406','26066','73146','15884', + '31897','30045','61068','45550','92454', + '13376','14354','19770','22928','97790', + '50723','46081','30202','14410','20223', + '88500','67298','13261','14172','81410', + '93578','83583','46047','94167','82564', + '21156','15799','86709','37931','74703', + '83103','23054','70470','72008','49247', + '91911','69998','20961','70070','63197', + '54853','88191','91830','49521','19454', + '81450','89091','62378','25683','61869', + '51744','36580','85778','36871','48121', + '28810','83712','45486','67393','26935', + '42393','20132','55349','86057','21309', + '80218','10094','11357','48819','39734', + '40758','30432','21204','29467','30214', + '61024','55307','74621','11622','68908', + '33032','52868','99194','99900','84936', + '69036','99149','45013','32895','59004', + '32322','14933','32936','33562','72550', + '27385','58049','58200','16808','21360', + '32961','18586','79307','15492')) + intersect + (select ca_zip + from (SELECT substr(ca_zip,1,5) ca_zip,count(*) cnt + FROM customer_address, customer + WHERE ca_address_sk = c_current_addr_sk and + c_preferred_cust_flag='Y' + group by ca_zip + having count(*) > 10)A1))A2) V1 + where ss_store_sk = s_store_sk + and ss_sold_date_sk = d_date_sk + and d_qoy = 1 and d_year = 2002 + and (substr(s_zip,1,2) = substr(V1.ca_zip,1,2)) + group by s_store_name + order by s_store_name + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +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 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE), Union 13 (CONTAINS) +Reducer 14 <- Union 13 (SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 13 (CONTAINS) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_159] + Limit [LIM_158] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_157] (rows=383325119 width=88) + Output:["_col0","_col1"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_156] + Group By Operator [GBY_155] (rows=383325119 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_57] + PartitionCols:_col0 + Group By Operator [GBY_56] (rows=766650239 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col0)"],keys:_col1 + Top N Key Operator [TNK_83] (rows=766650239 width=88) + keys:_col1,sort order:+,top n:100 + Merge Join Operator [MERGEJOIN_123] (rows=766650239 width=88) + Conds:RS_52._col2=RS_154._col0(Inner),Output:["_col0","_col1"] + <-Reducer 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_154] + PartitionCols:_col0 + Select Operator [SEL_153] (rows=1 width=1014) + Output:["_col0"] + Filter Operator [FIL_152] (rows=1 width=1014) + predicate:(_col1 = 2L) + Group By Operator [GBY_151] (rows=6833333 width=1014) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Union 13 [SIMPLE_EDGE] + <-Reducer 12 [CONTAINS] vectorized + Reduce Output Operator [RS_166] + PartitionCols:_col0 + Group By Operator [GBY_165] (rows=13666666 width=1014) + Output:["_col0","_col1"],aggregations:["count(_col1)"],keys:_col0 + Group By Operator [GBY_164] (rows=10000000 width=1014) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_163] + PartitionCols:_col0 + Group By Operator [GBY_162] (rows=20000000 width=1014) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col0 + Select Operator [SEL_161] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_160] (rows=20000000 width=1014) + predicate:((substr(ca_zip, 1, 5)) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053', '77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425', '19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835', '70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360', '48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982', '21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447', '57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792', '11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561', '28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458', '28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648', '30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799', '60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036', '88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177', '55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121', '77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560', '41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619', '25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010', '18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705', '50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928', '97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047', '94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998', '20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744', '36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309', '80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622', '68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936', '33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492') and substr(substr(ca_zip, 1, 5), 1, 2) is not null) + TableScan [TS_16] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_zip"] + <-Reducer 18 [CONTAINS] vectorized + Reduce Output Operator [RS_180] + PartitionCols:_col0 + Group By Operator [GBY_179] (rows=13666666 width=1014) + Output:["_col0","_col1"],aggregations:["count(_col1)"],keys:_col0 + Group By Operator [GBY_178] (rows=3666666 width=1014) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Reducer 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_177] + PartitionCols:_col0 + Group By Operator [GBY_176] (rows=7333333 width=1014) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col0 + Select Operator [SEL_175] (rows=7333333 width=1014) + Output:["_col0"] + Filter Operator [FIL_174] (rows=7333333 width=1014) + predicate:(_col1 > 10L) + Group By Operator [GBY_173] (rows=22000000 width=1014) + Output:["_col0","_col1"],aggregations:["count(VALUE._col0)"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Group By Operator [GBY_34] (rows=44000000 width=1014) + Output:["_col0","_col1"],aggregations:["count()"],keys:_col1 + Merge Join Operator [MERGEJOIN_122] (rows=44000000 width=1014) + Conds:RS_169._col0=RS_172._col0(Inner),Output:["_col1"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_169] + PartitionCols:_col0 + Select Operator [SEL_168] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_167] (rows=40000000 width=1014) + predicate:substr(substr(ca_zip, 1, 5), 1, 2) is not null + TableScan [TS_24] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_zip"] + <-Map 19 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_172] + PartitionCols:_col0 + Select Operator [SEL_171] (rows=40000000 width=860) + Output:["_col0"] + Filter Operator [FIL_170] (rows=40000000 width=860) + predicate:((c_preferred_cust_flag = 'Y') and c_current_addr_sk is not null) + TableScan [TS_27] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_current_addr_sk","c_preferred_cust_flag"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col2 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_121] (rows=696954748 width=88) + Conds:RS_12._col1=RS_142._col0(Inner),Output:["_col2","_col5","_col6"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_142] + PartitionCols:_col0 + Select Operator [SEL_141] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_140] (rows=1704 width=1910) + predicate:substr(s_zip, 1, 2) is not null + TableScan [TS_6] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_zip"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_120] (rows=633595212 width=88) + Conds:RS_150._col0=RS_134._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_134] + PartitionCols:_col0 + Select Operator [SEL_133] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_132] (rows=18262 width=1119) + predicate:((d_qoy = 1) and (d_year = 2002)) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_150] + PartitionCols:_col0 + Select Operator [SEL_149] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_148] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_13_store_s_store_sk_min) AND DynamicValue(RS_13_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_13_store_s_store_sk_bloom_filter))) and 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_net_profit"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_147] + Group By Operator [GBY_146] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_145] + Group By Operator [GBY_144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_143] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_141] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_139] + Group By Operator [GBY_138] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_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=1000000)"] + Select Operator [SEL_135] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_133] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query80.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query80.q.out new file mode 100644 index 0000000000..736b944822 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query80.q.out @@ -0,0 +1,651 @@ +PREHOOK: query: explain +with ssr as + (select s_store_id as store_id, + sum(ss_ext_sales_price) as sales, + sum(coalesce(sr_return_amt, 0)) as returns, + sum(ss_net_profit - coalesce(sr_net_loss, 0)) as profit + from store_sales left outer join store_returns on + (ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number), + date_dim, + store, + item, + promotion + where ss_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ss_store_sk = s_store_sk + and ss_item_sk = i_item_sk + and i_current_price > 50 + and ss_promo_sk = p_promo_sk + and p_channel_tv = 'N' + group by s_store_id) + , + csr as + (select cp_catalog_page_id as catalog_page_id, + sum(cs_ext_sales_price) as sales, + sum(coalesce(cr_return_amount, 0)) as returns, + sum(cs_net_profit - coalesce(cr_net_loss, 0)) as profit + from catalog_sales left outer join catalog_returns on + (cs_item_sk = cr_item_sk and cs_order_number = cr_order_number), + date_dim, + catalog_page, + item, + promotion + where cs_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and cs_catalog_page_sk = cp_catalog_page_sk + and cs_item_sk = i_item_sk + and i_current_price > 50 + and cs_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(ws_ext_sales_price) as sales, + sum(coalesce(wr_return_amt, 0)) as returns, + sum(ws_net_profit - coalesce(wr_net_loss, 0)) as profit + from web_sales left outer join web_returns on + (ws_item_sk = wr_item_sk and ws_order_number = wr_order_number), + date_dim, + web_site, + item, + promotion + where ws_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ws_web_site_sk = web_site_sk + and ws_item_sk = i_item_sk + and i_current_price > 50 + and ws_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , 'store' || store_id as id + , sales + , returns + , profit + from ssr + union all + select 'catalog channel' as channel + , 'catalog_page' || catalog_page_id as id + , sales + , returns + , profit + from csr + union all + select 'web channel' as channel + , 'web_site' || web_site_id as id + , sales + , returns + , profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_page +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@promotion +PREHOOK: Input: default@store +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Input: default@web_site +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ssr as + (select s_store_id as store_id, + sum(ss_ext_sales_price) as sales, + sum(coalesce(sr_return_amt, 0)) as returns, + sum(ss_net_profit - coalesce(sr_net_loss, 0)) as profit + from store_sales left outer join store_returns on + (ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number), + date_dim, + store, + item, + promotion + where ss_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ss_store_sk = s_store_sk + and ss_item_sk = i_item_sk + and i_current_price > 50 + and ss_promo_sk = p_promo_sk + and p_channel_tv = 'N' + group by s_store_id) + , + csr as + (select cp_catalog_page_id as catalog_page_id, + sum(cs_ext_sales_price) as sales, + sum(coalesce(cr_return_amount, 0)) as returns, + sum(cs_net_profit - coalesce(cr_net_loss, 0)) as profit + from catalog_sales left outer join catalog_returns on + (cs_item_sk = cr_item_sk and cs_order_number = cr_order_number), + date_dim, + catalog_page, + item, + promotion + where cs_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and cs_catalog_page_sk = cp_catalog_page_sk + and cs_item_sk = i_item_sk + and i_current_price > 50 + and cs_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by cp_catalog_page_id) + , + wsr as + (select web_site_id, + sum(ws_ext_sales_price) as sales, + sum(coalesce(wr_return_amt, 0)) as returns, + sum(ws_net_profit - coalesce(wr_net_loss, 0)) as profit + from web_sales left outer join web_returns on + (ws_item_sk = wr_item_sk and ws_order_number = wr_order_number), + date_dim, + web_site, + item, + promotion + where ws_sold_date_sk = d_date_sk + and d_date between cast('1998-08-04' as date) + and (cast('1998-08-04' as date) + 30 days) + and ws_web_site_sk = web_site_sk + and ws_item_sk = i_item_sk + and i_current_price > 50 + and ws_promo_sk = p_promo_sk + and p_channel_tv = 'N' +group by web_site_id) + select channel + , id + , sum(sales) as sales + , sum(returns) as returns + , sum(profit) as profit + from + (select 'store channel' as channel + , 'store' || store_id as id + , sales + , returns + , profit + from ssr + union all + select 'catalog channel' as channel + , 'catalog_page' || catalog_page_id as id + , sales + , returns + , profit + from csr + union all + select 'web channel' as channel + , 'web_site' || web_site_id as id + , sales + , returns + , profit + from wsr + ) x + group by rollup (channel, id) + order by channel + ,id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_page +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@promotion +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Input: default@web_site +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 20 <- Reducer 25 (BROADCAST_EDGE), Reducer 31 (BROADCAST_EDGE), Reducer 33 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 36 <- Reducer 14 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE), Reducer 34 (BROADCAST_EDGE), Reducer 40 (BROADCAST_EDGE) +Map 41 <- Reducer 19 (BROADCAST_EDGE), Reducer 29 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE), Reducer 45 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 11 <- Map 39 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 32 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 14 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 1 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 16 <- Map 44 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 32 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 19 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 22 <- Map 24 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 24 (SIMPLE_EDGE), Reducer 37 (SIMPLE_EDGE) +Reducer 27 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 24 (SIMPLE_EDGE), Reducer 42 (SIMPLE_EDGE) +Reducer 29 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 30 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 31 <- Map 30 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 36 (SIMPLE_EDGE), Map 38 (SIMPLE_EDGE) +Reducer 4 <- Map 32 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 40 <- Map 39 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 41 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE) +Reducer 45 <- Map 44 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE), Union 6 (CONTAINS) +Reducer 7 <- Union 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Map 1 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 8 vectorized + File Output Operator [FS_461] + Limit [LIM_460] (rows=100 width=108) + Number of rows:100 + Select Operator [SEL_459] (rows=1217531358 width=108) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_458] + Select Operator [SEL_457] (rows=1217531358 width=108) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_456] (rows=1217531358 width=108) + Output:["_col0","_col1","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 6 [SIMPLE_EDGE] + <-Reducer 13 [CONTAINS] vectorized + Reduce Output Operator [RS_484] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_483] (rows=2435062716 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_482] (rows=811687572 width=108) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_481] (rows=231905279 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_480] (rows=231905279 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0 + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col0 + Group By Operator [GBY_72] (rows=463810558 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col3)","sum(_col4)"],keys:_col2 + Merge Join Operator [MERGEJOIN_367] (rows=463810558 width=135) + Conds:RS_68._col0=RS_434._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_434] + PartitionCols:_col0 + Select Operator [SEL_431] (rows=1150 width=1179) + Output:["_col0"] + Filter Operator [FIL_430] (rows=1150 width=1179) + predicate:(p_channel_tv = 'N') + TableScan [TS_27] (rows=2300 width=1179) + default@promotion,promotion,Tbl:COMPLETE,Col:NONE,Output:["p_promo_sk","p_channel_tv"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_68] + PartitionCols:_col0 + Select Operator [SEL_64] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_366] (rows=421645953 width=135) + Conds:RS_61._col1=RS_467._col0(Inner),Output:["_col3","_col4","_col5","_col6","_col8"] + <-Map 39 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_467] + PartitionCols:_col0 + Select Operator [SEL_466] (rows=46000 width=460) + Output:["_col0","_col1"] + TableScan [TS_56] (rows=46000 width=460) + default@catalog_page,catalog_page,Tbl:COMPLETE,Col:NONE,Output:["cp_catalog_page_sk","cp_catalog_page_id"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_365] (rows=383314495 width=135) + Conds:RS_395._col0=RS_59._col1(Inner),Output:["_col1","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_395] + PartitionCols:_col0 + Select Operator [SEL_392] (rows=154000 width=1436) + Output:["_col0"] + Filter Operator [FIL_391] (rows=154000 width=1436) + predicate:(i_current_price > 50) + TableScan [TS_0] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_current_price"] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_59] + PartitionCols:_col1 + Select Operator [SEL_55] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_364] (rows=348467716 width=135) + Conds:RS_52._col0=RS_409._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 24 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_409] + PartitionCols:_col0 + Select Operator [SEL_406] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_405] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-08-04 00:00:00' AND TIMESTAMP'1998-09-03 00:00:00' + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 37 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_363] (rows=316788826 width=135) + Conds:RS_477._col2, _col4=RS_479._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_477] + PartitionCols:_col2, _col4 + Select Operator [SEL_476] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_475] (rows=287989836 width=135) + predicate:((cs_catalog_page_sk BETWEEN DynamicValue(RS_62_catalog_page_cp_catalog_page_sk_min) AND DynamicValue(RS_62_catalog_page_cp_catalog_page_sk_max) and in_bloom_filter(cs_catalog_page_sk, DynamicValue(RS_62_catalog_page_cp_catalog_page_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_58_item_i_item_sk_min) AND DynamicValue(RS_58_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_58_item_i_item_sk_bloom_filter))) and (cs_promo_sk BETWEEN DynamicValue(RS_69_promotion_p_promo_sk_min) AND DynamicValue(RS_69_promotion_p_promo_sk_max) and in_bloom_filter(cs_promo_sk, DynamicValue(RS_69_promotion_p_promo_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_53_date_dim_d_date_sk_min) AND DynamicValue(RS_53_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_53_date_dim_d_date_sk_bloom_filter))) and cs_catalog_page_sk is not null and cs_promo_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_41] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_catalog_page_sk","cs_item_sk","cs_promo_sk","cs_order_number","cs_ext_sales_price","cs_net_profit"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_465] + Group By Operator [GBY_464] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_403] + Group By Operator [GBY_400] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_396] (rows=154000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_392] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_463] + Group By Operator [GBY_462] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_417] + Group By Operator [GBY_414] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_410] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_406] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_474] + Group By Operator [GBY_473] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_442] + Group By Operator [GBY_439] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_435] (rows=1150 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_431] + <-Reducer 40 [BROADCAST_EDGE] vectorized + BROADCAST [RS_472] + Group By Operator [GBY_471] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 39 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_470] + Group By Operator [GBY_469] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_468] (rows=46000 width=460) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_466] + <-Map 38 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_479] + PartitionCols:_col0, _col1 + Select Operator [SEL_478] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_44] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_item_sk","cr_order_number","cr_return_amount","cr_net_loss"] + <-Reducer 18 [CONTAINS] vectorized + Reduce Output Operator [RS_507] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_506] (rows=2435062716 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_505] (rows=811687572 width=108) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_504] (rows=115958879 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_503] (rows=115958879 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_112] + PartitionCols:_col0 + Group By Operator [GBY_111] (rows=231917759 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)","sum(_col4)","sum(_col5)"],keys:_col3 + Merge Join Operator [MERGEJOIN_372] (rows=231917759 width=135) + Conds:RS_436._col0=RS_108._col0(Inner),Output:["_col2","_col3","_col4","_col5"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_436] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_431] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_108] + PartitionCols:_col0 + Select Operator [SEL_106] (rows=210834322 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_371] (rows=210834322 width=135) + Conds:RS_103._col2=RS_490._col0(Inner),Output:["_col3","_col4","_col5","_col6","_col8"] + <-Map 44 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_490] + PartitionCols:_col0 + Select Operator [SEL_489] (rows=84 width=1850) + Output:["_col0","_col1"] + TableScan [TS_98] (rows=84 width=1850) + default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_site_id"] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_103] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_370] (rows=191667562 width=135) + Conds:RS_397._col0=RS_101._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_397] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_392] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_101] + PartitionCols:_col0 + Select Operator [SEL_97] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_369] (rows=174243235 width=135) + Conds:RS_94._col0=RS_411._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 24 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_411] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_406] + <-Reducer 42 [SIMPLE_EDGE] + SHUFFLE [RS_94] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_368] (rows=158402938 width=135) + Conds:RS_500._col1, _col4=RS_502._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 41 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_500] + PartitionCols:_col1, _col4 + Select Operator [SEL_499] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_498] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_100_item_i_item_sk_min) AND DynamicValue(RS_100_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_100_item_i_item_sk_bloom_filter))) and (ws_promo_sk BETWEEN DynamicValue(RS_107_promotion_p_promo_sk_min) AND DynamicValue(RS_107_promotion_p_promo_sk_max) and in_bloom_filter(ws_promo_sk, DynamicValue(RS_107_promotion_p_promo_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_95_date_dim_d_date_sk_min) AND DynamicValue(RS_95_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_95_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_104_web_site_web_site_sk_min) AND DynamicValue(RS_104_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_104_web_site_web_site_sk_bloom_filter))) and ws_promo_sk is not null and ws_sold_date_sk is not null and ws_web_site_sk is not null) + TableScan [TS_83] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_web_site_sk","ws_promo_sk","ws_order_number","ws_ext_sales_price","ws_net_profit"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_488] + Group By Operator [GBY_487] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_404] + Group By Operator [GBY_401] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_398] (rows=154000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_392] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_486] + Group By Operator [GBY_485] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_418] + Group By Operator [GBY_415] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_412] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_406] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_497] + Group By Operator [GBY_496] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_443] + Group By Operator [GBY_440] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_437] (rows=1150 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_431] + <-Reducer 45 [BROADCAST_EDGE] vectorized + BROADCAST [RS_495] + Group By Operator [GBY_494] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_493] + Group By Operator [GBY_492] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_491] (rows=84 width=1850) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_489] + <-Map 43 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_502] + PartitionCols:_col0, _col1 + Select Operator [SEL_501] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_86] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_order_number","wr_return_amt","wr_net_loss"] + <-Reducer 5 [CONTAINS] vectorized + Reduce Output Operator [RS_455] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_454] (rows=2435062716 width=108) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)","sum(_col3)","sum(_col4)"],keys:_col0, _col1, 0L + Top N Key Operator [TNK_453] (rows=811687572 width=108) + keys:_col0, _col1, 0L,sort order:+++,top n:100 + Select Operator [SEL_452] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_451] (rows=463823414 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"],keys:KEY._col0 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col0 + Group By Operator [GBY_34] (rows=927646829 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col1)","sum(_col3)","sum(_col4)"],keys:_col2 + Merge Join Operator [MERGEJOIN_362] (rows=927646829 width=88) + Conds:RS_30._col0=RS_432._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 32 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_432] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_431] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Select Operator [SEL_26] (rows=843315281 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_361] (rows=843315281 width=88) + Conds:RS_23._col2=RS_424._col0(Inner),Output:["_col3","_col4","_col5","_col6","_col8"] + <-Map 30 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_424] + PartitionCols:_col0 + Select Operator [SEL_423] (rows=1704 width=1910) + Output:["_col0","_col1"] + TableScan [TS_18] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_id"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_360] (rows=766650239 width=88) + Conds:RS_393._col0=RS_21._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_393] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_392] + <-Reducer 22 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Select Operator [SEL_17] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_359] (rows=696954748 width=88) + Conds:RS_14._col0=RS_407._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 24 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_407] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_406] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_358] (rows=633595212 width=88) + Conds:RS_448._col1, _col4=RS_450._col0, _col1(Left Outer),Output:["_col0","_col1","_col2","_col3","_col5","_col6","_col9","_col10"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_448] + PartitionCols:_col1, _col4 + Select Operator [SEL_447] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_446] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_20_item_i_item_sk_min) AND DynamicValue(RS_20_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_20_item_i_item_sk_bloom_filter))) and (ss_promo_sk BETWEEN DynamicValue(RS_31_promotion_p_promo_sk_min) AND DynamicValue(RS_31_promotion_p_promo_sk_max) and in_bloom_filter(ss_promo_sk, DynamicValue(RS_31_promotion_p_promo_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_store_sk BETWEEN DynamicValue(RS_24_store_s_store_sk_min) AND DynamicValue(RS_24_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_24_store_s_store_sk_bloom_filter))) and ss_promo_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_promo_sk","ss_ticket_number","ss_ext_sales_price","ss_net_profit"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_420] + Group By Operator [GBY_419] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_416] + Group By Operator [GBY_413] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_408] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_406] + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_429] + Group By Operator [GBY_428] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_427] + Group By Operator [GBY_426] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_425] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_423] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_445] + Group By Operator [GBY_444] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_441] + Group By Operator [GBY_438] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_433] (rows=1150 width=1179) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_431] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_422] + Group By Operator [GBY_421] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_402] + Group By Operator [GBY_399] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_394] (rows=154000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_392] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_450] + PartitionCols:_col0, _col1 + Select Operator [SEL_449] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_6] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_ticket_number","sr_return_amt","sr_net_loss"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query81.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query81.q.out new file mode 100644 index 0000000000..7cea28334b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query81.q.out @@ -0,0 +1,220 @@ +PREHOOK: query: explain +with customer_total_return as + (select cr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(cr_return_amt_inc_tax) as ctr_total_return + from catalog_returns + ,date_dim + ,customer_address + where cr_returned_date_sk = d_date_sk + and d_year =1998 + and cr_returning_addr_sk = ca_address_sk + group by cr_returning_customer_sk + ,ca_state ) + select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IL' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with customer_total_return as + (select cr_returning_customer_sk as ctr_customer_sk + ,ca_state as ctr_state, + sum(cr_return_amt_inc_tax) as ctr_total_return + from catalog_returns + ,date_dim + ,customer_address + where cr_returned_date_sk = d_date_sk + and d_year =1998 + and cr_returning_addr_sk = ca_address_sk + group by cr_returning_customer_sk + ,ca_state ) + select c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + from customer_total_return ctr1 + ,customer_address + ,customer + where ctr1.ctr_total_return > (select avg(ctr_total_return)*1.2 + from customer_total_return ctr2 + where ctr1.ctr_state = ctr2.ctr_state) + and ca_address_sk = c_current_addr_sk + and ca_state = 'IL' + and ctr1.ctr_customer_sk = c_customer_sk + order by c_customer_id,c_salutation,c_first_name,c_last_name,ca_street_number,ca_street_name + ,ca_street_type,ca_suite_number,ca_city,ca_county,ca_state,ca_zip,ca_country,ca_gmt_offset + ,ca_location_type,ctr_total_return + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 13 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Map 14 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 12 <- Map 15 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 3 <- Reducer 10 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 7 <- Map 14 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 8 <- Map 15 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_210] + Select Operator [SEL_209] (rows=100 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + Limit [LIM_208] (rows=100 width=860) + Number of rows:100 + Select Operator [SEL_207] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_63] + Select Operator [SEL_62] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + Merge Join Operator [MERGEJOIN_178] (rows=96800003 width=860) + Conds:RS_59._col0=RS_60._col0(Inner),Output:["_col1","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col19"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_60] + PartitionCols:_col0 + Select Operator [SEL_55] (rows=8066666 width=1014) + Output:["_col0","_col2"] + Filter Operator [FIL_54] (rows=8066666 width=1014) + predicate:(_col2 > _col3) + Merge Join Operator [MERGEJOIN_177] (rows=24200000 width=1014) + Conds:RS_201._col1=RS_206._col1(Inner),Output:["_col0","_col2","_col3"] + <-Reducer 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_206] + PartitionCols:_col1 + Select Operator [SEL_205] (rows=11000000 width=1014) + Output:["_col0","_col1"] + Group By Operator [GBY_204] (rows=11000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col0 + Select Operator [SEL_203] (rows=22000000 width=1014) + Output:["_col0","_col2"] + Group By Operator [GBY_202] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Group By Operator [GBY_42] (rows=44000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col6, _col1 + Merge Join Operator [MERGEJOIN_176] (rows=44000000 width=1014) + Conds:RS_38._col2=RS_198._col0(Inner),Output:["_col1","_col3","_col6"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_198] + PartitionCols:_col0 + Select Operator [SEL_196] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_195] (rows=40000000 width=1014) + predicate:ca_state is not null + TableScan [TS_12] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_38] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_175] (rows=31678769 width=106) + Conds:RS_190._col0=RS_194._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_194] + PartitionCols:_col0 + Select Operator [SEL_192] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_191] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_9] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_190] + PartitionCols:_col0 + Select Operator [SEL_188] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_186] (rows=28798881 width=106) + predicate:(cr_returned_date_sk is not null and cr_returning_addr_sk is not null) + TableScan [TS_6] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_returning_customer_sk","cr_returning_addr_sk","cr_return_amt_inc_tax"] + <-Reducer 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_201] + PartitionCols:_col1 + Select Operator [SEL_200] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_199] (rows=22000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1 + Group By Operator [GBY_22] (rows=44000000 width=1014) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col6, _col1 + Merge Join Operator [MERGEJOIN_174] (rows=44000000 width=1014) + Conds:RS_18._col2=RS_197._col0(Inner),Output:["_col1","_col3","_col6"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_197] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_196] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_173] (rows=31678769 width=106) + Conds:RS_189._col0=RS_193._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_193] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_192] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_189] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_185] (rows=28798881 width=106) + predicate:(cr_returned_date_sk is not null and cr_returning_addr_sk is not null and cr_returning_customer_sk is not null) + Please refer to the previous TableScan [TS_6] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_59] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_172] (rows=88000001 width=860) + Conds:RS_181._col2=RS_184._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_181] + PartitionCols:_col2 + Select Operator [SEL_180] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_179] (rows=80000000 width=860) + predicate:c_current_addr_sk is not null + TableScan [TS_0] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_current_addr_sk","c_salutation","c_first_name","c_last_name"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_184] + PartitionCols:_col0 + Select Operator [SEL_183] (rows=20000000 width=1014) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10"] + Filter Operator [FIL_182] (rows=20000000 width=1014) + predicate:(ca_state = 'IL') + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_street_number","ca_street_name","ca_street_type","ca_suite_number","ca_city","ca_county","ca_state","ca_zip","ca_country","ca_gmt_offset","ca_location_type"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query82.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query82.q.out new file mode 100644 index 0000000000..8bb5d736cb --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query82.q.out @@ -0,0 +1,136 @@ +PREHOOK: query: explain +select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, store_sales + where i_current_price between 30 and 30+30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2002-05-30' as date) and (cast('2002-05-30' as date) + 60 days) + and i_manufact_id in (437,129,727,663) + and inv_quantity_on_hand between 100 and 500 + and ss_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@inventory +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_id + ,i_item_desc + ,i_current_price + from item, inventory, date_dim, store_sales + where i_current_price between 30 and 30+30 + and inv_item_sk = i_item_sk + and d_date_sk=inv_date_sk + and d_date between cast('2002-05-30' as date) and (cast('2002-05-30' as date) + 60 days) + and i_manufact_id in (437,129,727,663) + and inv_quantity_on_hand between 100 and 500 + and ss_item_sk = i_item_sk + group by i_item_id,i_item_desc,i_current_price + order by i_item_id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@inventory +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 8 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 6 <- Map 5 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 7 <- Map 10 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 4 vectorized + File Output Operator [FS_96] + Limit [LIM_95] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_94] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] + Group By Operator [GBY_92] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_22] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],keys:_col2, _col3, _col4 + Top N Key Operator [TNK_43] (rows=633595212 width=88) + keys:_col2, _col3, _col4,sort order:+++,top n:100 + Merge Join Operator [MERGEJOIN_77] (rows=633595212 width=88) + Conds:RS_91._col0=RS_19._col0(Inner),Output:["_col2","_col3","_col4"] + <-Reducer 7 [ONE_TO_ONE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_17] (rows=5052960 width=15) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_76] (rows=5052960 width=15) + Conds:RS_14._col1=RS_86._col0(Inner),Output:["_col3","_col4","_col5","_col6"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_86] + PartitionCols:_col0 + Select Operator [SEL_85] (rows=51333 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_84] (rows=51333 width=1436) + predicate:((i_manufact_id) IN (437, 129, 727, 663) and i_current_price BETWEEN 30 AND 60) + TableScan [TS_8] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc","i_current_price","i_manufact_id"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_14] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_75] (rows=4593600 width=15) + Conds:RS_80._col0=RS_83._col0(Inner),Output:["_col1"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_80] + PartitionCols:_col0 + Select Operator [SEL_79] (rows=4176000 width=15) + Output:["_col0","_col1"] + Filter Operator [FIL_78] (rows=4176000 width=15) + predicate:inv_quantity_on_hand BETWEEN 100 AND 500 + TableScan [TS_2] (rows=37584000 width=15) + default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_quantity_on_hand"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_83] + PartitionCols:_col0 + Select Operator [SEL_82] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_81] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2002-05-30 00:00:00' AND TIMESTAMP'2002-07-29 00:00:00' + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_91] + PartitionCols:_col0 + Select Operator [SEL_90] (rows=575995635 width=88) + Output:["_col0"] + Filter Operator [FIL_89] (rows=575995635 width=88) + predicate:(in_bloom_filter(ss_item_sk, DynamicValue(RS_19_item_i_item_sk_bloom_filter)) and ss_item_sk BETWEEN DynamicValue(RS_19_item_i_item_sk_min) AND DynamicValue(RS_19_item_i_item_sk_max)) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk"] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=5052960)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_46] + Group By Operator [GBY_45] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=5052960)"] + Select Operator [SEL_44] (rows=5052960 width=15) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_17] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query83.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query83.q.out new file mode 100644 index 0000000000..9c0eebcabb --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query83.q.out @@ -0,0 +1,338 @@ +PREHOOK: query: explain +with sr_items as + (select i_item_id item_id, + sum(sr_return_quantity) sr_item_qty + from store_returns, + item, + date_dim + where sr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and sr_returned_date_sk = d_date_sk + group by i_item_id), + cr_items as + (select i_item_id item_id, + sum(cr_return_quantity) cr_item_qty + from catalog_returns, + item, + date_dim + where cr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and cr_returned_date_sk = d_date_sk + group by i_item_id), + wr_items as + (select i_item_id item_id, + sum(wr_return_quantity) wr_item_qty + from web_returns, + item, + date_dim + where wr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and wr_returned_date_sk = d_date_sk + group by i_item_id) + select sr_items.item_id + ,sr_item_qty + ,sr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 sr_dev + ,cr_item_qty + ,cr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 cr_dev + ,wr_item_qty + ,wr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 wr_dev + ,(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 average + from sr_items + ,cr_items + ,wr_items + where sr_items.item_id=cr_items.item_id + and sr_items.item_id=wr_items.item_id + order by sr_items.item_id + ,sr_item_qty + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@web_returns +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with sr_items as + (select i_item_id item_id, + sum(sr_return_quantity) sr_item_qty + from store_returns, + item, + date_dim + where sr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and sr_returned_date_sk = d_date_sk + group by i_item_id), + cr_items as + (select i_item_id item_id, + sum(cr_return_quantity) cr_item_qty + from catalog_returns, + item, + date_dim + where cr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and cr_returned_date_sk = d_date_sk + group by i_item_id), + wr_items as + (select i_item_id item_id, + sum(wr_return_quantity) wr_item_qty + from web_returns, + item, + date_dim + where wr_item_sk = i_item_sk + and d_date in + (select d_date + from date_dim + where d_week_seq in + (select d_week_seq + from date_dim + where d_date in ('1998-01-02','1998-10-15','1998-11-10'))) + and wr_returned_date_sk = d_date_sk + group by i_item_id) + select sr_items.item_id + ,sr_item_qty + ,sr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 sr_dev + ,cr_item_qty + ,cr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 cr_dev + ,wr_item_qty + ,wr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 wr_dev + ,(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 average + from sr_items + ,cr_items + ,wr_items + where sr_items.item_id=cr_items.item_id + and sr_items.item_id=wr_items.item_id + order by sr_items.item_id + ,sr_item_qty + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@web_returns +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 16 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 22 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE), Reducer 19 (ONE_TO_ONE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 11 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 14 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 9 <- Map 21 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 7 vectorized + File Output Operator [FS_397] + Limit [LIM_396] (rows=100 width=77) + Number of rows:100 + Select Operator [SEL_395] (rows=42159604 width=77) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_124] + Select Operator [SEL_123] (rows=42159604 width=77) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_360] (rows=42159604 width=77) + Conds:RS_120._col0=RS_394._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col7","_col8"] + <-Reducer 14 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_394] + PartitionCols:_col0 + Select Operator [SEL_393] (rows=8711072 width=92) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_392] (rows=8711072 width=92) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_114] + PartitionCols:_col0 + Group By Operator [GBY_113] (rows=17422145 width=92) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_358] (rows=17422145 width=92) + Conds:RS_109._col0=RS_110._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_110] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_349] (rows=80353 width=1119) + Conds:RS_370._col1=RS_379._col0(Inner),Output:["_col0"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_370] + PartitionCols:_col1 + Select Operator [SEL_369] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_368] (rows=73049 width=1119) + predicate:d_date is not null + TableScan [TS_5] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_379] + PartitionCols:_col0 + Group By Operator [GBY_378] (rows=40176 width=1119) + Output:["_col0"],keys:KEY._col0 + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_21] + PartitionCols:_col0 + Group By Operator [GBY_20] (rows=80353 width=1119) + Output:["_col0"],keys:_col0 + Merge Join Operator [MERGEJOIN_348] (rows=80353 width=1119) + Conds:RS_373._col1=RS_377._col0(Left Semi),Output:["_col0"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_373] + PartitionCols:_col1 + Select Operator [SEL_372] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_371] (rows=73049 width=1119) + predicate:(d_date is not null and d_week_seq is not null) + TableScan [TS_8] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_377] + PartitionCols:_col0 + Group By Operator [GBY_376] (rows=73049 width=1119) + Output:["_col0"],keys:_col0 + Select Operator [SEL_375] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_374] (rows=73049 width=1119) + predicate:((d_date) IN ('1998-01-02', '1998-10-15', '1998-11-10') and d_week_seq is not null) + TableScan [TS_11] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_109] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_353] (rows=15838314 width=92) + Conds:RS_391._col1=RS_367._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_367] + PartitionCols:_col0 + Select Operator [SEL_364] (rows=462000 width=1436) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id"] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_391] + PartitionCols:_col1 + Select Operator [SEL_390] (rows=14398467 width=92) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_389] (rows=14398467 width=92) + predicate:wr_returned_date_sk is not null + TableScan [TS_78] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_item_sk","wr_return_quantity"] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_120] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_359] (rows=38326912 width=77) + Conds:RS_382._col0=RS_388._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_388] + PartitionCols:_col0 + Select Operator [SEL_387] (rows=34842647 width=77) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_386] (rows=34842647 width=77) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_75] + PartitionCols:_col0 + Group By Operator [GBY_74] (rows=69685294 width=77) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_357] (rows=69685294 width=77) + Conds:RS_70._col0=RS_71._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_71] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_349] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_350] (rows=63350266 width=77) + Conds:RS_385._col1=RS_366._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_366] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_364] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_385] + PartitionCols:_col1 + Select Operator [SEL_384] (rows=57591150 width=77) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_383] (rows=57591150 width=77) + predicate:sr_returned_date_sk is not null + TableScan [TS_39] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_return_quantity"] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_382] + PartitionCols:_col0 + Select Operator [SEL_381] (rows=17423323 width=106) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_380] (rows=17423323 width=106) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col0 + Group By Operator [GBY_35] (rows=34846646 width=106) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_356] (rows=34846646 width=106) + Conds:RS_31._col0=RS_32._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_349] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_31] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_347] (rows=31678769 width=106) + Conds:RS_363._col1=RS_365._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_365] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_364] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_363] + PartitionCols:_col1 + Select Operator [SEL_362] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_361] (rows=28798881 width=106) + predicate:cr_returned_date_sk is not null + TableScan [TS_0] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_item_sk","cr_return_quantity"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query84.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query84.q.out new file mode 100644 index 0000000000..420b5004a7 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query84.q.out @@ -0,0 +1,157 @@ +PREHOOK: query: explain +select c_customer_id as customer_id + ,c_last_name || ', ' || c_first_name as customername + from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,store_returns + where ca_city = 'Hopewell' + and c_current_addr_sk = ca_address_sk + and ib_lower_bound >= 32287 + and ib_upper_bound <= 32287 + 50000 + and ib_income_band_sk = hd_income_band_sk + and cd_demo_sk = c_current_cdemo_sk + and hd_demo_sk = c_current_hdemo_sk + and sr_cdemo_sk = cd_demo_sk + order by c_customer_id + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@income_band +PREHOOK: Input: default@store_returns +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select c_customer_id as customer_id + ,c_last_name || ', ' || c_first_name as customername + from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,store_returns + where ca_city = 'Hopewell' + and c_current_addr_sk = ca_address_sk + and ib_lower_bound >= 32287 + and ib_upper_bound <= 32287 + 50000 + and ib_income_band_sk = hd_income_band_sk + and cd_demo_sk = c_current_cdemo_sk + and hd_demo_sk = c_current_hdemo_sk + and sr_cdemo_sk = cd_demo_sk + order by c_customer_id + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@income_band +POSTHOOK: Input: default@store_returns +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Map 12 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 5 <- Map 4 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 6 <- Reducer 10 (SIMPLE_EDGE), Reducer 5 (SIMPLE_EDGE) +Reducer 9 <- Map 11 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 3 vectorized + File Output Operator [FS_141] + Limit [LIM_140] (rows=100 width=860) + Number of rows:100 + Select Operator [SEL_139] (rows=117128008 width=860) + Output:["_col0","_col1"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_35] + Select Operator [SEL_34] (rows=117128008 width=860) + Output:["_col1","_col2"] + Merge Join Operator [MERGEJOIN_121] (rows=117128008 width=860) + Conds:RS_124._col0=RS_32._col1(Inner),Output:["_col1","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_124] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=57591150 width=77) + Output:["_col0"] + Filter Operator [FIL_122] (rows=57591150 width=77) + predicate:sr_cdemo_sk is not null + TableScan [TS_0] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_cdemo_sk"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col1 + Select Operator [SEL_30] (rows=106480005 width=860) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_120] (rows=106480005 width=860) + Conds:RS_27._col0=RS_28._col1(Inner),Output:["_col3","_col5","_col6"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col1 + Select Operator [SEL_23] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_119] (rows=96800003 width=860) + Conds:RS_20._col1=RS_138._col0(Inner),Output:["_col0","_col2","_col4","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_138] + PartitionCols:_col0 + Select Operator [SEL_137] (rows=1861800 width=385) + Output:["_col0"] + TableScan [TS_15] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_20] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_118] (rows=88000001 width=860) + Conds:RS_133._col3=RS_136._col0(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_136] + PartitionCols:_col0 + Select Operator [SEL_135] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_134] (rows=20000000 width=1014) + predicate:(ca_city = 'Hopewell') + TableScan [TS_12] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_city"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_133] + PartitionCols:_col3 + Select Operator [SEL_132] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_131] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null) + TableScan [TS_9] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_id","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk","c_first_name","c_last_name"] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_117] (rows=7920 width=107) + Conds:RS_127._col1=RS_130._col0(Inner),Output:["_col0"] + <-Map 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col1 + Select Operator [SEL_126] (rows=7200 width=107) + Output:["_col0","_col1"] + Filter Operator [FIL_125] (rows=7200 width=107) + predicate:hd_income_band_sk is not null + TableScan [TS_3] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_income_band_sk"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_130] + PartitionCols:_col0 + Select Operator [SEL_129] (rows=2 width=12) + Output:["_col0"] + Filter Operator [FIL_128] (rows=2 width=12) + predicate:((ib_lower_bound >= 32287) and (ib_upper_bound <= 82287)) + TableScan [TS_6] (rows=20 width=12) + default@income_band,income_band,Tbl:COMPLETE,Col:NONE,Output:["ib_income_band_sk","ib_lower_bound","ib_upper_bound"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query85.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query85.q.out new file mode 100644 index 0000000000..e602cededc --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query85.q.out @@ -0,0 +1,322 @@ +PREHOOK: query: explain +select substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) + from web_sales, web_returns, web_page, customer_demographics cd1, + customer_demographics cd2, customer_address, date_dim, reason + where ws_web_page_sk = wp_web_page_sk + and ws_item_sk = wr_item_sk + and ws_order_number = wr_order_number + and ws_sold_date_sk = d_date_sk and d_year = 1998 + and cd1.cd_demo_sk = wr_refunded_cdemo_sk + and cd2.cd_demo_sk = wr_returning_cdemo_sk + and ca_address_sk = wr_refunded_addr_sk + and r_reason_sk = wr_reason_sk + and + ( + ( + cd1.cd_marital_status = 'M' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = '4 yr Degree' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 100.00 and 150.00 + ) + or + ( + cd1.cd_marital_status = 'D' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Primary' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 50.00 and 100.00 + ) + or + ( + cd1.cd_marital_status = 'U' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Advanced Degree' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ca_country = 'United States' + and + ca_state in ('KY', 'GA', 'NM') + and ws_net_profit between 100 and 200 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('MT', 'OR', 'IN') + and ws_net_profit between 150 and 300 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('WI', 'MO', 'WV') + and ws_net_profit between 50 and 250 + ) + ) +group by r_reason_desc +order by substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@reason +PREHOOK: Input: default@web_page +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) + from web_sales, web_returns, web_page, customer_demographics cd1, + customer_demographics cd2, customer_address, date_dim, reason + where ws_web_page_sk = wp_web_page_sk + and ws_item_sk = wr_item_sk + and ws_order_number = wr_order_number + and ws_sold_date_sk = d_date_sk and d_year = 1998 + and cd1.cd_demo_sk = wr_refunded_cdemo_sk + and cd2.cd_demo_sk = wr_returning_cdemo_sk + and ca_address_sk = wr_refunded_addr_sk + and r_reason_sk = wr_reason_sk + and + ( + ( + cd1.cd_marital_status = 'M' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = '4 yr Degree' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 100.00 and 150.00 + ) + or + ( + cd1.cd_marital_status = 'D' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Primary' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 50.00 and 100.00 + ) + or + ( + cd1.cd_marital_status = 'U' + and + cd1.cd_marital_status = cd2.cd_marital_status + and + cd1.cd_education_status = 'Advanced Degree' + and + cd1.cd_education_status = cd2.cd_education_status + and + ws_sales_price between 150.00 and 200.00 + ) + ) + and + ( + ( + ca_country = 'United States' + and + ca_state in ('KY', 'GA', 'NM') + and ws_net_profit between 100 and 200 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('MT', 'OR', 'IN') + and ws_net_profit between 150 and 300 + ) + or + ( + ca_country = 'United States' + and + ca_state in ('WI', 'MO', 'WV') + and ws_net_profit between 50 and 250 + ) + ) +group by r_reason_desc +order by substr(r_reason_desc,1,20) + ,avg(ws_quantity) + ,avg(wr_refunded_cash) + ,avg(wr_fee) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@reason +POSTHOOK: Input: default@web_page +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 13 <- Reducer 6 (BROADCAST_EDGE) +Reducer 10 <- Map 7 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 3 <- Map 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Map 1 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 7 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 9 <- Map 14 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_211] + Limit [LIM_210] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_209] (rows=11958256 width=135) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_208] + Select Operator [SEL_207] (rows=11958256 width=135) + Output:["_col4","_col5","_col6","_col7"] + Group By Operator [GBY_206] (rows=11958256 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","sum(VALUE._col2)","count(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col0 + Group By Operator [GBY_43] (rows=23916512 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col2)","count(_col2)","sum(_col5)","count(_col5)","sum(_col4)","count(_col4)"],keys:_col7 + Merge Join Operator [MERGEJOIN_181] (rows=23916512 width=135) + Conds:RS_39._col3=RS_205._col0(Inner),Output:["_col2","_col4","_col5","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_205] + PartitionCols:_col0 + Select Operator [SEL_204] (rows=72 width=200) + Output:["_col0","_col1"] + TableScan [TS_34] (rows=72 width=200) + default@reason,reason,Tbl:COMPLETE,Col:NONE,Output:["r_reason_sk","r_reason_desc"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_180] (rows=21742284 width=135) + Conds:RS_184._col0=RS_37._col0(Inner),Output:["_col2","_col3","_col4","_col5"] + <-Map 1 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_184] + PartitionCols:_col0 + Select Operator [SEL_183] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_182] (rows=36524 width=1119) + predicate:(d_year = 1998) + TableScan [TS_0] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0 + Select Operator [SEL_33] (rows=19765713 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_32] (rows=19765713 width=135) + predicate:((_col16 and _col12) or (_col17 and _col13) or (_col18 and _col14)) + Merge Join Operator [MERGEJOIN_179] (rows=26354286 width=135) + Conds:RS_29._col5=RS_203._col0(Inner),Output:["_col3","_col4","_col7","_col8","_col9","_col12","_col13","_col14","_col16","_col17","_col18"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_203] + PartitionCols:_col0 + Select Operator [SEL_202] (rows=20000000 width=1014) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_201] (rows=20000000 width=1014) + predicate:(ca_country = 'United States') + TableScan [TS_23] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state","ca_country"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_29] + PartitionCols:_col5 + Merge Join Operator [MERGEJOIN_178] (rows=23958442 width=135) + Conds:RS_191._col0, _col1, _col2=RS_27._col3, _col7, _col8(Inner),Output:["_col3","_col4","_col5","_col7","_col8","_col9","_col12","_col13","_col14"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_191] + PartitionCols:_col0, _col1, _col2 + Select Operator [SEL_189] (rows=1861800 width=385) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_188] (rows=1861800 width=385) + predicate:((cd_education_status) IN ('4 yr Degree', 'Primary', 'Advanced Degree') and (cd_marital_status) IN ('M', 'D', 'U')) + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,cd2,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status","cd_education_status"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col3, _col7, _col8 + Select Operator [SEL_22] (rows=21780402 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + Filter Operator [FIL_21] (rows=21780402 width=135) + predicate:((_col21 and _col22 and _col15) or (_col23 and _col24 and _col16) or (_col25 and _col26 and _col17)) + Merge Join Operator [MERGEJOIN_177] (rows=58081075 width=135) + Conds:RS_18._col1=RS_192._col0(Inner),Output:["_col2","_col3","_col4","_col6","_col7","_col8","_col11","_col12","_col13","_col14","_col15","_col16","_col17","_col19","_col20","_col21","_col22","_col23","_col24","_col25","_col26"] + <-Map 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_192] + PartitionCols:_col0 + Select Operator [SEL_190] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Please refer to the previous Filter Operator [FIL_188] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_176] (rows=52800977 width=135) + Conds:RS_195._col0, _col5=RS_200._col1, _col2(Inner),Output:["_col1","_col2","_col3","_col4","_col6","_col7","_col8","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_195] + PartitionCols:_col0, _col5 + Select Operator [SEL_194] (rows=14398467 width=92) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_193] (rows=14398467 width=92) + predicate:(wr_reason_sk is not null and wr_refunded_addr_sk is not null and wr_refunded_cdemo_sk is not null and wr_returning_cdemo_sk is not null) + TableScan [TS_6] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_item_sk","wr_refunded_cdemo_sk","wr_refunded_addr_sk","wr_returning_cdemo_sk","wr_reason_sk","wr_order_number","wr_fee","wr_refunded_cash"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_200] + PartitionCols:_col1, _col2 + Select Operator [SEL_199] (rows=48000888 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9"] + Filter Operator [FIL_198] (rows=48000888 width=135) + predicate:((ws_sales_price BETWEEN 100 AND 150 or ws_sales_price BETWEEN 50 AND 100 or ws_sales_price BETWEEN 150 AND 200) and (ws_sold_date_sk BETWEEN DynamicValue(RS_36_date_dim_d_date_sk_min) AND DynamicValue(RS_36_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_36_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null and ws_web_page_sk is not null) + TableScan [TS_9] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_web_page_sk","ws_order_number","ws_quantity","ws_sales_price","ws_net_profit"] + <-Reducer 6 [BROADCAST_EDGE] vectorized + BROADCAST [RS_197] + Group By Operator [GBY_196] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_187] + Group By Operator [GBY_186] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_185] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_183] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query86.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query86.q.out new file mode 100644 index 0000000000..9b47d7606a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query86.q.out @@ -0,0 +1,157 @@ +PREHOOK: query: explain +select + sum(ws_net_paid) as total_sum + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ws_net_paid) desc) as rank_within_parent + from + web_sales + ,date_dim d1 + ,item + where + d1.d_month_seq between 1212 and 1212+11 + and d1.d_date_sk = ws_sold_date_sk + and i_item_sk = ws_item_sk + group by rollup(i_category,i_class) + order by + lochierarchy desc, + case when lochierarchy = 0 then i_category end, + rank_within_parent + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + sum(ws_net_paid) as total_sum + ,i_category + ,i_class + ,grouping(i_category)+grouping(i_class) as lochierarchy + ,rank() over ( + partition by grouping(i_category)+grouping(i_class), + case when grouping(i_class) = 0 then i_category end + order by sum(ws_net_paid) desc) as rank_within_parent + from + web_sales + ,date_dim d1 + ,item + where + d1.d_month_seq between 1212 and 1212+11 + and d1.d_date_sk = ws_sold_date_sk + and i_item_sk = ws_item_sk + group by rollup(i_category,i_class) + order by + lochierarchy desc, + case when lochierarchy = 0 then i_category end, + rank_within_parent + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_87] + Limit [LIM_86] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_85] (rows=261364852 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_84] + Select Operator [SEL_83] (rows=261364852 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + PTF Operator [PTF_82] (rows=261364852 width=135) + 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_81] (rows=261364852 width=135) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_80] + PartitionCols:(grouping(_col3, 1) + grouping(_col3, 0)), CASE WHEN ((grouping(_col3, 0) = 0)) THEN (_col0) ELSE (CAST( null AS STRING)) END + Select Operator [SEL_79] (rows=261364852 width=135) + Output:["_col0","_col1","_col2","_col3"] + Group By Operator [GBY_78] (rows=261364852 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_16] (rows=522729705 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["sum(_col2)"],keys:_col0, _col1, 0L + Select Operator [SEL_14] (rows=174243235 width=135) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_59] (rows=174243235 width=135) + Conds:RS_11._col1=RS_69._col0(Inner),Output:["_col2","_col5","_col6"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_69] + PartitionCols:_col0 + Select Operator [SEL_68] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_58] (rows=158402938 width=135) + Conds:RS_77._col0=RS_62._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_62] + PartitionCols:_col0 + Select Operator [SEL_61] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_60] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_77] + PartitionCols:_col0 + Select Operator [SEL_76] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_75] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_12_item_i_item_sk_min) AND DynamicValue(RS_12_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_12_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_9_d1_d_date_sk_min) AND DynamicValue(RS_9_d1_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_9_d1_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_net_paid"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_74] + Group By Operator [GBY_73] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_72] + Group By Operator [GBY_71] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_70] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_68] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_67] + Group By Operator [GBY_66] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_65] + Group By Operator [GBY_64] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_63] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_61] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query87.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query87.q.out new file mode 100644 index 0000000000..03370dee73 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query87.q.out @@ -0,0 +1,312 @@ +PREHOOK: query: explain +select count(*) +from ((select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) + except + (select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) + except + (select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) +) cool_cust +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@customer +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select count(*) +from ((select distinct c_last_name, c_first_name, d_date + from store_sales, date_dim, customer + where store_sales.ss_sold_date_sk = date_dim.d_date_sk + and store_sales.ss_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) + except + (select distinct c_last_name, c_first_name, d_date + from catalog_sales, date_dim, customer + where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk + and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) + except + (select distinct c_last_name, c_first_name, d_date + from web_sales, date_dim, customer + where web_sales.ws_sold_date_sk = date_dim.d_date_sk + and web_sales.ws_bill_customer_sk = customer.c_customer_sk + and d_month_seq between 1212 and 1212+11) +) cool_cust +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@customer +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 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE) +Map 23 <- Reducer 15 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) +Map 24 <- Reducer 19 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 10 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 13 <- Map 20 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 15 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 10 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE) +Reducer 17 <- Map 20 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 19 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 20 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 20 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 6 <- Union 5 (SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 8 <- Union 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_276] + Group By Operator [GBY_275] (rows=1 width=24) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_274] + Group By Operator [GBY_273] (rows=1 width=24) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_272] (rows=4537552 width=129) + Filter Operator [FIL_271] (rows=4537552 width=129) + predicate:(((_col3 * 2) = _col4) and (_col3 > 0L)) + Select Operator [SEL_270] (rows=27225312 width=129) + Output:["_col3","_col4"] + Group By Operator [GBY_269] (rows=27225312 width=129) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 7 [SIMPLE_EDGE] + <-Reducer 18 [CONTAINS] vectorized + Reduce Output Operator [RS_302] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_301] (rows=54450625 width=129) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","sum(_col4)"],keys:_col0, _col1, _col2 + Select Operator [SEL_300] (rows=54450625 width=129) + Output:["_col0","_col1","_col2","_col3","_col4"] + Select Operator [SEL_299] (rows=43560808 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_298] (rows=43560808 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_297] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_296] (rows=87121617 width=135) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_76] (rows=174243235 width=135) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_189] (rows=174243235 width=135) + Conds:RS_72._col1=RS_244._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_244] + PartitionCols:_col0 + Select Operator [SEL_239] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + TableScan [TS_6] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_first_name","c_last_name"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_188] (rows=158402938 width=135) + Conds:RS_295._col0=RS_229._col0(Inner),Output:["_col1","_col3"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_229] + PartitionCols:_col0 + Select Operator [SEL_224] (rows=73049 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_223] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date","d_month_seq"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_295] + PartitionCols:_col0 + Select Operator [SEL_294] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_293] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_70_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_61] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_292] + Group By Operator [GBY_291] (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_236] + Group By Operator [GBY_233] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_230] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_224] + <-Reducer 6 [CONTAINS] vectorized + Reduce Output Operator [RS_268] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_267] (rows=54450625 width=129) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","sum(_col4)"],keys:_col0, _col1, _col2 + Select Operator [SEL_266] (rows=54450625 width=129) + Output:["_col0","_col1","_col2","_col3","_col4"] + Select Operator [SEL_265] (rows=10889817 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_264] (rows=10889817 width=103) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col0, _col1, _col2 + Select Operator [SEL_263] (rows=21779634 width=103) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_262] (rows=21779634 width=103) + predicate:(((_col3 * 2) = _col4) and (_col3 > 0L)) + Group By Operator [GBY_261] (rows=130677808 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Union 5 [SIMPLE_EDGE] + <-Reducer 14 [CONTAINS] vectorized + Reduce Output Operator [RS_290] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_289] (rows=261355616 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","sum(_col4)"],keys:_col0, _col1, _col2 + Select Operator [SEL_288] (rows=261355616 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"] + Select Operator [SEL_287] (rows=87116929 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_286] (rows=87116929 width=135) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_285] (rows=174233858 width=135) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_284] (rows=174233858 width=135) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_39] (rows=348467716 width=135) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_187] (rows=348467716 width=135) + Conds:RS_35._col1=RS_242._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_242] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_239] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_186] (rows=316788826 width=135) + Conds:RS_283._col0=RS_227._col0(Inner),Output:["_col1","_col3"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_227] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_224] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_283] + PartitionCols:_col0 + Select Operator [SEL_282] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_281] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_36_customer_c_customer_sk_min) AND DynamicValue(RS_36_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_36_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_33_date_dim_d_date_sk_min) AND DynamicValue(RS_33_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_33_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_24] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_278] + Group By Operator [GBY_277] (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_235] + Group By Operator [GBY_232] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_228] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_224] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_280] + Group By Operator [GBY_279] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_248] + Group By Operator [GBY_246] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_243] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_239] + <-Reducer 4 [CONTAINS] vectorized + Reduce Output Operator [RS_260] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_259] (rows=261355616 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","sum(_col4)"],keys:_col0, _col1, _col2 + Select Operator [SEL_258] (rows=261355616 width=103) + Output:["_col0","_col1","_col2","_col3","_col4"] + Select Operator [SEL_257] (rows=174238687 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Group By Operator [GBY_256] (rows=174238687 width=88) + Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 + Select Operator [SEL_255] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_254] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_16] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2"],keys:_col6, _col5, _col3 + Merge Join Operator [MERGEJOIN_185] (rows=696954748 width=88) + Conds:RS_11._col1=RS_240._col0(Inner),Output:["_col3","_col5","_col6"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_240] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_239] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_184] (rows=633595212 width=88) + Conds:RS_253._col0=RS_225._col0(Inner),Output:["_col1","_col3"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_224] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_253] + PartitionCols:_col0 + Select Operator [SEL_252] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_251] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_12_customer_c_customer_sk_min) AND DynamicValue(RS_12_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_12_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_9_date_dim_d_date_sk_min) AND DynamicValue(RS_9_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_9_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_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_customer_sk"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_238] + Group By Operator [GBY_237] (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_234] + Group By Operator [GBY_231] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_226] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_224] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_250] + Group By Operator [GBY_249] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_247] + Group By Operator [GBY_245] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_241] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_239] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out new file mode 100644 index 0000000000..4b624b4450 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out @@ -0,0 +1,962 @@ +Warning: Shuffle Join MERGEJOIN[607][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[608][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[609][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 8' is a cross product +Warning: Shuffle Join MERGEJOIN[610][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4]] in Stage 'Reducer 9' is a cross product +Warning: Shuffle Join MERGEJOIN[611][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 10' is a cross product +Warning: Shuffle Join MERGEJOIN[612][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6]] in Stage 'Reducer 11' is a cross product +Warning: Shuffle Join MERGEJOIN[613][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7]] in Stage 'Reducer 12' is a cross product +PREHOOK: query: explain +select * +from + (select count(*) h8_30_to_9 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s1, + (select count(*) h9_to_9_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s2, + (select count(*) h9_30_to_10 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s3, + (select count(*) h10_to_10_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s4, + (select count(*) h10_30_to_11 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s5, + (select count(*) h11_to_11_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s6, + (select count(*) h11_30_to_12 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s7, + (select count(*) h12_to_12_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 12 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s8 +PREHOOK: type: QUERY +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@time_dim +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * +from + (select count(*) h8_30_to_9 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s1, + (select count(*) h9_to_9_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s2, + (select count(*) h9_30_to_10 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 9 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s3, + (select count(*) h10_to_10_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s4, + (select count(*) h10_30_to_11 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 10 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s5, + (select count(*) h11_to_11_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s6, + (select count(*) h11_30_to_12 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 11 + and time_dim.t_minute >= 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s7, + (select count(*) h12_to_12_30 + from store_sales, household_demographics , time_dim, store + where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 12 + and time_dim.t_minute < 30 + and ((household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2) or + (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or + (household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2)) + and store.s_store_name = 'ese') s8 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@time_dim +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 14 (BROADCAST_EDGE), Reducer 51 (BROADCAST_EDGE), Reducer 60 (BROADCAST_EDGE) +Map 68 <- Reducer 19 (BROADCAST_EDGE), Reducer 52 (BROADCAST_EDGE), Reducer 61 (BROADCAST_EDGE) +Map 69 <- Reducer 24 (BROADCAST_EDGE), Reducer 53 (BROADCAST_EDGE), Reducer 62 (BROADCAST_EDGE) +Map 70 <- Reducer 29 (BROADCAST_EDGE), Reducer 54 (BROADCAST_EDGE), Reducer 63 (BROADCAST_EDGE) +Map 71 <- Reducer 34 (BROADCAST_EDGE), Reducer 55 (BROADCAST_EDGE), Reducer 64 (BROADCAST_EDGE) +Map 72 <- Reducer 39 (BROADCAST_EDGE), Reducer 56 (BROADCAST_EDGE), Reducer 65 (BROADCAST_EDGE) +Map 73 <- Reducer 44 (BROADCAST_EDGE), Reducer 57 (BROADCAST_EDGE), Reducer 66 (BROADCAST_EDGE) +Map 74 <- Reducer 49 (BROADCAST_EDGE), Reducer 58 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE) +Reducer 10 <- Reducer 38 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 43 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 48 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 13 (SIMPLE_EDGE), Map 68 (SIMPLE_EDGE) +Reducer 16 <- Map 50 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 59 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 20 <- Map 13 (SIMPLE_EDGE), Map 69 (SIMPLE_EDGE) +Reducer 21 <- Map 50 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Map 59 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 13 (SIMPLE_EDGE), Map 70 (SIMPLE_EDGE) +Reducer 26 <- Map 50 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 59 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 28 <- Reducer 27 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 50 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 13 (SIMPLE_EDGE), Map 71 (SIMPLE_EDGE) +Reducer 31 <- Map 50 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Map 59 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE) +Reducer 33 <- Reducer 32 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 13 (SIMPLE_EDGE), Map 72 (SIMPLE_EDGE) +Reducer 36 <- Map 50 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE) +Reducer 37 <- Map 59 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) +Reducer 38 <- Reducer 37 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 59 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 40 <- Map 13 (SIMPLE_EDGE), Map 73 (SIMPLE_EDGE) +Reducer 41 <- Map 50 (SIMPLE_EDGE), Reducer 40 (SIMPLE_EDGE) +Reducer 42 <- Map 59 (SIMPLE_EDGE), Reducer 41 (SIMPLE_EDGE) +Reducer 43 <- Reducer 42 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 45 <- Map 13 (SIMPLE_EDGE), Map 74 (SIMPLE_EDGE) +Reducer 46 <- Map 50 (SIMPLE_EDGE), Reducer 45 (SIMPLE_EDGE) +Reducer 47 <- Map 59 (SIMPLE_EDGE), Reducer 46 (SIMPLE_EDGE) +Reducer 48 <- Reducer 47 (CUSTOM_SIMPLE_EDGE) +Reducer 49 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 51 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 52 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 53 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 54 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 55 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 56 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 57 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 58 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 60 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 61 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 62 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 63 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 64 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 65 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 66 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 67 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 23 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 33 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 12 + File Output Operator [FS_238] + Select Operator [SEL_237] (rows=1 width=71) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_613] (rows=1 width=71) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_234] + Merge Join Operator [MERGEJOIN_612] (rows=1 width=62) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_231] + Merge Join Operator [MERGEJOIN_611] (rows=1 width=53) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_795] + Group By Operator [GBY_794] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 37 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_159] + Group By Operator [GBY_158] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_600] (rows=766650239 width=88) + Conds:RS_154._col0=RS_712._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_712] + PartitionCols:_col0 + Select Operator [SEL_701] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_700] (rows=852 width=1910) + predicate:(s_store_name = 'ese') + TableScan [TS_16] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 36 [SIMPLE_EDGE] + SHUFFLE [RS_154] + PartitionCols:_col0 + Select Operator [SEL_150] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_599] (rows=696954748 width=88) + Conds:RS_147._col1=RS_676._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_676] + PartitionCols:_col0 + Select Operator [SEL_665] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_664] (rows=3600 width=107) + predicate:(((hd_dep_count = 0) and (hd_vehicle_count <= 2)) or ((hd_dep_count = 1) and (hd_vehicle_count <= 3)) or ((hd_dep_count = 3) and (hd_vehicle_count <= 5))) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_147] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_598] (rows=633595212 width=88) + Conds:RS_793._col0=RS_640._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_640] + PartitionCols:_col0 + Select Operator [SEL_627] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_619] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute < 30)) + TableScan [TS_3] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] + <-Map 72 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_793] + PartitionCols:_col0 + Select Operator [SEL_792] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_791] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_148_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_148_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_148_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_145_time_dim_t_time_sk_min) AND DynamicValue(RS_145_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_145_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_155_store_s_store_sk_min) AND DynamicValue(RS_155_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_155_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_135] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 39 [BROADCAST_EDGE] vectorized + BROADCAST [RS_786] + Group By Operator [GBY_785] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_659] + Group By Operator [GBY_651] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_641] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_627] + <-Reducer 56 [BROADCAST_EDGE] vectorized + BROADCAST [RS_788] + Group By Operator [GBY_787] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_695] + Group By Operator [GBY_687] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_677] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 65 [BROADCAST_EDGE] vectorized + BROADCAST [RS_790] + Group By Operator [GBY_789] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_731] + Group By Operator [GBY_723] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_713] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_228] + Merge Join Operator [MERGEJOIN_610] (rows=1 width=44) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_784] + Group By Operator [GBY_783] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_132] + Group By Operator [GBY_131] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_597] (rows=766650239 width=88) + Conds:RS_127._col0=RS_710._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_710] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_127] + PartitionCols:_col0 + Select Operator [SEL_123] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_596] (rows=696954748 width=88) + Conds:RS_120._col1=RS_674._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_674] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_120] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_595] (rows=633595212 width=88) + Conds:RS_782._col0=RS_638._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_638] + PartitionCols:_col0 + Select Operator [SEL_626] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_618] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute >= 30)) + Please refer to the previous TableScan [TS_3] + <-Map 71 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_782] + PartitionCols:_col0 + Select Operator [SEL_781] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_780] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_121_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_121_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_121_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_118_time_dim_t_time_sk_min) AND DynamicValue(RS_118_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_118_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_128_store_s_store_sk_min) AND DynamicValue(RS_128_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_128_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_108] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_775] + Group By Operator [GBY_774] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_658] + Group By Operator [GBY_650] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_639] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_626] + <-Reducer 55 [BROADCAST_EDGE] vectorized + BROADCAST [RS_777] + Group By Operator [GBY_776] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_694] + Group By Operator [GBY_686] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_675] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 64 [BROADCAST_EDGE] vectorized + BROADCAST [RS_779] + Group By Operator [GBY_778] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_730] + Group By Operator [GBY_722] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_711] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_225] + Merge Join Operator [MERGEJOIN_609] (rows=1 width=35) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3"] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_773] + Group By Operator [GBY_772] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 27 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_594] (rows=766650239 width=88) + Conds:RS_100._col0=RS_708._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_708] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_100] + PartitionCols:_col0 + Select Operator [SEL_96] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_593] (rows=696954748 width=88) + Conds:RS_93._col1=RS_672._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_672] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_592] (rows=633595212 width=88) + Conds:RS_771._col0=RS_636._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_636] + PartitionCols:_col0 + Select Operator [SEL_625] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_617] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute < 30)) + Please refer to the previous TableScan [TS_3] + <-Map 70 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_771] + PartitionCols:_col0 + Select Operator [SEL_770] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_769] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_94_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_94_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_94_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_91_time_dim_t_time_sk_min) AND DynamicValue(RS_91_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_91_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_101_store_s_store_sk_min) AND DynamicValue(RS_101_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_101_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_81] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_764] + Group By Operator [GBY_763] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_657] + Group By Operator [GBY_649] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_637] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_625] + <-Reducer 54 [BROADCAST_EDGE] vectorized + BROADCAST [RS_766] + Group By Operator [GBY_765] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_693] + Group By Operator [GBY_685] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_673] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 63 [BROADCAST_EDGE] vectorized + BROADCAST [RS_768] + Group By Operator [GBY_767] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_729] + Group By Operator [GBY_721] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_709] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_222] + Merge Join Operator [MERGEJOIN_608] (rows=1 width=26) + Conds:(Inner),Output:["_col0","_col1","_col2"] + <-Reducer 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_762] + Group By Operator [GBY_761] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 22 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_78] + Group By Operator [GBY_77] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_591] (rows=766650239 width=88) + Conds:RS_73._col0=RS_706._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_706] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col0 + Select Operator [SEL_69] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_590] (rows=696954748 width=88) + Conds:RS_66._col1=RS_670._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_670] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_66] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_589] (rows=633595212 width=88) + Conds:RS_760._col0=RS_634._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_634] + PartitionCols:_col0 + Select Operator [SEL_624] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_616] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute >= 30)) + Please refer to the previous TableScan [TS_3] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_760] + PartitionCols:_col0 + Select Operator [SEL_759] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_758] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_67_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_67_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_67_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_64_time_dim_t_time_sk_min) AND DynamicValue(RS_64_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_64_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_74_store_s_store_sk_min) AND DynamicValue(RS_74_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_74_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_54] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_753] + Group By Operator [GBY_752] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_656] + Group By Operator [GBY_648] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_635] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_624] + <-Reducer 53 [BROADCAST_EDGE] vectorized + BROADCAST [RS_755] + Group By Operator [GBY_754] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_692] + Group By Operator [GBY_684] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_671] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 62 [BROADCAST_EDGE] vectorized + BROADCAST [RS_757] + Group By Operator [GBY_756] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_728] + Group By Operator [GBY_720] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_707] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_219] + Merge Join Operator [MERGEJOIN_607] (rows=1 width=17) + Conds:(Inner),Output:["_col0","_col1"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_751] + Group By Operator [GBY_750] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_51] + Group By Operator [GBY_50] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_588] (rows=766650239 width=88) + Conds:RS_46._col0=RS_704._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_704] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_587] (rows=696954748 width=88) + Conds:RS_39._col1=RS_668._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_668] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_586] (rows=633595212 width=88) + Conds:RS_749._col0=RS_632._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_632] + PartitionCols:_col0 + Select Operator [SEL_623] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_615] (rows=14400 width=471) + predicate:((t_hour = 12) and (t_minute < 30)) + Please refer to the previous TableScan [TS_3] + <-Map 68 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_749] + PartitionCols:_col0 + Select Operator [SEL_748] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_747] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_40_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_40_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_40_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_37_time_dim_t_time_sk_min) AND DynamicValue(RS_37_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_37_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_47_store_s_store_sk_min) AND DynamicValue(RS_47_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_47_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_27] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_742] + Group By Operator [GBY_741] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_655] + Group By Operator [GBY_647] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_633] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_623] + <-Reducer 52 [BROADCAST_EDGE] vectorized + BROADCAST [RS_744] + Group By Operator [GBY_743] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_691] + Group By Operator [GBY_683] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_669] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 61 [BROADCAST_EDGE] vectorized + BROADCAST [RS_746] + Group By Operator [GBY_745] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_727] + Group By Operator [GBY_719] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_705] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_740] + Group By Operator [GBY_739] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_24] + Group By Operator [GBY_23] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_585] (rows=766650239 width=88) + Conds:RS_19._col0=RS_702._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_702] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_584] (rows=696954748 width=88) + Conds:RS_12._col1=RS_666._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_666] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_583] (rows=633595212 width=88) + Conds:RS_738._col0=RS_630._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_630] + PartitionCols:_col0 + Select Operator [SEL_622] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_614] (rows=14400 width=471) + predicate:((t_hour = 8) and (t_minute >= 30)) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_738] + PartitionCols:_col0 + Select Operator [SEL_737] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_736] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_13_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_13_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_13_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_10_time_dim_t_time_sk_min) AND DynamicValue(RS_10_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_10_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_20_store_s_store_sk_min) AND DynamicValue(RS_20_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_20_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_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_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_663] + Group By Operator [GBY_662] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_654] + Group By Operator [GBY_646] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_631] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_622] + <-Reducer 51 [BROADCAST_EDGE] vectorized + BROADCAST [RS_699] + Group By Operator [GBY_698] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_690] + Group By Operator [GBY_682] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_667] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 60 [BROADCAST_EDGE] vectorized + BROADCAST [RS_735] + Group By Operator [GBY_734] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_726] + Group By Operator [GBY_718] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_703] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_806] + Group By Operator [GBY_805] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 42 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_186] + Group By Operator [GBY_185] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_603] (rows=766650239 width=88) + Conds:RS_181._col0=RS_714._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_714] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 41 [SIMPLE_EDGE] + SHUFFLE [RS_181] + PartitionCols:_col0 + Select Operator [SEL_177] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_602] (rows=696954748 width=88) + Conds:RS_174._col1=RS_678._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_678] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 40 [SIMPLE_EDGE] + SHUFFLE [RS_174] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_601] (rows=633595212 width=88) + Conds:RS_804._col0=RS_642._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_642] + PartitionCols:_col0 + Select Operator [SEL_628] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_620] (rows=14400 width=471) + predicate:((t_hour = 9) and (t_minute >= 30)) + Please refer to the previous TableScan [TS_3] + <-Map 73 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_804] + PartitionCols:_col0 + Select Operator [SEL_803] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_802] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_175_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_175_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_175_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_172_time_dim_t_time_sk_min) AND DynamicValue(RS_172_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_172_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_182_store_s_store_sk_min) AND DynamicValue(RS_182_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_182_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_162] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 44 [BROADCAST_EDGE] vectorized + BROADCAST [RS_797] + Group By Operator [GBY_796] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_660] + Group By Operator [GBY_652] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_643] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_628] + <-Reducer 57 [BROADCAST_EDGE] vectorized + BROADCAST [RS_799] + Group By Operator [GBY_798] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_696] + Group By Operator [GBY_688] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_679] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 66 [BROADCAST_EDGE] vectorized + BROADCAST [RS_801] + Group By Operator [GBY_800] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_732] + Group By Operator [GBY_724] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_715] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + <-Reducer 48 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_817] + Group By Operator [GBY_816] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 47 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_213] + Group By Operator [GBY_212] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_606] (rows=766650239 width=88) + Conds:RS_208._col0=RS_716._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_716] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_701] + <-Reducer 46 [SIMPLE_EDGE] + SHUFFLE [RS_208] + PartitionCols:_col0 + Select Operator [SEL_204] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_605] (rows=696954748 width=88) + Conds:RS_201._col1=RS_680._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_680] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_665] + <-Reducer 45 [SIMPLE_EDGE] + SHUFFLE [RS_201] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_604] (rows=633595212 width=88) + Conds:RS_815._col0=RS_644._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_644] + PartitionCols:_col0 + Select Operator [SEL_629] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_621] (rows=14400 width=471) + predicate:((t_hour = 9) and (t_minute < 30)) + Please refer to the previous TableScan [TS_3] + <-Map 74 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_815] + PartitionCols:_col0 + Select Operator [SEL_814] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_813] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_202_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_202_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_202_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_199_time_dim_t_time_sk_min) AND DynamicValue(RS_199_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_199_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_209_store_s_store_sk_min) AND DynamicValue(RS_209_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_209_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_189] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 49 [BROADCAST_EDGE] vectorized + BROADCAST [RS_808] + Group By Operator [GBY_807] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_661] + Group By Operator [GBY_653] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_645] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_629] + <-Reducer 58 [BROADCAST_EDGE] vectorized + BROADCAST [RS_810] + Group By Operator [GBY_809] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_697] + Group By Operator [GBY_689] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_681] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_665] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_812] + Group By Operator [GBY_811] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_733] + Group By Operator [GBY_725] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_717] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_701] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query89.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query89.q.out new file mode 100644 index 0000000000..fcb06762e6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query89.q.out @@ -0,0 +1,192 @@ +PREHOOK: query: explain +select * +from( +select i_category, i_class, i_brand, + s_store_name, s_company_name, + d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, s_store_name, s_company_name) + avg_monthly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + d_year in (2000) and + ((i_category in ('Home','Books','Electronics') and + i_class in ('wallpaper','parenting','musical') + ) + or (i_category in ('Shoes','Jewelry','Men') and + i_class in ('womens','birdal','pants') + )) +group by i_category, i_class, i_brand, + s_store_name, s_company_name, d_moy) tmp1 +where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 +order by sum_sales - avg_monthly_sales, s_store_name +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select * +from( +select i_category, i_class, i_brand, + s_store_name, s_company_name, + d_moy, + sum(ss_sales_price) sum_sales, + avg(sum(ss_sales_price)) over + (partition by i_category, i_brand, s_store_name, s_company_name) + avg_monthly_sales +from item, store_sales, date_dim, store +where ss_item_sk = i_item_sk and + ss_sold_date_sk = d_date_sk and + ss_store_sk = s_store_sk and + d_year in (2000) and + ((i_category in ('Home','Books','Electronics') and + i_class in ('wallpaper','parenting','musical') + ) + or (i_category in ('Shoes','Jewelry','Men') and + i_class in ('womens','birdal','pants') + )) +group by i_category, i_class, i_brand, + s_store_name, s_company_name, d_moy) tmp1 +where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1 +order by sum_sales - avg_monthly_sales, s_store_name +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +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 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (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 <- 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_121] + Limit [LIM_120] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_119] (rows=191662559 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + Select Operator [SEL_117] (rows=191662559 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_116] (rows=191662559 width=88) + predicate:CASE WHEN ((avg_window_0 <> 0)) THEN (((abs((_col6 - avg_window_0)) / avg_window_0) > 0.1)) ELSE (null) END + Select Operator [SEL_115] (rows=383325119 width=88) + Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_114] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col2 ASC NULLS FIRST, _col0 ASC NULLS FIRST, _col4 ASC NULLS FIRST, _col5 ASC NULLS FIRST","partition by:":"_col2, _col0, _col4, _col5"}] + Select Operator [SEL_113] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_112] + PartitionCols:_col2, _col0, _col4, _col5 + Group By Operator [GBY_111] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_23] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_22] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)"],keys:_col0, _col1, _col2, _col5, _col7, _col8 + Merge Join Operator [MERGEJOIN_84] (rows=766650239 width=88) + Conds:RS_18._col3=RS_102._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5","_col7","_col8"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_102] + PartitionCols:_col0 + Select Operator [SEL_101] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + TableScan [TS_16] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col3 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_83] (rows=696954748 width=88) + Conds:RS_12._col1=RS_95._col0(Inner),Output:["_col2","_col3","_col5","_col7","_col8","_col9"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_95] + PartitionCols:_col0 + Select Operator [SEL_94] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_93] (rows=462000 width=1436) + predicate:(((i_category) IN ('Home', 'Books', 'Electronics') and (i_class) IN ('wallpaper', 'parenting', 'musical')) or ((i_category) IN ('Shoes', 'Jewelry', 'Men') and (i_class) IN ('womens', 'birdal', 'pants'))) + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_82] (rows=633595212 width=88) + Conds:RS_110._col0=RS_87._col0(Inner),Output:["_col1","_col2","_col3","_col5"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_87] + PartitionCols:_col0 + Select Operator [SEL_86] (rows=36524 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_85] (rows=36524 width=1119) + predicate:(d_year = 2000) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_110] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_108] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_19_store_s_store_sk_min) AND DynamicValue(RS_19_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_19_store_s_store_sk_bloom_filter))) and 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_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_100] + Group By Operator [GBY_99] (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_98] + Group By Operator [GBY_97] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_96] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_94] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_107] + Group By Operator [GBY_106] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_105] + Group By Operator [GBY_104] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_103] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_101] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_92] + Group By Operator [GBY_91] (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_90] + Group By Operator [GBY_89] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_88] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_86] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query9.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query9.q.out new file mode 100644 index 0000000000..9c52f5f6b0 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query9.q.out @@ -0,0 +1,460 @@ +Warning: Shuffle Join MERGEJOIN[176][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product +Warning: Shuffle Join MERGEJOIN[177][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 3' is a cross product +Warning: Shuffle Join MERGEJOIN[178][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[179][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[180][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[181][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[182][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 8' is a cross product +Warning: Shuffle Join MERGEJOIN[183][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 9' is a cross product +Warning: Shuffle Join MERGEJOIN[184][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 10' is a cross product +Warning: Shuffle Join MERGEJOIN[185][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 11' is a cross product +Warning: Shuffle Join MERGEJOIN[186][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 12' is a cross product +Warning: Shuffle Join MERGEJOIN[187][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 13' is a cross product +Warning: Shuffle Join MERGEJOIN[188][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 14' is a cross product +Warning: Shuffle Join MERGEJOIN[189][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 15' is a cross product +Warning: Shuffle Join MERGEJOIN[190][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 16' is a cross product +PREHOOK: query: explain +select case when (select count(*) + from store_sales + where ss_quantity between 1 and 20) > 409437 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 1 and 20) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 1 and 20) end bucket1 , + case when (select count(*) + from store_sales + where ss_quantity between 21 and 40) > 4595804 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 21 and 40) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 21 and 40) end bucket2, + case when (select count(*) + from store_sales + where ss_quantity between 41 and 60) > 7887297 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 41 and 60) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 41 and 60) end bucket3, + case when (select count(*) + from store_sales + where ss_quantity between 61 and 80) > 10872978 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 61 and 80) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 61 and 80) end bucket4, + case when (select count(*) + from store_sales + where ss_quantity between 81 and 100) > 43571537 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 81 and 100) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 81 and 100) end bucket5 +from reason +where r_reason_sk = 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@reason +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select case when (select count(*) + from store_sales + where ss_quantity between 1 and 20) > 409437 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 1 and 20) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 1 and 20) end bucket1 , + case when (select count(*) + from store_sales + where ss_quantity between 21 and 40) > 4595804 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 21 and 40) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 21 and 40) end bucket2, + case when (select count(*) + from store_sales + where ss_quantity between 41 and 60) > 7887297 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 41 and 60) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 41 and 60) end bucket3, + case when (select count(*) + from store_sales + where ss_quantity between 61 and 80) > 10872978 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 61 and 80) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 61 and 80) end bucket4, + case when (select count(*) + from store_sales + where ss_quantity between 81 and 100) > 43571537 + then (select avg(ss_ext_list_price) + from store_sales + where ss_quantity between 81 and 100) + else (select avg(ss_net_paid_inc_tax) + from store_sales + where ss_quantity between 81 and 100) end bucket5 +from reason +where r_reason_sk = 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@reason +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 10 <- Reducer 32 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 21 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 27 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 33 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 22 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 28 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 34 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (CUSTOM_SIMPLE_EDGE), Reducer 18 (CUSTOM_SIMPLE_EDGE) +Reducer 20 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Map 17 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE) +Reducer 30 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Reducer 31 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Reducer 32 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 30 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 19 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 25 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 31 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 20 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 26 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 16 + File Output Operator [FS_159] + Select Operator [SEL_158] (rows=36 width=1455) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_190] (rows=36 width=1455) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_155] + Select Operator [SEL_147] (rows=36 width=1334) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_189] (rows=36 width=1334) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_144] + Merge Join Operator [MERGEJOIN_188] (rows=36 width=1213) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_141] + Merge Join Operator [MERGEJOIN_187] (rows=36 width=1204) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_138] + Select Operator [SEL_116] (rows=36 width=1083) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_186] (rows=36 width=1083) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_113] + Merge Join Operator [MERGEJOIN_185] (rows=36 width=962) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_110] + Merge Join Operator [MERGEJOIN_184] (rows=36 width=953) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_280] + Select Operator [SEL_279] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_278] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_257] + Group By Operator [GBY_252] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_net_paid_inc_tax)","count(ss_net_paid_inc_tax)"] + Select Operator [SEL_247] (rows=575995635 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_242] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + TableScan [TS_24] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_net_paid_inc_tax"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_107] + Select Operator [SEL_85] (rows=36 width=832) + Output:["_col0","_col1","_col2","_col3"] + Merge Join Operator [MERGEJOIN_183] (rows=36 width=832) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 26 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_277] + Select Operator [SEL_276] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_275] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_234] + Group By Operator [GBY_229] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_ext_list_price)","count(ss_ext_list_price)"] + Select Operator [SEL_224] (rows=575995635 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_219] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + TableScan [TS_10] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_ext_list_price"] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_82] + Merge Join Operator [MERGEJOIN_182] (rows=36 width=711) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 20 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_274] + Select Operator [SEL_273] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_272] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_211] + Group By Operator [GBY_206] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_201] (rows=575995635 width=88) + Filter Operator [FIL_196] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 41 AND 60 + TableScan [TS_3] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_79] + Merge Join Operator [MERGEJOIN_181] (rows=36 width=702) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3"] + <-Reducer 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_271] + Select Operator [SEL_270] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_269] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_256] + Group By Operator [GBY_251] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_net_paid_inc_tax)","count(ss_net_paid_inc_tax)"] + Select Operator [SEL_246] (rows=575995635 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_241] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_24] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_76] + Select Operator [SEL_54] (rows=36 width=581) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_180] (rows=36 width=581) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 25 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_268] + Select Operator [SEL_267] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_266] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_233] + Group By Operator [GBY_228] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_ext_list_price)","count(ss_ext_list_price)"] + Select Operator [SEL_223] (rows=575995635 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_218] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_10] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_51] + Merge Join Operator [MERGEJOIN_179] (rows=36 width=460) + Conds:(Left Outer),Output:["_col0","_col1","_col2","_col3"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_265] + Select Operator [SEL_264] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_263] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_210] + Group By Operator [GBY_205] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_200] (rows=575995635 width=88) + Filter Operator [FIL_195] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 21 AND 40 + Please refer to the previous TableScan [TS_3] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_48] + Merge Join Operator [MERGEJOIN_178] (rows=36 width=451) + Conds:(Left Outer),Output:["_col0","_col1","_col2"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_45] + Select Operator [SEL_23] (rows=36 width=330) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_177] (rows=36 width=330) + Conds:(Left Outer),Output:["_col1","_col2"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_20] + Merge Join Operator [MERGEJOIN_176] (rows=36 width=209) + Conds:(Left Outer),Output:["_col1"] + <-Map 1 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_193] + Select Operator [SEL_192] (rows=36 width=200) + Filter Operator [FIL_191] (rows=36 width=200) + predicate:(r_reason_sk = 1) + TableScan [TS_0] (rows=72 width=200) + default@reason,reason,Tbl:COMPLETE,Col:NONE,Output:["r_reason_sk"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_216] + Select Operator [SEL_215] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_214] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_209] + Group By Operator [GBY_204] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_199] (rows=575995635 width=88) + Filter Operator [FIL_194] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_3] + <-Reducer 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_239] + Select Operator [SEL_238] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_237] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_232] + Group By Operator [GBY_227] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_ext_list_price)","count(ss_ext_list_price)"] + Select Operator [SEL_222] (rows=575995635 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_217] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_10] + <-Reducer 30 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_262] + Select Operator [SEL_261] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_260] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_255] + Group By Operator [GBY_250] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_net_paid_inc_tax)","count(ss_net_paid_inc_tax)"] + Select Operator [SEL_245] (rows=575995635 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_240] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 1 AND 20 + Please refer to the previous TableScan [TS_24] + <-Reducer 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_283] + Select Operator [SEL_282] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_281] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_212] + Group By Operator [GBY_207] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_202] (rows=575995635 width=88) + Filter Operator [FIL_197] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_3] + <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_286] + Select Operator [SEL_285] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_284] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_235] + Group By Operator [GBY_230] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_ext_list_price)","count(ss_ext_list_price)"] + Select Operator [SEL_225] (rows=575995635 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_220] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_10] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_289] + Select Operator [SEL_288] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_287] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_258] + Group By Operator [GBY_253] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_net_paid_inc_tax)","count(ss_net_paid_inc_tax)"] + Select Operator [SEL_248] (rows=575995635 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_243] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 61 AND 80 + Please refer to the previous TableScan [TS_24] + <-Reducer 22 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_292] + Select Operator [SEL_291] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_290] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Map 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_213] + Group By Operator [GBY_208] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_203] (rows=575995635 width=88) + Filter Operator [FIL_198] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 81 AND 100 + Please refer to the previous TableScan [TS_3] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_295] + Select Operator [SEL_294] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_293] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_236] + Group By Operator [GBY_231] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_ext_list_price)","count(ss_ext_list_price)"] + Select Operator [SEL_226] (rows=575995635 width=88) + Output:["ss_ext_list_price"] + Filter Operator [FIL_221] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 81 AND 100 + Please refer to the previous TableScan [TS_10] + <-Reducer 34 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_298] + Select Operator [SEL_297] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_296] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_259] + Group By Operator [GBY_254] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(ss_net_paid_inc_tax)","count(ss_net_paid_inc_tax)"] + Select Operator [SEL_249] (rows=575995635 width=88) + Output:["ss_net_paid_inc_tax"] + Filter Operator [FIL_244] (rows=575995635 width=88) + predicate:ss_quantity BETWEEN 81 AND 100 + Please refer to the previous TableScan [TS_24] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query90.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query90.q.out new file mode 100644 index 0000000000..ad5f39ca1f --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query90.q.out @@ -0,0 +1,267 @@ +Warning: Shuffle Join MERGEJOIN[154][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product +PREHOOK: query: explain +select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio + from ( select count(*) amc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 6 and 6+1 + and household_demographics.hd_dep_count = 8 + and web_page.wp_char_count between 5000 and 5200) at, + ( select count(*) pmc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 14 and 14+1 + and household_demographics.hd_dep_count = 8 + and web_page.wp_char_count between 5000 and 5200) pt + order by am_pm_ratio + limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@time_dim +PREHOOK: Input: default@web_page +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select cast(amc as decimal(15,4))/cast(pmc as decimal(15,4)) am_pm_ratio + from ( select count(*) amc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 6 and 6+1 + and household_demographics.hd_dep_count = 8 + and web_page.wp_char_count between 5000 and 5200) at, + ( select count(*) pmc + from web_sales, household_demographics , time_dim, web_page + where ws_sold_time_sk = time_dim.t_time_sk + and ws_ship_hdemo_sk = household_demographics.hd_demo_sk + and ws_web_page_sk = web_page.wp_web_page_sk + and time_dim.t_hour between 14 and 14+1 + and household_demographics.hd_dep_count = 8 + and web_page.wp_char_count between 5000 and 5200) pt + order by am_pm_ratio + limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@time_dim +POSTHOOK: Input: default@web_page +POSTHOOK: Input: default@web_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 16 (BROADCAST_EDGE), Reducer 19 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 21 <- Reducer 14 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE) +Reducer 10 <- Map 21 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Map 15 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 18 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 15 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Map 18 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 18 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_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_213] + Limit [LIM_212] (rows=1 width=17) + Number of rows:100 + Select Operator [SEL_211] (rows=1 width=17) + Output:["_col0"] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_58] + Select Operator [SEL_57] (rows=1 width=17) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_154] (rows=1 width=17) + Conds:(Inner),Output:["_col0","_col1"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_210] + Select Operator [SEL_209] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_208] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_51] + Group By Operator [GBY_50] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_153] (rows=191667562 width=135) + Conds:RS_46._col0=RS_185._col0(Inner) + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_185] + PartitionCols:_col0 + Select Operator [SEL_182] (rows=511 width=585) + Output:["_col0"] + Filter Operator [FIL_181] (rows=511 width=585) + predicate:wp_char_count BETWEEN 5000 AND 5200 + TableScan [TS_16] (rows=4602 width=585) + default@web_page,web_page,Tbl:COMPLETE,Col:NONE,Output:["wp_web_page_sk","wp_char_count"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col0 + Select Operator [SEL_42] (rows=174243235 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_152] (rows=174243235 width=135) + Conds:RS_39._col1=RS_173._col0(Inner),Output:["_col2"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_173] + PartitionCols:_col0 + Select Operator [SEL_170] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_169] (rows=3600 width=107) + predicate:(hd_dep_count = 8) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count"] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_151] (rows=158402938 width=135) + Conds:RS_207._col0=RS_161._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_161] + PartitionCols:_col0 + Select Operator [SEL_158] (rows=86400 width=471) + Output:["_col0"] + Filter Operator [FIL_156] (rows=86400 width=471) + predicate:t_hour BETWEEN 14 AND 15 + TableScan [TS_3] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour"] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_207] + PartitionCols:_col0 + Select Operator [SEL_206] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_205] (rows=144002668 width=135) + predicate:((ws_ship_hdemo_sk BETWEEN DynamicValue(RS_40_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_40_household_demographics_hd_demo_sk_max) and in_bloom_filter(ws_ship_hdemo_sk, DynamicValue(RS_40_household_demographics_hd_demo_sk_bloom_filter))) and (ws_sold_time_sk BETWEEN DynamicValue(RS_37_time_dim_t_time_sk_min) AND DynamicValue(RS_37_time_dim_t_time_sk_max) and in_bloom_filter(ws_sold_time_sk, DynamicValue(RS_37_time_dim_t_time_sk_bloom_filter))) and (ws_web_page_sk BETWEEN DynamicValue(RS_47_web_page_wp_web_page_sk_min) AND DynamicValue(RS_47_web_page_wp_web_page_sk_max) and in_bloom_filter(ws_web_page_sk, DynamicValue(RS_47_web_page_wp_web_page_sk_bloom_filter))) and ws_ship_hdemo_sk is not null and ws_sold_time_sk is not null and ws_web_page_sk is not null) + TableScan [TS_27] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_time_sk","ws_ship_hdemo_sk","ws_web_page_sk"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_200] + Group By Operator [GBY_199] (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_166] + Group By Operator [GBY_164] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_162] (rows=86400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_158] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_202] + Group By Operator [GBY_201] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_178] + Group By Operator [GBY_176] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_174] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_170] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_204] + Group By Operator [GBY_203] (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_190] + Group By Operator [GBY_188] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_186] (rows=511 width=585) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_182] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_198] + Select Operator [SEL_197] (rows=1 width=8) + Output:["_col0"] + Group By Operator [GBY_196] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_24] + Group By Operator [GBY_23] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_150] (rows=191667562 width=135) + Conds:RS_19._col0=RS_183._col0(Inner) + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_183] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_182] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=174243235 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_149] (rows=174243235 width=135) + Conds:RS_12._col1=RS_171._col0(Inner),Output:["_col2"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_170] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_148] (rows=158402938 width=135) + Conds:RS_195._col0=RS_159._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_159] + PartitionCols:_col0 + Select Operator [SEL_157] (rows=86400 width=471) + Output:["_col0"] + Filter Operator [FIL_155] (rows=86400 width=471) + predicate:t_hour BETWEEN 6 AND 7 + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_195] + PartitionCols:_col0 + Select Operator [SEL_194] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_193] (rows=144002668 width=135) + predicate:((ws_ship_hdemo_sk BETWEEN DynamicValue(RS_13_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_13_household_demographics_hd_demo_sk_max) and in_bloom_filter(ws_ship_hdemo_sk, DynamicValue(RS_13_household_demographics_hd_demo_sk_bloom_filter))) and (ws_sold_time_sk BETWEEN DynamicValue(RS_10_time_dim_t_time_sk_min) AND DynamicValue(RS_10_time_dim_t_time_sk_max) and in_bloom_filter(ws_sold_time_sk, DynamicValue(RS_10_time_dim_t_time_sk_bloom_filter))) and (ws_web_page_sk BETWEEN DynamicValue(RS_20_web_page_wp_web_page_sk_min) AND DynamicValue(RS_20_web_page_wp_web_page_sk_max) and in_bloom_filter(ws_web_page_sk, DynamicValue(RS_20_web_page_wp_web_page_sk_bloom_filter))) and ws_ship_hdemo_sk is not null and ws_sold_time_sk is not null and ws_web_page_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_time_sk","ws_ship_hdemo_sk","ws_web_page_sk"] + <-Reducer 16 [BROADCAST_EDGE] vectorized + BROADCAST [RS_180] + Group By Operator [GBY_179] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_177] + 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_172] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_170] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_192] + Group By Operator [GBY_191] (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_189] + Group By Operator [GBY_187] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_184] (rows=511 width=585) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_182] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_168] + Group By Operator [GBY_167] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_165] + Group By Operator [GBY_163] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_160] (rows=86400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_157] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query91.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query91.q.out new file mode 100644 index 0000000000..0091f89c1a --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query91.q.out @@ -0,0 +1,200 @@ +PREHOOK: query: explain +select + cc_call_center_id Call_Center, + cc_name Call_Center_Name, + cc_manager Manager, + sum(cr_net_loss) Returns_Loss +from + call_center, + catalog_returns, + date_dim, + customer, + customer_address, + customer_demographics, + household_demographics +where + cr_call_center_sk = cc_call_center_sk +and cr_returned_date_sk = d_date_sk +and cr_returning_customer_sk= c_customer_sk +and cd_demo_sk = c_current_cdemo_sk +and hd_demo_sk = c_current_hdemo_sk +and ca_address_sk = c_current_addr_sk +and d_year = 1999 +and d_moy = 11 +and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') + or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) +and hd_buy_potential like '0-500%' +and ca_gmt_offset = -7 +group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status +order by sum(cr_net_loss) desc +PREHOOK: type: QUERY +PREHOOK: Input: default@call_center +PREHOOK: Input: default@catalog_returns +PREHOOK: Input: default@customer +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@customer_demographics +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@household_demographics +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + cc_call_center_id Call_Center, + cc_name Call_Center_Name, + cc_manager Manager, + sum(cr_net_loss) Returns_Loss +from + call_center, + catalog_returns, + date_dim, + customer, + customer_address, + customer_demographics, + household_demographics +where + cr_call_center_sk = cc_call_center_sk +and cr_returned_date_sk = d_date_sk +and cr_returning_customer_sk= c_customer_sk +and cd_demo_sk = c_current_cdemo_sk +and hd_demo_sk = c_current_hdemo_sk +and ca_address_sk = c_current_addr_sk +and d_year = 1999 +and d_moy = 11 +and ( (cd_marital_status = 'M' and cd_education_status = 'Unknown') + or(cd_marital_status = 'W' and cd_education_status = 'Advanced Degree')) +and hd_buy_potential like '0-500%' +and ca_gmt_offset = -7 +group by cc_call_center_id,cc_name,cc_manager,cd_marital_status,cd_education_status +order by sum(cr_net_loss) desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@call_center +POSTHOOK: Input: default@catalog_returns +POSTHOOK: Input: default@customer +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@customer_demographics +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@household_demographics +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 12 <- Map 14 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 3 <- Map 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 8 <- Reducer 12 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_171] + Select Operator [SEL_170] (rows=58564004 width=860) + Output:["_col0","_col1","_col2","_col3"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_169] + Select Operator [SEL_168] (rows=58564004 width=860) + Output:["_col0","_col1","_col2","_col4"] + Group By Operator [GBY_167] (rows=58564004 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_41] (rows=117128008 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col6)"],keys:_col1, _col2, _col3, _col4, _col5 + Merge Join Operator [MERGEJOIN_146] (rows=117128008 width=860) + Conds:RS_37._col8=RS_166._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_166] + PartitionCols:_col0 + Select Operator [SEL_165] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_164] (rows=3600 width=107) + predicate:(hd_buy_potential like '0-500%') + TableScan [TS_31] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_buy_potential"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col8 + Merge Join Operator [MERGEJOIN_145] (rows=106480005 width=860) + Conds:RS_149._col0=RS_35._col4(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col8"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_149] + PartitionCols:_col0 + Select Operator [SEL_148] (rows=930900 width=385) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_147] (rows=930900 width=385) + predicate:((cd_education_status) IN ('Unknown', 'Advanced Degree') and (cd_marital_status) IN ('M', 'W') and (struct(cd_marital_status,cd_education_status)) IN (const struct('M','Unknown'), const struct('W','Advanced Degree'))) + TableScan [TS_0] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_marital_status","cd_education_status"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_35] + PartitionCols:_col4 + Select Operator [SEL_30] (rows=96800003 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Merge Join Operator [MERGEJOIN_144] (rows=96800003 width=860) + Conds:RS_27._col0=RS_28._col3(Inner),Output:["_col1","_col2","_col5","_col6","_col7","_col9"] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_28] + PartitionCols:_col3 + Select Operator [SEL_23] (rows=34846646 width=106) + Output:["_col0","_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_143] (rows=34846646 width=106) + Conds:RS_20._col2=RS_163._col0(Inner),Output:["_col1","_col3","_col6","_col7","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_163] + PartitionCols:_col0 + Select Operator [SEL_162] (rows=60 width=2045) + Output:["_col0","_col1","_col2","_col3"] + TableScan [TS_15] (rows=60 width=2045) + default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_call_center_id","cc_name","cc_manager"] + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_20] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_142] (rows=31678769 width=106) + Conds:RS_158._col0=RS_161._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_158] + PartitionCols:_col0 + Select Operator [SEL_157] (rows=28798881 width=106) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_156] (rows=28798881 width=106) + predicate:(cr_call_center_sk is not null and cr_returned_date_sk is not null and cr_returning_customer_sk is not null) + TableScan [TS_9] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_returning_customer_sk","cr_call_center_sk","cr_net_loss"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_161] + PartitionCols:_col0 + Select Operator [SEL_160] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_159] (rows=18262 width=1119) + predicate:((d_moy = 11) and (d_year = 1999)) + TableScan [TS_12] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_141] (rows=88000001 width=860) + Conds:RS_152._col3=RS_155._col0(Inner),Output:["_col0","_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_152] + PartitionCols:_col3 + Select Operator [SEL_151] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_150] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null) + TableScan [TS_3] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_155] + PartitionCols:_col0 + Select Operator [SEL_154] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_153] (rows=20000000 width=1014) + predicate:(ca_gmt_offset = -7) + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_gmt_offset"] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query92.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query92.q.out new file mode 100644 index 0000000000..4c7a3cb17b --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query92.q.out @@ -0,0 +1,178 @@ +PREHOOK: query: explain +select + sum(ws_ext_discount_amt) as `Excess Discount Amount` +from + web_sales + ,item + ,date_dim +where +i_manufact_id = 269 +and i_item_sk = ws_item_sk +and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) +and d_date_sk = ws_sold_date_sk +and ws_ext_discount_amt + > ( + SELECT + 1.3 * avg(ws_ext_discount_amt) + FROM + web_sales + ,date_dim + WHERE + ws_item_sk = i_item_sk + and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) + and d_date_sk = ws_sold_date_sk + ) +order by sum(ws_ext_discount_amt) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@web_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + sum(ws_ext_discount_amt) as `Excess Discount Amount` +from + web_sales + ,item + ,date_dim +where +i_manufact_id = 269 +and i_item_sk = ws_item_sk +and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) +and d_date_sk = ws_sold_date_sk +and ws_ext_discount_amt + > ( + SELECT + 1.3 * avg(ws_ext_discount_amt) + FROM + web_sales + ,date_dim + WHERE + ws_item_sk = i_item_sk + and d_date between '1998-03-18' and + (cast('1998-03-18' as date) + 90 days) + and d_date_sk = ws_sold_date_sk + ) +order by sum(ws_ext_discount_amt) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@web_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 <- Reducer 2 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE) +Reducer 4 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 2 (SIMPLE_EDGE) +Reducer 7 <- Map 10 (SIMPLE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_135] + Limit [LIM_134] (rows=1 width=112) + Number of rows:100 + Select Operator [SEL_133] (rows=1 width=112) + Output:["_col0"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_132] + Select Operator [SEL_131] (rows=1 width=112) + Output:["_col1"] + Group By Operator [GBY_130] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(VALUE._col0)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_36] + Group By Operator [GBY_35] (rows=1 width=112) + Output:["_col0"],aggregations:["sum(_col2)"] + Select Operator [SEL_34] (rows=58081078 width=135) + Output:["_col2"] + Filter Operator [FIL_33] (rows=58081078 width=135) + predicate:(_col2 > _col5) + Merge Join Operator [MERGEJOIN_107] (rows=174243235 width=135) + Conds:RS_30._col1=RS_31._col2(Inner),Output:["_col2","_col5"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_104] (rows=158402938 width=135) + Conds:RS_126._col0=RS_110._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_110] + PartitionCols:_col0 + Select Operator [SEL_109] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_108] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1998-03-18 00:00:00' AND TIMESTAMP'1998-06-16 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col0 + Select Operator [SEL_125] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_124] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_24_item_i_item_sk_min) AND DynamicValue(RS_24_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_24_item_i_item_sk_bloom_filter))) and (ws_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(ws_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_ext_discount_amt"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_123] + Group By Operator [GBY_122] (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_121] + Group By Operator [GBY_120] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_119] (rows=231000 width=1436) + Output:["_col0"] + Select Operator [SEL_117] (rows=231000 width=1436) + Output:["_col0"] + Filter Operator [FIL_116] (rows=231000 width=1436) + predicate:(i_manufact_id = 269) + TableScan [TS_20] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_manufact_id"] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_115] + Group By Operator [GBY_114] (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_113] + Group By Operator [GBY_112] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_111] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_109] + <-Reducer 7 [ONE_TO_ONE_EDGE] + FORWARD [RS_31] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_106] (rows=87121617 width=135) + Conds:RS_129._col0=RS_118._col0(Inner),Output:["_col1","_col2"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_117] + <-Reducer 6 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_129] + PartitionCols:_col0 + Select Operator [SEL_128] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_127] (rows=79201469 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=158402938 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 + Please refer to the previous Merge Join Operator [MERGEJOIN_104] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query93.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query93.q.out new file mode 100644 index 0000000000..9910368c1d --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query93.q.out @@ -0,0 +1,131 @@ +PREHOOK: query: explain +select ss_customer_sk + ,sum(act_sales) sumsales + from (select ss_item_sk + ,ss_ticket_number + ,ss_customer_sk + ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price + else (ss_quantity*ss_sales_price) end act_sales + from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk + and sr_ticket_number = ss_ticket_number) + ,reason + where sr_reason_sk = r_reason_sk + and r_reason_desc = 'Did not like the warranty') t + group by ss_customer_sk + order by sumsales, ss_customer_sk +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@reason +PREHOOK: Input: default@store_returns +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select ss_customer_sk + ,sum(act_sales) sumsales + from (select ss_item_sk + ,ss_ticket_number + ,ss_customer_sk + ,case when sr_return_quantity is not null then (ss_quantity-sr_return_quantity)*ss_sales_price + else (ss_quantity*ss_sales_price) end act_sales + from store_sales left outer join store_returns on (sr_item_sk = ss_item_sk + and sr_ticket_number = ss_ticket_number) + ,reason + where sr_reason_sk = r_reason_sk + and r_reason_desc = 'Did not like the warranty') t + group by ss_customer_sk + order by sumsales, ss_customer_sk +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@reason +POSTHOOK: Input: default@store_returns +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 9 <- Reducer 6 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_81] + Limit [LIM_80] (rows=100 width=88) + Number of rows:100 + Select Operator [SEL_79] (rows=316797606 width=88) + Output:["_col0","_col1"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_78] + Group By Operator [GBY_77] (rows=316797606 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=633595212 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col0 + Select Operator [SEL_14] (rows=633595212 width=88) + Output:["_col0","_col2"] + Merge Join Operator [MERGEJOIN_63] (rows=633595212 width=88) + Conds:RS_11._col0, _col2=RS_76._col0, _col2(Inner),Output:["_col3","_col6","_col8","_col9"] + <-Reducer 2 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_11] + PartitionCols:_col0, _col2 + Merge Join Operator [MERGEJOIN_62] (rows=63350266 width=77) + Conds:RS_66._col1=RS_69._col0(Inner),Output:["_col0","_col2","_col3"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_66] + PartitionCols:_col1 + Select Operator [SEL_65] (rows=57591150 width=77) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_64] (rows=57591150 width=77) + predicate:sr_reason_sk is not null + TableScan [TS_0] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_item_sk","sr_reason_sk","sr_ticket_number","sr_return_quantity"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_69] + PartitionCols:_col0 + Select Operator [SEL_68] (rows=36 width=200) + Output:["_col0"] + Filter Operator [FIL_67] (rows=36 width=200) + predicate:(r_reason_desc = 'Did not like the warranty') + TableScan [TS_3] (rows=72 width=200) + default@reason,reason,Tbl:COMPLETE,Col:NONE,Output:["r_reason_sk","r_reason_desc"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_76] + PartitionCols:_col0, _col2 + Select Operator [SEL_75] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_74] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_11_store_returns_sr_item_sk_min) AND DynamicValue(RS_11_store_returns_sr_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_11_store_returns_sr_item_sk_bloom_filter))) and (ss_ticket_number BETWEEN DynamicValue(RS_11_store_returns_sr_ticket_number_min) AND DynamicValue(RS_11_store_returns_sr_ticket_number_max) and in_bloom_filter(ss_ticket_number, DynamicValue(RS_11_store_returns_sr_ticket_number_bloom_filter)))) + TableScan [TS_6] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk","ss_customer_sk","ss_ticket_number","ss_quantity","ss_sales_price"] + <-Reducer 6 [BROADCAST_EDGE] vectorized + BROADCAST [RS_71] + Group By Operator [GBY_70] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=63350264)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_54] + Group By Operator [GBY_53] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=63350264)"] + Select Operator [SEL_52] (rows=63350266 width=77) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_62] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_73] + Group By Operator [GBY_72] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=63350264)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_59] + Group By Operator [GBY_58] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=63350264)"] + Select Operator [SEL_57] (rows=63350266 width=77) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_62] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query94.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query94.q.out new file mode 100644 index 0000000000..5b7092a45d --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query94.q.out @@ -0,0 +1,235 @@ +PREHOOK: query: explain +select + count(distinct ws_order_number) as `order count` + ,sum(ws_ext_ship_cost) as `total shipping cost` + ,sum(ws_net_profit) as `total net profit` +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-5-01' and + (cast('1999-5-01' as date) + 60 days) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'TX' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and exists (select * + from web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) +and not exists(select * + from web_returns wr1 + where ws1.ws_order_number = wr1.wr_order_number) +order by count(distinct ws_order_number) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Input: default@web_site +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + count(distinct ws_order_number) as `order count` + ,sum(ws_ext_ship_cost) as `total shipping cost` + ,sum(ws_net_profit) as `total net profit` +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-5-01' and + (cast('1999-5-01' as date) + 60 days) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'TX' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and exists (select * + from web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) +and not exists(select * + from web_returns wr1 + where ws1.ws_order_number = wr1.wr_order_number) +order by count(distinct ws_order_number) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Input: default@web_site +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 3 <- Map 12 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 16 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 18 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_174] + Limit [LIM_173] (rows=1 width=344) + Number of rows:100 + Select Operator [SEL_172] (rows=1 width=344) + Output:["_col0","_col1","_col2"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] + Select Operator [SEL_170] (rows=1 width=344) + Output:["_col1","_col2","_col3"] + Group By Operator [GBY_169] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_168] + Group By Operator [GBY_167] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"] + Group By Operator [GBY_166] (rows=115958879 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_73] + PartitionCols:_col0 + Group By Operator [GBY_72] (rows=115958879 width=135) + Output:["_col0","_col2","_col3"],aggregations:["sum(_col5)","sum(_col6)"],keys:_col4 + Select Operator [SEL_41] (rows=115958879 width=135) + Output:["_col4","_col5","_col6"] + Filter Operator [FIL_40] (rows=115958879 width=135) + predicate:_col14 is null + Merge Join Operator [MERGEJOIN_129] (rows=231917759 width=135) + Conds:RS_37._col4=RS_165._col0(Left Outer),Output:["_col4","_col5","_col6","_col14"] + <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_165] + PartitionCols:_col0 + Select Operator [SEL_164] (rows=7199233 width=92) + Output:["_col0","_col1"] + Group By Operator [GBY_163] (rows=7199233 width=92) + Output:["_col0"],keys:KEY._col0 + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_162] + PartitionCols:_col0 + Group By Operator [GBY_161] (rows=14398467 width=92) + Output:["_col0"],keys:wr_order_number + TableScan [TS_25] (rows=14398467 width=92) + default@web_returns,wr1,Tbl:COMPLETE,Col:NONE,Output:["wr_order_number"] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_37] + PartitionCols:_col4 + Select Operator [SEL_36] (rows=210834322 width=135) + Output:["_col4","_col5","_col6"] + Merge Join Operator [MERGEJOIN_128] (rows=210834322 width=135) + Conds:RS_33._col4=RS_160._col0(Left Semi),Output:["_col3","_col4","_col5","_col6","_col14"],residual filter predicates:{(_col3 <> _col14)} + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_160] + PartitionCols:_col0 + Group By Operator [GBY_159] (rows=144002668 width=135) + Output:["_col0","_col1"],keys:_col0, _col1 + Select Operator [SEL_158] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_157] (rows=144002668 width=135) + predicate:ws_warehouse_sk is not null + TableScan [TS_22] (rows=144002668 width=135) + default@web_sales,ws2,Tbl:COMPLETE,Col:NONE,Output:["ws_warehouse_sk","ws_order_number"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col4 + Merge Join Operator [MERGEJOIN_127] (rows=191667562 width=135) + Conds:RS_18._col2=RS_148._col0(Inner),Output:["_col3","_col4","_col5","_col6"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_148] + PartitionCols:_col0 + Select Operator [SEL_147] (rows=42 width=1850) + Output:["_col0"] + Filter Operator [FIL_146] (rows=42 width=1850) + predicate:(web_company_name = 'pri') + TableScan [TS_9] (rows=84 width=1850) + default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_126] (rows=174243235 width=135) + Conds:RS_15._col1=RS_140._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_140] + PartitionCols:_col0 + Select Operator [SEL_139] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_138] (rows=20000000 width=1014) + predicate:(ca_state = 'TX') + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_125] (rows=158402938 width=135) + Conds:RS_156._col0=RS_132._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_132] + PartitionCols:_col0 + Select Operator [SEL_131] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_130] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_156] + PartitionCols:_col0 + Select Operator [SEL_155] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_154] (rows=144002668 width=135) + predicate:((ws_ship_addr_sk BETWEEN DynamicValue(RS_16_customer_address_ca_address_sk_min) AND DynamicValue(RS_16_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_16_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_13_date_dim_d_date_sk_min) AND DynamicValue(RS_13_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_13_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_19_web_site_web_site_sk_min) AND DynamicValue(RS_19_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_19_web_site_web_site_sk_bloom_filter))) and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_warehouse_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_137] + Group By Operator [GBY_136] (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_135] + Group By Operator [GBY_134] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_133] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_131] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_145] + Group By Operator [GBY_144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_143] + Group By Operator [GBY_142] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_141] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_139] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_153] + Group By Operator [GBY_152] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_151] + Group By Operator [GBY_150] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_149] (rows=42 width=1850) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_147] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out new file mode 100644 index 0000000000..bd2429b6f3 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query95.q.out @@ -0,0 +1,302 @@ +PREHOOK: query: explain +with ws_wh as +(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 + from web_sales ws1,web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) + select + count(distinct ws_order_number) as `order count` + ,sum(ws_ext_ship_cost) as `total shipping cost` + ,sum(ws_net_profit) as `total net profit` +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-5-01' and + (cast('1999-5-01' as date) + 60 days) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'TX' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and ws1.ws_order_number in (select ws_order_number + from ws_wh) +and ws1.ws_order_number in (select wr_order_number + from web_returns,ws_wh + where wr_order_number = ws_wh.ws_order_number) +order by count(distinct ws_order_number) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@customer_address +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@web_returns +PREHOOK: Input: default@web_sales +PREHOOK: Input: default@web_site +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ws_wh as +(select ws1.ws_order_number,ws1.ws_warehouse_sk wh1,ws2.ws_warehouse_sk wh2 + from web_sales ws1,web_sales ws2 + where ws1.ws_order_number = ws2.ws_order_number + and ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) + select + count(distinct ws_order_number) as `order count` + ,sum(ws_ext_ship_cost) as `total shipping cost` + ,sum(ws_net_profit) as `total net profit` +from + web_sales ws1 + ,date_dim + ,customer_address + ,web_site +where + d_date between '1999-5-01' and + (cast('1999-5-01' as date) + 60 days) +and ws1.ws_ship_date_sk = d_date_sk +and ws1.ws_ship_addr_sk = ca_address_sk +and ca_state = 'TX' +and ws1.ws_web_site_sk = web_site_sk +and web_company_name = 'pri' +and ws1.ws_order_number in (select ws_order_number + from ws_wh) +and ws1.ws_order_number in (select wr_order_number + from web_returns,ws_wh + where wr_order_number = ws_wh.ws_order_number) +order by count(distinct ws_order_number) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@customer_address +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@web_returns +POSTHOOK: Input: default@web_sales +POSTHOOK: Input: default@web_site +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE) +Map 16 <- Reducer 24 (BROADCAST_EDGE) +Map 22 <- Reducer 24 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 18 <- Map 23 (SIMPLE_EDGE), Reducer 17 (ONE_TO_ONE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Map 16 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 21 <- Reducer 20 (SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 12 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 21 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 9 vectorized + File Output Operator [FS_285] + Limit [LIM_284] (rows=1 width=344) + Number of rows:100 + Select Operator [SEL_283] (rows=1 width=344) + Output:["_col0","_col1","_col2"] + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_282] + Select Operator [SEL_281] (rows=1 width=344) + Output:["_col1","_col2","_col3"] + Group By Operator [GBY_280] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_279] + Group By Operator [GBY_278] (rows=1 width=344) + Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"] + Group By Operator [GBY_277] (rows=231917759 width=135) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_109] + PartitionCols:_col0 + Group By Operator [GBY_108] (rows=231917759 width=135) + Output:["_col0","_col2","_col3"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col3 + Merge Join Operator [MERGEJOIN_229] (rows=231917759 width=135) + Conds:RS_55._col3=RS_276._col0(Inner),Output:["_col3","_col4","_col5"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_276] + PartitionCols:_col0 + Group By Operator [GBY_275] (rows=87121617 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_40] + PartitionCols:_col0 + Group By Operator [GBY_39] (rows=174243235 width=135) + Output:["_col0"],keys:_col14 + Merge Join Operator [MERGEJOIN_223] (rows=174243235 width=135) + Conds:RS_35._col0=RS_254.wr_order_number(Inner),Output:["_col14"] + <-Map 23 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_254] + PartitionCols:wr_order_number + TableScan [TS_34] (rows=14398467 width=92) + default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_order_number"] + <-Reducer 17 [ONE_TO_ONE_EDGE] + FORWARD [RS_35] + PartitionCols:_col0 + Select Operator [SEL_33] (rows=158402938 width=135) + Output:["_col0"] + Filter Operator [FIL_32] (rows=158402938 width=135) + predicate:(_col0 <> _col2) + Merge Join Operator [MERGEJOIN_222] (rows=158402938 width=135) + Conds:RS_267._col1=RS_271._col1(Inner),Output:["_col0","_col1","_col2"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_267] + PartitionCols:_col1 + Select Operator [SEL_266] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_265] (rows=144002668 width=135) + predicate:(in_bloom_filter(ws_order_number, DynamicValue(RS_36_web_returns_wr_order_number_bloom_filter)) and ws_order_number BETWEEN DynamicValue(RS_36_web_returns_wr_order_number_min) AND DynamicValue(RS_36_web_returns_wr_order_number_max)) + TableScan [TS_25] (rows=144002668 width=135) + default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_warehouse_sk","ws_order_number"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_260] + Group By Operator [GBY_258] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=14398467)"] + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_257] + Group By Operator [GBY_256] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=14398467)"] + Select Operator [SEL_255] (rows=14398467 width=92) + Output:["_col0"] + Please refer to the previous TableScan [TS_34] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_271] + PartitionCols:_col1 + Select Operator [SEL_270] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_269] (rows=144002668 width=135) + predicate:(in_bloom_filter(ws_order_number, DynamicValue(RS_36_web_returns_wr_order_number_bloom_filter)) and ws_order_number BETWEEN DynamicValue(RS_36_web_returns_wr_order_number_min) AND DynamicValue(RS_36_web_returns_wr_order_number_max)) + TableScan [TS_27] (rows=144002668 width=135) + default@web_sales,ws2,Tbl:COMPLETE,Col:NONE,Output:["ws_warehouse_sk","ws_order_number"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_261] + Please refer to the previous Group By Operator [GBY_258] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_55] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_228] (rows=210834322 width=135) + Conds:RS_52._col3=RS_274._col0(Inner),Output:["_col3","_col4","_col5"] + <-Reducer 21 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_274] + PartitionCols:_col0 + Group By Operator [GBY_273] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col0 + Group By Operator [GBY_21] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Select Operator [SEL_20] (rows=158402938 width=135) + Output:["_col1"] + Filter Operator [FIL_19] (rows=158402938 width=135) + predicate:(_col0 <> _col2) + Merge Join Operator [MERGEJOIN_227] (rows=158402938 width=135) + Conds:RS_268._col1=RS_272._col1(Inner),Output:["_col0","_col1","_col2"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_268] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_266] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_272] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_270] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_226] (rows=191667562 width=135) + Conds:RS_49._col2=RS_248._col0(Inner),Output:["_col3","_col4","_col5"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_248] + PartitionCols:_col0 + Select Operator [SEL_247] (rows=42 width=1850) + Output:["_col0"] + Filter Operator [FIL_246] (rows=42 width=1850) + predicate:(web_company_name = 'pri') + TableScan [TS_9] (rows=84 width=1850) + default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_49] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_225] (rows=174243235 width=135) + Conds:RS_46._col1=RS_240._col0(Inner),Output:["_col2","_col3","_col4","_col5"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_240] + PartitionCols:_col0 + Select Operator [SEL_239] (rows=20000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_238] (rows=20000000 width=1014) + predicate:(ca_state = 'TX') + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_46] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_224] (rows=158402938 width=135) + Conds:RS_264._col0=RS_232._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_232] + PartitionCols:_col0 + Select Operator [SEL_231] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_230] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_264] + PartitionCols:_col0 + Select Operator [SEL_263] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_262] (rows=144002668 width=135) + predicate:((ws_order_number BETWEEN DynamicValue(RS_36_web_returns_wr_order_number_min) AND DynamicValue(RS_36_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_36_web_returns_wr_order_number_bloom_filter))) and (ws_ship_addr_sk BETWEEN DynamicValue(RS_47_customer_address_ca_address_sk_min) AND DynamicValue(RS_47_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_47_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_44_date_dim_d_date_sk_min) AND DynamicValue(RS_44_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_44_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_50_web_site_web_site_sk_min) AND DynamicValue(RS_50_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_50_web_site_web_site_sk_bloom_filter))) and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_259] + Please refer to the previous Group By Operator [GBY_258] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_237] + Group By Operator [GBY_236] (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_235] + Group By Operator [GBY_234] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_233] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_231] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_245] + Group By Operator [GBY_244] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_243] + Group By Operator [GBY_242] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_241] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_239] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_253] + Group By Operator [GBY_252] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_251] + Group By Operator [GBY_250] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_249] (rows=42 width=1850) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_247] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query96.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query96.q.out new file mode 100644 index 0000000000..b828449fa4 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query96.q.out @@ -0,0 +1,157 @@ +PREHOOK: query: explain +select count(*) +from store_sales + ,household_demographics + ,time_dim, store +where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and household_demographics.hd_dep_count = 5 + and store.s_store_name = 'ese' +order by count(*) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@household_demographics +PREHOOK: Input: default@store +PREHOOK: Input: default@store_sales +PREHOOK: Input: default@time_dim +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select count(*) +from store_sales + ,household_demographics + ,time_dim, store +where ss_sold_time_sk = time_dim.t_time_sk + and ss_hdemo_sk = household_demographics.hd_demo_sk + and ss_store_sk = s_store_sk + and time_dim.t_hour = 8 + and time_dim.t_minute >= 30 + and household_demographics.hd_dep_count = 5 + and store.s_store_name = 'ese' +order by count(*) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@household_demographics +POSTHOOK: Input: default@store +POSTHOOK: Input: default@store_sales +POSTHOOK: Input: default@time_dim +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 12 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_110] + Limit [LIM_109] (rows=1 width=8) + Number of rows:100 + Select Operator [SEL_108] (rows=1 width=8) + Output:["_col0"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_107] + Select Operator [SEL_106] (rows=1 width=8) + Output:["_col1"] + Group By Operator [GBY_105] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_24] + Group By Operator [GBY_23] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_77] (rows=766650239 width=88) + Conds:RS_19._col0=RS_96._col0(Inner) + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_96] + PartitionCols:_col0 + Select Operator [SEL_95] (rows=852 width=1910) + Output:["_col0"] + Filter Operator [FIL_94] (rows=852 width=1910) + predicate:(s_store_name = 'ese') + TableScan [TS_16] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_15] (rows=696954748 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_76] (rows=696954748 width=88) + Conds:RS_12._col1=RS_88._col0(Inner),Output:["_col2"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_88] + PartitionCols:_col0 + Select Operator [SEL_87] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_86] (rows=3600 width=107) + predicate:(hd_dep_count = 5) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_75] (rows=633595212 width=88) + Conds:RS_104._col0=RS_80._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_80] + PartitionCols:_col0 + Select Operator [SEL_79] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_78] (rows=14400 width=471) + predicate:((t_hour = 8) and (t_minute >= 30)) + TableScan [TS_3] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_104] + PartitionCols:_col0 + Select Operator [SEL_103] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_102] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_13_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_13_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_13_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_10_time_dim_t_time_sk_min) AND DynamicValue(RS_10_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_10_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_20_store_s_store_sk_min) AND DynamicValue(RS_20_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_20_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_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_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_93] + Group By Operator [GBY_92] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_91] + Group By Operator [GBY_90] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_89] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_87] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_101] + Group By Operator [GBY_100] (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_99] + Group By Operator [GBY_98] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_97] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_95] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_85] + Group By Operator [GBY_84] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_83] + Group By Operator [GBY_82] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_81] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_79] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query97.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query97.q.out new file mode 100644 index 0000000000..46f7ddba5e --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query97.q.out @@ -0,0 +1,166 @@ +PREHOOK: query: explain +with ssci as ( +select ss_customer_sk customer_sk + ,ss_item_sk item_sk +from store_sales,date_dim +where ss_sold_date_sk = d_date_sk + and d_month_seq between 1212 and 1212 + 11 +group by ss_customer_sk + ,ss_item_sk), +csci as( + select cs_bill_customer_sk customer_sk + ,cs_item_sk item_sk +from catalog_sales,date_dim +where cs_sold_date_sk = d_date_sk + and d_month_seq between 1212 and 1212 + 11 +group by cs_bill_customer_sk + ,cs_item_sk) + select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only + ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only + ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog +from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk + and ssci.item_sk = csci.item_sk) +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +with ssci as ( +select ss_customer_sk customer_sk + ,ss_item_sk item_sk +from store_sales,date_dim +where ss_sold_date_sk = d_date_sk + and d_month_seq between 1212 and 1212 + 11 +group by ss_customer_sk + ,ss_item_sk), +csci as( + select cs_bill_customer_sk customer_sk + ,cs_item_sk item_sk +from catalog_sales,date_dim +where cs_sold_date_sk = d_date_sk + and d_month_seq between 1212 and 1212 + 11 +group by cs_bill_customer_sk + ,cs_item_sk) + select sum(case when ssci.customer_sk is not null and csci.customer_sk is null then 1 else 0 end) store_only + ,sum(case when ssci.customer_sk is null and csci.customer_sk is not null then 1 else 0 end) catalog_only + ,sum(case when ssci.customer_sk is not null and csci.customer_sk is not null then 1 else 0 end) store_and_catalog +from ssci full outer join csci on (ssci.customer_sk=csci.customer_sk + and ssci.item_sk = csci.item_sk) +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 7 (BROADCAST_EDGE) +Map 11 <- Reducer 10 (BROADCAST_EDGE) +Reducer 10 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (ONE_TO_ONE_EDGE), Reducer 9 (ONE_TO_ONE_EDGE) +Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Map 11 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:100 + Stage-1 + Reducer 5 vectorized + File Output Operator [FS_96] + Limit [LIM_95] (rows=1 width=24) + Number of rows:100 + Group By Operator [GBY_94] (rows=1 width=24) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_34] + Group By Operator [GBY_33] (rows=1 width=24) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col0)","sum(_col1)","sum(_col2)"] + Select Operator [SEL_31] (rows=348477374 width=88) + Output:["_col0","_col1","_col2"] + Merge Join Operator [MERGEJOIN_69] (rows=348477374 width=88) + Conds:RS_86._col0, _col1=RS_93._col0, _col1(Outer),Output:["_col0","_col2"] + <-Reducer 3 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_86] + PartitionCols:_col0, _col1 + Group By Operator [GBY_85] (rows=316797606 width=88) + Output:["_col0","_col1"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0, _col1 + Group By Operator [GBY_10] (rows=633595212 width=88) + Output:["_col0","_col1"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_67] (rows=633595212 width=88) + Conds:RS_84._col0=RS_72._col0(Inner),Output:["_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_72] + PartitionCols:_col0 + Select Operator [SEL_71] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_70] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_84] + PartitionCols:_col0 + Select Operator [SEL_83] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_82] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_customer_sk"] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_81] + Group By Operator [GBY_80] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_78] + Group By Operator [GBY_76] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_73] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_71] + <-Reducer 9 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_93] + PartitionCols:_col0, _col1 + Group By Operator [GBY_92] (rows=158394413 width=135) + Output:["_col0","_col1"],keys:KEY._col0, KEY._col1 + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0, _col1 + Group By Operator [GBY_24] (rows=316788826 width=135) + Output:["_col0","_col1"],keys:_col1, _col2 + Merge Join Operator [MERGEJOIN_68] (rows=316788826 width=135) + Conds:RS_91._col0=RS_74._col0(Inner),Output:["_col1","_col2"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_74] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_71] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_91] + PartitionCols:_col0 + Select Operator [SEL_90] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_89] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_14] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_88] + Group By Operator [GBY_87] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_79] + Group By Operator [GBY_77] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_75] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_71] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query98.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query98.q.out new file mode 100644 index 0000000000..0cf4ec39a7 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query98.q.out @@ -0,0 +1,165 @@ +PREHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ss_ext_sales_price) as itemrevenue + ,sum(ss_ext_sales_price)*100/sum(sum(ss_ext_sales_price)) over + (partition by i_class) as revenueratio +from + store_sales + ,item + ,date_dim +where + ss_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and ss_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +PREHOOK: type: QUERY +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@item +PREHOOK: Input: default@store_sales +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select i_item_desc + ,i_category + ,i_class + ,i_current_price + ,sum(ss_ext_sales_price) as itemrevenue + ,sum(ss_ext_sales_price)*100/sum(sum(ss_ext_sales_price)) over + (partition by i_class) as revenueratio +from + store_sales + ,item + ,date_dim +where + ss_item_sk = i_item_sk + and i_category in ('Jewelry', 'Sports', 'Books') + and ss_sold_date_sk = d_date_sk + and d_date between cast('2001-01-12' as date) + and (cast('2001-01-12' as date) + 30 days) +group by + i_item_id + ,i_item_desc + ,i_category + ,i_class + ,i_current_price +order by + i_category + ,i_class + ,i_item_id + ,i_item_desc + ,revenueratio +POSTHOOK: type: QUERY +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@item +POSTHOOK: Input: default@store_sales +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) + +Stage-0 + Fetch Operator + limit:-1 + Stage-1 + Reducer 6 vectorized + File Output Operator [FS_84] + Select Operator [SEL_83] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_82] + Select Operator [SEL_81] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_80] (rows=348477374 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS FIRST","partition by:":"_col1"}] + Select Operator [SEL_79] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_78] + PartitionCols:_col1 + Group By Operator [GBY_77] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col2)"],keys:_col9, _col8, _col5, _col6, _col7 + Merge Join Operator [MERGEJOIN_57] (rows=696954748 width=88) + Conds:RS_12._col1=RS_68._col0(Inner),Output:["_col2","_col5","_col6","_col7","_col8","_col9"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_68] + PartitionCols:_col0 + Select Operator [SEL_67] (rows=462000 width=1436) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_66] (rows=462000 width=1436) + predicate:(i_category) IN ('Jewelry', 'Sports', 'Books') + TableScan [TS_6] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_id","i_item_desc","i_current_price","i_class","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_56] (rows=633595212 width=88) + Conds:RS_76._col0=RS_60._col0(Inner),Output:["_col1","_col2"] + <-Map 7 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_60] + PartitionCols:_col0 + Select Operator [SEL_59] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_58] (rows=8116 width=1119) + predicate:CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-01-12 00:00:00' AND TIMESTAMP'2001-02-11 00:00:00' + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_76] + PartitionCols:_col0 + Select Operator [SEL_75] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_74] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_13_item_i_item_sk_min) AND DynamicValue(RS_13_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_13_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_item_sk","ss_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_73] + Group By Operator [GBY_72] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_71] + Group By Operator [GBY_70] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_69] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_67] + <-Reducer 8 [BROADCAST_EDGE] vectorized + BROADCAST [RS_65] + Group By Operator [GBY_64] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_63] + Group By Operator [GBY_62] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_61] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_59] + diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query99.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query99.q.out new file mode 100644 index 0000000000..78d17f46b6 --- /dev/null +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query99.q.out @@ -0,0 +1,221 @@ +PREHOOK: query: explain +select + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk <= 30 ) then 1 else 0 end) as `30 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 30) and + (cs_ship_date_sk - cs_sold_date_sk <= 60) then 1 else 0 end ) as `31-60 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 60) and + (cs_ship_date_sk - cs_sold_date_sk <= 90) then 1 else 0 end) as `61-90 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 90) and + (cs_ship_date_sk - cs_sold_date_sk <= 120) then 1 else 0 end) as `91-120 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 120) then 1 else 0 end) as `>120 days` +from + catalog_sales + ,warehouse + ,ship_mode + ,call_center + ,date_dim +where + d_month_seq between 1212 and 1212 + 11 +and cs_ship_date_sk = d_date_sk +and cs_warehouse_sk = w_warehouse_sk +and cs_ship_mode_sk = sm_ship_mode_sk +and cs_call_center_sk = cc_call_center_sk +group by + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +order by substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +limit 100 +PREHOOK: type: QUERY +PREHOOK: Input: default@call_center +PREHOOK: Input: default@catalog_sales +PREHOOK: Input: default@date_dim +PREHOOK: Input: default@ship_mode +PREHOOK: Input: default@warehouse +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: explain +select + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk <= 30 ) then 1 else 0 end) as `30 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 30) and + (cs_ship_date_sk - cs_sold_date_sk <= 60) then 1 else 0 end ) as `31-60 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 60) and + (cs_ship_date_sk - cs_sold_date_sk <= 90) then 1 else 0 end) as `61-90 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 90) and + (cs_ship_date_sk - cs_sold_date_sk <= 120) then 1 else 0 end) as `91-120 days` + ,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 120) then 1 else 0 end) as `>120 days` +from + catalog_sales + ,warehouse + ,ship_mode + ,call_center + ,date_dim +where + d_month_seq between 1212 and 1212 + 11 +and cs_ship_date_sk = d_date_sk +and cs_warehouse_sk = w_warehouse_sk +and cs_ship_mode_sk = sm_ship_mode_sk +and cs_call_center_sk = cc_call_center_sk +group by + substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +order by substr(w_warehouse_name,1,20) + ,sm_type + ,cc_name +limit 100 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@call_center +POSTHOOK: Input: default@catalog_sales +POSTHOOK: Input: default@date_dim +POSTHOOK: Input: default@ship_mode +POSTHOOK: Input: default@warehouse +POSTHOOK: Output: hdfs://### HDFS PATH ### +Plan optimized by CBO. + +Vertex dependency in root stage +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (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 14 (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_136] + Limit [LIM_135] (rows=100 width=135) + Number of rows:100 + Select Operator [SEL_134] (rows=210822976 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_133] + Select Operator [SEL_132] (rows=210822976 width=135) + Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Group By Operator [GBY_131] (rows=210822976 width=135) + 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)"],keys:KEY._col0, KEY._col1, KEY._col2 + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_27] + PartitionCols:_col0, _col1, _col2 + Group By Operator [GBY_26] (rows=421645953 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)","sum(_col8)"],keys:_col3, _col2, _col11 + Top N Key Operator [TNK_54] (rows=421645953 width=135) + keys:_col3, _col2, _col11,sort order:+++,top n:100 + Merge Join Operator [MERGEJOIN_98] (rows=421645953 width=135) + Conds:RS_22._col1=RS_122._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col11"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_122] + PartitionCols:_col0 + Select Operator [SEL_121] (rows=60 width=2045) + Output:["_col0","_col1"] + TableScan [TS_17] (rows=60 width=2045) + default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_name"] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_22] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_97] (rows=383314495 width=135) + Conds:RS_19._col0=RS_115._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_115] + PartitionCols:_col0 + Select Operator [SEL_114] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_113] (rows=73049 width=1119) + predicate:d_month_seq BETWEEN 1212 AND 1223 + TableScan [TS_14] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_19] + PartitionCols:_col0 + Select Operator [SEL_13] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Merge Join Operator [MERGEJOIN_96] (rows=348467716 width=135) + Conds:RS_10._col3=RS_107._col0(Inner),Output:["_col0","_col1","_col4","_col5","_col6","_col7","_col8","_col10","_col12"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_107] + PartitionCols:_col0 + Select Operator [SEL_106] (rows=27 width=1029) + Output:["_col0","_col1"] + TableScan [TS_5] (rows=27 width=1029) + default@warehouse,warehouse,Tbl:COMPLETE,Col:NONE,Output:["w_warehouse_sk","w_warehouse_name"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_10] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_95] (rows=316788826 width=135) + Conds:RS_130._col2=RS_100._col0(Inner),Output:["_col0","_col1","_col3","_col4","_col5","_col6","_col7","_col8","_col10"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_100] + PartitionCols:_col0 + Select Operator [SEL_99] (rows=1 width=0) + Output:["_col0","_col1"] + TableScan [TS_3] (rows=1 width=0) + default@ship_mode,ship_mode,Tbl:PARTIAL,Col:NONE,Output:["sm_ship_mode_sk","sm_type"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_130] + PartitionCols:_col2 + Select Operator [SEL_129] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_128] (rows=287989836 width=135) + predicate:((cs_call_center_sk BETWEEN DynamicValue(RS_23_call_center_cc_call_center_sk_min) AND DynamicValue(RS_23_call_center_cc_call_center_sk_max) and in_bloom_filter(cs_call_center_sk, DynamicValue(RS_23_call_center_cc_call_center_sk_bloom_filter))) and (cs_ship_date_sk BETWEEN DynamicValue(RS_20_date_dim_d_date_sk_min) AND DynamicValue(RS_20_date_dim_d_date_sk_max) and in_bloom_filter(cs_ship_date_sk, DynamicValue(RS_20_date_dim_d_date_sk_bloom_filter))) and (cs_ship_mode_sk BETWEEN DynamicValue(RS_8_ship_mode_sm_ship_mode_sk_min) AND DynamicValue(RS_8_ship_mode_sm_ship_mode_sk_max) and in_bloom_filter(cs_ship_mode_sk, DynamicValue(RS_8_ship_mode_sm_ship_mode_sk_bloom_filter))) and (cs_warehouse_sk BETWEEN DynamicValue(RS_11_warehouse_w_warehouse_sk_min) AND DynamicValue(RS_11_warehouse_w_warehouse_sk_max) and in_bloom_filter(cs_warehouse_sk, DynamicValue(RS_11_warehouse_w_warehouse_sk_bloom_filter))) and cs_call_center_sk is not null and cs_ship_date_sk is not null and cs_ship_mode_sk is not null and cs_warehouse_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_date_sk","cs_call_center_sk","cs_ship_mode_sk","cs_warehouse_sk"] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_112] + Group By Operator [GBY_111] (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_110] + Group By Operator [GBY_109] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_108] (rows=27 width=1029) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_106] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_120] + Group By Operator [GBY_119] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_118] + Group By Operator [GBY_117] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_116] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_114] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_127] + Group By Operator [GBY_126] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + Group By Operator [GBY_124] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_123] (rows=60 width=2045) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_121] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_105] + Group By Operator [GBY_104] (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_103] + Group By Operator [GBY_102] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_101] (rows=1 width=0) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_99] + diff --git a/ql/src/test/results/clientpositive/perf/tez/query10.q.out b/ql/src/test/results/clientpositive/perf/tez/query10.q.out index 9a2a4bbec3..bba50fe1bf 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query10.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query10.q.out @@ -133,213 +133,225 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 10 <- Reducer 13 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) -Map 20 <- Reducer 16 (BROADCAST_EDGE) -Map 21 <- Reducer 19 (BROADCAST_EDGE) -Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) -Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Map 12 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (SIMPLE_EDGE) -Reducer 16 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 17 <- Map 12 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 19 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) -Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 11 (SIMPLE_EDGE), Reducer 15 (ONE_TO_ONE_EDGE), Reducer 18 (ONE_TO_ONE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Map 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (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 3 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_225] - Limit [LIM_224] (rows=100 width=88) + Reducer 8 vectorized + File Output Operator [FS_233] + Limit [LIM_232] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_223] (rows=1045432122 width=88) + Select Operator [SEL_231] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_222] - Select Operator [SEL_221] (rows=1045432122 width=88) + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_230] + Select Operator [SEL_229] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col6","_col8","_col10","_col12"] - Group By Operator [GBY_220] (rows=1045432122 width=88) + Group By Operator [GBY_228] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6, KEY._col7 - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_63] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_67] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 - Group By Operator [GBY_62] (rows=2090864244 width=88) + Group By Operator [GBY_66] (rows=843315281 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"],aggregations:["count()"],keys:_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 - Top N Key Operator [TNK_103] (rows=2090864244 width=88) + Top N Key Operator [TNK_103] (rows=843315281 width=88) keys:_col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13,sort order:++++++++,top n:100 - Select Operator [SEL_61] (rows=2090864244 width=88) + Select Operator [SEL_65] (rows=843315281 width=88) Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - Filter Operator [FIL_60] (rows=2090864244 width=88) + Filter Operator [FIL_64] (rows=843315281 width=88) predicate:(_col15 is not null or _col17 is not null) - Merge Join Operator [MERGEJOIN_173] (rows=2090864244 width=88) - Conds:RS_55._col0=RS_56._col0(Left Semi),RS_55._col0=RS_211._col0(Left Outer),RS_55._col0=RS_219._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col15","_col17"] - <-Reducer 3 [SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_55] + Merge Join Operator [MERGEJOIN_181] (rows=843315281 width=88) + Conds:RS_61._col0=RS_227._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col15","_col17"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_227] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_169] (rows=96800003 width=860) - Conds:RS_50._col1=RS_182._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Map 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_182] - PartitionCols:_col0 - Select Operator [SEL_181] (rows=1861800 width=385) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Filter Operator [FIL_180] (rows=1861800 width=385) - predicate:cd_demo_sk is not null - TableScan [TS_6] (rows=1861800 width=385) - default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_50] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_168] (rows=88000001 width=860) - Conds:RS_176._col2=RS_179._col0(Inner),Output:["_col0","_col1"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_176] - PartitionCols:_col2 - Select Operator [SEL_175] (rows=80000000 width=860) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_174] (rows=80000000 width=860) - predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_179] - PartitionCols:_col0 - Select Operator [SEL_178] (rows=40000000 width=1014) - Output:["_col0"] - Filter Operator [FIL_177] (rows=40000000 width=1014) - predicate:((ca_county) IN ('Walker County', 'Richland County', 'Gaines County', 'Douglas County', 'Dona Ana County') and ca_address_sk is not null) - TableScan [TS_3] (rows=40000000 width=1014) - default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_56] - PartitionCols:_col0 - Group By Operator [GBY_54] (rows=633595212 width=88) - Output:["_col0"],keys:_col0 - Select Operator [SEL_18] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_170] (rows=633595212 width=88) - Conds:RS_203._col0=RS_185._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_185] - PartitionCols:_col0 - Select Operator [SEL_184] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_183] (rows=36524 width=1119) - predicate:((d_year = 2002) and d_date_sk is not null and d_moy BETWEEN 4 AND 7) - TableScan [TS_12] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_203] - PartitionCols:_col0 - Select Operator [SEL_202] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_201] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_55_c_c_customer_sk_min) AND DynamicValue(RS_55_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_55_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_9] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_198] - Group By Operator [GBY_197] (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_191] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_186] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_184] - <-Reducer 7 [BROADCAST_EDGE] vectorized - BROADCAST [RS_200] - Group By Operator [GBY_199] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_136] - Group By Operator [GBY_135] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] - Select Operator [SEL_134] (rows=96800003 width=860) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_169] - <-Reducer 15 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_211] - PartitionCols:_col0 - Select Operator [SEL_210] (rows=79201469 width=135) + Select Operator [SEL_226] (rows=158394413 width=135) Output:["_col0","_col1"] - Group By Operator [GBY_209] (rows=79201469 width=135) + Group By Operator [GBY_225] (rows=158394413 width=135) Output:["_col0"],keys:KEY._col0 - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col0 - Group By Operator [GBY_29] (rows=158402938 width=135) - Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_171] (rows=158402938 width=135) - Conds:RS_208._col0=RS_187._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_187] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_184] - <-Map 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_208] - PartitionCols:_col0 - Select Operator [SEL_207] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_206] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_26_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_19] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] - <-Reducer 16 [BROADCAST_EDGE] vectorized - BROADCAST [RS_205] - Group By Operator [GBY_204] (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_195] - Group By Operator [GBY_192] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_188] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_184] - <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_219] - PartitionCols:_col0 - Select Operator [SEL_218] (rows=158394413 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_217] (rows=158394413 width=135) - Output:["_col0"],keys:KEY._col0 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_44] PartitionCols:_col0 Group By Operator [GBY_43] (rows=316788826 width=135) Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_172] (rows=316788826 width=135) - Conds:RS_216._col0=RS_189._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_189] + Merge Join Operator [MERGEJOIN_178] (rows=316788826 width=135) + Conds:RS_224._col0=RS_197._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_197] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_184] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_216] + Select Operator [SEL_192] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_191] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null and d_moy BETWEEN 4 AND 7) + TableScan [TS_12] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_224] PartitionCols:_col0 - Select Operator [SEL_215] (rows=287989836 width=135) + Select Operator [SEL_223] (rows=287989836 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_214] (rows=287989836 width=135) + Filter Operator [FIL_222] (rows=287989836 width=135) predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_40_date_dim_d_date_sk_min) AND DynamicValue(RS_40_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_40_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_33] (rows=287989836 width=135) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] - <-Reducer 19 [BROADCAST_EDGE] vectorized - BROADCAST [RS_213] - Group By Operator [GBY_212] (rows=1 width=12) + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_221] + Group By Operator [GBY_220] (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_196] - Group By Operator [GBY_193] (rows=1 width=12) + <-Map 14 [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_190] (rows=36524 width=1119) + Select Operator [SEL_198] (rows=36524 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_184] + Please refer to the previous Select Operator [SEL_192] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_61] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_180] (rows=766650239 width=88) + Conds:RS_58._col0=RS_219._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col15"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_219] + PartitionCols:_col0 + Select Operator [SEL_218] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_217] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Group By Operator [GBY_29] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_177] (rows=158402938 width=135) + Conds:RS_216._col0=RS_195._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_195] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_192] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_216] + PartitionCols:_col0 + Select Operator [SEL_215] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_214] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_26_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_19] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 18 [BROADCAST_EDGE] vectorized + BROADCAST [RS_213] + Group By Operator [GBY_212] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_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_196] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_192] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_58] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_179] (rows=696954748 width=88) + Conds:RS_55._col0=RS_56._col0(Left Semi),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_55] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_175] (rows=96800003 width=860) + Conds:RS_50._col1=RS_190._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_190] + PartitionCols:_col0 + Select Operator [SEL_189] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_188] (rows=1861800 width=385) + predicate:cd_demo_sk is not null + TableScan [TS_6] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_174] (rows=88000001 width=860) + Conds:RS_184._col2=RS_187._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_184] + PartitionCols:_col2 + Select Operator [SEL_183] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_182] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col0 + Select Operator [SEL_186] (rows=40000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_185] (rows=40000000 width=1014) + predicate:((ca_county) IN ('Walker County', 'Richland County', 'Gaines County', 'Douglas County', 'Dona Ana County') and ca_address_sk is not null) + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_56] + PartitionCols:_col0 + Group By Operator [GBY_54] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_18] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_176] (rows=633595212 width=88) + Conds:RS_211._col0=RS_193._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_193] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_192] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_211] + PartitionCols:_col0 + Select Operator [SEL_210] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_209] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_55_c_c_customer_sk_min) AND DynamicValue(RS_55_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_55_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_9] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_206] + Group By Operator [GBY_205] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_202] + Group By Operator [GBY_199] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_194] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_192] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_208] + Group By Operator [GBY_207] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_136] + Group By Operator [GBY_135] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] + Select Operator [SEL_134] (rows=96800003 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_175] diff --git a/ql/src/test/results/clientpositive/perf/tez/query11.q.out b/ql/src/test/results/clientpositive/perf/tez/query11.q.out index 2aa09d48f4..11c9cf717b 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query11.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query11.q.out @@ -159,291 +159,303 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 21 (BROADCAST_EDGE) -Map 11 <- Reducer 23 (BROADCAST_EDGE) -Map 15 <- Reducer 20 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE) -Map 7 <- Reducer 22 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE) -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 13 <- Map 24 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 17 <- Map 24 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 20 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 22 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) -Reducer 26 <- Map 24 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 24 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Map 1 <- Reducer 23 (BROADCAST_EDGE) +Map 13 <- Reducer 25 (BROADCAST_EDGE) +Map 17 <- Reducer 22 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE) +Map 9 <- Reducer 24 (BROADCAST_EDGE), Reducer 28 (BROADCAST_EDGE) +Reducer 10 <- Map 21 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 11 <- Map 26 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 15 <- Map 26 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 19 <- Map 26 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 26 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 26 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 26 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 10 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 8 <- Map 19 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Map 24 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 16 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 20 (SIMPLE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_360] - Limit [LIM_359] (rows=100 width=88) + Reducer 8 vectorized + File Output Operator [FS_368] + Limit [LIM_367] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_358] (rows=574987679 width=88) + Select Operator [SEL_366] (rows=191662559 width=88) Output:["_col0"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_93] - Select Operator [SEL_92] (rows=574987679 width=88) + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_97] + Select Operator [SEL_96] (rows=191662559 width=88) Output:["_col0"] - Filter Operator [FIL_91] (rows=574987679 width=88) + Filter Operator [FIL_95] (rows=191662559 width=88) predicate:CASE WHEN (_col3 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col1 / _col5) > (_col8 / _col3))) ELSE ((null > (_col8 / _col3))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col1 / _col5) > null)) ELSE (null) END) END - Merge Join Operator [MERGEJOIN_283] (rows=1149975359 width=88) - Conds:RS_325._col0=RS_337._col0(Inner),RS_337._col0=RS_347._col0(Inner),RS_337._col0=RS_357._col0(Inner),Output:["_col1","_col3","_col5","_col7","_col8"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_337] + Merge Join Operator [MERGEJOIN_291] (rows=383325119 width=88) + Conds:RS_92._col2=RS_365._col0(Inner),Output:["_col1","_col3","_col5","_col7","_col8"] + <-Reducer 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_365] PartitionCols:_col0 - Select Operator [SEL_336] (rows=116159124 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_335] (rows=116159124 width=88) - predicate:(_col7 > 0) - Select Operator [SEL_334] (rows=348477374 width=88) - Output:["_col0","_col7"] - Group By Operator [GBY_333] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_39] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_38] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_36] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_278] (rows=696954748 width=88) - Conds:RS_33._col1=RS_316._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_316] - PartitionCols:_col0 - Select Operator [SEL_312] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_311] (rows=80000000 width=860) - predicate:(c_customer_id is not null and c_customer_sk is not null) - TableScan [TS_71] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_33] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_277] (rows=633595212 width=88) - Conds:RS_332._col0=RS_294._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_294] - PartitionCols:_col0 - Select Operator [SEL_288] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_285] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - TableScan [TS_68] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_332] - PartitionCols:_col0 - Select Operator [SEL_331] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_330] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_34_customer_c_customer_sk_min) AND DynamicValue(RS_34_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_34_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_31_date_dim_d_date_sk_min) AND DynamicValue(RS_31_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_31_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_21] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] - <-Reducer 22 [BROADCAST_EDGE] vectorized - BROADCAST [RS_327] - Group By Operator [GBY_326] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_304] - Group By Operator [GBY_300] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_295] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_288] - <-Reducer 26 [BROADCAST_EDGE] vectorized - BROADCAST [RS_329] - Group By Operator [GBY_328] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_322] - Group By Operator [GBY_320] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_317] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_312] - <-Reducer 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_347] - PartitionCols:_col0 - Select Operator [SEL_346] (rows=29040539 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_345] (rows=29040539 width=135) - predicate:(_col7 > 0) - Select Operator [SEL_344] (rows=87121617 width=135) - Output:["_col0","_col7"] - Group By Operator [GBY_343] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_61] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_60] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_58] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_280] (rows=174243235 width=135) - Conds:RS_55._col1=RS_318._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_318] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_312] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_279] (rows=158402938 width=135) - Conds:RS_342._col0=RS_296._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_296] - PartitionCols:_col0 - Select Operator [SEL_289] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_286] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_68] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_342] - PartitionCols:_col0 - Select Operator [SEL_341] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_340] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_53_date_dim_d_date_sk_min) AND DynamicValue(RS_53_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_53_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_43] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_339] - Group By Operator [GBY_338] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_305] - Group By Operator [GBY_301] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_297] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_289] - <-Reducer 18 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_357] - PartitionCols:_col0 - Select Operator [SEL_356] (rows=348477374 width=88) + Select Operator [SEL_364] (rows=348477374 width=88) Output:["_col0","_col1","_col2"] - Group By Operator [GBY_355] (rows=348477374 width=88) + Group By Operator [GBY_363] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_83] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 Group By Operator [GBY_82] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 Select Operator [SEL_80] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_282] (rows=696954748 width=88) - Conds:RS_77._col1=RS_313._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_313] + Merge Join Operator [MERGEJOIN_288] (rows=696954748 width=88) + Conds:RS_77._col1=RS_321._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_321] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_312] - <-Reducer 16 [SIMPLE_EDGE] + Select Operator [SEL_320] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_319] (rows=80000000 width=860) + predicate:(c_customer_id is not null and c_customer_sk is not null) + TableScan [TS_71] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_77] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_281] (rows=633595212 width=88) - Conds:RS_354._col0=RS_290._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_290] + Merge Join Operator [MERGEJOIN_287] (rows=633595212 width=88) + Conds:RS_362._col0=RS_298._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_298] PartitionCols:_col0 - Select Operator [SEL_287] (rows=36524 width=1119) + Select Operator [SEL_295] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_284] (rows=36524 width=1119) + Filter Operator [FIL_292] (rows=36524 width=1119) predicate:((d_year = 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_68] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_354] + TableScan [TS_68] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_362] PartitionCols:_col0 - Select Operator [SEL_353] (rows=575995635 width=88) + Select Operator [SEL_361] (rows=575995635 width=88) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_352] (rows=575995635 width=88) + Filter Operator [FIL_360] (rows=575995635 width=88) predicate:((ss_customer_sk BETWEEN DynamicValue(RS_78_customer_c_customer_sk_min) AND DynamicValue(RS_78_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_78_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_75_date_dim_d_date_sk_min) AND DynamicValue(RS_75_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_75_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) TableScan [TS_65] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] - <-Reducer 20 [BROADCAST_EDGE] vectorized - BROADCAST [RS_349] - Group By Operator [GBY_348] (rows=1 width=12) + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_357] + Group By Operator [GBY_356] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_302] - Group By Operator [GBY_298] (rows=1 width=12) + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_310] + Group By Operator [GBY_306] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_291] (rows=36524 width=1119) + Select Operator [SEL_299] (rows=36524 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_287] - <-Reducer 25 [BROADCAST_EDGE] vectorized - BROADCAST [RS_351] - Group By Operator [GBY_350] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_295] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_359] + Group By Operator [GBY_358] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_321] - Group By Operator [GBY_319] (rows=1 width=12) + <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_329] + Group By Operator [GBY_327] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_314] (rows=80000000 width=860) + Select Operator [SEL_322] (rows=80000000 width=860) Output:["_col0"] - Please refer to the previous Select Operator [SEL_312] - <-Reducer 4 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_325] - PartitionCols:_col0 - Select Operator [SEL_324] (rows=87121617 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_323] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_17] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_15] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_276] (rows=174243235 width=135) - Conds:RS_12._col1=RS_315._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_315] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_312] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_275] (rows=158402938 width=135) - Conds:RS_310._col0=RS_292._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_292] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_287] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_310] - PartitionCols:_col0 - Select Operator [SEL_309] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_308] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] - <-Reducer 21 [BROADCAST_EDGE] vectorized - BROADCAST [RS_307] - Group By Operator [GBY_306] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_303] - Group By Operator [GBY_299] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_293] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_287] + Please refer to the previous Select Operator [SEL_320] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_92] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_290] (rows=140552545 width=88) + Conds:RS_89._col2=RS_355._col0(Inner),Output:["_col1","_col2","_col3","_col5"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_355] + PartitionCols:_col0 + Select Operator [SEL_354] (rows=29040539 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_353] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_352] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_351] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_60] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_58] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_286] (rows=174243235 width=135) + Conds:RS_55._col1=RS_326._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_326] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_320] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_285] (rows=158402938 width=135) + Conds:RS_350._col0=RS_304._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_304] + PartitionCols:_col0 + Select Operator [SEL_297] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_294] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_68] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_350] + PartitionCols:_col0 + Select Operator [SEL_349] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_348] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_53_date_dim_d_date_sk_min) AND DynamicValue(RS_53_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_53_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_43] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_347] + Group By Operator [GBY_346] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_313] + Group By Operator [GBY_309] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_305] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_297] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_89] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_289] (rows=127775039 width=88) + Conds:RS_333._col0=RS_345._col0(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_345] + PartitionCols:_col0 + Select Operator [SEL_344] (rows=116159124 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_343] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_342] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_341] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_38] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_36] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_284] (rows=696954748 width=88) + Conds:RS_33._col1=RS_324._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_324] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_320] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_283] (rows=633595212 width=88) + Conds:RS_340._col0=RS_302._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_302] + PartitionCols:_col0 + Select Operator [SEL_296] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_293] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_68] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_340] + PartitionCols:_col0 + Select Operator [SEL_339] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_338] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_34_customer_c_customer_sk_min) AND DynamicValue(RS_34_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_34_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_31_date_dim_d_date_sk_min) AND DynamicValue(RS_31_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_31_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_21] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_list_price"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_335] + Group By Operator [GBY_334] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_312] + Group By Operator [GBY_308] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_303] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 28 [BROADCAST_EDGE] vectorized + BROADCAST [RS_337] + Group By Operator [GBY_336] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_330] + Group By Operator [GBY_328] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_325] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_320] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_333] + PartitionCols:_col0 + Select Operator [SEL_332] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_331] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_17] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_282] (rows=174243235 width=135) + Conds:RS_12._col1=RS_323._col0(Inner),Output:["_col2","_col3","_col7","_col8","_col9","_col10","_col11","_col12","_col13"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_323] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_320] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_281] (rows=158402938 width=135) + Conds:RS_318._col0=RS_300._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_300] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_295] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_318] + PartitionCols:_col0 + Select Operator [SEL_317] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_316] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_list_price"] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_315] + Group By Operator [GBY_314] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_311] + Group By Operator [GBY_307] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_301] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_295] diff --git a/ql/src/test/results/clientpositive/perf/tez/query14.q.out b/ql/src/test/results/clientpositive/perf/tez/query14.q.out index 228897c41c..3866c08184 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query14.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query14.q.out @@ -1,6 +1,9 @@ -Warning: Shuffle Join MERGEJOIN[1455][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 5' is a cross product -Warning: Shuffle Join MERGEJOIN[1468][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 12' is a cross product -Warning: Shuffle Join MERGEJOIN[1481][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 16' is a cross product +Warning: Shuffle Join MERGEJOIN[1446][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[1458][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[1448][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 13' is a cross product +Warning: Shuffle Join MERGEJOIN[1471][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 14' is a cross product +Warning: Shuffle Join MERGEJOIN[1450][tables = [$hdt$_2, $hdt$_3]] in Stage 'Reducer 18' is a cross product +Warning: Shuffle Join MERGEJOIN[1484][tables = [$hdt$_2, $hdt$_3, $hdt$_1]] in Stage 'Reducer 19' is a cross product PREHOOK: query: explain with cross_items as (select i_item_sk ss_item_sk @@ -222,1245 +225,1278 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 108 (BROADCAST_EDGE) -Map 100 <- Reducer 103 (BROADCAST_EDGE), Reducer 71 (BROADCAST_EDGE) -Map 110 <- Reducer 105 (BROADCAST_EDGE), Reducer 74 (BROADCAST_EDGE) -Map 111 <- Reducer 107 (BROADCAST_EDGE), Reducer 77 (BROADCAST_EDGE) -Map 112 <- Reducer 58 (BROADCAST_EDGE), Reducer 81 (BROADCAST_EDGE), Reducer 98 (BROADCAST_EDGE) -Map 113 <- Reducer 62 (BROADCAST_EDGE), Reducer 91 (BROADCAST_EDGE), Reducer 99 (BROADCAST_EDGE) -Map 17 <- Reducer 22 (BROADCAST_EDGE) -Map 33 <- Reducer 38 (BROADCAST_EDGE) -Map 43 <- Reducer 109 (BROADCAST_EDGE) -Map 47 <- Reducer 26 (BROADCAST_EDGE) -Map 48 <- Reducer 40 (BROADCAST_EDGE) -Map 49 <- Reducer 54 (BROADCAST_EDGE), Reducer 66 (BROADCAST_EDGE), Reducer 78 (BROADCAST_EDGE) -Reducer 101 <- Map 100 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE) -Reducer 103 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 104 <- Map 102 (SIMPLE_EDGE), Map 110 (SIMPLE_EDGE) -Reducer 105 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 106 <- Map 102 (SIMPLE_EDGE), Map 111 (SIMPLE_EDGE) -Reducer 107 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 108 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 109 <- Map 102 (CUSTOM_SIMPLE_EDGE) -Reducer 11 <- Union 10 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 57 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 13 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 15 <- Union 14 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE), Reducer 32 (CUSTOM_SIMPLE_EDGE), Reducer 61 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 19 <- Map 17 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 20 <- Map 17 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 21 (SIMPLE_EDGE), Map 47 (SIMPLE_EDGE), Union 24 (CONTAINS) -Reducer 25 <- Union 24 (CUSTOM_SIMPLE_EDGE) -Reducer 26 <- Map 21 (CUSTOM_SIMPLE_EDGE) -Reducer 27 <- Map 21 (SIMPLE_EDGE), Map 47 (SIMPLE_EDGE), Union 28 (CONTAINS) -Reducer 29 <- Union 28 (CUSTOM_SIMPLE_EDGE) -Reducer 30 <- Map 21 (SIMPLE_EDGE), Map 47 (SIMPLE_EDGE), Union 31 (CONTAINS) +Map 1 <- Reducer 114 (BROADCAST_EDGE) +Map 106 <- Reducer 109 (BROADCAST_EDGE), Reducer 77 (BROADCAST_EDGE) +Map 116 <- Reducer 111 (BROADCAST_EDGE), Reducer 80 (BROADCAST_EDGE) +Map 117 <- Reducer 113 (BROADCAST_EDGE), Reducer 83 (BROADCAST_EDGE) +Map 118 <- Reducer 104 (BROADCAST_EDGE), Reducer 63 (BROADCAST_EDGE), Reducer 87 (BROADCAST_EDGE) +Map 119 <- Reducer 105 (BROADCAST_EDGE), Reducer 68 (BROADCAST_EDGE), Reducer 97 (BROADCAST_EDGE) +Map 20 <- Reducer 25 (BROADCAST_EDGE) +Map 36 <- Reducer 41 (BROADCAST_EDGE) +Map 46 <- Reducer 115 (BROADCAST_EDGE) +Map 50 <- Reducer 29 (BROADCAST_EDGE) +Map 51 <- Reducer 43 (BROADCAST_EDGE) +Map 52 <- Reducer 58 (BROADCAST_EDGE), Reducer 72 (BROADCAST_EDGE), Reducer 84 (BROADCAST_EDGE) +Reducer 10 <- Map 1 (SIMPLE_EDGE), Map 108 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 100 <- Reducer 98 (SIMPLE_EDGE), Union 93 (CONTAINS) +Reducer 101 <- Map 69 (SIMPLE_EDGE), Reducer 112 (SIMPLE_EDGE) +Reducer 102 <- Reducer 101 (SIMPLE_EDGE), Union 90 (CONTAINS) +Reducer 103 <- Reducer 101 (SIMPLE_EDGE), Union 93 (CONTAINS) +Reducer 104 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 105 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 107 <- Map 106 (SIMPLE_EDGE), Map 108 (SIMPLE_EDGE) +Reducer 109 <- Map 108 (CUSTOM_SIMPLE_EDGE) +Reducer 110 <- Map 108 (SIMPLE_EDGE), Map 116 (SIMPLE_EDGE) +Reducer 111 <- Map 108 (CUSTOM_SIMPLE_EDGE) +Reducer 112 <- Map 108 (SIMPLE_EDGE), Map 117 (SIMPLE_EDGE) +Reducer 113 <- Map 108 (CUSTOM_SIMPLE_EDGE) +Reducer 114 <- Map 108 (CUSTOM_SIMPLE_EDGE) +Reducer 115 <- Map 108 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Union 11 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 32 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE), Reducer 62 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 15 <- Map 1 (SIMPLE_EDGE), Map 108 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 17 <- Union 16 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 35 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 67 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 108 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 21 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 22 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 23 <- Map 20 (SIMPLE_EDGE), Map 24 (SIMPLE_EDGE), Union 16 (CONTAINS) +Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 28 <- Union 27 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 24 (CUSTOM_SIMPLE_EDGE) +Reducer 30 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 31 (CONTAINS) Reducer 32 <- Union 31 (CUSTOM_SIMPLE_EDGE) -Reducer 34 <- Map 33 (SIMPLE_EDGE), Map 37 (SIMPLE_EDGE), Union 3 (CONTAINS) -Reducer 35 <- Map 33 (SIMPLE_EDGE), Map 37 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 36 <- Map 33 (SIMPLE_EDGE), Map 37 (SIMPLE_EDGE), Union 14 (CONTAINS) -Reducer 38 <- Map 37 (CUSTOM_SIMPLE_EDGE) -Reducer 39 <- Map 37 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE), Union 24 (CONTAINS) +Reducer 33 <- Map 24 (SIMPLE_EDGE), Map 50 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 35 <- Union 34 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 3 (CONTAINS) +Reducer 38 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 11 (CONTAINS) +Reducer 39 <- Map 36 (SIMPLE_EDGE), Map 40 (SIMPLE_EDGE), Union 16 (CONTAINS) Reducer 4 <- Union 3 (CUSTOM_SIMPLE_EDGE) -Reducer 40 <- Map 37 (CUSTOM_SIMPLE_EDGE) -Reducer 41 <- Map 37 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE), Union 28 (CONTAINS) -Reducer 42 <- Map 37 (SIMPLE_EDGE), Map 48 (SIMPLE_EDGE), Union 31 (CONTAINS) -Reducer 44 <- Map 102 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE), Union 24 (CONTAINS) -Reducer 45 <- Map 102 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE), Union 28 (CONTAINS) -Reducer 46 <- Map 102 (SIMPLE_EDGE), Map 43 (SIMPLE_EDGE), Union 31 (CONTAINS) -Reducer 5 <- Reducer 25 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE), Reducer 52 (CUSTOM_SIMPLE_EDGE), Union 6 (CONTAINS) -Reducer 50 <- Map 49 (SIMPLE_EDGE), Map 53 (SIMPLE_EDGE) -Reducer 51 <- Map 63 (SIMPLE_EDGE), Reducer 50 (SIMPLE_EDGE), Reducer 65 (ONE_TO_ONE_EDGE) -Reducer 52 <- Reducer 51 (SIMPLE_EDGE) -Reducer 54 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 55 <- Map 112 (SIMPLE_EDGE), Map 53 (SIMPLE_EDGE) -Reducer 56 <- Map 63 (SIMPLE_EDGE), Reducer 55 (SIMPLE_EDGE), Reducer 80 (ONE_TO_ONE_EDGE) -Reducer 57 <- Reducer 56 (SIMPLE_EDGE) -Reducer 58 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 59 <- Map 113 (SIMPLE_EDGE), Map 53 (SIMPLE_EDGE) -Reducer 60 <- Map 63 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE), Reducer 90 (ONE_TO_ONE_EDGE) -Reducer 61 <- Reducer 60 (SIMPLE_EDGE) -Reducer 62 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 64 <- Map 63 (SIMPLE_EDGE), Reducer 70 (ONE_TO_ONE_EDGE) -Reducer 65 <- Reducer 64 (SIMPLE_EDGE) -Reducer 66 <- Reducer 65 (CUSTOM_SIMPLE_EDGE) -Reducer 67 <- Map 63 (SIMPLE_EDGE), Reducer 101 (SIMPLE_EDGE) -Reducer 68 <- Reducer 67 (SIMPLE_EDGE), Union 69 (CONTAINS) -Reducer 7 <- Union 6 (SIMPLE_EDGE) -Reducer 70 <- Union 69 (SIMPLE_EDGE) -Reducer 71 <- Map 63 (CUSTOM_SIMPLE_EDGE) -Reducer 72 <- Map 63 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) -Reducer 73 <- Reducer 72 (SIMPLE_EDGE), Union 69 (CONTAINS) -Reducer 74 <- Map 63 (CUSTOM_SIMPLE_EDGE) -Reducer 75 <- Map 63 (SIMPLE_EDGE), Reducer 106 (SIMPLE_EDGE) -Reducer 76 <- Reducer 75 (SIMPLE_EDGE), Union 69 (CONTAINS) -Reducer 77 <- Map 63 (CUSTOM_SIMPLE_EDGE) -Reducer 78 <- Map 63 (CUSTOM_SIMPLE_EDGE) -Reducer 79 <- Map 63 (SIMPLE_EDGE), Reducer 85 (ONE_TO_ONE_EDGE) -Reducer 8 <- Reducer 7 (SIMPLE_EDGE) -Reducer 80 <- Reducer 79 (SIMPLE_EDGE) -Reducer 81 <- Reducer 80 (CUSTOM_SIMPLE_EDGE) -Reducer 82 <- Map 63 (SIMPLE_EDGE), Reducer 101 (SIMPLE_EDGE) -Reducer 83 <- Reducer 82 (SIMPLE_EDGE), Union 84 (CONTAINS) -Reducer 85 <- Union 84 (SIMPLE_EDGE) -Reducer 86 <- Reducer 82 (SIMPLE_EDGE), Union 87 (CONTAINS) -Reducer 88 <- Union 87 (SIMPLE_EDGE) -Reducer 89 <- Map 63 (SIMPLE_EDGE), Reducer 88 (ONE_TO_ONE_EDGE) -Reducer 9 <- Map 1 (SIMPLE_EDGE), Map 102 (SIMPLE_EDGE), Union 10 (CONTAINS) -Reducer 90 <- Reducer 89 (SIMPLE_EDGE) -Reducer 91 <- Reducer 90 (CUSTOM_SIMPLE_EDGE) -Reducer 92 <- Map 63 (SIMPLE_EDGE), Reducer 104 (SIMPLE_EDGE) -Reducer 93 <- Reducer 92 (SIMPLE_EDGE), Union 84 (CONTAINS) -Reducer 94 <- Reducer 92 (SIMPLE_EDGE), Union 87 (CONTAINS) -Reducer 95 <- Map 63 (SIMPLE_EDGE), Reducer 106 (SIMPLE_EDGE) -Reducer 96 <- Reducer 95 (SIMPLE_EDGE), Union 84 (CONTAINS) -Reducer 97 <- Reducer 95 (SIMPLE_EDGE), Union 87 (CONTAINS) -Reducer 98 <- Map 63 (CUSTOM_SIMPLE_EDGE) -Reducer 99 <- Map 63 (CUSTOM_SIMPLE_EDGE) +Reducer 41 <- Map 40 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 43 <- Map 40 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 45 <- Map 40 (SIMPLE_EDGE), Map 51 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 47 <- Map 108 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 27 (CONTAINS) +Reducer 48 <- Map 108 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 31 (CONTAINS) +Reducer 49 <- Map 108 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE), Union 34 (CONTAINS) +Reducer 5 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 53 <- Map 52 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 54 <- Map 69 (SIMPLE_EDGE), Reducer 53 (SIMPLE_EDGE) +Reducer 55 <- Reducer 54 (ONE_TO_ONE_EDGE), Reducer 71 (ONE_TO_ONE_EDGE) +Reducer 56 <- Reducer 55 (SIMPLE_EDGE) +Reducer 58 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 59 <- Map 118 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE), Reducer 56 (CUSTOM_SIMPLE_EDGE), Union 7 (CONTAINS) +Reducer 60 <- Map 69 (SIMPLE_EDGE), Reducer 59 (SIMPLE_EDGE) +Reducer 61 <- Reducer 60 (ONE_TO_ONE_EDGE), Reducer 86 (ONE_TO_ONE_EDGE) +Reducer 62 <- Reducer 61 (SIMPLE_EDGE) +Reducer 63 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 64 <- Map 119 (SIMPLE_EDGE), Map 57 (SIMPLE_EDGE) +Reducer 65 <- Map 69 (SIMPLE_EDGE), Reducer 64 (SIMPLE_EDGE) +Reducer 66 <- Reducer 65 (ONE_TO_ONE_EDGE), Reducer 96 (ONE_TO_ONE_EDGE) +Reducer 67 <- Reducer 66 (SIMPLE_EDGE) +Reducer 68 <- Map 57 (CUSTOM_SIMPLE_EDGE) +Reducer 70 <- Map 69 (SIMPLE_EDGE), Reducer 76 (ONE_TO_ONE_EDGE) +Reducer 71 <- Reducer 70 (SIMPLE_EDGE) +Reducer 72 <- Reducer 71 (CUSTOM_SIMPLE_EDGE) +Reducer 73 <- Map 69 (SIMPLE_EDGE), Reducer 107 (SIMPLE_EDGE) +Reducer 74 <- Reducer 73 (SIMPLE_EDGE), Union 75 (CONTAINS) +Reducer 76 <- Union 75 (SIMPLE_EDGE) +Reducer 77 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 78 <- Map 69 (SIMPLE_EDGE), Reducer 110 (SIMPLE_EDGE) +Reducer 79 <- Reducer 78 (SIMPLE_EDGE), Union 75 (CONTAINS) +Reducer 8 <- Union 7 (SIMPLE_EDGE) +Reducer 80 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 81 <- Map 69 (SIMPLE_EDGE), Reducer 112 (SIMPLE_EDGE) +Reducer 82 <- Reducer 81 (SIMPLE_EDGE), Union 75 (CONTAINS) +Reducer 83 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 84 <- Map 69 (CUSTOM_SIMPLE_EDGE) +Reducer 85 <- Map 69 (SIMPLE_EDGE), Reducer 91 (ONE_TO_ONE_EDGE) +Reducer 86 <- Reducer 85 (SIMPLE_EDGE) +Reducer 87 <- Reducer 86 (CUSTOM_SIMPLE_EDGE) +Reducer 88 <- Map 69 (SIMPLE_EDGE), Reducer 107 (SIMPLE_EDGE) +Reducer 89 <- Reducer 88 (SIMPLE_EDGE), Union 90 (CONTAINS) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) +Reducer 91 <- Union 90 (SIMPLE_EDGE) +Reducer 92 <- Reducer 88 (SIMPLE_EDGE), Union 93 (CONTAINS) +Reducer 94 <- Union 93 (SIMPLE_EDGE) +Reducer 95 <- Map 69 (SIMPLE_EDGE), Reducer 94 (ONE_TO_ONE_EDGE) +Reducer 96 <- Reducer 95 (SIMPLE_EDGE) +Reducer 97 <- Reducer 96 (CUSTOM_SIMPLE_EDGE) +Reducer 98 <- Map 69 (SIMPLE_EDGE), Reducer 110 (SIMPLE_EDGE) +Reducer 99 <- Reducer 98 (SIMPLE_EDGE), Union 90 (CONTAINS) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 8 vectorized - File Output Operator [FS_1743] - Limit [LIM_1742] (rows=100 width=237) + Reducer 9 vectorized + File Output Operator [FS_1746] + Limit [LIM_1745] (rows=100 width=238) Number of rows:100 - Select Operator [SEL_1741] (rows=1016388080 width=237) + Select Operator [SEL_1744] (rows=559013452 width=238) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - <-Reducer 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1740] - Select Operator [SEL_1739] (rows=1016388080 width=237) + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1743] + Select Operator [SEL_1742] (rows=559013452 width=238) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Group By Operator [GBY_1738] (rows=1016388080 width=237) + Group By Operator [GBY_1741] (rows=559013452 width=238) Output:["_col0","_col1","_col2","_col3","_col5","_col6"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 - <-Union 6 [SIMPLE_EDGE] - <-Reducer 12 [CONTAINS] - Reduce Output Operator [RS_1474] + <-Union 7 [SIMPLE_EDGE] + <-Reducer 14 [CONTAINS] + Reduce Output Operator [RS_1477] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1473] (rows=2032776160 width=237) + Group By Operator [GBY_1476] (rows=1118026905 width=238) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1472] (rows=406555232 width=237) + Top N Key Operator [TNK_1475] (rows=223605381 width=238) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1470] (rows=116155905 width=264) + Select Operator [SEL_1473] (rows=63885749 width=265) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1469] (rows=116155905 width=264) + Filter Operator [FIL_1472] (rows=63885749 width=265) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1468] (rows=348467716 width=264) - Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1749] - Select Operator [SEL_1748] (rows=1 width=8) - Filter Operator [FIL_1747] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1746] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1745] (rows=1 width=8) - Group By Operator [GBY_1744] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 10 [CUSTOM_SIMPLE_EDGE] - <-Reducer 19 [CONTAINS] - Reduce Output Operator [RS_1499] - Group By Operator [GBY_1498] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1497] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1495] (rows=316788826 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1494] (rows=316788826 width=135) - Conds:RS_1821._col0=RS_1808._col0(Inner),Output:["_col1"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1808] - PartitionCols:_col0 - Select Operator [SEL_1803] (rows=73049 width=1119) - Output:["_col0"] - Filter Operator [FIL_1802] (rows=73049 width=1119) - predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) - TableScan [TS_13] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 17 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1821] - PartitionCols:_col0 - Select Operator [SEL_1819] (rows=287989836 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_1818] (rows=287989836 width=135) - predicate:((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_date_sk is not null) - TableScan [TS_10] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity"] - <-Reducer 22 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1817] - Group By Operator [GBY_1816] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1814] - Group By Operator [GBY_1812] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1805] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1803] - <-Reducer 35 [CONTAINS] - Reduce Output Operator [RS_1535] - Group By Operator [GBY_1534] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1533] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1531] (rows=158402938 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1530] (rows=158402938 width=135) - Conds:RS_1849._col0=RS_1836._col0(Inner),Output:["_col1"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1836] - PartitionCols:_col0 - Select Operator [SEL_1831] (rows=73049 width=1119) - Output:["_col0"] - Filter Operator [FIL_1830] (rows=73049 width=1119) - predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) - TableScan [TS_24] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 33 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1849] - PartitionCols:_col0 - Select Operator [SEL_1847] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_1846] (rows=144002668 width=135) - predicate:((ws_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(ws_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) - TableScan [TS_21] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity"] - <-Reducer 38 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1845] - Group By Operator [GBY_1844] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 37 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1842] - Group By Operator [GBY_1840] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1833] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1831] - <-Reducer 9 [CONTAINS] - Reduce Output Operator [RS_1467] - Group By Operator [GBY_1466] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1465] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1463] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1462] (rows=633595212 width=88) - Conds:RS_1645._col0=RS_1626._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1626] - PartitionCols:_col0 - Select Operator [SEL_1615] (rows=73049 width=1119) - Output:["_col0"] - Filter Operator [FIL_1614] (rows=73049 width=1119) - predicate:(d_date_sk is not null and d_year BETWEEN 1999 AND 2001) - TableScan [TS_97] (rows=73049 width=1119) - default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1645] - PartitionCols:_col0 - Select Operator [SEL_1643] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_1642] (rows=575995635 width=88) - predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_quantity"] - <-Reducer 108 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1641] - Group By Operator [GBY_1640] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1638] - Group By Operator [GBY_1633] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1623] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1615] - <-Reducer 29 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1752] - Select Operator [SEL_1751] (rows=1 width=120) - Output:["_col0"] - Group By Operator [GBY_1750] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] - <-Union 28 [CUSTOM_SIMPLE_EDGE] - <-Reducer 27 [CONTAINS] - Reduce Output Operator [RS_1517] - Group By Operator [GBY_1516] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1515] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1513] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1512] (rows=316788826 width=135) - Conds:RS_1828._col0=RS_1809._col0(Inner),Output:["_col1","_col2"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1809] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1803] - <-Map 47 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1828] - PartitionCols:_col0 - Select Operator [SEL_1826] (rows=287989836 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1825] (rows=287989836 width=135) - predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_62_date_dim_d_date_sk_min) AND DynamicValue(RS_62_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_62_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) - TableScan [TS_55] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] - <-Reducer 26 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1824] - Group By Operator [GBY_1823] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1815] - Group By Operator [GBY_1813] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1807] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1803] - <-Reducer 41 [CONTAINS] - Reduce Output Operator [RS_1553] - Group By Operator [GBY_1552] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1551] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1549] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1548] (rows=158402938 width=135) - Conds:RS_1856._col0=RS_1837._col0(Inner),Output:["_col1","_col2"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1837] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1831] - <-Map 48 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1856] - PartitionCols:_col0 - Select Operator [SEL_1854] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1853] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_73_date_dim_d_date_sk_min) AND DynamicValue(RS_73_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_73_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) - TableScan [TS_66] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] - <-Reducer 40 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1852] - Group By Operator [GBY_1851] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 37 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1843] - Group By Operator [GBY_1841] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1835] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1831] - <-Reducer 45 [CONTAINS] - Reduce Output Operator [RS_1571] - Group By Operator [GBY_1570] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1569] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1567] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1566] (rows=633595212 width=88) - Conds:RS_1863._col0=RS_1627._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1627] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 43 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1863] - PartitionCols:_col0 - Select Operator [SEL_1861] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1860] (rows=575995635 width=88) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_52_date_dim_d_date_sk_min) AND DynamicValue(RS_52_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_52_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) - TableScan [TS_45] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] - <-Reducer 109 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1859] - Group By Operator [GBY_1858] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1639] - Group By Operator [GBY_1634] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1625] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1615] - <-Reducer 57 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1772] - Group By Operator [GBY_1771] (rows=348467716 width=135) + Merge Join Operator [MERGEJOIN_1471] (rows=191657247 width=265) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_381] + Merge Join Operator [MERGEJOIN_1448] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1752] + Select Operator [SEL_1751] (rows=1 width=8) + Filter Operator [FIL_1750] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1749] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1748] (rows=1 width=8) + Group By Operator [GBY_1747] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 11 [CUSTOM_SIMPLE_EDGE] + <-Reducer 10 [CONTAINS] + Reduce Output Operator [RS_1470] + Group By Operator [GBY_1469] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1468] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1466] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1465] (rows=633595212 width=88) + Conds:RS_1648._col0=RS_1629._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1629] + PartitionCols:_col0 + Select Operator [SEL_1618] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1617] (rows=73049 width=1119) + predicate:(d_date_sk is not null and d_year BETWEEN 1999 AND 2001) + TableScan [TS_97] (rows=73049 width=1119) + default@date_dim,d1,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1648] + PartitionCols:_col0 + Select Operator [SEL_1646] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_1645] (rows=575995635 width=88) + predicate:((ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_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_quantity"] + <-Reducer 114 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1644] + Group By Operator [GBY_1643] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 108 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1641] + Group By Operator [GBY_1636] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1626] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1618] + <-Reducer 22 [CONTAINS] + Reduce Output Operator [RS_1502] + Group By Operator [GBY_1501] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1500] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1498] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1497] (rows=316788826 width=135) + Conds:RS_1824._col0=RS_1811._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1811] + PartitionCols:_col0 + Select Operator [SEL_1806] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1805] (rows=73049 width=1119) + predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) + TableScan [TS_13] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1824] + PartitionCols:_col0 + Select Operator [SEL_1822] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1821] (rows=287989836 width=135) + predicate:((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_date_sk is not null) + TableScan [TS_10] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1820] + Group By Operator [GBY_1819] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1817] + Group By Operator [GBY_1815] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1808] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1806] + <-Reducer 38 [CONTAINS] + Reduce Output Operator [RS_1538] + Group By Operator [GBY_1537] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1536] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1534] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1533] (rows=158402938 width=135) + Conds:RS_1852._col0=RS_1839._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1839] + PartitionCols:_col0 + Select Operator [SEL_1834] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_1833] (rows=73049 width=1119) + predicate:(d_date_sk is not null and d_year BETWEEN 1998 AND 2000) + TableScan [TS_24] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1852] + PartitionCols:_col0 + Select Operator [SEL_1850] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_1849] (rows=144002668 width=135) + predicate:((ws_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(ws_sold_date_sk, DynamicValue(RS_28_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_21] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity"] + <-Reducer 41 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1848] + Group By Operator [GBY_1847] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1845] + Group By Operator [GBY_1843] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1836] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1834] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1755] + Select Operator [SEL_1754] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1753] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 31 [CUSTOM_SIMPLE_EDGE] + <-Reducer 30 [CONTAINS] + Reduce Output Operator [RS_1520] + Group By Operator [GBY_1519] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1518] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1516] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1515] (rows=316788826 width=135) + Conds:RS_1831._col0=RS_1812._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1812] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1806] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1831] + PartitionCols:_col0 + Select Operator [SEL_1829] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1828] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_62_date_dim_d_date_sk_min) AND DynamicValue(RS_62_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_62_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_55] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_quantity","cs_list_price"] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1827] + Group By Operator [GBY_1826] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1818] + Group By Operator [GBY_1816] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1810] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1806] + <-Reducer 44 [CONTAINS] + Reduce Output Operator [RS_1556] + Group By Operator [GBY_1555] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1554] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1552] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1551] (rows=158402938 width=135) + Conds:RS_1859._col0=RS_1840._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1840] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1834] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1859] + PartitionCols:_col0 + Select Operator [SEL_1857] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1856] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_73_date_dim_d_date_sk_min) AND DynamicValue(RS_73_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_73_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_66] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_quantity","ws_list_price"] + <-Reducer 43 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1855] + Group By Operator [GBY_1854] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 40 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1846] + Group By Operator [GBY_1844] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1838] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1834] + <-Reducer 48 [CONTAINS] + Reduce Output Operator [RS_1574] + Group By Operator [GBY_1573] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1572] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1570] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1569] (rows=633595212 width=88) + Conds:RS_1866._col0=RS_1630._col0(Inner),Output:["_col1","_col2"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1630] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1618] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1866] + PartitionCols:_col0 + Select Operator [SEL_1864] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_1863] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_52_date_dim_d_date_sk_min) AND DynamicValue(RS_52_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_52_date_dim_d_date_sk_bloom_filter))) and ss_sold_date_sk is not null) + TableScan [TS_45] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_quantity","ss_list_price"] + <-Reducer 115 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1862] + Group By Operator [GBY_1861] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 108 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1642] + Group By Operator [GBY_1637] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1628] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1618] + <-Reducer 62 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1775] + Group By Operator [GBY_1774] (rows=191657247 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 56 [SIMPLE_EDGE] - SHUFFLE [RS_369] + <-Reducer 61 [SIMPLE_EDGE] + SHUFFLE [RS_375] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_368] (rows=696935432 width=135) + Group By Operator [GBY_374] (rows=383314495 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_366] (rows=696935432 width=135) + Select Operator [SEL_372] (rows=383314495 width=135) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1430] (rows=696935432 width=135) - Conds:RS_362._col1=RS_1703._col0(Inner),RS_362._col1=RS_1762._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1703] + Merge Join Operator [MERGEJOIN_1444] (rows=383314495 width=135) + Conds:RS_369._col1=RS_1765._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 86 [ONE_TO_ONE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1765] PartitionCols:_col0 - Select Operator [SEL_1687] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1678] (rows=462000 width=1436) - predicate:i_item_sk is not null - TableScan [TS_91] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] - <-Reducer 80 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1762] - PartitionCols:_col0 - Group By Operator [GBY_1761] (rows=254100 width=1436) + Group By Operator [GBY_1764] (rows=254100 width=1436) Output:["_col0"],keys:KEY._col0 - <-Reducer 79 [SIMPLE_EDGE] - SHUFFLE [RS_356] + <-Reducer 85 [SIMPLE_EDGE] + SHUFFLE [RS_360] PartitionCols:_col0 - Group By Operator [GBY_355] (rows=508200 width=1436) + Group By Operator [GBY_359] (rows=508200 width=1436) Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1429] (rows=508200 width=1436) - Conds:RS_1699._col1, _col2, _col3=RS_1760._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1699] + Merge Join Operator [MERGEJOIN_1427] (rows=508200 width=1436) + Conds:RS_1702._col1, _col2, _col3=RS_1763._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1702] PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_1683] (rows=462000 width=1436) + Select Operator [SEL_1686] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1674] (rows=462000 width=1436) + Filter Operator [FIL_1677] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) - Please refer to the previous TableScan [TS_91] - <-Reducer 85 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1760] + TableScan [TS_91] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand_id","i_class_id","i_category_id"] + <-Reducer 91 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1763] PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1759] (rows=1 width=108) + Select Operator [SEL_1762] (rows=1 width=108) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1758] (rows=1 width=108) + Filter Operator [FIL_1761] (rows=1 width=108) predicate:(_col3 = 3L) - Group By Operator [GBY_1757] (rows=304916424 width=108) + Group By Operator [GBY_1760] (rows=304916424 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 84 [SIMPLE_EDGE] - <-Reducer 83 [CONTAINS] vectorized - Reduce Output Operator [RS_1897] + <-Union 90 [SIMPLE_EDGE] + <-Reducer 102 [CONTAINS] vectorized + Reduce Output Operator [RS_1912] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1896] (rows=609832849 width=108) + Group By Operator [GBY_1911] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1895] (rows=348477374 width=88) + Group By Operator [GBY_1910] (rows=87121617 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 82 [SIMPLE_EDGE] - SHUFFLE [RS_300] + <-Reducer 101 [SIMPLE_EDGE] + SHUFFLE [RS_345] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_299] (rows=696954748 width=88) + Group By Operator [GBY_344] (rows=174243235 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1424] (rows=696954748 width=88) - Conds:RS_295._col1=RS_1700._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1700] + Merge Join Operator [MERGEJOIN_1426] (rows=174243235 width=135) + Conds:RS_340._col1=RS_1705._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1705] PartitionCols:_col0 - Select Operator [SEL_1684] (rows=462000 width=1436) + Select Operator [SEL_1689] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1675] (rows=462000 width=1436) + Filter Operator [FIL_1680] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) Please refer to the previous TableScan [TS_91] - <-Reducer 101 [SIMPLE_EDGE] - SHUFFLE [RS_295] + <-Reducer 112 [SIMPLE_EDGE] + SHUFFLE [RS_340] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1408] (rows=633595212 width=88) - Conds:RS_1871._col0=RS_1616._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1616] + Merge Join Operator [MERGEJOIN_1410] (rows=158402938 width=135) + Conds:RS_1894._col0=RS_1623._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1623] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 100 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1871] + Please refer to the previous Select Operator [SEL_1618] + <-Map 117 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1894] PartitionCols:_col0 - Select Operator [SEL_1870] (rows=575995635 width=88) + Select Operator [SEL_1893] (rows=144002668 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_1869] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_107_iss_i_item_sk_min) AND DynamicValue(RS_107_iss_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_107_iss_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_104_d1_d_date_sk_min) AND DynamicValue(RS_104_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_104_d1_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_94] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] - <-Reducer 103 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1866] - Group By Operator [GBY_1865] (rows=1 width=12) + Filter Operator [FIL_1892] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_148_iws_i_item_sk_min) AND DynamicValue(RS_148_iws_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_148_iws_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_145_d3_d_date_sk_min) AND DynamicValue(RS_145_d3_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_145_d3_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_135] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk"] + <-Reducer 113 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1889] + Group By Operator [GBY_1888] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1635] - Group By Operator [GBY_1630] (rows=1 width=12) + <-Map 108 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1640] + Group By Operator [GBY_1635] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1617] (rows=73049 width=1119) + Select Operator [SEL_1624] (rows=73049 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1615] - <-Reducer 71 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1868] - Group By Operator [GBY_1867] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1618] + <-Reducer 83 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1891] + Group By Operator [GBY_1890] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1714] - Group By Operator [GBY_1708] (rows=1 width=12) + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1719] + Group By Operator [GBY_1713] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1692] (rows=462000 width=1436) + Select Operator [SEL_1699] (rows=462000 width=1436) Output:["_col0"] - Select Operator [SEL_1681] (rows=462000 width=1436) + Select Operator [SEL_1684] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1672] (rows=462000 width=1436) + Filter Operator [FIL_1675] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) Please refer to the previous TableScan [TS_91] - <-Reducer 93 [CONTAINS] vectorized - Reduce Output Operator [RS_1903] + <-Reducer 89 [CONTAINS] vectorized + Reduce Output Operator [RS_1900] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1902] (rows=609832849 width=108) + Group By Operator [GBY_1899] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1901] (rows=174233858 width=135) + Group By Operator [GBY_1898] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 92 [SIMPLE_EDGE] - SHUFFLE [RS_320] + <-Reducer 88 [SIMPLE_EDGE] + SHUFFLE [RS_304] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_319] (rows=348467716 width=135) + Group By Operator [GBY_303] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1426] (rows=348467716 width=135) - Conds:RS_315._col1=RS_1701._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1701] + Merge Join Operator [MERGEJOIN_1422] (rows=696954748 width=88) + Conds:RS_299._col1=RS_1703._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1703] PartitionCols:_col0 - Select Operator [SEL_1685] (rows=462000 width=1436) + Select Operator [SEL_1687] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1676] (rows=462000 width=1436) + Filter Operator [FIL_1678] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) Please refer to the previous TableScan [TS_91] - <-Reducer 104 [SIMPLE_EDGE] - SHUFFLE [RS_315] + <-Reducer 107 [SIMPLE_EDGE] + SHUFFLE [RS_299] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1410] (rows=316788826 width=135) - Conds:RS_1881._col0=RS_1618._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1618] + Merge Join Operator [MERGEJOIN_1406] (rows=633595212 width=88) + Conds:RS_1874._col0=RS_1619._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1619] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 110 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1881] + Please refer to the previous Select Operator [SEL_1618] + <-Map 106 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1874] PartitionCols:_col0 - Select Operator [SEL_1880] (rows=287989836 width=135) + Select Operator [SEL_1873] (rows=575995635 width=88) Output:["_col0","_col1"] - Filter Operator [FIL_1879] (rows=287989836 width=135) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_127_ics_i_item_sk_min) AND DynamicValue(RS_127_ics_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_127_ics_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_124_d2_d_date_sk_min) AND DynamicValue(RS_124_d2_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_124_d2_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_114] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk"] - <-Reducer 105 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1876] - Group By Operator [GBY_1875] (rows=1 width=12) + Filter Operator [FIL_1872] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_107_iss_i_item_sk_min) AND DynamicValue(RS_107_iss_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_107_iss_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_104_d1_d_date_sk_min) AND DynamicValue(RS_104_d1_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_104_d1_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_94] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] + <-Reducer 109 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1869] + Group By Operator [GBY_1868] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1636] - Group By Operator [GBY_1631] (rows=1 width=12) + <-Map 108 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1638] + Group By Operator [GBY_1633] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1619] (rows=73049 width=1119) + Select Operator [SEL_1620] (rows=73049 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1615] - <-Reducer 74 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1878] - Group By Operator [GBY_1877] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1618] + <-Reducer 77 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1871] + Group By Operator [GBY_1870] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1715] - Group By Operator [GBY_1709] (rows=1 width=12) + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1717] + Group By Operator [GBY_1711] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1694] (rows=462000 width=1436) + Select Operator [SEL_1695] (rows=462000 width=1436) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 96 [CONTAINS] vectorized - Reduce Output Operator [RS_1909] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 99 [CONTAINS] vectorized + Reduce Output Operator [RS_1906] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1908] (rows=609832849 width=108) + Group By Operator [GBY_1905] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1907] (rows=87121617 width=135) + Group By Operator [GBY_1904] (rows=174233858 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 95 [SIMPLE_EDGE] - SHUFFLE [RS_341] + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_324] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_340] (rows=174243235 width=135) + Group By Operator [GBY_323] (rows=348467716 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1428] (rows=174243235 width=135) - Conds:RS_336._col1=RS_1702._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1702] + Merge Join Operator [MERGEJOIN_1424] (rows=348467716 width=135) + Conds:RS_319._col1=RS_1704._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1704] PartitionCols:_col0 - Select Operator [SEL_1686] (rows=462000 width=1436) + Select Operator [SEL_1688] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1677] (rows=462000 width=1436) + Filter Operator [FIL_1679] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) Please refer to the previous TableScan [TS_91] - <-Reducer 106 [SIMPLE_EDGE] - SHUFFLE [RS_336] + <-Reducer 110 [SIMPLE_EDGE] + SHUFFLE [RS_319] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1412] (rows=158402938 width=135) - Conds:RS_1891._col0=RS_1620._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1620] + Merge Join Operator [MERGEJOIN_1408] (rows=316788826 width=135) + Conds:RS_1884._col0=RS_1621._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1621] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 111 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1891] + Please refer to the previous Select Operator [SEL_1618] + <-Map 116 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1884] PartitionCols:_col0 - Select Operator [SEL_1890] (rows=144002668 width=135) + Select Operator [SEL_1883] (rows=287989836 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_1889] (rows=144002668 width=135) - predicate:((ws_item_sk BETWEEN DynamicValue(RS_148_iws_i_item_sk_min) AND DynamicValue(RS_148_iws_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_148_iws_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_145_d3_d_date_sk_min) AND DynamicValue(RS_145_d3_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_145_d3_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_135] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk"] - <-Reducer 107 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1886] - Group By Operator [GBY_1885] (rows=1 width=12) + Filter Operator [FIL_1882] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_127_ics_i_item_sk_min) AND DynamicValue(RS_127_ics_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_127_ics_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_124_d2_d_date_sk_min) AND DynamicValue(RS_124_d2_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_124_d2_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_114] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk"] + <-Reducer 111 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1879] + Group By Operator [GBY_1878] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 102 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_1637] - Group By Operator [GBY_1632] (rows=1 width=12) + <-Map 108 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1639] + Group By Operator [GBY_1634] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1621] (rows=73049 width=1119) + Select Operator [SEL_1622] (rows=73049 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1615] - <-Reducer 77 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1888] - Group By Operator [GBY_1887] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_1618] + <-Reducer 80 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1881] + Group By Operator [GBY_1880] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1716] - Group By Operator [GBY_1710] (rows=1 width=12) + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1718] + Group By Operator [GBY_1712] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1696] (rows=462000 width=1436) + Select Operator [SEL_1697] (rows=462000 width=1436) Output:["_col0"] - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 55 [SIMPLE_EDGE] - SHUFFLE [RS_362] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 60 [ONE_TO_ONE_EDGE] + FORWARD [RS_369] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1422] (rows=316788826 width=135) - Conds:RS_1770._col0=RS_1660._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1660] + Merge Join Operator [MERGEJOIN_1420] (rows=348467716 width=135) + Conds:RS_366._col1=RS_1706._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1706] PartitionCols:_col0 - Select Operator [SEL_1657] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_1656] (rows=18262 width=1119) - predicate:((d_moy = 11) and (d_year = 2000) and d_date_sk is not null) - TableScan [TS_85] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 112 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1770] - PartitionCols:_col0 - Select Operator [SEL_1769] (rows=287989836 width=135) + Select Operator [SEL_1690] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1768] (rows=287989836 width=135) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_363_item_i_item_sk_min) AND DynamicValue(RS_363_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_363_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_364_item_i_item_sk_min) AND DynamicValue(RS_364_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_364_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_360_date_dim_d_date_sk_min) AND DynamicValue(RS_360_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_360_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_271] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] - <-Reducer 58 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1754] - Group By Operator [GBY_1753] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1668] - Group By Operator [GBY_1665] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1661] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1657] - <-Reducer 81 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1767] - Group By Operator [GBY_1766] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 80 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1765] - Group By Operator [GBY_1764] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1763] (rows=254100 width=1436) - Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1761] - <-Reducer 98 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1756] - Group By Operator [GBY_1755] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1718] - Group By Operator [GBY_1712] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1704] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1687] - <-Reducer 16 [CONTAINS] - Reduce Output Operator [RS_1487] + Filter Operator [FIL_1681] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_91] + <-Reducer 59 [SIMPLE_EDGE] + SHUFFLE [RS_366] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1419] (rows=316788826 width=135) + Conds:RS_1773._col0=RS_1663._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1663] + PartitionCols:_col0 + Select Operator [SEL_1660] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_1659] (rows=18262 width=1119) + predicate:((d_moy = 11) and (d_year = 2000) and d_date_sk is not null) + TableScan [TS_85] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 118 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1773] + PartitionCols:_col0 + Select Operator [SEL_1772] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1771] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_367_item_i_item_sk_min) AND DynamicValue(RS_367_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_367_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_370_item_i_item_sk_min) AND DynamicValue(RS_370_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_370_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_364_date_dim_d_date_sk_min) AND DynamicValue(RS_364_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_364_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_275] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_quantity","cs_list_price"] + <-Reducer 104 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1759] + Group By Operator [GBY_1758] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1721] + Group By Operator [GBY_1715] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1707] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1690] + <-Reducer 63 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1757] + Group By Operator [GBY_1756] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1671] + Group By Operator [GBY_1668] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1664] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1660] + <-Reducer 87 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1770] + Group By Operator [GBY_1769] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 86 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1768] + Group By Operator [GBY_1767] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1766] (rows=254100 width=1436) + Output:["_col0"] + Please refer to the previous Group By Operator [GBY_1764] + <-Reducer 19 [CONTAINS] + Reduce Output Operator [RS_1490] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1486] (rows=2032776160 width=237) + Group By Operator [GBY_1489] (rows=1118026905 width=238) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1485] (rows=406555232 width=237) + Top N Key Operator [TNK_1488] (rows=223605381 width=238) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1483] (rows=58081078 width=264) + Select Operator [SEL_1486] (rows=31944593 width=265) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1482] (rows=58081078 width=264) + Filter Operator [FIL_1485] (rows=31944593 width=265) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1481] (rows=174243235 width=264) - Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1778] - Select Operator [SEL_1777] (rows=1 width=8) - Filter Operator [FIL_1776] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1775] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1774] (rows=1 width=8) - Group By Operator [GBY_1773] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 14 [CUSTOM_SIMPLE_EDGE] - <-Reducer 13 [CONTAINS] - Reduce Output Operator [RS_1480] - Group By Operator [GBY_1479] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1478] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1476] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1475] (rows=633595212 width=88) - Conds:RS_1646._col0=RS_1628._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1628] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1646] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1643] - <-Reducer 20 [CONTAINS] - Reduce Output Operator [RS_1505] - Group By Operator [GBY_1504] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1503] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1501] (rows=316788826 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1500] (rows=316788826 width=135) - Conds:RS_1822._col0=RS_1810._col0(Inner),Output:["_col1"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1810] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1803] - <-Map 17 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1822] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1819] - <-Reducer 36 [CONTAINS] - Reduce Output Operator [RS_1541] - Group By Operator [GBY_1540] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1539] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1537] (rows=158402938 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1536] (rows=158402938 width=135) - Conds:RS_1850._col0=RS_1838._col0(Inner),Output:["_col1"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1838] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1831] - <-Map 33 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1850] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1847] - <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1781] - Select Operator [SEL_1780] (rows=1 width=120) - Output:["_col0"] - Group By Operator [GBY_1779] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] - <-Union 31 [CUSTOM_SIMPLE_EDGE] - <-Reducer 30 [CONTAINS] - Reduce Output Operator [RS_1523] - Group By Operator [GBY_1522] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1521] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1519] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1518] (rows=316788826 width=135) - Conds:RS_1829._col0=RS_1811._col0(Inner),Output:["_col1","_col2"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1811] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1803] - <-Map 47 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1829] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1826] - <-Reducer 42 [CONTAINS] - Reduce Output Operator [RS_1559] - Group By Operator [GBY_1558] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1557] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1555] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1554] (rows=158402938 width=135) - Conds:RS_1857._col0=RS_1839._col0(Inner),Output:["_col1","_col2"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1839] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1831] - <-Map 48 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1857] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1854] - <-Reducer 46 [CONTAINS] - Reduce Output Operator [RS_1577] - Group By Operator [GBY_1576] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1575] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1573] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1572] (rows=633595212 width=88) - Conds:RS_1864._col0=RS_1629._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1629] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 43 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1864] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1861] - <-Reducer 61 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1801] - Group By Operator [GBY_1800] (rows=174243235 width=135) + Merge Join Operator [MERGEJOIN_1484] (rows=95833781 width=265) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_575] + Merge Join Operator [MERGEJOIN_1450] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1781] + Select Operator [SEL_1780] (rows=1 width=8) + Filter Operator [FIL_1779] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1778] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1777] (rows=1 width=8) + Group By Operator [GBY_1776] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 16 [CUSTOM_SIMPLE_EDGE] + <-Reducer 15 [CONTAINS] + Reduce Output Operator [RS_1483] + Group By Operator [GBY_1482] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1481] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1479] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1478] (rows=633595212 width=88) + Conds:RS_1649._col0=RS_1631._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1631] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1618] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1649] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1646] + <-Reducer 23 [CONTAINS] + Reduce Output Operator [RS_1508] + Group By Operator [GBY_1507] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1506] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1504] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1503] (rows=316788826 width=135) + Conds:RS_1825._col0=RS_1813._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1813] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1806] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1825] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1822] + <-Reducer 39 [CONTAINS] + Reduce Output Operator [RS_1544] + Group By Operator [GBY_1543] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1542] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1540] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1539] (rows=158402938 width=135) + Conds:RS_1853._col0=RS_1841._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1841] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1834] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1853] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1850] + <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1784] + Select Operator [SEL_1783] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1782] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 34 [CUSTOM_SIMPLE_EDGE] + <-Reducer 33 [CONTAINS] + Reduce Output Operator [RS_1526] + Group By Operator [GBY_1525] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1524] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1522] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1521] (rows=316788826 width=135) + Conds:RS_1832._col0=RS_1814._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1814] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1806] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1832] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1829] + <-Reducer 45 [CONTAINS] + Reduce Output Operator [RS_1562] + Group By Operator [GBY_1561] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1560] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1558] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1557] (rows=158402938 width=135) + Conds:RS_1860._col0=RS_1842._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1842] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1834] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1860] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1857] + <-Reducer 49 [CONTAINS] + Reduce Output Operator [RS_1580] + Group By Operator [GBY_1579] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1578] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1576] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1575] (rows=633595212 width=88) + Conds:RS_1867._col0=RS_1632._col0(Inner),Output:["_col1","_col2"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1632] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1618] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1867] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1864] + <-Reducer 67 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1804] + Group By Operator [GBY_1803] (rows=95833781 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 60 [SIMPLE_EDGE] - SHUFFLE [RS_559] + <-Reducer 66 [SIMPLE_EDGE] + SHUFFLE [RS_569] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_558] (rows=348486471 width=135) + Group By Operator [GBY_568] (rows=191667562 width=135) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_556] (rows=348486471 width=135) + Select Operator [SEL_566] (rows=191667562 width=135) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1445] (rows=348486471 width=135) - Conds:RS_552._col1=RS_1706._col0(Inner),RS_552._col1=RS_1791._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1706] - PartitionCols:_col0 - Select Operator [SEL_1689] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1680] (rows=462000 width=1436) - predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_91] - <-Reducer 90 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1791] + Merge Join Operator [MERGEJOIN_1445] (rows=191667562 width=135) + Conds:RS_563._col1=RS_1794._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 96 [ONE_TO_ONE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1794] PartitionCols:_col0 - Group By Operator [GBY_1790] (rows=254100 width=1436) + Group By Operator [GBY_1793] (rows=254100 width=1436) Output:["_col0"],keys:KEY._col0 - <-Reducer 89 [SIMPLE_EDGE] - SHUFFLE [RS_546] + <-Reducer 95 [SIMPLE_EDGE] + SHUFFLE [RS_554] PartitionCols:_col0 - Group By Operator [GBY_545] (rows=508200 width=1436) + Group By Operator [GBY_553] (rows=508200 width=1436) Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1444] (rows=508200 width=1436) - Conds:RS_1705._col1, _col2, _col3=RS_1789._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1705] + Merge Join Operator [MERGEJOIN_1442] (rows=508200 width=1436) + Conds:RS_1708._col1, _col2, _col3=RS_1792._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1708] PartitionCols:_col1, _col2, _col3 - Select Operator [SEL_1688] (rows=462000 width=1436) + Select Operator [SEL_1691] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1679] (rows=462000 width=1436) + Filter Operator [FIL_1682] (rows=462000 width=1436) predicate:(i_brand_id is not null and i_category_id is not null and i_class_id is not null and i_item_sk is not null) Please refer to the previous TableScan [TS_91] - <-Reducer 88 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1789] + <-Reducer 94 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1792] PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1788] (rows=1 width=108) + Select Operator [SEL_1791] (rows=1 width=108) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1787] (rows=1 width=108) + Filter Operator [FIL_1790] (rows=1 width=108) predicate:(_col3 = 3L) - Group By Operator [GBY_1786] (rows=304916424 width=108) + Group By Operator [GBY_1789] (rows=304916424 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 87 [SIMPLE_EDGE] - <-Reducer 86 [CONTAINS] vectorized - Reduce Output Operator [RS_1900] + <-Union 93 [SIMPLE_EDGE] + <-Reducer 100 [CONTAINS] vectorized + Reduce Output Operator [RS_1909] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1899] (rows=609832849 width=108) + Group By Operator [GBY_1908] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1898] (rows=348477374 width=88) + Group By Operator [GBY_1907] (rows=174233858 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 82 [SIMPLE_EDGE] - SHUFFLE [RS_490] + <-Reducer 98 [SIMPLE_EDGE] + SHUFFLE [RS_518] PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_299] - <-Reducer 94 [CONTAINS] vectorized - Reduce Output Operator [RS_1906] + Please refer to the previous Group By Operator [GBY_323] + <-Reducer 103 [CONTAINS] vectorized + Reduce Output Operator [RS_1915] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1905] (rows=609832849 width=108) + Group By Operator [GBY_1914] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1904] (rows=174233858 width=135) + Group By Operator [GBY_1913] (rows=87121617 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 92 [SIMPLE_EDGE] - SHUFFLE [RS_510] + <-Reducer 101 [SIMPLE_EDGE] + SHUFFLE [RS_539] PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_319] - <-Reducer 97 [CONTAINS] vectorized - Reduce Output Operator [RS_1912] + Please refer to the previous Group By Operator [GBY_344] + <-Reducer 92 [CONTAINS] vectorized + Reduce Output Operator [RS_1903] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1911] (rows=609832849 width=108) + Group By Operator [GBY_1902] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1910] (rows=87121617 width=135) + Group By Operator [GBY_1901] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 95 [SIMPLE_EDGE] - SHUFFLE [RS_531] + <-Reducer 88 [SIMPLE_EDGE] + SHUFFLE [RS_498] PartitionCols:_col0, _col1, _col2 - Please refer to the previous Group By Operator [GBY_340] - <-Reducer 59 [SIMPLE_EDGE] - SHUFFLE [RS_552] + Please refer to the previous Group By Operator [GBY_303] + <-Reducer 65 [ONE_TO_ONE_EDGE] + FORWARD [RS_563] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1437] (rows=158402938 width=135) - Conds:RS_1799._col0=RS_1662._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1662] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1657] - <-Map 113 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1799] + Merge Join Operator [MERGEJOIN_1435] (rows=174243235 width=135) + Conds:RS_560._col1=RS_1709._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1709] PartitionCols:_col0 - Select Operator [SEL_1798] (rows=144002668 width=135) + Select Operator [SEL_1692] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1797] (rows=144002668 width=135) - predicate:((ws_item_sk BETWEEN DynamicValue(RS_553_item_i_item_sk_min) AND DynamicValue(RS_553_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_553_item_i_item_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_554_item_i_item_sk_min) AND DynamicValue(RS_554_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_554_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_550_date_dim_d_date_sk_min) AND DynamicValue(RS_550_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_550_date_dim_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_461] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] - <-Reducer 62 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1783] - Group By Operator [GBY_1782] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1669] - Group By Operator [GBY_1666] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1663] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1657] - <-Reducer 91 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1796] - Group By Operator [GBY_1795] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 90 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1794] - Group By Operator [GBY_1793] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1792] (rows=254100 width=1436) - Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1790] - <-Reducer 99 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1785] - Group By Operator [GBY_1784] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1719] - Group By Operator [GBY_1713] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1707] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1689] - <-Reducer 5 [CONTAINS] - Reduce Output Operator [RS_1461] + Filter Operator [FIL_1683] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_91] + <-Reducer 64 [SIMPLE_EDGE] + SHUFFLE [RS_560] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1434] (rows=158402938 width=135) + Conds:RS_1802._col0=RS_1665._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1665] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1660] + <-Map 119 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1802] + PartitionCols:_col0 + Select Operator [SEL_1801] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1800] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_561_item_i_item_sk_min) AND DynamicValue(RS_561_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_561_item_i_item_sk_bloom_filter))) and (ws_item_sk BETWEEN DynamicValue(RS_564_item_i_item_sk_min) AND DynamicValue(RS_564_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_564_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_558_date_dim_d_date_sk_min) AND DynamicValue(RS_558_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_558_date_dim_d_date_sk_bloom_filter))) and ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_469] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_quantity","ws_list_price"] + <-Reducer 105 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1788] + Group By Operator [GBY_1787] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1722] + Group By Operator [GBY_1716] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1710] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1692] + <-Reducer 68 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1786] + Group By Operator [GBY_1785] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1672] + Group By Operator [GBY_1669] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1666] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1660] + <-Reducer 97 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1799] + Group By Operator [GBY_1798] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 96 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1797] + Group By Operator [GBY_1796] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1795] (rows=254100 width=1436) + Output:["_col0"] + Please refer to the previous Group By Operator [GBY_1793] + <-Reducer 6 [CONTAINS] + Reduce Output Operator [RS_1464] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_1460] (rows=2032776160 width=237) + Group By Operator [GBY_1463] (rows=1118026905 width=238) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col0, _col1, _col2, _col3, 0L - Top N Key Operator [TNK_1459] (rows=406555232 width=237) + Top N Key Operator [TNK_1462] (rows=223605381 width=238) keys:_col0, _col1, _col2, _col3, 0L,sort order:+++++,top n:100 - Select Operator [SEL_1457] (rows=232318249 width=217) + Select Operator [SEL_1460] (rows=127775039 width=218) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_1456] (rows=232318249 width=217) + Filter Operator [FIL_1459] (rows=127775039 width=218) predicate:(_col5 > _col1) - Merge Join Operator [MERGEJOIN_1455] (rows=696954748 width=217) - Conds:(Inner),(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 25 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1655] - Select Operator [SEL_1654] (rows=1 width=120) - Output:["_col0"] - Group By Operator [GBY_1653] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] - <-Union 24 [CUSTOM_SIMPLE_EDGE] - <-Reducer 23 [CONTAINS] - Reduce Output Operator [RS_1511] - Group By Operator [GBY_1510] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1509] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1507] (rows=316788826 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1506] (rows=316788826 width=135) - Conds:RS_1827._col0=RS_1806._col0(Inner),Output:["_col1","_col2"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1806] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1803] - <-Map 47 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1827] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1826] - <-Reducer 39 [CONTAINS] - Reduce Output Operator [RS_1547] - Group By Operator [GBY_1546] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1545] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1543] (rows=158402938 width=135) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1542] (rows=158402938 width=135) - Conds:RS_1855._col0=RS_1834._col0(Inner),Output:["_col1","_col2"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1834] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1831] - <-Map 48 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1855] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1854] - <-Reducer 44 [CONTAINS] - Reduce Output Operator [RS_1565] - Group By Operator [GBY_1564] (rows=1 width=120) - Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] - Select Operator [SEL_1563] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1561] (rows=633595212 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_1560] (rows=633595212 width=88) - Conds:RS_1862._col0=RS_1624._col0(Inner),Output:["_col1","_col2"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1624] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 43 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1862] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1861] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1652] - Select Operator [SEL_1651] (rows=1 width=8) - Filter Operator [FIL_1650] (rows=1 width=8) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_1649] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_1648] (rows=1 width=8) - Group By Operator [GBY_1647] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Union 3 [CUSTOM_SIMPLE_EDGE] - <-Reducer 18 [CONTAINS] - Reduce Output Operator [RS_1493] - Group By Operator [GBY_1492] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1491] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1489] (rows=316788826 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1488] (rows=316788826 width=135) - Conds:RS_1820._col0=RS_1804._col0(Inner),Output:["_col1"] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1804] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1803] - <-Map 17 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1820] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1819] - <-Reducer 2 [CONTAINS] - Reduce Output Operator [RS_1454] - Group By Operator [GBY_1453] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1452] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1450] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1449] (rows=633595212 width=88) - Conds:RS_1644._col0=RS_1622._col0(Inner),Output:["_col1"] - <-Map 102 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1622] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1615] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1644] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1643] - <-Reducer 34 [CONTAINS] - Reduce Output Operator [RS_1529] - Group By Operator [GBY_1528] (rows=1 width=8) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_1527] (rows=1108786976 width=108) - Output:["_col0"] - Select Operator [SEL_1525] (rows=158402938 width=135) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_1524] (rows=158402938 width=135) - Conds:RS_1848._col0=RS_1832._col0(Inner),Output:["_col1"] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1832] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1831] - <-Map 33 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1848] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1847] - <-Reducer 52 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1737] - Group By Operator [GBY_1736] (rows=696954748 width=88) + Merge Join Operator [MERGEJOIN_1458] (rows=383325119 width=218) + Conds:(Inner),Output:["_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_188] + Merge Join Operator [MERGEJOIN_1446] (rows=1 width=129) + Conds:(Inner),Output:["_col1"] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1658] + Select Operator [SEL_1657] (rows=1 width=120) + Output:["_col0"] + Group By Operator [GBY_1656] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"] + <-Union 27 [CUSTOM_SIMPLE_EDGE] + <-Reducer 26 [CONTAINS] + Reduce Output Operator [RS_1514] + Group By Operator [GBY_1513] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1512] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1510] (rows=316788826 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1509] (rows=316788826 width=135) + Conds:RS_1830._col0=RS_1809._col0(Inner),Output:["_col1","_col2"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1809] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1806] + <-Map 50 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1830] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1829] + <-Reducer 42 [CONTAINS] + Reduce Output Operator [RS_1550] + Group By Operator [GBY_1549] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1548] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1546] (rows=158402938 width=135) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1545] (rows=158402938 width=135) + Conds:RS_1858._col0=RS_1837._col0(Inner),Output:["_col1","_col2"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1837] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1834] + <-Map 51 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1858] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1857] + <-Reducer 47 [CONTAINS] + Reduce Output Operator [RS_1568] + Group By Operator [GBY_1567] (rows=1 width=120) + Output:["_col0","_col1"],aggregations:["sum(_col0)","count(_col0)"] + Select Operator [SEL_1566] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1564] (rows=633595212 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_1563] (rows=633595212 width=88) + Conds:RS_1865._col0=RS_1627._col0(Inner),Output:["_col1","_col2"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1627] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1618] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1865] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1864] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1655] + Select Operator [SEL_1654] (rows=1 width=8) + Filter Operator [FIL_1653] (rows=1 width=8) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_1652] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_1651] (rows=1 width=8) + Group By Operator [GBY_1650] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Union 3 [CUSTOM_SIMPLE_EDGE] + <-Reducer 2 [CONTAINS] + Reduce Output Operator [RS_1457] + Group By Operator [GBY_1456] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1455] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1453] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1452] (rows=633595212 width=88) + Conds:RS_1647._col0=RS_1625._col0(Inner),Output:["_col1"] + <-Map 108 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1625] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1618] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1647] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1646] + <-Reducer 21 [CONTAINS] + Reduce Output Operator [RS_1496] + Group By Operator [GBY_1495] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1494] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1492] (rows=316788826 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1491] (rows=316788826 width=135) + Conds:RS_1823._col0=RS_1807._col0(Inner),Output:["_col1"] + <-Map 24 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1807] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1806] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1823] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1822] + <-Reducer 37 [CONTAINS] + Reduce Output Operator [RS_1532] + Group By Operator [GBY_1531] (rows=1 width=8) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_1530] (rows=1108786976 width=108) + Output:["_col0"] + Select Operator [SEL_1528] (rows=158402938 width=135) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_1527] (rows=158402938 width=135) + Conds:RS_1851._col0=RS_1835._col0(Inner),Output:["_col1"] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1835] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1834] + <-Map 36 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1851] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1850] + <-Reducer 56 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1740] + Group By Operator [GBY_1739] (rows=383325119 width=88) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 51 [SIMPLE_EDGE] - SHUFFLE [RS_180] + <-Reducer 55 [SIMPLE_EDGE] + SHUFFLE [RS_182] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_179] (rows=1393909496 width=88) + Group By Operator [GBY_181] (rows=766650239 width=88) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["sum(_col3)","count()"],keys:_col0, _col1, _col2 - Select Operator [SEL_177] (rows=1393909496 width=88) + Select Operator [SEL_179] (rows=766650239 width=88) Output:["_col0","_col1","_col2","_col3"] - Merge Join Operator [MERGEJOIN_1415] (rows=1393909496 width=88) - Conds:RS_173._col1=RS_1697._col0(Inner),RS_173._col1=RS_1727._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1697] - PartitionCols:_col0 - Select Operator [SEL_1682] (rows=462000 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1673] (rows=462000 width=1436) - predicate:i_item_sk is not null - Please refer to the previous TableScan [TS_91] - <-Reducer 65 [ONE_TO_ONE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1727] + Merge Join Operator [MERGEJOIN_1443] (rows=766650239 width=88) + Conds:RS_176._col1=RS_1730._col0(Inner),Output:["_col2","_col3","_col8","_col9","_col10"] + <-Reducer 71 [ONE_TO_ONE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1730] PartitionCols:_col0 - Group By Operator [GBY_1726] (rows=254100 width=1436) + Group By Operator [GBY_1729] (rows=254100 width=1436) Output:["_col0"],keys:KEY._col0 - <-Reducer 64 [SIMPLE_EDGE] + <-Reducer 70 [SIMPLE_EDGE] SHUFFLE [RS_167] PartitionCols:_col0 Group By Operator [GBY_166] (rows=508200 width=1436) Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_1414] (rows=508200 width=1436) - Conds:RS_1690._col1, _col2, _col3=RS_1725._col0, _col1, _col2(Inner),Output:["_col0"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1690] + Merge Join Operator [MERGEJOIN_1412] (rows=508200 width=1436) + Conds:RS_1693._col1, _col2, _col3=RS_1728._col0, _col1, _col2(Inner),Output:["_col0"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1693] PartitionCols:_col1, _col2, _col3 - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 70 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_1725] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 76 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_1728] PartitionCols:_col0, _col1, _col2 - Select Operator [SEL_1724] (rows=1 width=108) + Select Operator [SEL_1727] (rows=1 width=108) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_1723] (rows=1 width=108) + Filter Operator [FIL_1726] (rows=1 width=108) predicate:(_col3 = 3L) - Group By Operator [GBY_1722] (rows=304916424 width=108) + Group By Operator [GBY_1725] (rows=304916424 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Union 69 [SIMPLE_EDGE] - <-Reducer 68 [CONTAINS] vectorized - Reduce Output Operator [RS_1874] + <-Union 75 [SIMPLE_EDGE] + <-Reducer 74 [CONTAINS] vectorized + Reduce Output Operator [RS_1877] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1873] (rows=609832849 width=108) + Group By Operator [GBY_1876] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1872] (rows=348477374 width=88) + Group By Operator [GBY_1875] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 67 [SIMPLE_EDGE] + <-Reducer 73 [SIMPLE_EDGE] SHUFFLE [RS_111] PartitionCols:_col0, _col1, _col2 Group By Operator [GBY_110] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1409] (rows=696954748 width=88) - Conds:RS_106._col1=RS_1691._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1691] + Merge Join Operator [MERGEJOIN_1407] (rows=696954748 width=88) + Conds:RS_106._col1=RS_1694._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1694] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 101 [SIMPLE_EDGE] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 107 [SIMPLE_EDGE] SHUFFLE [RS_106] PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1408] - <-Reducer 73 [CONTAINS] vectorized - Reduce Output Operator [RS_1884] + Please refer to the previous Merge Join Operator [MERGEJOIN_1406] + <-Reducer 79 [CONTAINS] vectorized + Reduce Output Operator [RS_1887] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1883] (rows=609832849 width=108) + Group By Operator [GBY_1886] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1882] (rows=174233858 width=135) + Group By Operator [GBY_1885] (rows=174233858 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 72 [SIMPLE_EDGE] + <-Reducer 78 [SIMPLE_EDGE] SHUFFLE [RS_131] PartitionCols:_col0, _col1, _col2 Group By Operator [GBY_130] (rows=348467716 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1411] (rows=348467716 width=135) - Conds:RS_126._col1=RS_1693._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1693] + Merge Join Operator [MERGEJOIN_1409] (rows=348467716 width=135) + Conds:RS_126._col1=RS_1696._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1696] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 104 [SIMPLE_EDGE] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 110 [SIMPLE_EDGE] SHUFFLE [RS_126] PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1410] - <-Reducer 76 [CONTAINS] vectorized - Reduce Output Operator [RS_1894] + Please refer to the previous Merge Join Operator [MERGEJOIN_1408] + <-Reducer 82 [CONTAINS] vectorized + Reduce Output Operator [RS_1897] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_1893] (rows=609832849 width=108) + Group By Operator [GBY_1896] (rows=609832849 width=108) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(_col3)"],keys:_col0, _col1, _col2 - Group By Operator [GBY_1892] (rows=87121617 width=135) + Group By Operator [GBY_1895] (rows=87121617 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 75 [SIMPLE_EDGE] + <-Reducer 81 [SIMPLE_EDGE] SHUFFLE [RS_152] PartitionCols:_col0, _col1, _col2 Group By Operator [GBY_151] (rows=174243235 width=135) Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col5, _col6, _col7 - Merge Join Operator [MERGEJOIN_1413] (rows=174243235 width=135) - Conds:RS_147._col1=RS_1695._col0(Inner),Output:["_col5","_col6","_col7"] - <-Map 63 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1695] + Merge Join Operator [MERGEJOIN_1411] (rows=174243235 width=135) + Conds:RS_147._col1=RS_1698._col0(Inner),Output:["_col5","_col6","_col7"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1698] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1681] - <-Reducer 106 [SIMPLE_EDGE] + Please refer to the previous Select Operator [SEL_1684] + <-Reducer 112 [SIMPLE_EDGE] SHUFFLE [RS_147] PartitionCols:_col1 - Please refer to the previous Merge Join Operator [MERGEJOIN_1412] - <-Reducer 50 [SIMPLE_EDGE] - SHUFFLE [RS_173] + Please refer to the previous Merge Join Operator [MERGEJOIN_1410] + <-Reducer 54 [ONE_TO_ONE_EDGE] + FORWARD [RS_176] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_1407] (rows=633595212 width=88) - Conds:RS_1735._col0=RS_1658._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1658] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_1657] - <-Map 49 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_1735] + Merge Join Operator [MERGEJOIN_1405] (rows=696954748 width=88) + Conds:RS_173._col1=RS_1700._col0(Inner),Output:["_col1","_col2","_col3","_col8","_col9","_col10"] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1700] PartitionCols:_col0 - Select Operator [SEL_1734] (rows=575995635 width=88) + Select Operator [SEL_1685] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_1733] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_174_item_i_item_sk_min) AND DynamicValue(RS_174_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_174_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_175_item_i_item_sk_min) AND DynamicValue(RS_175_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_175_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_171_date_dim_d_date_sk_min) AND DynamicValue(RS_171_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_171_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_82] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] - <-Reducer 54 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1671] - Group By Operator [GBY_1670] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1667] - Group By Operator [GBY_1664] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1659] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1657] - <-Reducer 66 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1732] - Group By Operator [GBY_1731] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 65 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1730] - Group By Operator [GBY_1729] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1728] (rows=254100 width=1436) - Output:["_col0"] - Please refer to the previous Group By Operator [GBY_1726] - <-Reducer 78 [BROADCAST_EDGE] vectorized - BROADCAST [RS_1721] - Group By Operator [GBY_1720] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 63 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_1717] - Group By Operator [GBY_1711] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_1698] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_1682] + Filter Operator [FIL_1676] (rows=462000 width=1436) + predicate:i_item_sk is not null + Please refer to the previous TableScan [TS_91] + <-Reducer 53 [SIMPLE_EDGE] + SHUFFLE [RS_173] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_1404] (rows=633595212 width=88) + Conds:RS_1738._col0=RS_1661._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 57 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1661] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_1660] + <-Map 52 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_1738] + PartitionCols:_col0 + Select Operator [SEL_1737] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_1736] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_174_item_i_item_sk_min) AND DynamicValue(RS_174_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_174_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_177_item_i_item_sk_min) AND DynamicValue(RS_177_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_177_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_171_date_dim_d_date_sk_min) AND DynamicValue(RS_171_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_171_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_82] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_quantity","ss_list_price"] + <-Reducer 58 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1674] + Group By Operator [GBY_1673] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 57 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1670] + Group By Operator [GBY_1667] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1662] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1660] + <-Reducer 72 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1735] + Group By Operator [GBY_1734] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 71 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_1733] + Group By Operator [GBY_1732] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1731] (rows=254100 width=1436) + Output:["_col0"] + Please refer to the previous Group By Operator [GBY_1729] + <-Reducer 84 [BROADCAST_EDGE] vectorized + BROADCAST [RS_1724] + Group By Operator [GBY_1723] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 69 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_1720] + Group By Operator [GBY_1714] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_1701] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_1685] diff --git a/ql/src/test/results/clientpositive/perf/tez/query2.q.out b/ql/src/test/results/clientpositive/perf/tez/query2.q.out index f4ad16e2c2..8ff348837c 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query2.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query2.q.out @@ -127,161 +127,167 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 9 (BROADCAST_EDGE), Union 2 (CONTAINS) -Map 15 <- Reducer 13 (BROADCAST_EDGE), Union 16 (CONTAINS) -Map 17 <- Reducer 13 (BROADCAST_EDGE), Union 16 (CONTAINS) -Map 7 <- Reducer 9 (BROADCAST_EDGE), Union 2 (CONTAINS) -Reducer 10 <- Map 8 (SIMPLE_EDGE), Union 16 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (SIMPLE_EDGE) -Reducer 12 <- Map 14 (SIMPLE_EDGE), Reducer 11 (ONE_TO_ONE_EDGE) -Reducer 13 <- Map 8 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 8 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE) +Map 1 <- Reducer 10 (BROADCAST_EDGE), Union 2 (CONTAINS) +Map 16 <- Reducer 14 (BROADCAST_EDGE), Union 17 (CONTAINS) +Map 18 <- Reducer 14 (BROADCAST_EDGE), Union 17 (CONTAINS) +Map 8 <- Reducer 10 (BROADCAST_EDGE), Union 2 (CONTAINS) +Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Map 9 (SIMPLE_EDGE), Union 17 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 15 (SIMPLE_EDGE), Reducer 12 (ONE_TO_ONE_EDGE) +Reducer 14 <- Map 9 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 9 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Map 14 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Map 15 (SIMPLE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 13 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_189] - Select Operator [SEL_188] (rows=574982057 width=135) + Reducer 7 vectorized + File Output Operator [FS_194] + Select Operator [SEL_193] (rows=287491028 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_55] - Select Operator [SEL_54] (rows=574982057 width=135) + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_57] + Select Operator [SEL_56] (rows=287491028 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_141] (rows=574982057 width=135) - Conds:RS_179._col0=RS_186._col0(Inner),RS_179._col0=RS_52.(_col0 - 53)(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_186] - PartitionCols:_col0 - Select Operator [SEL_184] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_182] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_week_seq is not null) - TableScan [TS_20] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_week_seq","d_year"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_52] + Merge Join Operator [MERGEJOIN_146] (rows=287491028 width=135) + Conds:RS_53._col0=RS_54.(_col0 - 53)(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_54] PartitionCols:(_col0 - 53) - Merge Join Operator [MERGEJOIN_140] (rows=261355475 width=135) - Conds:RS_181._col0=RS_187._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_187] + Merge Join Operator [MERGEJOIN_145] (rows=261355475 width=135) + Conds:RS_192._col0=RS_190._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_190] PartitionCols:_col0 - Select Operator [SEL_185] (rows=36524 width=1119) + Select Operator [SEL_188] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_183] (rows=36524 width=1119) + Filter Operator [FIL_186] (rows=36524 width=1119) predicate:((d_year = 2002) and d_week_seq is not null) - Please refer to the previous TableScan [TS_20] - <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_181] + TableScan [TS_20] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_week_seq","d_year"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_192] PartitionCols:_col0 - Group By Operator [GBY_180] (rows=237595882 width=135) + Group By Operator [GBY_191] (rows=237595882 width=135) 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)","sum(VALUE._col6)"],keys:KEY._col0 - <-Reducer 10 [SIMPLE_EDGE] + <-Reducer 11 [SIMPLE_EDGE] SHUFFLE [RS_40] PartitionCols:_col0 Group By Operator [GBY_39] (rows=475191764 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col0 Select Operator [SEL_37] (rows=475191764 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_139] (rows=475191764 width=135) - Conds:Union 16._col0=RS_166._col0(Inner),Output:["_col1","_col3","_col4"] - <-Map 8 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_166] + Merge Join Operator [MERGEJOIN_144] (rows=475191764 width=135) + Conds:Union 17._col0=RS_171._col0(Inner),Output:["_col1","_col3","_col4"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_171] PartitionCols:_col0 - Select Operator [SEL_163] (rows=73049 width=1119) + Select Operator [SEL_168] (rows=73049 width=1119) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_162] (rows=73049 width=1119) + Filter Operator [FIL_167] (rows=73049 width=1119) predicate:(d_date_sk is not null and d_week_seq is not null) TableScan [TS_8] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_week_seq","d_day_name"] - <-Union 16 [SIMPLE_EDGE] - <-Map 15 [CONTAINS] vectorized - Reduce Output Operator [RS_198] + <-Union 17 [SIMPLE_EDGE] + <-Map 16 [CONTAINS] vectorized + Reduce Output Operator [RS_203] PartitionCols:_col0 - Select Operator [SEL_197] (rows=144002668 width=135) + Select Operator [SEL_202] (rows=144002668 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_196] (rows=144002668 width=135) + Filter Operator [FIL_201] (rows=144002668 width=135) predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_35_date_dim_d_date_sk_min) AND DynamicValue(RS_35_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_35_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) - TableScan [TS_152] (rows=144002668 width=135) + TableScan [TS_157] (rows=144002668 width=135) Output:["ws_sold_date_sk","ws_ext_sales_price"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_194] - Group By Operator [GBY_193] (rows=1 width=12) + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_199] + Group By Operator [GBY_198] (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_171] - Group By Operator [GBY_169] (rows=1 width=12) + <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_176] + Group By Operator [GBY_174] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_167] (rows=73049 width=1119) + Select Operator [SEL_172] (rows=73049 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_163] - <-Map 17 [CONTAINS] vectorized - Reduce Output Operator [RS_201] + Please refer to the previous Select Operator [SEL_168] + <-Map 18 [CONTAINS] vectorized + Reduce Output Operator [RS_206] PartitionCols:_col0 - Select Operator [SEL_200] (rows=287989836 width=135) + Select Operator [SEL_205] (rows=287989836 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_199] (rows=287989836 width=135) + Filter Operator [FIL_204] (rows=287989836 width=135) predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_35_date_dim_d_date_sk_min) AND DynamicValue(RS_35_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_35_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) - TableScan [TS_157] (rows=287989836 width=135) + TableScan [TS_162] (rows=287989836 width=135) Output:["cs_sold_date_sk","cs_ext_sales_price"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_195] - Please refer to the previous Group By Operator [GBY_193] - <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_179] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_200] + Please refer to the previous Group By Operator [GBY_198] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_53] PartitionCols:_col0 - Group By Operator [GBY_178] (rows=237595882 width=135) - 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)","sum(VALUE._col6)"],keys:KEY._col0 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_17] + Merge Join Operator [MERGEJOIN_143] (rows=261355475 width=135) + Conds:RS_184._col0=RS_189._col0(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_189] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_185] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_week_seq is not null) + Please refer to the previous TableScan [TS_20] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_184] PartitionCols:_col0 - Group By Operator [GBY_16] (rows=475191764 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col0 - Select Operator [SEL_14] (rows=475191764 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_138] (rows=475191764 width=135) - Conds:Union 2._col0=RS_164._col0(Inner),Output:["_col1","_col3","_col4"] - <-Map 8 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_164] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_163] - <-Union 2 [SIMPLE_EDGE] - <-Map 1 [CONTAINS] vectorized - Reduce Output Operator [RS_177] - PartitionCols:_col0 - Select Operator [SEL_176] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_175] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) - TableScan [TS_142] (rows=144002668 width=135) - Output:["ws_sold_date_sk","ws_ext_sales_price"] - <-Reducer 9 [BROADCAST_EDGE] vectorized - BROADCAST [RS_173] - Group By Operator [GBY_172] (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_170] - Group By Operator [GBY_168] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_165] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_163] - <-Map 7 [CONTAINS] vectorized - Reduce Output Operator [RS_192] - PartitionCols:_col0 - Select Operator [SEL_191] (rows=287989836 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_190] (rows=287989836 width=135) - predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) - TableScan [TS_147] (rows=287989836 width=135) - Output:["cs_sold_date_sk","cs_ext_sales_price"] - <-Reducer 9 [BROADCAST_EDGE] vectorized - BROADCAST [RS_174] - Please refer to the previous Group By Operator [GBY_172] + Group By Operator [GBY_183] (rows=237595882 width=135) + 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)","sum(VALUE._col6)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col1)","sum(_col2)","sum(_col3)","sum(_col4)","sum(_col5)","sum(_col6)","sum(_col7)"],keys:_col0 + Select Operator [SEL_14] (rows=475191764 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_142] (rows=475191764 width=135) + Conds:Union 2._col0=RS_169._col0(Inner),Output:["_col1","_col3","_col4"] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_169] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_168] + <-Union 2 [SIMPLE_EDGE] + <-Map 1 [CONTAINS] vectorized + Reduce Output Operator [RS_182] + PartitionCols:_col0 + Select Operator [SEL_181] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_180] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and ws_sold_date_sk is not null) + TableScan [TS_147] (rows=144002668 width=135) + Output:["ws_sold_date_sk","ws_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_178] + 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 9 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_175] + Group By Operator [GBY_173] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_170] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_168] + <-Map 8 [CONTAINS] vectorized + Reduce Output Operator [RS_197] + PartitionCols:_col0 + Select Operator [SEL_196] (rows=287989836 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_195] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_12_date_dim_d_date_sk_min) AND DynamicValue(RS_12_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_12_date_dim_d_date_sk_bloom_filter))) and cs_sold_date_sk is not null) + TableScan [TS_152] (rows=287989836 width=135) + Output:["cs_sold_date_sk","cs_ext_sales_price"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_179] + Please refer to the previous Group By Operator [GBY_177] diff --git a/ql/src/test/results/clientpositive/perf/tez/query23.q.out b/ql/src/test/results/clientpositive/perf/tez/query23.q.out index 3e4dffbaaf..7585a8050d 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query23.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query23.q.out @@ -1,5 +1,7 @@ -Warning: Shuffle Join MERGEJOIN[585][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 28' is a cross product -Warning: Shuffle Join MERGEJOIN[587][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 36' is a cross product +Warning: Shuffle Join MERGEJOIN[589][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 28' is a cross product +Warning: Shuffle Join MERGEJOIN[590][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 29' is a cross product +Warning: Shuffle Join MERGEJOIN[592][tables = [$hdt$_1, $hdt$_2]] in Stage 'Reducer 37' is a cross product +Warning: Shuffle Join MERGEJOIN[593][tables = [$hdt$_1, $hdt$_2, $hdt$_0]] in Stage 'Reducer 38' is a cross product PREHOOK: query: explain with frequent_ss_items as (select substr(i_item_desc,1,30) itemdesc,i_item_sk item_sk,d_date solddate,count(*) cnt @@ -121,11 +123,11 @@ Plan optimized by CBO. Vertex dependency in root stage Map 1 <- Reducer 17 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) Map 13 <- Reducer 19 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE) -Map 23 <- Reducer 31 (BROADCAST_EDGE) -Map 43 <- Reducer 12 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) -Map 44 <- Reducer 38 (BROADCAST_EDGE) +Map 23 <- Reducer 32 (BROADCAST_EDGE) +Map 45 <- Reducer 12 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) +Map 46 <- Reducer 40 (BROADCAST_EDGE) Reducer 10 <- Reducer 16 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 38 (SIMPLE_EDGE), Union 5 (CONTAINS) Reducer 12 <- Map 7 (CUSTOM_SIMPLE_EDGE) Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 18 (SIMPLE_EDGE) Reducer 15 <- Map 20 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) @@ -135,64 +137,66 @@ Reducer 19 <- Map 18 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) Reducer 21 <- Map 20 (CUSTOM_SIMPLE_EDGE) Reducer 22 <- Map 20 (CUSTOM_SIMPLE_EDGE) -Reducer 24 <- Map 23 (SIMPLE_EDGE), Map 30 (SIMPLE_EDGE) -Reducer 25 <- Map 42 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 24 <- Map 23 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 25 <- Map 44 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) Reducer 26 <- Reducer 25 (SIMPLE_EDGE) Reducer 27 <- Reducer 26 (CUSTOM_SIMPLE_EDGE) -Reducer 28 <- Reducer 27 (CUSTOM_SIMPLE_EDGE), Reducer 29 (CUSTOM_SIMPLE_EDGE), Reducer 41 (CUSTOM_SIMPLE_EDGE) -Reducer 29 <- Reducer 26 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Reducer 27 (CUSTOM_SIMPLE_EDGE), Reducer 30 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 43 (CUSTOM_SIMPLE_EDGE) Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 31 <- Map 30 (CUSTOM_SIMPLE_EDGE) -Reducer 32 <- Map 30 (SIMPLE_EDGE), Map 44 (SIMPLE_EDGE) -Reducer 33 <- Map 42 (SIMPLE_EDGE), Reducer 32 (SIMPLE_EDGE) -Reducer 34 <- Reducer 33 (SIMPLE_EDGE) -Reducer 35 <- Reducer 34 (CUSTOM_SIMPLE_EDGE) -Reducer 36 <- Reducer 35 (CUSTOM_SIMPLE_EDGE), Reducer 37 (CUSTOM_SIMPLE_EDGE), Reducer 41 (CUSTOM_SIMPLE_EDGE) -Reducer 37 <- Reducer 34 (CUSTOM_SIMPLE_EDGE) -Reducer 38 <- Map 30 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 28 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) -Reducer 40 <- Map 39 (SIMPLE_EDGE), Map 42 (SIMPLE_EDGE) -Reducer 41 <- Reducer 40 (SIMPLE_EDGE) +Reducer 30 <- Reducer 26 (CUSTOM_SIMPLE_EDGE) +Reducer 32 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 31 (SIMPLE_EDGE), Map 46 (SIMPLE_EDGE) +Reducer 34 <- Map 44 (SIMPLE_EDGE), Reducer 33 (SIMPLE_EDGE) +Reducer 35 <- Reducer 34 (SIMPLE_EDGE) +Reducer 36 <- Reducer 35 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Reducer 36 (CUSTOM_SIMPLE_EDGE), Reducer 39 (CUSTOM_SIMPLE_EDGE) +Reducer 38 <- Reducer 37 (CUSTOM_SIMPLE_EDGE), Reducer 43 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Reducer 35 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 29 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS) +Reducer 40 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 41 (SIMPLE_EDGE), Map 44 (SIMPLE_EDGE) +Reducer 43 <- Reducer 42 (SIMPLE_EDGE) Reducer 6 <- Union 5 (CUSTOM_SIMPLE_EDGE) Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Map 43 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 9 <- Map 45 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 Reducer 6 vectorized - File Output Operator [FS_691] - Limit [LIM_690] (rows=1 width=112) + File Output Operator [FS_697] + Limit [LIM_696] (rows=1 width=112) Number of rows:100 - Group By Operator [GBY_689] (rows=1 width=112) + Group By Operator [GBY_695] (rows=1 width=112) Output:["_col0"],aggregations:["sum(VALUE._col0)"] <-Union 5 [CUSTOM_SIMPLE_EDGE] <-Reducer 11 [CONTAINS] - Reduce Output Operator [RS_598] - Group By Operator [GBY_597] (rows=1 width=112) + Reduce Output Operator [RS_604] + Group By Operator [GBY_603] (rows=1 width=112) Output:["_col0"],aggregations:["sum(_col0)"] - Select Operator [SEL_595] (rows=191667562 width=135) + Select Operator [SEL_601] (rows=191667562 width=135) Output:["_col0"] - Merge Join Operator [MERGEJOIN_594] (rows=191667562 width=135) - Conds:RS_244._col2=RS_245._col0(Inner),Output:["_col3","_col4"] + Merge Join Operator [MERGEJOIN_600] (rows=191667562 width=135) + Conds:RS_248._col2=RS_249._col0(Inner),Output:["_col3","_col4"] <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_244] + SHUFFLE [RS_248] PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_584] (rows=174243235 width=135) - Conds:RS_241._col1=RS_640._col0(Inner),Output:["_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_588] (rows=174243235 width=135) + Conds:RS_245._col1=RS_646._col0(Inner),Output:["_col2","_col3","_col4"] <-Reducer 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_640] + SHUFFLE [RS_646] PartitionCols:_col0 - Group By Operator [GBY_637] (rows=58079562 width=88) + Group By Operator [GBY_643] (rows=58079562 width=88) Output:["_col0"],keys:_col1 - Select Operator [SEL_636] (rows=116159124 width=88) + Select Operator [SEL_642] (rows=116159124 width=88) Output:["_col1"] - Filter Operator [FIL_635] (rows=116159124 width=88) + Filter Operator [FIL_641] (rows=116159124 width=88) predicate:(_col3 > 4L) - Select Operator [SEL_634] (rows=348477374 width=88) + Select Operator [SEL_640] (rows=348477374 width=88) Output:["_col0","_col3"] - Group By Operator [GBY_633] (rows=348477374 width=88) + Group By Operator [GBY_639] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2 <-Reducer 15 [SIMPLE_EDGE] SHUFFLE [RS_24] @@ -201,361 +205,369 @@ Stage-0 Output:["_col0","_col1","_col2","_col3"],aggregations:["count()"],keys:_col1, _col0, _col2 Select Operator [SEL_21] (rows=696954748 width=88) Output:["_col0","_col1","_col2"] - Merge Join Operator [MERGEJOIN_569] (rows=696954748 width=88) - Conds:RS_18._col1=RS_621._col0(Inner),Output:["_col3","_col5","_col6"] + Merge Join Operator [MERGEJOIN_573] (rows=696954748 width=88) + Conds:RS_18._col1=RS_627._col0(Inner),Output:["_col3","_col5","_col6"] <-Map 20 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_621] + PARTITION_ONLY_SHUFFLE [RS_627] PartitionCols:_col0 - Select Operator [SEL_620] (rows=462000 width=1436) + Select Operator [SEL_626] (rows=462000 width=1436) Output:["_col0","_col1"] - Filter Operator [FIL_619] (rows=462000 width=1436) + Filter Operator [FIL_625] (rows=462000 width=1436) predicate: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_item_desc"] <-Reducer 14 [SIMPLE_EDGE] SHUFFLE [RS_18] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_568] (rows=633595212 width=88) - Conds:RS_632._col0=RS_613._col0(Inner),Output:["_col1","_col3"] + Merge Join Operator [MERGEJOIN_572] (rows=633595212 width=88) + Conds:RS_638._col0=RS_619._col0(Inner),Output:["_col1","_col3"] <-Map 18 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_613] + PARTITION_ONLY_SHUFFLE [RS_619] PartitionCols:_col0 - Select Operator [SEL_612] (rows=73049 width=1119) + Select Operator [SEL_618] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_611] (rows=73049 width=1119) + Filter Operator [FIL_617] (rows=73049 width=1119) predicate:((d_year) IN (1999, 2000, 2001, 2002) 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_date","d_year"] <-Map 13 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_632] + SHUFFLE [RS_638] PartitionCols:_col0 - Select Operator [SEL_631] (rows=575995635 width=88) + Select Operator [SEL_637] (rows=575995635 width=88) Output:["_col0","_col1"] - Filter Operator [FIL_630] (rows=575995635 width=88) + Filter Operator [FIL_636] (rows=575995635 width=88) predicate:((ss_item_sk BETWEEN DynamicValue(RS_19_item_i_item_sk_min) AND DynamicValue(RS_19_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_19_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) TableScan [TS_6] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk"] <-Reducer 19 [BROADCAST_EDGE] vectorized - BROADCAST [RS_618] - Group By Operator [GBY_617] (rows=1 width=12) + BROADCAST [RS_624] + Group By Operator [GBY_623] (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 - PARTITION_ONLY_SHUFFLE [RS_616] - Group By Operator [GBY_615] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_622] + Group By Operator [GBY_621] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_614] (rows=73049 width=1119) + Select Operator [SEL_620] (rows=73049 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_612] + Please refer to the previous Select Operator [SEL_618] <-Reducer 21 [BROADCAST_EDGE] vectorized - BROADCAST [RS_629] - Group By Operator [GBY_628] (rows=1 width=12) + BROADCAST [RS_635] + Group By Operator [GBY_634] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_626] - Group By Operator [GBY_624] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_632] + Group By Operator [GBY_630] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_622] (rows=462000 width=1436) + Select Operator [SEL_628] (rows=462000 width=1436) Output:["_col0"] - Please refer to the previous Select Operator [SEL_620] + Please refer to the previous Select Operator [SEL_626] <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_241] + SHUFFLE [RS_245] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_575] (rows=158402938 width=135) - Conds:RS_698._col0=RS_603._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_579] (rows=158402938 width=135) + Conds:RS_704._col0=RS_609._col0(Inner),Output:["_col1","_col2","_col3","_col4"] <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_603] + SHUFFLE [RS_609] PartitionCols:_col0 - Select Operator [SEL_600] (rows=18262 width=1119) + Select Operator [SEL_606] (rows=18262 width=1119) Output:["_col0"] - Filter Operator [FIL_599] (rows=18262 width=1119) + Filter Operator [FIL_605] (rows=18262 width=1119) predicate:((d_moy = 1) and (d_year = 1999) and d_date_sk is not null) TableScan [TS_3] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 43 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_698] + <-Map 45 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_704] PartitionCols:_col0 - Select Operator [SEL_697] (rows=144002668 width=135) + Select Operator [SEL_703] (rows=144002668 width=135) Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_696] (rows=144002668 width=135) - predicate:((ws_item_sk BETWEEN DynamicValue(RS_143_item_i_item_sk_min) AND DynamicValue(RS_143_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_143_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_239_date_dim_d_date_sk_min) AND DynamicValue(RS_239_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_239_date_dim_d_date_sk_bloom_filter))) and ws_bill_customer_sk is not null and ws_item_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_124] (rows=144002668 width=135) + Filter Operator [FIL_702] (rows=144002668 width=135) + predicate:((ws_item_sk BETWEEN DynamicValue(RS_145_item_i_item_sk_min) AND DynamicValue(RS_145_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_145_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_243_date_dim_d_date_sk_min) AND DynamicValue(RS_243_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_243_date_dim_d_date_sk_bloom_filter))) and ws_bill_customer_sk is not null and ws_item_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_126] (rows=144002668 width=135) default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_item_sk","ws_bill_customer_sk","ws_quantity","ws_list_price"] <-Reducer 12 [BROADCAST_EDGE] vectorized - BROADCAST [RS_693] - Group By Operator [GBY_692] (rows=1 width=12) + BROADCAST [RS_699] + Group By Operator [GBY_698] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_608] - Group By Operator [GBY_606] (rows=1 width=12) + SHUFFLE [RS_614] + Group By Operator [GBY_612] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_604] (rows=18262 width=1119) + Select Operator [SEL_610] (rows=18262 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_600] + Please refer to the previous Select Operator [SEL_606] <-Reducer 22 [BROADCAST_EDGE] vectorized - BROADCAST [RS_695] - Group By Operator [GBY_694] (rows=1 width=12) + BROADCAST [RS_701] + Group By Operator [GBY_700] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 20 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_627] - Group By Operator [GBY_625] (rows=1 width=12) + PARTITION_ONLY_SHUFFLE [RS_633] + Group By Operator [GBY_631] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_623] (rows=462000 width=1436) + Select Operator [SEL_629] (rows=462000 width=1436) Output:["_col0"] - Please refer to the previous Select Operator [SEL_620] - <-Reducer 36 [SIMPLE_EDGE] - SHUFFLE [RS_245] + Please refer to the previous Select Operator [SEL_626] + <-Reducer 38 [SIMPLE_EDGE] + SHUFFLE [RS_249] PartitionCols:_col0 - Select Operator [SEL_237] (rows=105599202 width=433) + Select Operator [SEL_241] (rows=105599202 width=434) Output:["_col0"] - Filter Operator [FIL_236] (rows=105599202 width=433) + Filter Operator [FIL_240] (rows=105599202 width=434) predicate:(_col3 > (0.95 * _col1)) - Merge Join Operator [MERGEJOIN_587] (rows=316797606 width=433) - Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 41 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_688] - Group By Operator [GBY_686] (rows=316797606 width=88) + Merge Join Operator [MERGEJOIN_593] (rows=316797606 width=434) + Conds:(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_694] + Group By Operator [GBY_692] (rows=316797606 width=88) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 40 [SIMPLE_EDGE] + <-Reducer 42 [SIMPLE_EDGE] SHUFFLE [RS_105] PartitionCols:_col0 Group By Operator [GBY_104] (rows=633595212 width=88) Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 Select Operator [SEL_102] (rows=633595212 width=88) Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_574] (rows=633595212 width=88) - Conds:RS_685._col0=RS_665._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 42 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_665] + Merge Join Operator [MERGEJOIN_578] (rows=633595212 width=88) + Conds:RS_691._col0=RS_671._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 44 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_671] PartitionCols:_col0 - Select Operator [SEL_664] (rows=80000000 width=860) + Select Operator [SEL_670] (rows=80000000 width=860) Output:["_col0"] - Filter Operator [FIL_663] (rows=80000000 width=860) + Filter Operator [FIL_669] (rows=80000000 width=860) predicate:c_customer_sk is not null TableScan [TS_96] (rows=80000000 width=860) default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk"] - <-Map 39 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_685] + <-Map 41 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_691] PartitionCols:_col0 - Select Operator [SEL_684] (rows=575995635 width=88) + Select Operator [SEL_690] (rows=575995635 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_683] (rows=575995635 width=88) + Filter Operator [FIL_689] (rows=575995635 width=88) predicate:ss_customer_sk is not null TableScan [TS_93] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_customer_sk","ss_quantity","ss_sales_price"] - <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_716] - Select Operator [SEL_715] (rows=1 width=120) - Filter Operator [FIL_714] (rows=1 width=120) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_713] (rows=1 width=120) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_712] (rows=1 width=120) - Group By Operator [GBY_711] (rows=1 width=120) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 34 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_709] - Group By Operator [GBY_707] (rows=1 width=120) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_705] (rows=348477374 width=88) - Output:["_col0"] - Group By Operator [GBY_704] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 33 [SIMPLE_EDGE] - SHUFFLE [RS_175] - PartitionCols:_col0 - Group By Operator [GBY_174] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_172] (rows=696954748 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_579] (rows=696954748 width=88) - Conds:RS_169._col1=RS_667._col0(Inner),Output:["_col2","_col3","_col6"] - <-Map 42 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_667] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_664] - <-Reducer 32 [SIMPLE_EDGE] - SHUFFLE [RS_169] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_578] (rows=633595212 width=88) - Conds:RS_703._col0=RS_652._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 30 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_652] - PartitionCols:_col0 - Select Operator [SEL_649] (rows=73049 width=1119) - Output:["_col0"] - Filter Operator [FIL_648] (rows=73049 width=1119) - predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null) - TableScan [TS_36] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Reducer 37 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_237] + Merge Join Operator [MERGEJOIN_592] (rows=1 width=345) + Conds:(Inner),Output:["_col1"] + <-Reducer 36 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_722] + Select Operator [SEL_721] (rows=1 width=120) + Filter Operator [FIL_720] (rows=1 width=120) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_719] (rows=1 width=120) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_718] (rows=1 width=120) + Group By Operator [GBY_717] (rows=1 width=120) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_715] + Group By Operator [GBY_713] (rows=1 width=120) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_711] (rows=348477374 width=88) + Output:["_col0"] + Group By Operator [GBY_710] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 34 [SIMPLE_EDGE] + SHUFFLE [RS_177] + PartitionCols:_col0 + Group By Operator [GBY_176] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_174] (rows=696954748 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_583] (rows=696954748 width=88) + Conds:RS_171._col1=RS_673._col0(Inner),Output:["_col2","_col3","_col6"] <-Map 44 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_703] + SHUFFLE [RS_673] PartitionCols:_col0 - Select Operator [SEL_702] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_701] (rows=575995635 width=88) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_167_date_dim_d_date_sk_min) AND DynamicValue(RS_167_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_167_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_157] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] - <-Reducer 38 [BROADCAST_EDGE] vectorized - BROADCAST [RS_700] - Group By Operator [GBY_699] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_657] - Group By Operator [GBY_655] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_653] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_649] - <-Reducer 37 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_718] - Group By Operator [GBY_717] (rows=1 width=224) - Output:["_col0"],aggregations:["max(VALUE._col0)"] - <-Reducer 34 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_710] - Group By Operator [GBY_708] (rows=1 width=224) - Output:["_col0"],aggregations:["max(_col1)"] - Select Operator [SEL_706] (rows=348477374 width=88) - Output:["_col1"] - Please refer to the previous Group By Operator [GBY_704] + Please refer to the previous Select Operator [SEL_670] + <-Reducer 33 [SIMPLE_EDGE] + SHUFFLE [RS_171] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_582] (rows=633595212 width=88) + Conds:RS_709._col0=RS_658._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_658] + PartitionCols:_col0 + Select Operator [SEL_655] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_654] (rows=73049 width=1119) + predicate:((d_year) IN (1999, 2000, 2001, 2002) and d_date_sk is not null) + TableScan [TS_36] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 46 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_709] + PartitionCols:_col0 + Select Operator [SEL_708] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_707] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_169_date_dim_d_date_sk_min) AND DynamicValue(RS_169_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_169_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_159] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] + <-Reducer 40 [BROADCAST_EDGE] vectorized + BROADCAST [RS_706] + Group By Operator [GBY_705] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_663] + Group By Operator [GBY_661] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_659] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_655] + <-Reducer 39 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_724] + Group By Operator [GBY_723] (rows=1 width=224) + Output:["_col0"],aggregations:["max(VALUE._col0)"] + <-Reducer 35 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_716] + Group By Operator [GBY_714] (rows=1 width=224) + Output:["_col0"],aggregations:["max(_col1)"] + Select Operator [SEL_712] (rows=348477374 width=88) + Output:["_col1"] + Please refer to the previous Group By Operator [GBY_710] <-Reducer 4 [CONTAINS] - Reduce Output Operator [RS_593] - Group By Operator [GBY_592] (rows=1 width=112) + Reduce Output Operator [RS_599] + Group By Operator [GBY_598] (rows=1 width=112) Output:["_col0"],aggregations:["sum(_col0)"] - Select Operator [SEL_590] (rows=383314495 width=135) + Select Operator [SEL_596] (rows=383314495 width=135) Output:["_col0"] - Merge Join Operator [MERGEJOIN_589] (rows=383314495 width=135) - Conds:RS_120._col1=RS_121._col0(Inner),Output:["_col3","_col4"] - <-Reducer 28 [SIMPLE_EDGE] - SHUFFLE [RS_121] + Merge Join Operator [MERGEJOIN_595] (rows=383314495 width=135) + Conds:RS_122._col1=RS_123._col0(Inner),Output:["_col3","_col4"] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_123] PartitionCols:_col0 - Select Operator [SEL_113] (rows=105599202 width=433) + Select Operator [SEL_115] (rows=105599202 width=434) Output:["_col0"] - Filter Operator [FIL_112] (rows=105599202 width=433) + Filter Operator [FIL_114] (rows=105599202 width=434) predicate:(_col3 > (0.95 * _col1)) - Merge Join Operator [MERGEJOIN_585] (rows=316797606 width=433) - Conds:(Inner),(Inner),Output:["_col1","_col2","_col3"] - <-Reducer 41 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_687] - Please refer to the previous Group By Operator [GBY_686] - <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_680] - Select Operator [SEL_679] (rows=1 width=120) - Filter Operator [FIL_678] (rows=1 width=120) - predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_677] (rows=1 width=120) - Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_676] (rows=1 width=120) - Group By Operator [GBY_675] (rows=1 width=120) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 26 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_673] - Group By Operator [GBY_671] (rows=1 width=120) - Output:["_col0"],aggregations:["count(_col0)"] - Select Operator [SEL_669] (rows=348477374 width=88) - Output:["_col0"] - Group By Operator [GBY_668] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_51] - PartitionCols:_col0 - Group By Operator [GBY_50] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 - Select Operator [SEL_48] (rows=696954748 width=88) - Output:["_col0","_col1"] - Merge Join Operator [MERGEJOIN_571] (rows=696954748 width=88) - Conds:RS_45._col1=RS_666._col0(Inner),Output:["_col2","_col3","_col6"] - <-Map 42 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_666] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_664] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_45] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_570] (rows=633595212 width=88) - Conds:RS_662._col0=RS_650._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 30 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_650] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_649] - <-Map 23 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_662] + Merge Join Operator [MERGEJOIN_590] (rows=316797606 width=434) + Conds:(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_693] + Please refer to the previous Group By Operator [GBY_692] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_111] + Merge Join Operator [MERGEJOIN_589] (rows=1 width=345) + Conds:(Inner),Output:["_col1"] + <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_686] + Select Operator [SEL_685] (rows=1 width=120) + Filter Operator [FIL_684] (rows=1 width=120) + predicate:(sq_count_check(_col0) <= 1) + Group By Operator [GBY_683] (rows=1 width=120) + Output:["_col0"],aggregations:["count()"] + Select Operator [SEL_682] (rows=1 width=120) + Group By Operator [GBY_681] (rows=1 width=120) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 26 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_679] + Group By Operator [GBY_677] (rows=1 width=120) + Output:["_col0"],aggregations:["count(_col0)"] + Select Operator [SEL_675] (rows=348477374 width=88) + Output:["_col0"] + Group By Operator [GBY_674] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_51] + PartitionCols:_col0 + Group By Operator [GBY_50] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col1)"],keys:_col0 + Select Operator [SEL_48] (rows=696954748 width=88) + Output:["_col0","_col1"] + Merge Join Operator [MERGEJOIN_575] (rows=696954748 width=88) + Conds:RS_45._col1=RS_672._col0(Inner),Output:["_col2","_col3","_col6"] + <-Map 44 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_672] PartitionCols:_col0 - Select Operator [SEL_661] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_660] (rows=575995635 width=88) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_43_date_dim_d_date_sk_min) AND DynamicValue(RS_43_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_43_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_33] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] - <-Reducer 31 [BROADCAST_EDGE] vectorized - BROADCAST [RS_659] - Group By Operator [GBY_658] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 30 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_656] - Group By Operator [GBY_654] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_651] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_649] - <-Reducer 29 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_682] - Group By Operator [GBY_681] (rows=1 width=224) - Output:["_col0"],aggregations:["max(VALUE._col0)"] - <-Reducer 26 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_674] - Group By Operator [GBY_672] (rows=1 width=224) - Output:["_col0"],aggregations:["max(_col1)"] - Select Operator [SEL_670] (rows=348477374 width=88) - Output:["_col1"] - Please refer to the previous Group By Operator [GBY_668] + Please refer to the previous Select Operator [SEL_670] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_45] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_574] (rows=633595212 width=88) + Conds:RS_668._col0=RS_656._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_656] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_655] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_668] + PartitionCols:_col0 + Select Operator [SEL_667] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_666] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_43_date_dim_d_date_sk_min) AND DynamicValue(RS_43_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_43_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_33] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_quantity","ss_sales_price"] + <-Reducer 32 [BROADCAST_EDGE] vectorized + BROADCAST [RS_665] + Group By Operator [GBY_664] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_662] + Group By Operator [GBY_660] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_657] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_655] + <-Reducer 30 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_688] + Group By Operator [GBY_687] (rows=1 width=224) + Output:["_col0"],aggregations:["max(VALUE._col0)"] + <-Reducer 26 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_680] + Group By Operator [GBY_678] (rows=1 width=224) + Output:["_col0"],aggregations:["max(_col1)"] + Select Operator [SEL_676] (rows=348477374 width=88) + Output:["_col1"] + Please refer to the previous Group By Operator [GBY_674] <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_120] + SHUFFLE [RS_122] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_583] (rows=348467716 width=135) - Conds:RS_117._col2=RS_638._col0(Inner),Output:["_col1","_col3","_col4"] + Merge Join Operator [MERGEJOIN_587] (rows=348467716 width=135) + Conds:RS_119._col2=RS_644._col0(Inner),Output:["_col1","_col3","_col4"] <-Reducer 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_638] + SHUFFLE [RS_644] PartitionCols:_col0 - Please refer to the previous Group By Operator [GBY_637] + Please refer to the previous Group By Operator [GBY_643] <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_117] + SHUFFLE [RS_119] PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_567] (rows=316788826 width=135) - Conds:RS_647._col0=RS_601._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + Merge Join Operator [MERGEJOIN_571] (rows=316788826 width=135) + Conds:RS_653._col0=RS_607._col0(Inner),Output:["_col1","_col2","_col3","_col4"] <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_601] + SHUFFLE [RS_607] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_600] + Please refer to the previous Select Operator [SEL_606] <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_647] + SHUFFLE [RS_653] PartitionCols:_col0 - Select Operator [SEL_646] (rows=287989836 width=135) + Select Operator [SEL_652] (rows=287989836 width=135) Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_645] (rows=287989836 width=135) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_118_item_i_item_sk_min) AND DynamicValue(RS_118_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_118_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_115_date_dim_d_date_sk_min) AND DynamicValue(RS_115_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_115_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null) + Filter Operator [FIL_651] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_120_item_i_item_sk_min) AND DynamicValue(RS_120_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_120_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_117_date_dim_d_date_sk_min) AND DynamicValue(RS_117_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_117_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null) TableScan [TS_0] (rows=287989836 width=135) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_item_sk","cs_quantity","cs_list_price"] <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_644] - Group By Operator [GBY_643] (rows=1 width=20) + BROADCAST [RS_650] + Group By Operator [GBY_649] (rows=1 width=20) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=58079560)"] <-Reducer 16 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_642] - Group By Operator [GBY_641] (rows=1 width=20) + SHUFFLE [RS_648] + Group By Operator [GBY_647] (rows=1 width=20) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=58079560)"] - Select Operator [SEL_639] (rows=58079562 width=88) + Select Operator [SEL_645] (rows=58079562 width=88) Output:["_col0"] - Please refer to the previous Group By Operator [GBY_637] + Please refer to the previous Group By Operator [GBY_643] <-Reducer 8 [BROADCAST_EDGE] vectorized - BROADCAST [RS_610] - Group By Operator [GBY_609] (rows=1 width=12) + BROADCAST [RS_616] + Group By Operator [GBY_615] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_607] - Group By Operator [GBY_605] (rows=1 width=12) + SHUFFLE [RS_613] + Group By Operator [GBY_611] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_602] (rows=18262 width=1119) + Select Operator [SEL_608] (rows=18262 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_600] + Please refer to the previous Select Operator [SEL_606] diff --git a/ql/src/test/results/clientpositive/perf/tez/query28.q.out b/ql/src/test/results/clientpositive/perf/tez/query28.q.out index a26f01c501..839e623e77 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query28.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query28.q.out @@ -1,4 +1,8 @@ -Warning: Shuffle Join MERGEJOIN[94][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[102][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 4' is a cross product +Warning: Shuffle Join MERGEJOIN[103][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 5' is a cross product +Warning: Shuffle Join MERGEJOIN[104][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[105][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[106][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 8' is a cross product PREHOOK: query: explain select * from (select avg(ss_list_price) B1_LP @@ -115,158 +119,178 @@ Reducer 11 <- Map 1 (SIMPLE_EDGE) Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) Reducer 13 <- Map 1 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 1 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 1 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE) Reducer 2 <- Map 1 (SIMPLE_EDGE) Reducer 3 <- Reducer 2 (CUSTOM_SIMPLE_EDGE) -Reducer 4 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) -Reducer 5 <- Map 1 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE) -Reducer 7 <- Map 1 (SIMPLE_EDGE) -Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 4 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 14 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 16 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) Reducer 9 <- Map 1 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 4 - File Output Operator [FS_51] - Limit [LIM_50] (rows=1 width=1393) + Reducer 8 + File Output Operator [FS_59] + Limit [LIM_58] (rows=1 width=1397) Number of rows:100 - Select Operator [SEL_49] (rows=1 width=1393) + Select Operator [SEL_57] (rows=1 width=1397) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] - Merge Join Operator [MERGEJOIN_94] (rows=1 width=1393) - Conds:(Inner),(Inner),(Inner),(Inner),(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] - <-Reducer 10 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_142] - Select Operator [SEL_141] (rows=1 width=232) + Merge Join Operator [MERGEJOIN_106] (rows=1 width=1397) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16","_col17"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_166] + Select Operator [SEL_165] (rows=1 width=232) Output:["_col0","_col1","_col2"] - Group By Operator [GBY_140] (rows=1 width=232) + Group By Operator [GBY_164] (rows=1 width=232) Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 9 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_139] - Group By Operator [GBY_138] (rows=1 width=232) + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_163] + Group By Operator [GBY_162] (rows=1 width=232) Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_137] (rows=191998545 width=88) + Group By Operator [GBY_161] (rows=191998545 width=88) Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_116] + SHUFFLE [RS_130] PartitionCols:_col0 - Group By Operator [GBY_110] (rows=191998545 width=88) + Group By Operator [GBY_124] (rows=191998545 width=88) Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_104] (rows=191998545 width=88) + Select Operator [SEL_118] (rows=191998545 width=88) Output:["ss_list_price"] - Filter Operator [FIL_98] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 142 AND 152 or ss_coupon_amt BETWEEN 3054 AND 4054 or ss_wholesale_cost BETWEEN 80 AND 100) and ss_quantity BETWEEN 16 AND 20) + Filter Operator [FIL_112] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 91 AND 101 or ss_coupon_amt BETWEEN 1430 AND 2430 or ss_wholesale_cost BETWEEN 32 AND 52) and ss_quantity BETWEEN 6 AND 10) TableScan [TS_0] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_quantity","ss_wholesale_cost","ss_list_price","ss_coupon_amt"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_148] - Select Operator [SEL_147] (rows=1 width=232) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_146] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_145] - Group By Operator [GBY_144] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_143] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_117] - PartitionCols:_col0 - Group By Operator [GBY_111] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_105] (rows=191998545 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_99] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 66 AND 76 or ss_coupon_amt BETWEEN 920 AND 1920 or ss_wholesale_cost BETWEEN 4 AND 24) and ss_quantity BETWEEN 11 AND 15) - Please refer to the previous TableScan [TS_0] - <-Reducer 14 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_154] - Select Operator [SEL_153] (rows=1 width=232) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_152] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 13 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_151] - Group By Operator [GBY_150] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_149] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_118] - PartitionCols:_col0 - Group By Operator [GBY_112] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_106] (rows=191998545 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_100] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 91 AND 101 or ss_coupon_amt BETWEEN 1430 AND 2430 or ss_wholesale_cost BETWEEN 32 AND 52) and ss_quantity BETWEEN 6 AND 10) - Please refer to the previous TableScan [TS_0] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_124] - Select Operator [SEL_123] (rows=1 width=232) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_122] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 2 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_121] - Group By Operator [GBY_120] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_119] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_113] - PartitionCols:_col0 - Group By Operator [GBY_107] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_101] (rows=191998545 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_95] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 11 AND 21 or ss_coupon_amt BETWEEN 460 AND 1460 or ss_wholesale_cost BETWEEN 14 AND 34) and ss_quantity BETWEEN 0 AND 5) - Please refer to the previous TableScan [TS_0] - <-Reducer 6 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_130] - Select Operator [SEL_129] (rows=1 width=232) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_128] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_127] - Group By Operator [GBY_126] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_125] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_114] - PartitionCols:_col0 - Group By Operator [GBY_108] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_102] (rows=191998545 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_96] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 28 AND 38 or ss_coupon_amt BETWEEN 2513 AND 3513 or ss_wholesale_cost BETWEEN 42 AND 62) and ss_quantity BETWEEN 26 AND 30) - Please refer to the previous TableScan [TS_0] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_136] - Select Operator [SEL_135] (rows=1 width=232) - Output:["_col0","_col1","_col2"] - Group By Operator [GBY_134] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] - <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_133] - Group By Operator [GBY_132] (rows=1 width=232) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] - Group By Operator [GBY_131] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_115] - PartitionCols:_col0 - Group By Operator [GBY_109] (rows=191998545 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price - Select Operator [SEL_103] (rows=191998545 width=88) - Output:["ss_list_price"] - Filter Operator [FIL_97] (rows=191998545 width=88) - predicate:((ss_list_price BETWEEN 135 AND 145 or ss_coupon_amt BETWEEN 14180 AND 15180 or ss_wholesale_cost BETWEEN 38 AND 58) and ss_quantity BETWEEN 21 AND 25) - Please refer to the previous TableScan [TS_0] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_54] + Merge Join Operator [MERGEJOIN_105] (rows=1 width=1164) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 16 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_160] + Select Operator [SEL_159] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_158] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 15 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_157] + Group By Operator [GBY_156] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_155] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_129] + PartitionCols:_col0 + Group By Operator [GBY_123] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_117] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_111] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 66 AND 76 or ss_coupon_amt BETWEEN 920 AND 1920 or ss_wholesale_cost BETWEEN 4 AND 24) and ss_quantity BETWEEN 11 AND 15) + Please refer to the previous TableScan [TS_0] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_51] + Merge Join Operator [MERGEJOIN_104] (rows=1 width=931) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"] + <-Reducer 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_154] + Select Operator [SEL_153] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_152] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_151] + Group By Operator [GBY_150] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_149] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_128] + PartitionCols:_col0 + Group By Operator [GBY_122] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_116] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_110] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 142 AND 152 or ss_coupon_amt BETWEEN 3054 AND 4054 or ss_wholesale_cost BETWEEN 80 AND 100) and ss_quantity BETWEEN 16 AND 20) + Please refer to the previous TableScan [TS_0] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_48] + Merge Join Operator [MERGEJOIN_103] (rows=1 width=698) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_148] + Select Operator [SEL_147] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_146] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_145] + Group By Operator [GBY_144] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_143] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_127] + PartitionCols:_col0 + Group By Operator [GBY_121] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_115] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_109] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 135 AND 145 or ss_coupon_amt BETWEEN 14180 AND 15180 or ss_wholesale_cost BETWEEN 38 AND 58) and ss_quantity BETWEEN 21 AND 25) + Please refer to the previous TableScan [TS_0] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_45] + Merge Join Operator [MERGEJOIN_102] (rows=1 width=465) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_142] + Select Operator [SEL_141] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_140] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + Group By Operator [GBY_138] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_137] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col0 + Group By Operator [GBY_120] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_114] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_108] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 28 AND 38 or ss_coupon_amt BETWEEN 2513 AND 3513 or ss_wholesale_cost BETWEEN 42 AND 62) and ss_quantity BETWEEN 26 AND 30) + Please refer to the previous TableScan [TS_0] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_136] + Select Operator [SEL_135] (rows=1 width=232) + Output:["_col0","_col1","_col2"] + Group By Operator [GBY_134] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)","count(VALUE._col2)"] + <-Reducer 2 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_133] + Group By Operator [GBY_132] (rows=1 width=232) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col1)","count(_col2)","count(_col0)"] + Group By Operator [GBY_131] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","count(VALUE._col1)"],keys:KEY._col0 + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_125] + PartitionCols:_col0 + Group By Operator [GBY_119] (rows=191998545 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(ss_list_price)","count(ss_list_price)"],keys:ss_list_price + Select Operator [SEL_113] (rows=191998545 width=88) + Output:["ss_list_price"] + Filter Operator [FIL_107] (rows=191998545 width=88) + predicate:((ss_list_price BETWEEN 11 AND 21 or ss_coupon_amt BETWEEN 460 AND 1460 or ss_wholesale_cost BETWEEN 14 AND 34) and ss_quantity BETWEEN 0 AND 5) + Please refer to the previous TableScan [TS_0] diff --git a/ql/src/test/results/clientpositive/perf/tez/query31.q.out b/ql/src/test/results/clientpositive/perf/tez/query31.q.out index 0f22f520b5..854766e541 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query31.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query31.q.out @@ -113,426 +113,444 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 30 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) -Map 36 <- Reducer 11 (BROADCAST_EDGE), Reducer 31 (BROADCAST_EDGE) -Map 37 <- Reducer 15 (BROADCAST_EDGE), Reducer 32 (BROADCAST_EDGE) -Map 38 <- Reducer 20 (BROADCAST_EDGE), Reducer 33 (BROADCAST_EDGE) -Map 39 <- Reducer 24 (BROADCAST_EDGE), Reducer 34 (BROADCAST_EDGE) -Map 40 <- Reducer 28 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Map 37 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 13 <- Map 29 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 15 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Map 38 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 17 <- Map 29 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 19 <- Reducer 18 (ONE_TO_ONE_EDGE), Reducer 23 (ONE_TO_ONE_EDGE), Reducer 27 (ONE_TO_ONE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 20 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 39 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 22 <- Map 29 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) -Reducer 23 <- Reducer 22 (SIMPLE_EDGE) -Reducer 24 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 40 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 26 <- Map 29 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) -Reducer 27 <- Reducer 26 (SIMPLE_EDGE) -Reducer 28 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 29 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 31 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 32 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 33 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 34 <- Map 29 (CUSTOM_SIMPLE_EDGE) -Reducer 35 <- Map 29 (CUSTOM_SIMPLE_EDGE) +Map 1 <- Reducer 33 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 39 <- Reducer 13 (BROADCAST_EDGE), Reducer 34 (BROADCAST_EDGE) +Map 40 <- Reducer 17 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) +Map 41 <- Reducer 23 (BROADCAST_EDGE), Reducer 36 (BROADCAST_EDGE) +Map 42 <- Reducer 27 (BROADCAST_EDGE), Reducer 37 (BROADCAST_EDGE) +Map 43 <- Reducer 31 (BROADCAST_EDGE), Reducer 38 (BROADCAST_EDGE) +Reducer 10 <- Map 39 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Map 32 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 40 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 15 <- Map 32 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 18 <- Map 41 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 19 <- Map 32 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Reducer 20 (ONE_TO_ONE_EDGE), Reducer 26 (ONE_TO_ONE_EDGE) +Reducer 22 <- Reducer 21 (ONE_TO_ONE_EDGE), Reducer 30 (ONE_TO_ONE_EDGE) +Reducer 23 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 42 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 25 <- Map 32 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 26 <- Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 43 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 29 <- Map 32 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 3 <- Map 32 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Reducer 29 (SIMPLE_EDGE) +Reducer 31 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 36 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 32 (CUSTOM_SIMPLE_EDGE) +Reducer 38 <- Map 32 (CUSTOM_SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 10 (ONE_TO_ONE_EDGE), Reducer 14 (ONE_TO_ONE_EDGE), Reducer 19 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) -Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Map 36 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) -Reducer 9 <- Map 29 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 16 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 22 (ONE_TO_ONE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 5 - File Output Operator [FS_133] - Select Operator [SEL_132] (rows=287493839 width=88) + Reducer 7 + File Output Operator [FS_139] + Select Operator [SEL_138] (rows=115955853 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_130] (rows=287493839 width=88) + Filter Operator [FIL_136] (rows=115955853 width=88) predicate:(CASE WHEN ((_col1 > 0)) THEN (CASE WHEN ((_col9 > 0)) THEN (((_col11 / _col9) > (_col5 / _col1))) ELSE ((null > (_col5 / _col1))) END) ELSE (CASE WHEN ((_col9 > 0)) THEN (((_col11 / _col9) > null)) ELSE (null) END) END and CASE WHEN ((_col3 > 0)) THEN (CASE WHEN ((_col7 > 0)) THEN (((_col9 / _col7) > (_col1 / _col3))) ELSE ((null > (_col1 / _col3))) END) ELSE (CASE WHEN ((_col7 > 0)) THEN (((_col9 / _col7) > null)) ELSE (null) END) END) - Merge Join Operator [MERGEJOIN_448] (rows=1149975359 width=88) - Conds:RS_519._col0=RS_528._col0(Inner),RS_519._col0=RS_537._col0(Inner),RS_519._col0=RS_128._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col7","_col9","_col11"] - <-Reducer 10 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_528] + Merge Join Operator [MERGEJOIN_450] (rows=463823414 width=88) + Conds:RS_133._col0=RS_134._col0(Inner),Output:["_col0","_col1","_col3","_col5","_col7","_col9","_col11"] + <-Reducer 22 [ONE_TO_ONE_EDGE] + FORWARD [RS_134] PartitionCols:_col0 - Group By Operator [GBY_527] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_37] + Merge Join Operator [MERGEJOIN_449] (rows=105417160 width=135) + Conds:RS_123._col0=RS_566._col0(Inner),Output:["_col0","_col1","_col3","_col5"] + <-Reducer 21 [ONE_TO_ONE_EDGE] + FORWARD [RS_123] PartitionCols:_col0 - Group By Operator [GBY_36] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_438] (rows=696954748 width=88) - Conds:RS_32._col1=RS_491._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_491] - PartitionCols:_col0 - Select Operator [SEL_488] (rows=40000000 width=1014) - Output:["_col0","_col1"] - Filter Operator [FIL_487] (rows=40000000 width=1014) - predicate:(ca_address_sk is not null and ca_county is not null) - TableScan [TS_6] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_32] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_437] (rows=633595212 width=88) - Conds:RS_526._col0=RS_463._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_463] - PartitionCols:_col0 - Select Operator [SEL_456] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_450] (rows=18262 width=1119) - predicate:((d_qoy = 1) and (d_year = 2000) and d_date_sk is not null) - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] - <-Map 36 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_526] - PartitionCols:_col0 - Select Operator [SEL_525] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_524] (rows=575995635 width=88) - predicate:((ss_addr_sk BETWEEN DynamicValue(RS_33_customer_address_ca_address_sk_min) AND DynamicValue(RS_33_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_33_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_20] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] - <-Reducer 11 [BROADCAST_EDGE] vectorized - BROADCAST [RS_521] - Group By Operator [GBY_520] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_480] - Group By Operator [GBY_474] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_464] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_456] - <-Reducer 31 [BROADCAST_EDGE] vectorized - BROADCAST [RS_523] - Group By Operator [GBY_522] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_508] - Group By Operator [GBY_502] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_492] (rows=40000000 width=1014) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 14 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_537] - PartitionCols:_col0 - Group By Operator [GBY_536] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_57] - PartitionCols:_col0 - Group By Operator [GBY_56] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_440] (rows=696954748 width=88) - Conds:RS_52._col1=RS_493._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_493] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_488] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_52] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_439] (rows=633595212 width=88) - Conds:RS_535._col0=RS_465._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_465] - PartitionCols:_col0 - Select Operator [SEL_457] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_451] (rows=18262 width=1119) - predicate:((d_qoy = 3) and (d_year = 2000) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 37 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_535] - PartitionCols:_col0 - Select Operator [SEL_534] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_533] (rows=575995635 width=88) - predicate:((ss_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_40] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] - <-Reducer 15 [BROADCAST_EDGE] vectorized - BROADCAST [RS_530] - Group By Operator [GBY_529] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_481] - Group By Operator [GBY_475] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_466] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_457] - <-Reducer 32 [BROADCAST_EDGE] vectorized - BROADCAST [RS_532] - Group By Operator [GBY_531] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_509] - Group By Operator [GBY_503] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_494] (rows=40000000 width=1014) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 19 [ONE_TO_ONE_EDGE] - FORWARD [RS_128] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_447] (rows=191667561 width=135) - Conds:RS_546._col0=RS_555._col0(Inner),RS_546._col0=RS_564._col0(Inner),Output:["_col0","_col1","_col3","_col5"] - <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_546] + Merge Join Operator [MERGEJOIN_448] (rows=95833780 width=135) + Conds:RS_548._col0=RS_557._col0(Inner),Output:["_col0","_col1","_col3"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_548] + PartitionCols:_col0 + Group By Operator [GBY_547] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col0 + Group By Operator [GBY_76] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 + Merge Join Operator [MERGEJOIN_441] (rows=174243235 width=135) + Conds:RS_72._col1=RS_497._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_497] + PartitionCols:_col0 + Select Operator [SEL_490] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_489] (rows=40000000 width=1014) + predicate:(ca_address_sk is not null and ca_county is not null) + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_county"] + <-Reducer 18 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_440] (rows=158402938 width=135) + Conds:RS_546._col0=RS_469._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_469] + PartitionCols:_col0 + Select Operator [SEL_460] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_454] (rows=18262 width=1119) + predicate:((d_qoy = 1) and (d_year = 2000) and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 41 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_546] + PartitionCols:_col0 + Select Operator [SEL_545] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_544] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_73_customer_address_ca_address_sk_min) AND DynamicValue(RS_73_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_73_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_60] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_541] + Group By Operator [GBY_540] (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_484] + Group By Operator [GBY_478] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_470] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_460] + <-Reducer 36 [BROADCAST_EDGE] vectorized + BROADCAST [RS_543] + Group By Operator [GBY_542] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_512] + Group By Operator [GBY_506] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_498] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 26 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_557] + PartitionCols:_col0 + Group By Operator [GBY_556] (rows=87121617 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_97] + PartitionCols:_col0 + Group By Operator [GBY_96] (rows=174243235 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 + Merge Join Operator [MERGEJOIN_443] (rows=174243235 width=135) + Conds:RS_92._col1=RS_499._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_499] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_490] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_92] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_442] (rows=158402938 width=135) + Conds:RS_555._col0=RS_471._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_471] + PartitionCols:_col0 + Select Operator [SEL_461] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_455] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 42 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_555] + PartitionCols:_col0 + Select Operator [SEL_554] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_553] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_93_customer_address_ca_address_sk_min) AND DynamicValue(RS_93_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_93_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_80] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_550] + Group By Operator [GBY_549] (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_485] + Group By Operator [GBY_479] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_472] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_461] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_552] + Group By Operator [GBY_551] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_513] + Group By Operator [GBY_507] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_500] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 30 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_566] PartitionCols:_col0 - Group By Operator [GBY_545] (rows=87121617 width=135) + Group By Operator [GBY_565] (rows=87121617 width=135) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_77] + <-Reducer 29 [SIMPLE_EDGE] + SHUFFLE [RS_117] PartitionCols:_col0 - Group By Operator [GBY_76] (rows=174243235 width=135) + Group By Operator [GBY_116] (rows=174243235 width=135) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_442] (rows=174243235 width=135) - Conds:RS_72._col1=RS_495._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_495] + Merge Join Operator [MERGEJOIN_445] (rows=174243235 width=135) + Conds:RS_112._col1=RS_501._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_501] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_488] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_72] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 28 [SIMPLE_EDGE] + SHUFFLE [RS_112] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_441] (rows=158402938 width=135) - Conds:RS_544._col0=RS_467._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_467] + Merge Join Operator [MERGEJOIN_444] (rows=158402938 width=135) + Conds:RS_564._col0=RS_473._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_473] PartitionCols:_col0 - Select Operator [SEL_458] (rows=18262 width=1119) + Select Operator [SEL_462] (rows=18262 width=1119) Output:["_col0"] - Filter Operator [FIL_452] (rows=18262 width=1119) - predicate:((d_qoy = 1) and (d_year = 2000) and d_date_sk is not null) + Filter Operator [FIL_456] (rows=18262 width=1119) + predicate:((d_qoy = 3) and (d_year = 2000) and d_date_sk is not null) Please refer to the previous TableScan [TS_3] - <-Map 38 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_544] + <-Map 43 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_564] PartitionCols:_col0 - Select Operator [SEL_543] (rows=144002668 width=135) + Select Operator [SEL_563] (rows=144002668 width=135) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_542] (rows=144002668 width=135) - predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_73_customer_address_ca_address_sk_min) AND DynamicValue(RS_73_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_73_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_60] (rows=144002668 width=135) + Filter Operator [FIL_562] (rows=144002668 width=135) + predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_113_customer_address_ca_address_sk_min) AND DynamicValue(RS_113_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_113_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_110_date_dim_d_date_sk_min) AND DynamicValue(RS_110_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_110_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) + TableScan [TS_100] (rows=144002668 width=135) default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] - <-Reducer 20 [BROADCAST_EDGE] vectorized - BROADCAST [RS_539] - Group By Operator [GBY_538] (rows=1 width=12) + <-Reducer 31 [BROADCAST_EDGE] vectorized + BROADCAST [RS_559] + Group By Operator [GBY_558] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_482] - Group By Operator [GBY_476] (rows=1 width=12) + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_486] + Group By Operator [GBY_480] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_468] (rows=18262 width=1119) + Select Operator [SEL_474] (rows=18262 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_458] - <-Reducer 33 [BROADCAST_EDGE] vectorized - BROADCAST [RS_541] - Group By Operator [GBY_540] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_462] + <-Reducer 38 [BROADCAST_EDGE] vectorized + BROADCAST [RS_561] + Group By Operator [GBY_560] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_510] - Group By Operator [GBY_504] (rows=1 width=12) + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_514] + Group By Operator [GBY_508] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_496] (rows=40000000 width=1014) + Select Operator [SEL_502] (rows=40000000 width=1014) Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 23 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_555] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_133] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_447] (rows=421657640 width=88) + Conds:RS_130._col0=RS_539._col0(Inner),Output:["_col0","_col1","_col3","_col5"] + <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_539] PartitionCols:_col0 - Group By Operator [GBY_554] (rows=87121617 width=135) + Group By Operator [GBY_538] (rows=348477374 width=88) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 22 [SIMPLE_EDGE] - SHUFFLE [RS_97] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_57] PartitionCols:_col0 - Group By Operator [GBY_96] (rows=174243235 width=135) + Group By Operator [GBY_56] (rows=696954748 width=88) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_444] (rows=174243235 width=135) - Conds:RS_92._col1=RS_497._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_497] + Merge Join Operator [MERGEJOIN_439] (rows=696954748 width=88) + Conds:RS_52._col1=RS_495._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_495] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_488] - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_92] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_52] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_443] (rows=158402938 width=135) - Conds:RS_553._col0=RS_469._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_469] + Merge Join Operator [MERGEJOIN_438] (rows=633595212 width=88) + Conds:RS_537._col0=RS_467._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_467] PartitionCols:_col0 Select Operator [SEL_459] (rows=18262 width=1119) Output:["_col0"] Filter Operator [FIL_453] (rows=18262 width=1119) - predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) + predicate:((d_qoy = 3) and (d_year = 2000) and d_date_sk is not null) Please refer to the previous TableScan [TS_3] - <-Map 39 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_553] + <-Map 40 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_537] PartitionCols:_col0 - Select Operator [SEL_552] (rows=144002668 width=135) + Select Operator [SEL_536] (rows=575995635 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_551] (rows=144002668 width=135) - predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_93_customer_address_ca_address_sk_min) AND DynamicValue(RS_93_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_93_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_80] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] - <-Reducer 24 [BROADCAST_EDGE] vectorized - BROADCAST [RS_548] - Group By Operator [GBY_547] (rows=1 width=12) + Filter Operator [FIL_535] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_40] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_532] + Group By Operator [GBY_531] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_483] + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_483] Group By Operator [GBY_477] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_470] (rows=18262 width=1119) + Select Operator [SEL_468] (rows=18262 width=1119) Output:["_col0"] Please refer to the previous Select Operator [SEL_459] - <-Reducer 34 [BROADCAST_EDGE] vectorized - BROADCAST [RS_550] - Group By Operator [GBY_549] (rows=1 width=12) + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_534] + Group By Operator [GBY_533] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_511] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_511] Group By Operator [GBY_505] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_498] (rows=40000000 width=1014) + Select Operator [SEL_496] (rows=40000000 width=1014) Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 27 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_564] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_130] PartitionCols:_col0 - Group By Operator [GBY_563] (rows=87121617 width=135) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 26 [SIMPLE_EDGE] - SHUFFLE [RS_117] + Merge Join Operator [MERGEJOIN_446] (rows=383325119 width=88) + Conds:RS_521._col0=RS_530._col0(Inner),Output:["_col0","_col1","_col3"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_530] PartitionCols:_col0 - Group By Operator [GBY_116] (rows=174243235 width=135) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_446] (rows=174243235 width=135) - Conds:RS_112._col1=RS_499._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_499] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_488] - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_112] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_445] (rows=158402938 width=135) - Conds:RS_562._col0=RS_471._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_471] + Group By Operator [GBY_529] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0 + Group By Operator [GBY_36] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 + Merge Join Operator [MERGEJOIN_437] (rows=696954748 width=88) + Conds:RS_32._col1=RS_493._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_493] PartitionCols:_col0 - Select Operator [SEL_460] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_454] (rows=18262 width=1119) - predicate:((d_qoy = 3) and (d_year = 2000) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 40 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_562] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_436] (rows=633595212 width=88) + Conds:RS_528._col0=RS_465._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_465] + PartitionCols:_col0 + Select Operator [SEL_458] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_452] (rows=18262 width=1119) + predicate:((d_qoy = 1) and (d_year = 2000) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 39 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_528] + PartitionCols:_col0 + Select Operator [SEL_527] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_526] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_33_customer_address_ca_address_sk_min) AND DynamicValue(RS_33_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_33_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_20] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_523] + Group By Operator [GBY_522] (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_482] + Group By Operator [GBY_476] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_466] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_458] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_525] + Group By Operator [GBY_524] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_510] + Group By Operator [GBY_504] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_494] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_521] + PartitionCols:_col0 + Group By Operator [GBY_520] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0 + Group By Operator [GBY_16] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 + Merge Join Operator [MERGEJOIN_435] (rows=696954748 width=88) + Conds:RS_12._col1=RS_491._col0(Inner),Output:["_col2","_col7"] + <-Map 32 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_491] PartitionCols:_col0 - Select Operator [SEL_561] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_560] (rows=144002668 width=135) - predicate:((ws_bill_addr_sk BETWEEN DynamicValue(RS_113_customer_address_ca_address_sk_min) AND DynamicValue(RS_113_customer_address_ca_address_sk_max) and in_bloom_filter(ws_bill_addr_sk, DynamicValue(RS_113_customer_address_ca_address_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_110_date_dim_d_date_sk_min) AND DynamicValue(RS_110_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_110_date_dim_d_date_sk_bloom_filter))) and ws_bill_addr_sk is not null and ws_sold_date_sk is not null) - TableScan [TS_100] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_addr_sk","ws_ext_sales_price"] - <-Reducer 28 [BROADCAST_EDGE] vectorized - BROADCAST [RS_557] - Group By Operator [GBY_556] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_484] - Group By Operator [GBY_478] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_472] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_460] - <-Reducer 35 [BROADCAST_EDGE] vectorized - BROADCAST [RS_559] - Group By Operator [GBY_558] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_512] - Group By Operator [GBY_506] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_500] (rows=40000000 width=1014) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_519] - PartitionCols:_col0 - Group By Operator [GBY_518] (rows=348477374 width=88) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_17] - PartitionCols:_col0 - Group By Operator [GBY_16] (rows=696954748 width=88) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col7 - Merge Join Operator [MERGEJOIN_436] (rows=696954748 width=88) - Conds:RS_12._col1=RS_489._col0(Inner),Output:["_col2","_col7"] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_489] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_488] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_435] (rows=633595212 width=88) - Conds:RS_517._col0=RS_461._col0(Inner),Output:["_col1","_col2"] - <-Map 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_461] - PartitionCols:_col0 - Select Operator [SEL_455] (rows=18262 width=1119) - Output:["_col0"] - Filter Operator [FIL_449] (rows=18262 width=1119) - predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_517] - PartitionCols:_col0 - Select Operator [SEL_516] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_515] (rows=575995635 width=88) - predicate:((ss_addr_sk BETWEEN DynamicValue(RS_13_customer_address_ca_address_sk_min) AND DynamicValue(RS_13_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_13_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_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_addr_sk","ss_ext_sales_price"] - <-Reducer 30 [BROADCAST_EDGE] vectorized - BROADCAST [RS_514] - Group By Operator [GBY_513] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] - <-Map 29 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_507] - Group By Operator [GBY_501] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] - Select Operator [SEL_490] (rows=40000000 width=1014) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_488] - <-Reducer 7 [BROADCAST_EDGE] vectorized - BROADCAST [RS_486] - Group By Operator [GBY_485] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_479] - Group By Operator [GBY_473] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_462] (rows=18262 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_455] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_434] (rows=633595212 width=88) + Conds:RS_519._col0=RS_463._col0(Inner),Output:["_col1","_col2"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_463] + PartitionCols:_col0 + Select Operator [SEL_457] (rows=18262 width=1119) + Output:["_col0"] + Filter Operator [FIL_451] (rows=18262 width=1119) + predicate:((d_qoy = 2) and (d_year = 2000) and d_date_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_519] + PartitionCols:_col0 + Select Operator [SEL_518] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_517] (rows=575995635 width=88) + predicate:((ss_addr_sk BETWEEN DynamicValue(RS_13_customer_address_ca_address_sk_min) AND DynamicValue(RS_13_customer_address_ca_address_sk_max) and in_bloom_filter(ss_addr_sk, DynamicValue(RS_13_customer_address_ca_address_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) and ss_addr_sk is not null and ss_sold_date_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_addr_sk","ss_ext_sales_price"] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_516] + Group By Operator [GBY_515] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=40000000)"] + <-Map 32 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_509] + Group By Operator [GBY_503] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=40000000)"] + Select Operator [SEL_492] (rows=40000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_490] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_488] + Group By Operator [GBY_487] (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_481] + Group By Operator [GBY_475] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_464] (rows=18262 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_457] diff --git a/ql/src/test/results/clientpositive/perf/tez/query35.q.out b/ql/src/test/results/clientpositive/perf/tez/query35.q.out index cfb7d4e06c..218c478b5c 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query35.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query35.q.out @@ -129,213 +129,225 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 10 <- Reducer 13 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) -Map 20 <- Reducer 16 (BROADCAST_EDGE) -Map 21 <- Reducer 19 (BROADCAST_EDGE) -Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) -Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Map 12 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (SIMPLE_EDGE) -Reducer 16 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 17 <- Map 12 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 19 <- Map 12 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) -Reducer 3 <- Map 9 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 11 (SIMPLE_EDGE), Reducer 15 (ONE_TO_ONE_EDGE), Reducer 18 (ONE_TO_ONE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Map 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (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 3 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_226] - Limit [LIM_225] (rows=100 width=88) + Reducer 8 vectorized + File Output Operator [FS_234] + Limit [LIM_233] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_224] (rows=1045432122 width=88) + Select Operator [SEL_232] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15","_col16"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_223] - Select Operator [SEL_222] (rows=1045432122 width=88) + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_231] + Select Operator [SEL_230] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col9","_col10","_col11","_col12","_col14","_col15","_col16","_col17"] - Group By Operator [GBY_221] (rows=1045432122 width=88) + Group By Operator [GBY_229] (rows=421657640 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","count(VALUE._col2)","max(VALUE._col3)","sum(VALUE._col4)","count(VALUE._col5)","max(VALUE._col6)","sum(VALUE._col7)","count(VALUE._col8)","max(VALUE._col9)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_63] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_67] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 - Group By Operator [GBY_62] (rows=2090864244 width=88) + Group By Operator [GBY_66] (rows=843315281 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14","_col15"],aggregations:["count()","sum(_col8)","count(_col8)","max(_col8)","sum(_col9)","count(_col9)","max(_col9)","sum(_col10)","count(_col10)","max(_col10)"],keys:_col4, _col6, _col7, _col8, _col9, _col10 - Top N Key Operator [TNK_104] (rows=2090864244 width=88) + Top N Key Operator [TNK_104] (rows=843315281 width=88) keys:_col4, _col6, _col7, _col8, _col9, _col10,sort order:++++++,top n:100 - Select Operator [SEL_61] (rows=2090864244 width=88) + Select Operator [SEL_65] (rows=843315281 width=88) Output:["_col4","_col6","_col7","_col8","_col9","_col10"] - Filter Operator [FIL_60] (rows=2090864244 width=88) + Filter Operator [FIL_64] (rows=843315281 width=88) predicate:(_col12 is not null or _col14 is not null) - Merge Join Operator [MERGEJOIN_174] (rows=2090864244 width=88) - Conds:RS_55._col0=RS_56._col0(Left Semi),RS_55._col0=RS_212._col0(Left Outer),RS_55._col0=RS_220._col0(Left Outer),Output:["_col4","_col6","_col7","_col8","_col9","_col10","_col12","_col14"] - <-Reducer 3 [SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_55] + Merge Join Operator [MERGEJOIN_182] (rows=843315281 width=88) + Conds:RS_61._col0=RS_228._col0(Left Outer),Output:["_col4","_col6","_col7","_col8","_col9","_col10","_col12","_col14"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_228] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_170] (rows=96800003 width=860) - Conds:RS_50._col1=RS_183._col0(Inner),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10"] - <-Map 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_183] - PartitionCols:_col0 - Select Operator [SEL_182] (rows=1861800 width=385) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_181] (rows=1861800 width=385) - predicate:cd_demo_sk is not null - TableScan [TS_6] (rows=1861800 width=385) - default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_50] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_169] (rows=88000001 width=860) - Conds:RS_177._col2=RS_180._col0(Inner),Output:["_col0","_col1","_col4"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_177] - PartitionCols:_col2 - Select Operator [SEL_176] (rows=80000000 width=860) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_175] (rows=80000000 width=860) - predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_180] - PartitionCols:_col0 - Select Operator [SEL_179] (rows=40000000 width=1014) - Output:["_col0","_col1"] - Filter Operator [FIL_178] (rows=40000000 width=1014) - predicate:ca_address_sk is not null - TableScan [TS_3] (rows=40000000 width=1014) - default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_56] - PartitionCols:_col0 - Group By Operator [GBY_54] (rows=633595212 width=88) - Output:["_col0"],keys:_col0 - Select Operator [SEL_18] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_171] (rows=633595212 width=88) - Conds:RS_204._col0=RS_186._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_186] - PartitionCols:_col0 - Select Operator [SEL_185] (rows=12174 width=1119) - Output:["_col0"] - Filter Operator [FIL_184] (rows=12174 width=1119) - predicate:((d_qoy < 4) and (d_year = 1999) and d_date_sk is not null) - TableScan [TS_12] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] - <-Map 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_204] - PartitionCols:_col0 - Select Operator [SEL_203] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_202] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_55_c_c_customer_sk_min) AND DynamicValue(RS_55_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_55_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_9] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_199] - Group By Operator [GBY_198] (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_195] - Group By Operator [GBY_192] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_187] (rows=12174 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_185] - <-Reducer 7 [BROADCAST_EDGE] vectorized - BROADCAST [RS_201] - Group By Operator [GBY_200] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_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=96800000)"] - Select Operator [SEL_135] (rows=96800003 width=860) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_170] - <-Reducer 15 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_212] - PartitionCols:_col0 - Select Operator [SEL_211] (rows=79201469 width=135) + Select Operator [SEL_227] (rows=158394413 width=135) Output:["_col0","_col1"] - Group By Operator [GBY_210] (rows=79201469 width=135) + Group By Operator [GBY_226] (rows=158394413 width=135) Output:["_col0"],keys:KEY._col0 - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_30] - PartitionCols:_col0 - Group By Operator [GBY_29] (rows=158402938 width=135) - Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_172] (rows=158402938 width=135) - Conds:RS_209._col0=RS_188._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_188] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_185] - <-Map 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_209] - PartitionCols:_col0 - Select Operator [SEL_208] (rows=144002668 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_207] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_26_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_19] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] - <-Reducer 16 [BROADCAST_EDGE] vectorized - BROADCAST [RS_206] - Group By Operator [GBY_205] (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_196] - 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_189] (rows=12174 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_185] - <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_220] - PartitionCols:_col0 - Select Operator [SEL_219] (rows=158394413 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_218] (rows=158394413 width=135) - Output:["_col0"],keys:KEY._col0 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_44] PartitionCols:_col0 Group By Operator [GBY_43] (rows=316788826 width=135) Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_173] (rows=316788826 width=135) - Conds:RS_217._col0=RS_190._col0(Inner),Output:["_col1"] - <-Map 12 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_190] + Merge Join Operator [MERGEJOIN_179] (rows=316788826 width=135) + Conds:RS_225._col0=RS_198._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_198] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_185] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_217] + Select Operator [SEL_193] (rows=12174 width=1119) + Output:["_col0"] + Filter Operator [FIL_192] (rows=12174 width=1119) + predicate:((d_qoy < 4) and (d_year = 1999) and d_date_sk is not null) + TableScan [TS_12] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_qoy"] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_225] PartitionCols:_col0 - Select Operator [SEL_216] (rows=287989836 width=135) + Select Operator [SEL_224] (rows=287989836 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_215] (rows=287989836 width=135) + Filter Operator [FIL_223] (rows=287989836 width=135) predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_40_date_dim_d_date_sk_min) AND DynamicValue(RS_40_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_40_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_33] (rows=287989836 width=135) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] - <-Reducer 19 [BROADCAST_EDGE] vectorized - BROADCAST [RS_214] - Group By Operator [GBY_213] (rows=1 width=12) + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_222] + Group By Operator [GBY_221] (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_197] - Group By Operator [GBY_194] (rows=1 width=12) + <-Map 14 [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_191] (rows=12174 width=1119) + Select Operator [SEL_199] (rows=12174 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_185] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_61] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_181] (rows=766650239 width=88) + Conds:RS_58._col0=RS_220._col0(Left Outer),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10","_col12"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_220] + PartitionCols:_col0 + Select Operator [SEL_219] (rows=79201469 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_218] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_30] + PartitionCols:_col0 + Group By Operator [GBY_29] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Merge Join Operator [MERGEJOIN_178] (rows=158402938 width=135) + Conds:RS_217._col0=RS_196._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_196] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_217] + PartitionCols:_col0 + Select Operator [SEL_216] (rows=144002668 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_215] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_26_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_19] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] + <-Reducer 18 [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 14 [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=12174 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_58] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_180] (rows=696954748 width=88) + Conds:RS_55._col0=RS_56._col0(Left Semi),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_55] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_176] (rows=96800003 width=860) + Conds:RS_50._col1=RS_191._col0(Inner),Output:["_col0","_col4","_col6","_col7","_col8","_col9","_col10"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_191] + PartitionCols:_col0 + Select Operator [SEL_190] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_189] (rows=1861800 width=385) + predicate:cd_demo_sk is not null + TableScan [TS_6] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_dep_count","cd_dep_employed_count","cd_dep_college_count"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_50] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_175] (rows=88000001 width=860) + Conds:RS_185._col2=RS_188._col0(Inner),Output:["_col0","_col1","_col4"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_185] + PartitionCols:_col2 + Select Operator [SEL_184] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_183] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_188] + PartitionCols:_col0 + Select Operator [SEL_187] (rows=40000000 width=1014) + Output:["_col0","_col1"] + Filter Operator [FIL_186] (rows=40000000 width=1014) + predicate:ca_address_sk is not null + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_56] + PartitionCols:_col0 + Group By Operator [GBY_54] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_18] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_177] (rows=633595212 width=88) + Conds:RS_212._col0=RS_194._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_194] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_193] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_212] + PartitionCols:_col0 + Select Operator [SEL_211] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_210] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_55_c_c_customer_sk_min) AND DynamicValue(RS_55_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_55_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_9] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [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 14 [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=12174 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_193] + <-Reducer 9 [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=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_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=96800000)"] + Select Operator [SEL_135] (rows=96800003 width=860) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_176] diff --git a/ql/src/test/results/clientpositive/perf/tez/query37.q.out b/ql/src/test/results/clientpositive/perf/tez/query37.q.out index 8799c9fb28..9c9084478c 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query37.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query37.q.out @@ -43,98 +43,104 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 6 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (ONE_TO_ONE_EDGE), Reducer 9 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 6 <- Map 5 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Map 10 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 11 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 4 vectorized - File Output Operator [FS_97] - Limit [LIM_96] (rows=100 width=135) + Reducer 5 vectorized + File Output Operator [FS_103] + Limit [LIM_102] (rows=100 width=135) Number of rows:100 - Select Operator [SEL_95] (rows=316788826 width=135) + Select Operator [SEL_101] (rows=174233858 width=135) Output:["_col0","_col1","_col2"] - <-Reducer 3 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_94] - Group By Operator [GBY_93] (rows=316788826 width=135) + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_100] + Group By Operator [GBY_99] (rows=174233858 width=135) Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_22] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_24] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_21] (rows=633577652 width=135) + Group By Operator [GBY_23] (rows=348467716 width=135) Output:["_col0","_col1","_col2"],keys:_col2, _col3, _col4 - Top N Key Operator [TNK_43] (rows=633577652 width=135) + Top N Key Operator [TNK_43] (rows=348467716 width=135) keys:_col2, _col3, _col4,sort order:+++,top n:100 - Merge Join Operator [MERGEJOIN_73] (rows=633577652 width=135) - Conds:RS_92._col0=RS_76._col0(Inner),RS_76._col0=RS_18._col1(Inner),Output:["_col2","_col3","_col4"] - <-Map 5 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_76] - PartitionCols:_col0 - Select Operator [SEL_75] (rows=51333 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_74] (rows=51333 width=1436) - predicate:((i_manufact_id) IN (678, 964, 918, 849) and i_current_price BETWEEN 22 AND 52 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","i_item_desc","i_current_price","i_manufact_id"] - <-Reducer 8 [SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_18] + Merge Join Operator [MERGEJOIN_79] (rows=348467716 width=135) + Conds:RS_19._col1=RS_20._col1(Inner),Output:["_col2","_col3","_col4"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_20] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_72] (rows=4593600 width=15) - Conds:RS_84._col0=RS_87._col0(Inner),Output:["_col1"] - <-Map 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_87] + Merge Join Operator [MERGEJOIN_78] (rows=4593600 width=15) + Conds:RS_90._col0=RS_93._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] PartitionCols:_col0 - Select Operator [SEL_86] (rows=8116 width=1119) + Select Operator [SEL_92] (rows=8116 width=1119) Output:["_col0"] - Filter Operator [FIL_85] (rows=8116 width=1119) + Filter Operator [FIL_91] (rows=8116 width=1119) predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2001-06-02 00:00:00' AND TIMESTAMP'2001-08-01 00:00:00' 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_date"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_84] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_90] PartitionCols:_col0 - Select Operator [SEL_83] (rows=4176000 width=15) + Select Operator [SEL_89] (rows=4176000 width=15) Output:["_col0","_col1"] - Filter Operator [FIL_82] (rows=4176000 width=15) + Filter Operator [FIL_88] (rows=4176000 width=15) predicate:(inv_date_sk is not null and inv_item_sk is not null and inv_quantity_on_hand BETWEEN 100 AND 500) TableScan [TS_6] (rows=37584000 width=15) default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_quantity_on_hand"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_92] - PartitionCols:_col0 - Select Operator [SEL_91] (rows=287989836 width=135) - Output:["_col0"] - Filter Operator [FIL_90] (rows=287989836 width=135) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_17_item_i_item_sk_min) AND DynamicValue(RS_17_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_17_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_18_inventory_inv_item_sk_min) AND DynamicValue(RS_18_inventory_inv_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_18_inventory_inv_item_sk_bloom_filter))) and cs_item_sk is not null) - TableScan [TS_0] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk"] - <-Reducer 6 [BROADCAST_EDGE] vectorized - BROADCAST [RS_81] - Group By Operator [GBY_80] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 5 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_79] - Group By Operator [GBY_78] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_77] (rows=51333 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_75] - <-Reducer 9 [BROADCAST_EDGE] vectorized - BROADCAST [RS_89] - Group By Operator [GBY_88] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4593600)"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_51] - Group By Operator [GBY_50] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4593600)"] - Select Operator [SEL_49] (rows=4593600 width=15) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_72] + <-Reducer 2 [ONE_TO_ONE_EDGE] + FORWARD [RS_19] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_77] (rows=316788826 width=135) + Conds:RS_98._col0=RS_82._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_82] + PartitionCols:_col0 + Select Operator [SEL_81] (rows=51333 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_80] (rows=51333 width=1436) + predicate:((i_manufact_id) IN (678, 964, 918, 849) and i_current_price BETWEEN 22 AND 52 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","i_item_desc","i_current_price","i_manufact_id"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_98] + PartitionCols:_col0 + Select Operator [SEL_97] (rows=287989836 width=135) + Output:["_col0"] + Filter Operator [FIL_96] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_17_item_i_item_sk_min) AND DynamicValue(RS_17_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_17_item_i_item_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_20_inventory_inv_item_sk_min) AND DynamicValue(RS_20_inventory_inv_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_20_inventory_inv_item_sk_bloom_filter))) and cs_item_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_item_sk"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_95] + Group By Operator [GBY_94] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4593600)"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_51] + Group By Operator [GBY_50] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4593600)"] + Select Operator [SEL_49] (rows=4593600 width=15) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_78] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_87] + Group By Operator [GBY_86] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_85] + Group By Operator [GBY_84] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_83] (rows=51333 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_81] diff --git a/ql/src/test/results/clientpositive/perf/tez/query4.q.out b/ql/src/test/results/clientpositive/perf/tez/query4.q.out index 02878ffc39..b54775d893 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query4.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query4.q.out @@ -229,431 +229,457 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 30 (BROADCAST_EDGE) -Map 11 <- Reducer 32 (BROADCAST_EDGE), Reducer 38 (BROADCAST_EDGE) -Map 15 <- Reducer 33 (BROADCAST_EDGE) -Map 19 <- Reducer 29 (BROADCAST_EDGE), Reducer 36 (BROADCAST_EDGE) -Map 23 <- Reducer 28 (BROADCAST_EDGE), Reducer 35 (BROADCAST_EDGE) -Map 7 <- Reducer 31 (BROADCAST_EDGE), Reducer 37 (BROADCAST_EDGE) +Map 1 <- Reducer 34 (BROADCAST_EDGE) +Map 11 <- Reducer 35 (BROADCAST_EDGE), Reducer 41 (BROADCAST_EDGE) +Map 15 <- Reducer 36 (BROADCAST_EDGE), Reducer 42 (BROADCAST_EDGE) +Map 19 <- Reducer 37 (BROADCAST_EDGE) +Map 23 <- Reducer 33 (BROADCAST_EDGE), Reducer 40 (BROADCAST_EDGE) +Map 27 <- Reducer 32 (BROADCAST_EDGE), Reducer 39 (BROADCAST_EDGE) Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) -Reducer 13 <- Map 34 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) +Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 13 <- Map 38 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) -Reducer 17 <- Map 34 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 17 <- Map 38 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) -Reducer 20 <- Map 19 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) -Reducer 21 <- Map 34 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 20 <- Map 19 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 21 <- Map 38 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) Reducer 22 <- Reducer 21 (SIMPLE_EDGE) -Reducer 24 <- Map 23 (SIMPLE_EDGE), Map 27 (SIMPLE_EDGE) -Reducer 25 <- Map 34 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) +Reducer 24 <- Map 23 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 25 <- Map 38 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) Reducer 26 <- Reducer 25 (SIMPLE_EDGE) -Reducer 28 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 29 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 34 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 31 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 32 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 33 <- Map 27 (CUSTOM_SIMPLE_EDGE) -Reducer 35 <- Map 34 (CUSTOM_SIMPLE_EDGE) -Reducer 36 <- Map 34 (CUSTOM_SIMPLE_EDGE) -Reducer 37 <- Map 34 (CUSTOM_SIMPLE_EDGE) -Reducer 38 <- Map 34 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 27 (SIMPLE_EDGE), Map 31 (SIMPLE_EDGE) +Reducer 29 <- Map 38 (SIMPLE_EDGE), Reducer 28 (SIMPLE_EDGE) +Reducer 3 <- Map 38 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Reducer 29 (SIMPLE_EDGE) +Reducer 32 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 33 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 36 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 37 <- Map 31 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Map 38 (CUSTOM_SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 10 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE), Reducer 22 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 8 <- Map 27 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Map 34 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 40 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 41 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 42 <- Map 38 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 14 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 18 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 22 (SIMPLE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 26 (SIMPLE_EDGE), Reducer 7 (ONE_TO_ONE_EDGE) +Reducer 9 <- Reducer 30 (SIMPLE_EDGE), Reducer 8 (ONE_TO_ONE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_587] - Limit [LIM_586] (rows=100 width=88) + Reducer 10 vectorized + File Output Operator [FS_595] + Limit [LIM_594] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_585] (rows=479156399 width=88) + Select Operator [SEL_593] (rows=191662559 width=88) Output:["_col0"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_139] - Select Operator [SEL_138] (rows=479156399 width=88) + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_147] + Select Operator [SEL_146] (rows=191662559 width=88) Output:["_col0"] - Filter Operator [FIL_136] (rows=479156399 width=88) - predicate:(CASE WHEN (_col3 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > (_col12 / _col3))) ELSE ((null > (_col12 / _col3))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > null)) ELSE (null) END) END and CASE WHEN (_col7 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > (_col1 / _col7))) ELSE ((null > (_col1 / _col7))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > null)) ELSE (null) END) END) - Merge Join Operator [MERGEJOIN_470] (rows=1916625598 width=88) - Conds:RS_530._col0=RS_542._col0(Inner),RS_542._col0=RS_554._col0(Inner),RS_542._col0=RS_564._col0(Inner),RS_542._col0=RS_574._col0(Inner),RS_542._col0=RS_584._col0(Inner),Output:["_col1","_col3","_col5","_col7","_col9","_col11","_col12"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_542] + Filter Operator [FIL_145] (rows=191662559 width=88) + predicate:CASE WHEN (_col3 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > (_col12 / _col3))) ELSE ((null > (_col12 / _col3))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_478] (rows=383325119 width=88) + Conds:RS_142._col2=RS_592._col0(Inner),Output:["_col3","_col5","_col9","_col11","_col12"] + <-Reducer 30 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_592] PartitionCols:_col0 - Select Operator [SEL_541] (rows=116159124 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_540] (rows=116159124 width=88) - predicate:(_col7 > 0) - Select Operator [SEL_539] (rows=348477374 width=88) - Output:["_col0","_col7"] - Group By Operator [GBY_538] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_39] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_38] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_36] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_461] (rows=696954748 width=88) - Conds:RS_33._col1=RS_515._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_515] - PartitionCols:_col0 - Select Operator [SEL_509] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_508] (rows=80000000 width=860) - predicate:(c_customer_id is not null and c_customer_sk is not null) - TableScan [TS_114] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_33] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_460] (rows=633595212 width=88) - Conds:RS_537._col0=RS_485._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_485] - PartitionCols:_col0 - Select Operator [SEL_476] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_472] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - TableScan [TS_111] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_537] - PartitionCols:_col0 - Select Operator [SEL_536] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_535] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_34_customer_c_customer_sk_min) AND DynamicValue(RS_34_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_34_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_31_date_dim_d_date_sk_min) AND DynamicValue(RS_31_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_31_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_21] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"] - <-Reducer 31 [BROADCAST_EDGE] vectorized - BROADCAST [RS_532] - Group By Operator [GBY_531] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_500] - Group By Operator [GBY_494] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_486] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_476] - <-Reducer 37 [BROADCAST_EDGE] vectorized - BROADCAST [RS_534] - Group By Operator [GBY_533] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_526] - Group By Operator [GBY_522] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_516] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_509] - <-Reducer 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_554] - PartitionCols:_col0 - Select Operator [SEL_553] (rows=58077952 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_552] (rows=58077952 width=135) - predicate:(_col7 > 0) - Select Operator [SEL_551] (rows=174233858 width=135) - Output:["_col0","_col7"] - Group By Operator [GBY_550] (rows=174233858 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_61] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_60] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_58] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_463] (rows=348467716 width=135) - Conds:RS_55._col1=RS_517._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_517] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_509] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_462] (rows=316788826 width=135) - Conds:RS_549._col0=RS_487._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_487] - PartitionCols:_col0 - Select Operator [SEL_477] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_473] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_111] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_549] - PartitionCols:_col0 - Select Operator [SEL_548] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_547] (rows=287989836 width=135) - predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_56_customer_c_customer_sk_min) AND DynamicValue(RS_56_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_56_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_53_date_dim_d_date_sk_min) AND DynamicValue(RS_53_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_53_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_43] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] - <-Reducer 32 [BROADCAST_EDGE] vectorized - BROADCAST [RS_544] - Group By Operator [GBY_543] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_501] - Group By Operator [GBY_495] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_488] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_477] - <-Reducer 38 [BROADCAST_EDGE] vectorized - BROADCAST [RS_546] - Group By Operator [GBY_545] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_527] - Group By Operator [GBY_523] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_518] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_509] - <-Reducer 18 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_564] - PartitionCols:_col0 - Select Operator [SEL_563] (rows=29040539 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_562] (rows=29040539 width=135) - predicate:(_col7 > 0) - Select Operator [SEL_561] (rows=87121617 width=135) - Output:["_col0","_col7"] - Group By Operator [GBY_560] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 17 [SIMPLE_EDGE] - SHUFFLE [RS_83] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_82] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_80] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_465] (rows=174243235 width=135) - Conds:RS_77._col1=RS_519._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_519] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_509] - <-Reducer 16 [SIMPLE_EDGE] - SHUFFLE [RS_77] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_464] (rows=158402938 width=135) - Conds:RS_559._col0=RS_489._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_489] - PartitionCols:_col0 - Select Operator [SEL_478] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_474] (rows=36524 width=1119) - predicate:((d_year = 2001) and d_date_sk is not null) - Please refer to the previous TableScan [TS_111] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_559] - PartitionCols:_col0 - Select Operator [SEL_558] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_557] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_75_date_dim_d_date_sk_min) AND DynamicValue(RS_75_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_75_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_65] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] - <-Reducer 33 [BROADCAST_EDGE] vectorized - BROADCAST [RS_556] - Group By Operator [GBY_555] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_502] - Group By Operator [GBY_496] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_490] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_478] - <-Reducer 22 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_574] - PartitionCols:_col0 - Select Operator [SEL_573] (rows=174233858 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_572] (rows=174233858 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 21 [SIMPLE_EDGE] - SHUFFLE [RS_105] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_104] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_102] (rows=348467716 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_467] (rows=348467716 width=135) - Conds:RS_99._col1=RS_512._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_512] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_509] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_99] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_466] (rows=316788826 width=135) - Conds:RS_571._col0=RS_481._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_481] - PartitionCols:_col0 - Select Operator [SEL_475] (rows=36524 width=1119) - Output:["_col0"] - Filter Operator [FIL_471] (rows=36524 width=1119) - predicate:((d_year = 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_111] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_571] - PartitionCols:_col0 - Select Operator [SEL_570] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_569] (rows=287989836 width=135) - predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_100_customer_c_customer_sk_min) AND DynamicValue(RS_100_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_100_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_97_date_dim_d_date_sk_min) AND DynamicValue(RS_97_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_97_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_87] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] - <-Reducer 29 [BROADCAST_EDGE] vectorized - BROADCAST [RS_566] - Group By Operator [GBY_565] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_498] - Group By Operator [GBY_492] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_482] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_475] - <-Reducer 36 [BROADCAST_EDGE] vectorized - BROADCAST [RS_568] - Group By Operator [GBY_567] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_525] - Group By Operator [GBY_521] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_513] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_509] - <-Reducer 26 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_584] - PartitionCols:_col0 - Select Operator [SEL_583] (rows=348477374 width=88) + Select Operator [SEL_591] (rows=348477374 width=88) Output:["_col0","_col1","_col2"] - Group By Operator [GBY_582] (rows=348477374 width=88) + Group By Operator [GBY_590] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 25 [SIMPLE_EDGE] + <-Reducer 29 [SIMPLE_EDGE] SHUFFLE [RS_126] PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 Group By Operator [GBY_125] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 Select Operator [SEL_123] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_469] (rows=696954748 width=88) - Conds:RS_120._col1=RS_510._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_510] + Merge Join Operator [MERGEJOIN_473] (rows=696954748 width=88) + Conds:RS_120._col1=RS_518._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_518] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_509] - <-Reducer 24 [SIMPLE_EDGE] + Select Operator [SEL_517] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_516] (rows=80000000 width=860) + predicate:(c_customer_id is not null and c_customer_sk is not null) + TableScan [TS_114] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name","c_preferred_cust_flag","c_birth_country","c_login","c_email_address"] + <-Reducer 28 [SIMPLE_EDGE] SHUFFLE [RS_120] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_468] (rows=633595212 width=88) - Conds:RS_581._col0=RS_479._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_479] + Merge Join Operator [MERGEJOIN_472] (rows=633595212 width=88) + Conds:RS_589._col0=RS_487._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_487] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_475] - <-Map 23 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_581] + Select Operator [SEL_483] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_479] (rows=36524 width=1119) + predicate:((d_year = 2002) and d_date_sk is not null) + TableScan [TS_111] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 27 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_589] PartitionCols:_col0 - Select Operator [SEL_580] (rows=575995635 width=88) + Select Operator [SEL_588] (rows=575995635 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_579] (rows=575995635 width=88) + Filter Operator [FIL_587] (rows=575995635 width=88) predicate:((ss_customer_sk BETWEEN DynamicValue(RS_121_customer_c_customer_sk_min) AND DynamicValue(RS_121_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_121_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_118_date_dim_d_date_sk_min) AND DynamicValue(RS_118_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_118_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) TableScan [TS_108] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"] - <-Reducer 28 [BROADCAST_EDGE] vectorized - BROADCAST [RS_576] - Group By Operator [GBY_575] (rows=1 width=12) + <-Reducer 32 [BROADCAST_EDGE] vectorized + BROADCAST [RS_584] + Group By Operator [GBY_583] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_497] - Group By Operator [GBY_491] (rows=1 width=12) + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_505] + Group By Operator [GBY_499] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_480] (rows=36524 width=1119) + Select Operator [SEL_488] (rows=36524 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_475] - <-Reducer 35 [BROADCAST_EDGE] vectorized - BROADCAST [RS_578] - Group By Operator [GBY_577] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_483] + <-Reducer 39 [BROADCAST_EDGE] vectorized + BROADCAST [RS_586] + Group By Operator [GBY_585] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 34 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_524] - Group By Operator [GBY_520] (rows=1 width=12) + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_532] + Group By Operator [GBY_528] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_511] (rows=80000000 width=860) + Select Operator [SEL_519] (rows=80000000 width=860) Output:["_col0"] - Please refer to the previous Select Operator [SEL_509] - <-Reducer 4 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_530] - PartitionCols:_col0 - Select Operator [SEL_529] (rows=87121617 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_528] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Group By Operator [GBY_17] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 - Select Operator [SEL_15] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_459] (rows=174243235 width=135) - Conds:RS_12._col1=RS_514._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] - <-Map 34 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_514] + Please refer to the previous Select Operator [SEL_517] + <-Reducer 8 [ONE_TO_ONE_EDGE] + FORWARD [RS_142] + PartitionCols:_col2 + Filter Operator [FIL_141] (rows=95828623 width=135) + predicate:CASE WHEN (_col7 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > (_col1 / _col7))) ELSE ((null > (_col1 / _col7))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col9 / _col5) > null)) ELSE (null) END) END + Merge Join Operator [MERGEJOIN_477] (rows=191657247 width=135) + Conds:RS_138._col2=RS_582._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col7","_col9"] + <-Reducer 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_582] + PartitionCols:_col0 + Select Operator [SEL_581] (rows=174233858 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_580] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_105] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_104] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_102] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_471] (rows=348467716 width=135) + Conds:RS_99._col1=RS_520._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_520] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_517] + <-Reducer 24 [SIMPLE_EDGE] + SHUFFLE [RS_99] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_470] (rows=316788826 width=135) + Conds:RS_579._col0=RS_489._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_489] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_483] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_579] + PartitionCols:_col0 + Select Operator [SEL_578] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_577] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_100_customer_c_customer_sk_min) AND DynamicValue(RS_100_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_100_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_97_date_dim_d_date_sk_min) AND DynamicValue(RS_97_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_97_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_87] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] + <-Reducer 33 [BROADCAST_EDGE] vectorized + BROADCAST [RS_574] + Group By Operator [GBY_573] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_506] + Group By Operator [GBY_500] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_490] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_483] + <-Reducer 40 [BROADCAST_EDGE] vectorized + BROADCAST [RS_576] + Group By Operator [GBY_575] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_533] + Group By Operator [GBY_529] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_521] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_517] + <-Reducer 7 [ONE_TO_ONE_EDGE] + FORWARD [RS_138] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_476] (rows=154607802 width=88) + Conds:RS_135._col2=RS_572._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col7"] + <-Reducer 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_572] + PartitionCols:_col0 + Select Operator [SEL_571] (rows=29040539 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_570] (rows=29040539 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_569] (rows=87121617 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_568] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_83] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_82] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_80] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_469] (rows=174243235 width=135) + Conds:RS_77._col1=RS_527._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_527] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_517] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_468] (rows=158402938 width=135) + Conds:RS_567._col0=RS_497._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_497] + PartitionCols:_col0 + Select Operator [SEL_486] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_482] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_111] + <-Map 19 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_567] + PartitionCols:_col0 + Select Operator [SEL_566] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_565] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_75_date_dim_d_date_sk_min) AND DynamicValue(RS_75_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_75_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_65] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] + <-Reducer 37 [BROADCAST_EDGE] vectorized + BROADCAST [RS_564] + Group By Operator [GBY_563] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_510] + Group By Operator [GBY_504] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_498] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_486] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_135] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_475] (rows=140552545 width=88) + Conds:RS_132._col2=RS_562._col0(Inner),Output:["_col1","_col2","_col3","_col5"] + <-Reducer 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_562] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_509] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_458] (rows=158402938 width=135) - Conds:RS_507._col0=RS_483._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_483] + Select Operator [SEL_561] (rows=58077952 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_560] (rows=58077952 width=135) + predicate:(_col7 > 0) + Select Operator [SEL_559] (rows=174233858 width=135) + Output:["_col0","_col7"] + Group By Operator [GBY_558] (rows=174233858 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 17 [SIMPLE_EDGE] + SHUFFLE [RS_61] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_60] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_58] (rows=348467716 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_467] (rows=348467716 width=135) + Conds:RS_55._col1=RS_525._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_525] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_517] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_466] (rows=316788826 width=135) + Conds:RS_557._col0=RS_495._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_495] + PartitionCols:_col0 + Select Operator [SEL_485] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_481] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_111] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_557] + PartitionCols:_col0 + Select Operator [SEL_556] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_555] (rows=287989836 width=135) + predicate:((cs_bill_customer_sk BETWEEN DynamicValue(RS_56_customer_c_customer_sk_min) AND DynamicValue(RS_56_customer_c_customer_sk_max) and in_bloom_filter(cs_bill_customer_sk, DynamicValue(RS_56_customer_c_customer_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_53_date_dim_d_date_sk_min) AND DynamicValue(RS_53_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_53_date_dim_d_date_sk_bloom_filter))) and cs_bill_customer_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_43] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_bill_customer_sk","cs_ext_discount_amt","cs_ext_sales_price","cs_ext_wholesale_cost","cs_ext_list_price"] + <-Reducer 36 [BROADCAST_EDGE] vectorized + BROADCAST [RS_552] + Group By Operator [GBY_551] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_509] + Group By Operator [GBY_503] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_496] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_485] + <-Reducer 42 [BROADCAST_EDGE] vectorized + BROADCAST [RS_554] + Group By Operator [GBY_553] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_535] + Group By Operator [GBY_531] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_526] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_517] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_132] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_474] (rows=127775039 width=88) + Conds:RS_538._col0=RS_550._col0(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_550] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_475] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_507] + Select Operator [SEL_549] (rows=116159124 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_548] (rows=116159124 width=88) + predicate:(_col7 > 0) + Select Operator [SEL_547] (rows=348477374 width=88) + Output:["_col0","_col7"] + Group By Operator [GBY_546] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_39] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_38] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_36] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_465] (rows=696954748 width=88) + Conds:RS_33._col1=RS_523._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_523] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_517] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_464] (rows=633595212 width=88) + Conds:RS_545._col0=RS_493._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_493] + PartitionCols:_col0 + Select Operator [SEL_484] (rows=36524 width=1119) + Output:["_col0"] + Filter Operator [FIL_480] (rows=36524 width=1119) + predicate:((d_year = 2001) and d_date_sk is not null) + Please refer to the previous TableScan [TS_111] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_545] + PartitionCols:_col0 + Select Operator [SEL_544] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_543] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_34_customer_c_customer_sk_min) AND DynamicValue(RS_34_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_34_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_31_date_dim_d_date_sk_min) AND DynamicValue(RS_31_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_31_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_21] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_ext_discount_amt","ss_ext_sales_price","ss_ext_wholesale_cost","ss_ext_list_price"] + <-Reducer 35 [BROADCAST_EDGE] vectorized + BROADCAST [RS_540] + Group By Operator [GBY_539] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_508] + Group By Operator [GBY_502] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_494] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_484] + <-Reducer 41 [BROADCAST_EDGE] vectorized + BROADCAST [RS_542] + Group By Operator [GBY_541] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_534] + Group By Operator [GBY_530] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_524] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_517] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_538] PartitionCols:_col0 - Select Operator [SEL_506] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_505] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] - <-Reducer 30 [BROADCAST_EDGE] vectorized - BROADCAST [RS_504] - Group By Operator [GBY_503] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_499] - Group By Operator [GBY_493] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_484] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_475] + Select Operator [SEL_537] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_536] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5, KEY._col6 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Group By Operator [GBY_17] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"],aggregations:["sum(_col7)"],keys:_col0, _col1, _col2, _col3, _col4, _col5, _col6 + Select Operator [SEL_15] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Merge Join Operator [MERGEJOIN_463] (rows=174243235 width=135) + Conds:RS_12._col1=RS_522._col0(Inner),Output:["_col2","_col3","_col4","_col5","_col9","_col10","_col11","_col12","_col13","_col14","_col15"] + <-Map 38 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_522] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_517] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_462] (rows=158402938 width=135) + Conds:RS_515._col0=RS_491._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 31 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_491] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_483] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_515] + PartitionCols:_col0 + Select Operator [SEL_514] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_513] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_ext_discount_amt","ws_ext_sales_price","ws_ext_wholesale_cost","ws_ext_list_price"] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_512] + Group By Operator [GBY_511] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 31 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_507] + Group By Operator [GBY_501] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_492] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_483] diff --git a/ql/src/test/results/clientpositive/perf/tez/query47.q.out b/ql/src/test/results/clientpositive/perf/tez/query47.q.out index 0ba3fbf98d..3bc309ec2c 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query47.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query47.q.out @@ -122,169 +122,169 @@ Reducer 3 <- Map 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Map 16 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) Reducer 5 <- Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE), Reducer 9 (ONE_TO_ONE_EDGE) Reducer 8 <- Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 5 (SIMPLE_EDGE) +Reducer 9 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 Reducer 8 vectorized - File Output Operator [FS_334] - Limit [LIM_333] (rows=100 width=88) + File Output Operator [FS_331] + Limit [LIM_330] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_332] (rows=843315280 width=88) + Select Operator [SEL_329] (rows=463823414 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_108] - Select Operator [SEL_107] (rows=843315280 width=88) + SHUFFLE [RS_110] + Select Operator [SEL_109] (rows=463823414 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_279] (rows=843315280 width=88) - Conds:RS_320._col0, _col1, _col2, _col3, (_col5 + 1)=RS_331._col0, _col1, _col2, _col3, _col8(Inner),RS_331._col0, _col1, _col2, _col3, _col8=RS_315._col0, _col1, _col2, _col3, (_col5 - 1)(Inner),Output:["_col4","_col6","_col10","_col11","_col12","_col13","_col19"] - <-Reducer 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_331] - PartitionCols:_col0, _col1, _col2, _col3, _col8 - Select Operator [SEL_330] (rows=31943759 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Filter Operator [FIL_329] (rows=31943759 width=88) - predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col7 - _col0)) / _col0) > 0.1)) ELSE (null) END - Select Operator [SEL_328] (rows=63887519 width=88) - Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_327] (rows=63887519 width=88) - predicate:((_col0 > 0) and (_col1 = 2000) and rank_window_1 is not null) - PTF Operator [PTF_326] (rows=383325119 width=88) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST, _col2 ASC NULLS LAST","partition by:":"_col4, _col3, _col5, _col6"}] - Select Operator [SEL_325] (rows=383325119 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_324] - PartitionCols:_col3, _col2, _col4, _col5 - Select Operator [SEL_323] (rows=383325119 width=88) - Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] - PTF Operator [PTF_322] (rows=383325119 width=88) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 ASC NULLS FIRST, _col2 ASC NULLS FIRST, _col4 ASC NULLS FIRST, _col5 ASC NULLS FIRST, _col0 ASC NULLS FIRST","partition by:":"_col3, _col2, _col4, _col5, _col0"}] - Select Operator [SEL_321] (rows=383325119 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_310] - PartitionCols:_col3, _col2, _col4, _col5, _col0 - Group By Operator [GBY_307] (rows=383325119 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_93] - PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 - Group By Operator [GBY_92] (rows=766650239 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col3)"],keys:_col5, _col6, _col8, _col9, _col11, _col12 - Merge Join Operator [MERGEJOIN_278] (rows=766650239 width=88) - Conds:RS_88._col2=RS_298._col0(Inner),Output:["_col3","_col5","_col6","_col8","_col9","_col11","_col12"] - <-Map 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_298] - PartitionCols:_col0 - Select Operator [SEL_297] (rows=1704 width=1910) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_296] (rows=1704 width=1910) - predicate:(s_company_name is not null and s_store_name is not null and s_store_sk is not null) - TableScan [TS_79] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_company_name"] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_88] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_277] (rows=696954748 width=88) - Conds:RS_85._col1=RS_290._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8","_col9"] - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_290] - PartitionCols:_col0 - Select Operator [SEL_289] (rows=462000 width=1436) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_288] (rows=462000 width=1436) - predicate:(i_brand is not null and i_category is not null and i_item_sk is not null) - TableScan [TS_76] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_85] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_276] (rows=633595212 width=88) - Conds:RS_306._col0=RS_282._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] - <-Map 12 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_282] - PartitionCols:_col0 - Select Operator [SEL_281] (rows=73049 width=1119) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_280] (rows=73049 width=1119) - predicate:(((struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1)) or (d_year = 2000)) and d_date_sk is not null) - TableScan [TS_73] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_306] - PartitionCols:_col0 - Select Operator [SEL_305] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_304] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_86_item_i_item_sk_min) AND DynamicValue(RS_86_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_86_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_83_date_dim_d_date_sk_min) AND DynamicValue(RS_83_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_83_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_89_store_s_store_sk_min) AND DynamicValue(RS_89_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_89_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) - TableScan [TS_70] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_287] - Group By Operator [GBY_286] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_285] - Group By Operator [GBY_284] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_283] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_281] - <-Reducer 15 [BROADCAST_EDGE] vectorized - BROADCAST [RS_295] - Group By Operator [GBY_294] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_293] - Group By Operator [GBY_292] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_291] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_289] - <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_303] - Group By Operator [GBY_302] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_301] - Group By Operator [GBY_300] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_299] (rows=1704 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_297] + Merge Join Operator [MERGEJOIN_278] (rows=463823414 width=88) + Conds:RS_106._col6, _col7, _col8, _col9, _col14=RS_316._col0, _col1, _col2, _col3, (_col5 - 1)(Inner),Output:["_col4","_col6","_col10","_col11","_col12","_col13","_col19"] <-Reducer 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_315] + SHUFFLE [RS_316] PartitionCols:_col0, _col1, _col2, _col3, (_col5 - 1) Select Operator [SEL_314] (rows=383325119 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_313] (rows=383325119 width=88) + Filter Operator [FIL_312] (rows=383325119 width=88) predicate:rank_window_0 is not null - PTF Operator [PTF_312] (rows=383325119 width=88) + PTF Operator [PTF_310] (rows=383325119 width=88) Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col3, _col2, _col4, _col5"}] - Select Operator [SEL_311] (rows=383325119 width=88) + Select Operator [SEL_309] (rows=383325119 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_308] + SHUFFLE [RS_307] PartitionCols:_col3, _col2, _col4, _col5 - Please refer to the previous Group By Operator [GBY_307] - <-Reducer 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_320] - PartitionCols:_col0, _col1, _col2, _col3, (_col5 + 1) - Select Operator [SEL_319] (rows=383325119 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_318] (rows=383325119 width=88) - predicate:rank_window_0 is not null - PTF Operator [PTF_317] (rows=383325119 width=88) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col3, _col2, _col4, _col5"}] - Select Operator [SEL_316] (rows=383325119 width=88) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_309] - PartitionCols:_col3, _col2, _col4, _col5 - Please refer to the previous Group By Operator [GBY_307] + Group By Operator [GBY_306] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4, KEY._col5 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col0, _col1, _col2, _col3, _col4, _col5 + Group By Operator [GBY_92] (rows=766650239 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"],aggregations:["sum(_col3)"],keys:_col5, _col6, _col8, _col9, _col11, _col12 + Merge Join Operator [MERGEJOIN_276] (rows=766650239 width=88) + Conds:RS_88._col2=RS_297._col0(Inner),Output:["_col3","_col5","_col6","_col8","_col9","_col11","_col12"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_297] + PartitionCols:_col0 + Select Operator [SEL_296] (rows=1704 width=1910) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_295] (rows=1704 width=1910) + predicate:(s_company_name is not null and s_store_name is not null and s_store_sk is not null) + TableScan [TS_79] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name","s_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_275] (rows=696954748 width=88) + Conds:RS_85._col1=RS_289._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8","_col9"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_289] + PartitionCols:_col0 + Select Operator [SEL_288] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_287] (rows=462000 width=1436) + predicate:(i_brand is not null and i_category is not null and i_item_sk is not null) + TableScan [TS_76] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_85] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_274] (rows=633595212 width=88) + Conds:RS_305._col0=RS_281._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_281] + PartitionCols:_col0 + Select Operator [SEL_280] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_279] (rows=73049 width=1119) + predicate:(((struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1)) or (d_year = 2000)) and d_date_sk is not null) + TableScan [TS_73] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_305] + PartitionCols:_col0 + Select Operator [SEL_304] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_303] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_86_item_i_item_sk_min) AND DynamicValue(RS_86_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_86_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_83_date_dim_d_date_sk_min) AND DynamicValue(RS_83_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_83_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_89_store_s_store_sk_min) AND DynamicValue(RS_89_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_89_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_70] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_286] + Group By Operator [GBY_285] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_284] + Group By Operator [GBY_283] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_282] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_280] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_294] + Group By Operator [GBY_293] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_292] + Group By Operator [GBY_291] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_290] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_288] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_302] + Group By Operator [GBY_301] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_300] + Group By Operator [GBY_299] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_298] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 9 [ONE_TO_ONE_EDGE] + FORWARD [RS_106] + PartitionCols:_col6, _col7, _col8, _col9, _col14 + Merge Join Operator [MERGEJOIN_277] (rows=421657640 width=88) + Conds:RS_317._col0, _col1, _col2, _col3, (_col5 + 1)=RS_328._col0, _col1, _col2, _col3, _col8(Inner),Output:["_col4","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13","_col14"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_317] + PartitionCols:_col0, _col1, _col2, _col3, (_col5 + 1) + Select Operator [SEL_315] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_313] (rows=383325119 width=88) + predicate:rank_window_0 is not null + PTF Operator [PTF_311] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col3, _col2, _col4, _col5"}] + Please refer to the previous Select Operator [SEL_309] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_328] + PartitionCols:_col0, _col1, _col2, _col3, _col8 + Select Operator [SEL_327] (rows=31943759 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] + Filter Operator [FIL_326] (rows=31943759 width=88) + predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col7 - _col0)) / _col0) > 0.1)) ELSE (null) END + Select Operator [SEL_325] (rows=63887519 width=88) + Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_324] (rows=63887519 width=88) + predicate:((_col0 > 0) and (_col1 = 2000) and rank_window_1 is not null) + PTF Operator [PTF_323] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST, _col2 ASC NULLS LAST","partition by:":"_col4, _col3, _col5, _col6"}] + Select Operator [SEL_322] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_321] + PartitionCols:_col3, _col2, _col4, _col5 + Select Operator [SEL_320] (rows=383325119 width=88) + Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + PTF Operator [PTF_319] (rows=383325119 width=88) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col3 ASC NULLS FIRST, _col2 ASC NULLS FIRST, _col4 ASC NULLS FIRST, _col5 ASC NULLS FIRST, _col0 ASC NULLS FIRST","partition by:":"_col3, _col2, _col4, _col5, _col0"}] + Select Operator [SEL_318] (rows=383325119 width=88) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + PartitionCols:_col3, _col2, _col4, _col5, _col0 + Please refer to the previous Group By Operator [GBY_306] diff --git a/ql/src/test/results/clientpositive/perf/tez/query57.q.out b/ql/src/test/results/clientpositive/perf/tez/query57.q.out index 1d1f870253..ba951729cc 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query57.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query57.q.out @@ -116,169 +116,169 @@ Reducer 3 <- Map 14 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Map 16 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) Reducer 5 <- Reducer 4 (SIMPLE_EDGE) Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE), Reducer 9 (ONE_TO_ONE_EDGE) Reducer 8 <- Reducer 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 5 (SIMPLE_EDGE) +Reducer 9 <- Reducer 11 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 Reducer 8 vectorized - File Output Operator [FS_334] - Limit [LIM_333] (rows=100 width=135) + File Output Operator [FS_331] + Limit [LIM_330] (rows=100 width=135) Number of rows:100 - Select Operator [SEL_332] (rows=421645952 width=135) + Select Operator [SEL_329] (rows=231905278 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_108] - Select Operator [SEL_107] (rows=421645952 width=135) + SHUFFLE [RS_110] + Select Operator [SEL_109] (rows=231905278 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8"] - Merge Join Operator [MERGEJOIN_279] (rows=421645952 width=135) - Conds:RS_320._col0, _col1, _col2, (_col4 + 1)=RS_331._col0, _col1, _col2, _col7(Inner),RS_331._col0, _col1, _col2, _col7=RS_315._col0, _col1, _col2, (_col4 - 1)(Inner),Output:["_col3","_col5","_col6","_col8","_col9","_col10","_col11","_col16"] - <-Reducer 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_331] - PartitionCols:_col0, _col1, _col2, _col7 - Select Operator [SEL_330] (rows=15971437 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_329] (rows=15971437 width=135) - predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col6 - _col0)) / _col0) > 0.1)) ELSE (null) END - Select Operator [SEL_328] (rows=31942874 width=135) - Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] - Filter Operator [FIL_327] (rows=31942874 width=135) - predicate:((_col0 > 0) and (_col1 = 2000) and rank_window_1 is not null) - PTF Operator [PTF_326] (rows=191657247 width=135) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST, _col2 ASC NULLS LAST","partition by:":"_col5, _col4, _col3"}] - Select Operator [SEL_325] (rows=191657247 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_324] - PartitionCols:_col4, _col3, _col2 - Select Operator [SEL_323] (rows=191657247 width=135) - Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5"] - PTF Operator [PTF_322] (rows=191657247 width=135) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col4 ASC NULLS FIRST, _col3 ASC NULLS FIRST, _col2 ASC NULLS FIRST, _col0 ASC NULLS FIRST","partition by:":"_col4, _col3, _col2, _col0"}] - Select Operator [SEL_321] (rows=191657247 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_310] - PartitionCols:_col4, _col3, _col2, _col0 - Group By Operator [GBY_307] (rows=191657247 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_93] - PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_92] (rows=383314495 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col3)"],keys:_col5, _col6, _col8, _col10, _col11 - Merge Join Operator [MERGEJOIN_278] (rows=383314495 width=135) - Conds:RS_88._col2=RS_298._col0(Inner),Output:["_col3","_col5","_col6","_col8","_col10","_col11"] - <-Map 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_298] - PartitionCols:_col0 - Select Operator [SEL_297] (rows=462000 width=1436) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_296] (rows=462000 width=1436) - predicate:(i_brand is not null and i_category is not null and i_item_sk is not null) - TableScan [TS_79] (rows=462000 width=1436) - default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_88] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_277] (rows=348467716 width=135) - Conds:RS_85._col1=RS_290._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8"] - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_290] - PartitionCols:_col0 - Select Operator [SEL_289] (rows=60 width=2045) - Output:["_col0","_col1"] - Filter Operator [FIL_288] (rows=60 width=2045) - predicate:(cc_call_center_sk is not null and cc_name is not null) - TableScan [TS_76] (rows=60 width=2045) - default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_name"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_85] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_276] (rows=316788826 width=135) - Conds:RS_306._col0=RS_282._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] - <-Map 12 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_282] - PartitionCols:_col0 - Select Operator [SEL_281] (rows=73049 width=1119) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_280] (rows=73049 width=1119) - predicate:(((struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1)) or (d_year = 2000)) and d_date_sk is not null) - TableScan [TS_73] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_306] - PartitionCols:_col0 - Select Operator [SEL_305] (rows=287989836 width=135) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_304] (rows=287989836 width=135) - predicate:((cs_call_center_sk BETWEEN DynamicValue(RS_86_call_center_cc_call_center_sk_min) AND DynamicValue(RS_86_call_center_cc_call_center_sk_max) and in_bloom_filter(cs_call_center_sk, DynamicValue(RS_86_call_center_cc_call_center_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_89_item_i_item_sk_min) AND DynamicValue(RS_89_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_89_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_83_date_dim_d_date_sk_min) AND DynamicValue(RS_83_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_83_date_dim_d_date_sk_bloom_filter))) and cs_call_center_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_70] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_item_sk","cs_sales_price"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_287] - Group By Operator [GBY_286] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_285] - Group By Operator [GBY_284] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_283] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_281] - <-Reducer 15 [BROADCAST_EDGE] vectorized - BROADCAST [RS_295] - Group By Operator [GBY_294] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_293] - Group By Operator [GBY_292] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_291] (rows=60 width=2045) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_289] - <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_303] - Group By Operator [GBY_302] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_301] - Group By Operator [GBY_300] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_299] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_297] + Merge Join Operator [MERGEJOIN_278] (rows=231905278 width=135) + Conds:RS_106._col5, _col6, _col7, _col12=RS_316._col0, _col1, _col2, (_col4 - 1)(Inner),Output:["_col3","_col5","_col6","_col8","_col9","_col10","_col11","_col16"] <-Reducer 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_315] + SHUFFLE [RS_316] PartitionCols:_col0, _col1, _col2, (_col4 - 1) Select Operator [SEL_314] (rows=191657247 width=135) Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_313] (rows=191657247 width=135) + Filter Operator [FIL_312] (rows=191657247 width=135) predicate:rank_window_0 is not null - PTF Operator [PTF_312] (rows=191657247 width=135) + PTF Operator [PTF_310] (rows=191657247 width=135) Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col4, _col3, _col2"}] - Select Operator [SEL_311] (rows=191657247 width=135) + Select Operator [SEL_309] (rows=191657247 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_308] + SHUFFLE [RS_307] PartitionCols:_col4, _col3, _col2 - Please refer to the previous Group By Operator [GBY_307] - <-Reducer 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_320] - PartitionCols:_col0, _col1, _col2, (_col4 + 1) - Select Operator [SEL_319] (rows=191657247 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_318] (rows=191657247 width=135) - predicate:rank_window_0 is not null - PTF Operator [PTF_317] (rows=191657247 width=135) - Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col4, _col3, _col2"}] - Select Operator [SEL_316] (rows=191657247 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - <-Reducer 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_309] - PartitionCols:_col4, _col3, _col2 - Please refer to the previous Group By Operator [GBY_307] + Group By Operator [GBY_306] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col0, _col1, _col2, _col3, _col4 + Group By Operator [GBY_92] (rows=383314495 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["sum(_col3)"],keys:_col5, _col6, _col8, _col10, _col11 + Merge Join Operator [MERGEJOIN_276] (rows=383314495 width=135) + Conds:RS_88._col2=RS_297._col0(Inner),Output:["_col3","_col5","_col6","_col8","_col10","_col11"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_297] + PartitionCols:_col0 + Select Operator [SEL_296] (rows=462000 width=1436) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_295] (rows=462000 width=1436) + predicate:(i_brand is not null and i_category is not null and i_item_sk is not null) + TableScan [TS_79] (rows=462000 width=1436) + default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_brand","i_category"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_88] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_275] (rows=348467716 width=135) + Conds:RS_85._col1=RS_289._col0(Inner),Output:["_col2","_col3","_col5","_col6","_col8"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_289] + PartitionCols:_col0 + Select Operator [SEL_288] (rows=60 width=2045) + Output:["_col0","_col1"] + Filter Operator [FIL_287] (rows=60 width=2045) + predicate:(cc_call_center_sk is not null and cc_name is not null) + TableScan [TS_76] (rows=60 width=2045) + default@call_center,call_center,Tbl:COMPLETE,Col:NONE,Output:["cc_call_center_sk","cc_name"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_85] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_274] (rows=316788826 width=135) + Conds:RS_305._col0=RS_281._col0(Inner),Output:["_col1","_col2","_col3","_col5","_col6"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_281] + PartitionCols:_col0 + Select Operator [SEL_280] (rows=73049 width=1119) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_279] (rows=73049 width=1119) + predicate:(((struct(d_year,d_moy)) IN (const struct(1999,12), const struct(2001,1)) or (d_year = 2000)) and d_date_sk is not null) + TableScan [TS_73] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_305] + PartitionCols:_col0 + Select Operator [SEL_304] (rows=287989836 width=135) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_303] (rows=287989836 width=135) + predicate:((cs_call_center_sk BETWEEN DynamicValue(RS_86_call_center_cc_call_center_sk_min) AND DynamicValue(RS_86_call_center_cc_call_center_sk_max) and in_bloom_filter(cs_call_center_sk, DynamicValue(RS_86_call_center_cc_call_center_sk_bloom_filter))) and (cs_item_sk BETWEEN DynamicValue(RS_89_item_i_item_sk_min) AND DynamicValue(RS_89_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_89_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_83_date_dim_d_date_sk_min) AND DynamicValue(RS_83_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_83_date_dim_d_date_sk_bloom_filter))) and cs_call_center_sk is not null and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_70] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_call_center_sk","cs_item_sk","cs_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_286] + Group By Operator [GBY_285] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_284] + Group By Operator [GBY_283] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_282] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_280] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_294] + Group By Operator [GBY_293] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_292] + Group By Operator [GBY_291] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_290] (rows=60 width=2045) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_288] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_302] + Group By Operator [GBY_301] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_300] + Group By Operator [GBY_299] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_298] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_296] + <-Reducer 9 [ONE_TO_ONE_EDGE] + FORWARD [RS_106] + PartitionCols:_col5, _col6, _col7, _col12 + Merge Join Operator [MERGEJOIN_277] (rows=210822976 width=135) + Conds:RS_317._col0, _col1, _col2, (_col4 + 1)=RS_328._col0, _col1, _col2, _col7(Inner),Output:["_col3","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12"] + <-Reducer 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_317] + PartitionCols:_col0, _col1, _col2, (_col4 + 1) + Select Operator [SEL_315] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"] + Filter Operator [FIL_313] (rows=191657247 width=135) + predicate:rank_window_0 is not null + PTF Operator [PTF_311] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col0 ASC NULLS LAST, _col1 ASC NULLS LAST","partition by:":"_col4, _col3, _col2"}] + Please refer to the previous Select Operator [SEL_309] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_328] + PartitionCols:_col0, _col1, _col2, _col7 + Select Operator [SEL_327] (rows=15971437 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + Filter Operator [FIL_326] (rows=15971437 width=135) + predicate:CASE WHEN ((_col0 > 0)) THEN (((abs((_col6 - _col0)) / _col0) > 0.1)) ELSE (null) END + Select Operator [SEL_325] (rows=31942874 width=135) + Output:["rank_window_1","_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + Filter Operator [FIL_324] (rows=31942874 width=135) + predicate:((_col0 > 0) and (_col1 = 2000) and rank_window_1 is not null) + PTF Operator [PTF_323] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col1 ASC NULLS LAST, _col2 ASC NULLS LAST","partition by:":"_col5, _col4, _col3"}] + Select Operator [SEL_322] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_321] + PartitionCols:_col4, _col3, _col2 + Select Operator [SEL_320] (rows=191657247 width=135) + Output:["avg_window_0","_col0","_col1","_col2","_col3","_col4","_col5"] + PTF Operator [PTF_319] (rows=191657247 width=135) + Function definitions:[{},{"name:":"windowingtablefunction","order by:":"_col4 ASC NULLS FIRST, _col3 ASC NULLS FIRST, _col2 ASC NULLS FIRST, _col0 ASC NULLS FIRST","partition by:":"_col4, _col3, _col2, _col0"}] + Select Operator [SEL_318] (rows=191657247 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_308] + PartitionCols:_col4, _col3, _col2, _col0 + Please refer to the previous Group By Operator [GBY_306] 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 f60e32033e..c0c8e79c79 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query58.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query58.q.out @@ -1,4 +1,4 @@ -Warning: Shuffle Join MERGEJOIN[403][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 24' is a cross product +Warning: Shuffle Join MERGEJOIN[404][tables = [$hdt$_4, $hdt$_5]] in Stage 'Reducer 25' is a cross product PREHOOK: query: explain with ss_items as (select i_item_id item_id @@ -142,280 +142,288 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 19 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) -Map 28 <- Reducer 12 (BROADCAST_EDGE), Reducer 20 (BROADCAST_EDGE) -Map 29 <- Reducer 16 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE) -Reducer 10 <- Reducer 18 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Reducer 10 (SIMPLE_EDGE) -Reducer 12 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 13 <- Map 29 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) -Reducer 15 <- Reducer 14 (SIMPLE_EDGE) -Reducer 16 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 18 <- Map 17 (SIMPLE_EDGE), Reducer 26 (ONE_TO_ONE_EDGE) -Reducer 19 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 20 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Reducer 18 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 22 (CUSTOM_SIMPLE_EDGE) -Reducer 24 <- Map 27 (CUSTOM_SIMPLE_EDGE), Reducer 23 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 27 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Reducer 25 (SIMPLE_EDGE) -Reducer 3 <- Reducer 18 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Map 1 <- Reducer 20 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 29 <- Reducer 13 (BROADCAST_EDGE), Reducer 21 (BROADCAST_EDGE) +Map 30 <- Reducer 17 (BROADCAST_EDGE), Reducer 22 (BROADCAST_EDGE) +Reducer 10 <- Map 29 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 13 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 30 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 15 <- Reducer 14 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 18 (SIMPLE_EDGE), Reducer 27 (ONE_TO_ONE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 21 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 22 <- Reducer 19 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 28 (CUSTOM_SIMPLE_EDGE), Reducer 24 (CUSTOM_SIMPLE_EDGE) +Reducer 26 <- Map 28 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Reducer 26 (SIMPLE_EDGE) +Reducer 3 <- Reducer 19 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 11 (ONE_TO_ONE_EDGE), Reducer 15 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Map 28 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 16 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 9 <- Map 8 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_480] - Limit [LIM_479] (rows=100 width=88) + Reducer 7 vectorized + File Output Operator [FS_482] + Limit [LIM_481] (rows=100 width=135) Number of rows:100 - Select Operator [SEL_478] (rows=1442 width=88) + Select Operator [SEL_480] (rows=14606 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_161] - Select Operator [SEL_160] (rows=1442 width=88) + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_163] + Select Operator [SEL_162] (rows=14606 width=135) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Filter Operator [FIL_154] (rows=1442 width=88) - predicate:(_col1 BETWEEN (0.9 * _col3) AND (1.1 * _col3) and _col1 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col3 BETWEEN (0.9 * _col1) AND (1.1 * _col1) and _col3 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col5 BETWEEN (0.9 * _col1) AND (1.1 * _col1) and _col5 BETWEEN (0.9 * _col3) AND (1.1 * _col3)) - Merge Join Operator [MERGEJOIN_417] (rows=766650239 width=88) - Conds:RS_459._col0=RS_468._col0(Inner),RS_459._col0=RS_477._col0(Inner),Output:["_col0","_col1","_col3","_col5"] - <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_468] + Filter Operator [FIL_158] (rows=14606 width=135) + predicate:(_col1 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col3 BETWEEN (0.9 * _col5) AND (1.1 * _col5) and _col5 BETWEEN (0.9 * _col1) AND (1.1 * _col1) and _col5 BETWEEN (0.9 * _col3) AND (1.1 * _col3)) + Merge Join Operator [MERGEJOIN_419] (rows=95833780 width=135) + Conds:RS_155._col0=RS_479._col0(Inner),Output:["_col0","_col1","_col3","_col5"] + <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_479] PartitionCols:_col0 - Group By Operator [GBY_467] (rows=348477374 width=88) + Group By Operator [GBY_478] (rows=87121617 width=135) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_97] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_147] PartitionCols:_col0 - Group By Operator [GBY_96] (rows=696954748 width=88) + Group By Operator [GBY_146] (rows=174243235 width=135) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_415] (rows=696954748 width=88) - Conds:RS_92._col0=RS_93._col0(Inner),Output:["_col2","_col4"] - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_93] + Merge Join Operator [MERGEJOIN_417] (rows=174243235 width=135) + Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_143] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_405] (rows=80353 width=1119) - Conds:RS_436._col1=RS_452._col0(Inner),Output:["_col0"] - <-Map 17 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_436] + Merge Join Operator [MERGEJOIN_406] (rows=80353 width=1119) + Conds:RS_438._col1=RS_454._col0(Inner),Output:["_col0"] + <-Map 18 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_438] PartitionCols:_col1 - Select Operator [SEL_435] (rows=73049 width=1119) + Select Operator [SEL_437] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_434] (rows=73049 width=1119) + Filter Operator [FIL_436] (rows=73049 width=1119) 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] vectorized - FORWARD [RS_452] + <-Reducer 27 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_454] PartitionCols:_col0 - Group By Operator [GBY_451] (rows=40176 width=1119) + Group By Operator [GBY_453] (rows=40176 width=1119) Output:["_col0"],keys:KEY._col0 - <-Reducer 25 [SIMPLE_EDGE] + <-Reducer 26 [SIMPLE_EDGE] SHUFFLE [RS_32] PartitionCols:_col0 Group By Operator [GBY_31] (rows=80353 width=1119) Output:["_col0"],keys:_col2 - Merge Join Operator [MERGEJOIN_404] (rows=80353 width=1119) - Conds:RS_27._col1=RS_449._col1(Inner),Output:["_col2"] - <-Map 27 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_449] + Merge Join Operator [MERGEJOIN_405] (rows=80353 width=1119) + Conds:RS_27._col1=RS_451._col1(Inner),Output:["_col2"] + <-Map 28 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_451] PartitionCols:_col1 - Select Operator [SEL_447] (rows=73049 width=1119) + Select Operator [SEL_449] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_445] (rows=73049 width=1119) + Filter Operator [FIL_447] (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] + <-Reducer 25 [SIMPLE_EDGE] SHUFFLE [RS_27] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_403] (rows=36524 width=1128) + Merge Join Operator [MERGEJOIN_404] (rows=36524 width=1128) Conds:(Inner),Output:["_col1"] - <-Map 27 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_450] - Select Operator [SEL_448] (rows=36524 width=1119) + <-Map 28 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_452] + Select Operator [SEL_450] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_446] (rows=36524 width=1119) + Filter Operator [FIL_448] (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] vectorized - PARTITION_ONLY_SHUFFLE [RS_444] - Select Operator [SEL_443] (rows=1 width=8) - Filter Operator [FIL_442] (rows=1 width=8) + <-Reducer 24 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_446] + Select Operator [SEL_445] (rows=1 width=8) + Filter Operator [FIL_444] (rows=1 width=8) predicate:(sq_count_check(_col0) <= 1) - Group By Operator [GBY_441] (rows=1 width=8) + Group By Operator [GBY_443] (rows=1 width=8) Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_440] - Group By Operator [GBY_439] (rows=1 width=8) + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_442] + Group By Operator [GBY_441] (rows=1 width=8) Output:["_col0"],aggregations:["count()"] - Select Operator [SEL_438] (rows=36524 width=1119) - Filter Operator [FIL_437] (rows=36524 width=1119) + Select Operator [SEL_440] (rows=36524 width=1119) + Filter Operator [FIL_439] (rows=36524 width=1119) predicate:(d_date = '1998-02-19') TableScan [TS_9] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_92] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_142] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_406] (rows=633595212 width=88) - Conds:RS_466._col1=RS_422._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_422] + Merge Join Operator [MERGEJOIN_411] (rows=158402938 width=135) + Conds:RS_477._col1=RS_426._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_426] PartitionCols:_col0 - Select Operator [SEL_419] (rows=462000 width=1436) + Select Operator [SEL_421] (rows=462000 width=1436) Output:["_col0","_col1"] - Filter Operator [FIL_418] (rows=462000 width=1436) + Filter Operator [FIL_420] (rows=462000 width=1436) 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 28 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_466] + <-Map 30 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_477] PartitionCols:_col1 - Select Operator [SEL_465] (rows=575995635 width=88) + Select Operator [SEL_476] (rows=144002668 width=135) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_464] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_90_item_i_item_sk_min) AND DynamicValue(RS_90_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_90_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_93_date_dim_d_date_sk_min) AND DynamicValue(RS_93_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_93_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_50] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ext_sales_price"] - <-Reducer 12 [BROADCAST_EDGE] vectorized - BROADCAST [RS_461] - Group By Operator [GBY_460] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_430] - Group By Operator [GBY_427] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_423] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_419] - <-Reducer 20 [BROADCAST_EDGE] vectorized - BROADCAST [RS_463] - Group By Operator [GBY_462] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_321] - Group By Operator [GBY_320] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_319] (rows=80353 width=1119) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_405] - <-Reducer 15 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_477] - PartitionCols:_col0 - Group By Operator [GBY_476] (rows=87121617 width=135) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_147] - PartitionCols:_col0 - Group By Operator [GBY_146] (rows=174243235 width=135) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_416] (rows=174243235 width=135) - Conds:RS_142._col0=RS_143._col0(Inner),Output:["_col2","_col4"] - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_143] - PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_405] - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_142] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_410] (rows=158402938 width=135) - Conds:RS_475._col1=RS_424._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_424] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_419] - <-Map 29 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_475] - PartitionCols:_col1 - Select Operator [SEL_474] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_473] (rows=144002668 width=135) + Filter Operator [FIL_475] (rows=144002668 width=135) predicate:((ws_item_sk BETWEEN DynamicValue(RS_140_item_i_item_sk_min) AND DynamicValue(RS_140_item_i_item_sk_max) and in_bloom_filter(ws_item_sk, DynamicValue(RS_140_item_i_item_sk_bloom_filter))) and (ws_sold_date_sk BETWEEN DynamicValue(RS_143_date_dim_d_date_sk_min) AND DynamicValue(RS_143_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_143_date_dim_d_date_sk_bloom_filter))) and 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 16 [BROADCAST_EDGE] vectorized - BROADCAST [RS_470] - Group By Operator [GBY_469] (rows=1 width=12) + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_472] + Group By Operator [GBY_471] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_431] - Group By Operator [GBY_428] (rows=1 width=12) + <-Map 8 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_433] + Group By Operator [GBY_430] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_425] (rows=462000 width=1436) + Select Operator [SEL_427] (rows=462000 width=1436) Output:["_col0"] - Please refer to the previous Select Operator [SEL_419] - <-Reducer 21 [BROADCAST_EDGE] vectorized - BROADCAST [RS_472] - Group By Operator [GBY_471] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_421] + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_474] + Group By Operator [GBY_473] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_367] - Group By Operator [GBY_366] (rows=1 width=12) + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_363] + Group By Operator [GBY_362] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_365] (rows=80353 width=1119) + Select Operator [SEL_361] (rows=80353 width=1119) Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_405] - <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_459] + Please refer to the previous Merge Join Operator [MERGEJOIN_406] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_155] PartitionCols:_col0 - Group By Operator [GBY_458] (rows=174233858 width=135) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_47] - PartitionCols:_col0 - Group By Operator [GBY_46] (rows=348467716 width=135) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_414] (rows=348467716 width=135) - Conds:RS_42._col0=RS_43._col0(Inner),Output:["_col2","_col4"] - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_43] + Filter Operator [FIL_153] (rows=4732408 width=88) + predicate:(_col1 BETWEEN (0.9 * _col3) AND (1.1 * _col3) and _col3 BETWEEN (0.9 * _col1) AND (1.1 * _col1)) + Merge Join Operator [MERGEJOIN_418] (rows=383325119 width=88) + Conds:RS_461._col0=RS_470._col0(Inner),Output:["_col0","_col1","_col3"] + <-Reducer 12 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_470] + PartitionCols:_col0 + Group By Operator [GBY_469] (rows=348477374 width=88) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_97] PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_405] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_42] + Group By Operator [GBY_96] (rows=696954748 width=88) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_416] (rows=696954748 width=88) + Conds:RS_92._col0=RS_93._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_406] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_92] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_407] (rows=633595212 width=88) + Conds:RS_468._col1=RS_424._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_424] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_421] + <-Map 29 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_468] + PartitionCols:_col1 + Select Operator [SEL_467] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_466] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_90_item_i_item_sk_min) AND DynamicValue(RS_90_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_90_item_i_item_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_93_date_dim_d_date_sk_min) AND DynamicValue(RS_93_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_93_date_dim_d_date_sk_bloom_filter))) and ss_item_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_50] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_ext_sales_price"] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_463] + Group By Operator [GBY_462] (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_432] + Group By Operator [GBY_429] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_425] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_421] + <-Reducer 21 [BROADCAST_EDGE] vectorized + BROADCAST [RS_465] + Group By Operator [GBY_464] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_317] + Group By Operator [GBY_316] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_315] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_406] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_461] + PartitionCols:_col0 + Group By Operator [GBY_460] (rows=174233858 width=135) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_47] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_402] (rows=316788826 width=135) - Conds:RS_457._col1=RS_420._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_420] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_419] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_457] - PartitionCols:_col1 - Select Operator [SEL_456] (rows=287989836 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_455] (rows=287989836 width=135) - predicate:((cs_item_sk BETWEEN DynamicValue(RS_40_item_i_item_sk_min) AND DynamicValue(RS_40_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_40_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_43_date_dim_d_date_sk_min) AND DynamicValue(RS_43_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_43_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) - TableScan [TS_0] (rows=287989836 width=135) - default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_sales_price"] - <-Reducer 19 [BROADCAST_EDGE] vectorized - BROADCAST [RS_454] - Group By Operator [GBY_453] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Reducer 18 [CUSTOM_SIMPLE_EDGE] - SHUFFLE [RS_271] - Group By Operator [GBY_270] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_269] (rows=80353 width=1119) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_405] - <-Reducer 8 [BROADCAST_EDGE] vectorized - BROADCAST [RS_433] - Group By Operator [GBY_432] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_429] - Group By Operator [GBY_426] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_421] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_419] + Group By Operator [GBY_46] (rows=348467716 width=135) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_415] (rows=348467716 width=135) + Conds:RS_42._col0=RS_43._col0(Inner),Output:["_col2","_col4"] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_43] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_406] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_403] (rows=316788826 width=135) + Conds:RS_459._col1=RS_422._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_422] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_421] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_459] + PartitionCols:_col1 + Select Operator [SEL_458] (rows=287989836 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_457] (rows=287989836 width=135) + predicate:((cs_item_sk BETWEEN DynamicValue(RS_40_item_i_item_sk_min) AND DynamicValue(RS_40_item_i_item_sk_max) and in_bloom_filter(cs_item_sk, DynamicValue(RS_40_item_i_item_sk_bloom_filter))) and (cs_sold_date_sk BETWEEN DynamicValue(RS_43_date_dim_d_date_sk_min) AND DynamicValue(RS_43_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_43_date_dim_d_date_sk_bloom_filter))) and cs_item_sk is not null and cs_sold_date_sk is not null) + TableScan [TS_0] (rows=287989836 width=135) + default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_item_sk","cs_ext_sales_price"] + <-Reducer 20 [BROADCAST_EDGE] vectorized + BROADCAST [RS_456] + Group By Operator [GBY_455] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Reducer 19 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_267] + Group By Operator [GBY_266] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_265] (rows=80353 width=1119) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_406] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_435] + Group By Operator [GBY_434] (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_431] + Group By Operator [GBY_428] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_423] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_421] diff --git a/ql/src/test/results/clientpositive/perf/tez/query65.q.out b/ql/src/test/results/clientpositive/perf/tez/query65.q.out index 3d030f9624..8aad935a42 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query65.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query65.q.out @@ -67,167 +67,173 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 14 (BROADCAST_EDGE), Reducer 16 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) -Map 12 <- Reducer 11 (BROADCAST_EDGE), Reducer 14 (BROADCAST_EDGE) -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Map 15 (CUSTOM_SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Map 1 <- Reducer 15 (BROADCAST_EDGE), Reducer 17 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 13 <- Reducer 12 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE) +Reducer 10 <- Map 13 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 8 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) Reducer 3 <- Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Map 13 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Map 15 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Map 12 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 4 <- Reducer 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Map 14 (SIMPLE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Map 16 (SIMPLE_EDGE), 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 6 vectorized - File Output Operator [FS_176] - Limit [LIM_175] (rows=100 width=88) + Reducer 7 vectorized + File Output Operator [FS_183] + Limit [LIM_182] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_174] (rows=255550079 width=88) + Select Operator [SEL_181] (rows=140552545 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_48] - Select Operator [SEL_47] (rows=255550079 width=88) + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_50] + Select Operator [SEL_49] (rows=140552545 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Merge Join Operator [MERGEJOIN_129] (rows=255550079 width=88) - Conds:RS_44._col1=RS_153._col0(Inner),Output:["_col2","_col6","_col8","_col9","_col10","_col11"] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_153] + Merge Join Operator [MERGEJOIN_136] (rows=140552545 width=88) + Conds:RS_46._col1=RS_160._col0(Inner),Output:["_col2","_col6","_col8","_col9","_col10","_col11"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_160] PartitionCols:_col0 - Select Operator [SEL_152] (rows=462000 width=1436) + Select Operator [SEL_159] (rows=462000 width=1436) Output:["_col0","_col1","_col2","_col3","_col4"] - Filter Operator [FIL_151] (rows=462000 width=1436) + Filter Operator [FIL_158] (rows=462000 width=1436) predicate:i_item_sk is not null TableScan [TS_36] (rows=462000 width=1436) default@item,item,Tbl:COMPLETE,Col:NONE,Output:["i_item_sk","i_item_desc","i_current_price","i_wholesale_cost","i_brand"] - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_44] + <-Reducer 5 [SIMPLE_EDGE] + SHUFFLE [RS_46] PartitionCols:_col1 - Filter Operator [FIL_43] (rows=232318249 width=88) - predicate:(_col2 <= (0.1 * _col4)) - Merge Join Operator [MERGEJOIN_128] (rows=696954748 width=88) - Conds:RS_163._col0=RS_173._col0(Inner),RS_163._col0=RS_144._col0(Inner),Output:["_col1","_col2","_col4","_col6"] - <-Map 13 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_144] - PartitionCols:_col0 - Select Operator [SEL_143] (rows=1704 width=1910) - Output:["_col0","_col1"] - Filter Operator [FIL_142] (rows=1704 width=1910) - predicate:s_store_sk is not null - TableScan [TS_33] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_173] - PartitionCols:_col0 - Select Operator [SEL_172] (rows=158398803 width=88) - Output:["_col0","_col1"] - Group By Operator [GBY_171] (rows=158398803 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 - Select Operator [SEL_170] (rows=316797606 width=88) - Output:["_col1","_col2"] - Group By Operator [GBY_169] (rows=316797606 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_25] - PartitionCols:_col0 - Group By Operator [GBY_24] (rows=633595212 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 - Merge Join Operator [MERGEJOIN_127] (rows=633595212 width=88) - Conds:RS_168._col0=RS_134._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_134] - PartitionCols:_col0 - Select Operator [SEL_131] (rows=73049 width=1119) - Output:["_col0"] - Filter Operator [FIL_130] (rows=73049 width=1119) - predicate:(d_date_sk is not null and d_month_seq BETWEEN 1212 AND 1223) - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] - <-Map 12 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_168] - PartitionCols:_col0 - Select Operator [SEL_167] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_166] (rows=575995635 width=88) - predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_41_store_s_store_sk_min) AND DynamicValue(RS_41_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_41_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) - TableScan [TS_14] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] - <-Reducer 14 [BROADCAST_EDGE] vectorized - BROADCAST [RS_150] - Group By Operator [GBY_148] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_147] - Group By Operator [GBY_146] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_145] (rows=1704 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_143] - <-Reducer 11 [BROADCAST_EDGE] vectorized - BROADCAST [RS_165] - Group By Operator [GBY_164] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_139] - Group By Operator [GBY_137] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_135] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_131] - <-Reducer 3 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_163] - PartitionCols:_col0 - Group By Operator [GBY_162] (rows=316797606 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_11] - PartitionCols:_col0, _col1 - Group By Operator [GBY_10] (rows=633595212 width=88) - Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 - Merge Join Operator [MERGEJOIN_126] (rows=633595212 width=88) - Conds:RS_161._col0=RS_132._col0(Inner),Output:["_col1","_col2","_col3"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_132] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_131] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_161] - PartitionCols:_col0 - Select Operator [SEL_160] (rows=575995635 width=88) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_159] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_45_item_i_item_sk_min) AND DynamicValue(RS_45_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_45_item_i_item_sk_bloom_filter))) and (ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_41_store_s_store_sk_min) AND DynamicValue(RS_41_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_41_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and 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_item_sk","ss_store_sk","ss_sales_price"] - <-Reducer 14 [BROADCAST_EDGE] vectorized - BROADCAST [RS_149] - Please refer to the previous Group By Operator [GBY_148] - <-Reducer 16 [BROADCAST_EDGE] vectorized - BROADCAST [RS_158] - Group By Operator [GBY_157] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 15 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_156] - Group By Operator [GBY_155] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_154] (rows=462000 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_152] - <-Reducer 8 [BROADCAST_EDGE] vectorized - BROADCAST [RS_141] - Group By Operator [GBY_140] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_138] - Group By Operator [GBY_136] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_133] (rows=73049 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_131] + Merge Join Operator [MERGEJOIN_135] (rows=127775039 width=88) + Conds:RS_43._col0=RS_151._col0(Inner),Output:["_col1","_col2","_col6"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_151] + PartitionCols:_col0 + Select Operator [SEL_150] (rows=1704 width=1910) + Output:["_col0","_col1"] + Filter Operator [FIL_149] (rows=1704 width=1910) + predicate:s_store_sk is not null + TableScan [TS_33] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_43] + PartitionCols:_col0 + Filter Operator [FIL_42] (rows=116159124 width=88) + predicate:(_col2 <= (0.1 * _col4)) + Merge Join Operator [MERGEJOIN_134] (rows=348477374 width=88) + Conds:RS_170._col0=RS_180._col0(Inner),Output:["_col0","_col1","_col2","_col4"] + <-Reducer 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_180] + PartitionCols:_col0 + Select Operator [SEL_179] (rows=158398803 width=88) + Output:["_col0","_col1"] + Group By Operator [GBY_178] (rows=158398803 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col2)","count(_col2)"],keys:_col1 + Select Operator [SEL_177] (rows=316797606 width=88) + Output:["_col1","_col2"] + Group By Operator [GBY_176] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_25] + PartitionCols:_col0 + Group By Operator [GBY_24] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_133] (rows=633595212 width=88) + Conds:RS_175._col0=RS_141._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_141] + PartitionCols:_col0 + Select Operator [SEL_138] (rows=73049 width=1119) + Output:["_col0"] + Filter Operator [FIL_137] (rows=73049 width=1119) + predicate:(d_date_sk is not null and d_month_seq BETWEEN 1212 AND 1223) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_month_seq"] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_175] + PartitionCols:_col0 + Select Operator [SEL_174] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_173] (rows=575995635 width=88) + predicate:((ss_sold_date_sk BETWEEN DynamicValue(RS_21_date_dim_d_date_sk_min) AND DynamicValue(RS_21_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_21_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_44_store_s_store_sk_min) AND DynamicValue(RS_44_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_44_store_s_store_sk_bloom_filter))) and ss_sold_date_sk is not null and ss_store_sk is not null) + TableScan [TS_14] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_157] + Group By Operator [GBY_155] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_154] + Group By Operator [GBY_153] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_152] (rows=1704 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_150] + <-Reducer 12 [BROADCAST_EDGE] vectorized + BROADCAST [RS_172] + Group By Operator [GBY_171] (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_146] + Group By Operator [GBY_144] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_142] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_138] + <-Reducer 3 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_170] + PartitionCols:_col0 + Group By Operator [GBY_169] (rows=316797606 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0, KEY._col1 + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_11] + PartitionCols:_col0, _col1 + Group By Operator [GBY_10] (rows=633595212 width=88) + Output:["_col0","_col1","_col2"],aggregations:["sum(_col3)"],keys:_col2, _col1 + Merge Join Operator [MERGEJOIN_132] (rows=633595212 width=88) + Conds:RS_168._col0=RS_139._col0(Inner),Output:["_col1","_col2","_col3"] + <-Map 8 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_139] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_138] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_168] + PartitionCols:_col0 + Select Operator [SEL_167] (rows=575995635 width=88) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_166] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_47_item_i_item_sk_min) AND DynamicValue(RS_47_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_47_item_i_item_sk_bloom_filter))) and (ss_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(ss_sold_date_sk, DynamicValue(RS_7_date_dim_d_date_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_44_store_s_store_sk_min) AND DynamicValue(RS_44_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_44_store_s_store_sk_bloom_filter))) and ss_item_sk is not null and 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_item_sk","ss_store_sk","ss_sales_price"] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_156] + Please refer to the previous Group By Operator [GBY_155] + <-Reducer 17 [BROADCAST_EDGE] vectorized + BROADCAST [RS_165] + Group By Operator [GBY_164] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 16 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_163] + Group By Operator [GBY_162] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_161] (rows=462000 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_159] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_148] + Group By Operator [GBY_147] (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_145] + Group By Operator [GBY_143] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_140] (rows=73049 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_138] diff --git a/ql/src/test/results/clientpositive/perf/tez/query69.q.out b/ql/src/test/results/clientpositive/perf/tez/query69.q.out index b8e9674bdd..e1b1055e66 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query69.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query69.q.out @@ -109,223 +109,229 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 11 <- Reducer 14 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) -Map 21 <- Reducer 17 (BROADCAST_EDGE) -Map 22 <- Reducer 20 (BROADCAST_EDGE) -Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) -Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) -Reducer 15 <- Map 13 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) -Reducer 16 <- Reducer 15 (SIMPLE_EDGE) -Reducer 17 <- Map 13 (CUSTOM_SIMPLE_EDGE) -Reducer 18 <- Map 13 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) -Reducer 19 <- Reducer 18 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) -Reducer 20 <- Map 13 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 10 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Reducer 12 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) +Map 12 <- Reducer 15 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) +Map 22 <- Reducer 18 (BROADCAST_EDGE) +Map 23 <- Reducer 21 (BROADCAST_EDGE) +Reducer 13 <- Map 12 (SIMPLE_EDGE), Map 14 (SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 16 <- Map 14 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 17 <- Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 14 (SIMPLE_EDGE), Map 23 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 21 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Reducer 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 17 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 20 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) Reducer 7 <- Reducer 6 (SIMPLE_EDGE) -Reducer 8 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Reducer 9 <- Reducer 3 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 7 vectorized - File Output Operator [FS_233] - Limit [LIM_232] (rows=100 width=88) + Reducer 8 vectorized + File Output Operator [FS_236] + Limit [LIM_235] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_231] (rows=191662559 width=88) + Select Operator [SEL_234] (rows=105414410 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 6 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_230] - Select Operator [SEL_229] (rows=191662559 width=88) + <-Reducer 7 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_233] + Select Operator [SEL_232] (rows=105414410 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col6"] - Group By Operator [GBY_228] (rows=191662559 width=88) + Group By Operator [GBY_231] (rows=105414410 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4 - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_67] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_69] PartitionCols:_col0, _col1, _col2, _col3, _col4 - Group By Operator [GBY_66] (rows=383325119 width=88) + Group By Operator [GBY_68] (rows=210828820 width=88) Output:["_col0","_col1","_col2","_col3","_col4","_col5"],aggregations:["count()"],keys:_col6, _col7, _col8, _col9, _col10 - Top N Key Operator [TNK_105] (rows=383325119 width=88) + Top N Key Operator [TNK_105] (rows=210828820 width=88) keys:_col6, _col7, _col8, _col9, _col10,sort order:+++++,top n:100 - Select Operator [SEL_65] (rows=383325119 width=88) + Select Operator [SEL_67] (rows=210828820 width=88) Output:["_col6","_col7","_col8","_col9","_col10"] - Filter Operator [FIL_64] (rows=383325119 width=88) + Filter Operator [FIL_66] (rows=210828820 width=88) predicate:_col14 is null - Merge Join Operator [MERGEJOIN_181] (rows=766650239 width=88) - Conds:RS_61._col0=RS_227._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col14"] - <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_227] + Merge Join Operator [MERGEJOIN_184] (rows=421657640 width=88) + Conds:RS_63._col0=RS_230._col0(Left Outer),Output:["_col6","_col7","_col8","_col9","_col10","_col14"] + <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_230] PartitionCols:_col0 - Select Operator [SEL_226] (rows=158394413 width=135) + Select Operator [SEL_229] (rows=158394413 width=135) Output:["_col0","_col1"] - Group By Operator [GBY_225] (rows=158394413 width=135) + Group By Operator [GBY_228] (rows=158394413 width=135) Output:["_col0"],keys:KEY._col0 - <-Reducer 18 [SIMPLE_EDGE] - SHUFFLE [RS_58] + <-Reducer 19 [SIMPLE_EDGE] + SHUFFLE [RS_60] PartitionCols:_col0 - Group By Operator [GBY_57] (rows=316788826 width=135) + Group By Operator [GBY_59] (rows=316788826 width=135) Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_179] (rows=316788826 width=135) - Conds:RS_224._col0=RS_197._col0(Inner),Output:["_col1"] - <-Map 13 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_197] + Merge Join Operator [MERGEJOIN_181] (rows=316788826 width=135) + Conds:RS_227._col0=RS_200._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_200] PartitionCols:_col0 - Select Operator [SEL_192] (rows=36524 width=1119) + Select Operator [SEL_195] (rows=36524 width=1119) Output:["_col0"] - Filter Operator [FIL_191] (rows=36524 width=1119) + Filter Operator [FIL_194] (rows=36524 width=1119) predicate:((d_year = 1999) and d_date_sk is not null and d_moy BETWEEN 1 AND 3) TableScan [TS_12] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year","d_moy"] - <-Map 22 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_224] + <-Map 23 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_227] PartitionCols:_col0 - Select Operator [SEL_223] (rows=287989836 width=135) + Select Operator [SEL_226] (rows=287989836 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_222] (rows=287989836 width=135) - predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_54_date_dim_d_date_sk_min) AND DynamicValue(RS_54_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_54_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_47] (rows=287989836 width=135) + Filter Operator [FIL_225] (rows=287989836 width=135) + predicate:((cs_sold_date_sk BETWEEN DynamicValue(RS_56_date_dim_d_date_sk_min) AND DynamicValue(RS_56_date_dim_d_date_sk_max) and in_bloom_filter(cs_sold_date_sk, DynamicValue(RS_56_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_49] (rows=287989836 width=135) default@catalog_sales,catalog_sales,Tbl:COMPLETE,Col:NONE,Output:["cs_sold_date_sk","cs_ship_customer_sk"] - <-Reducer 20 [BROADCAST_EDGE] vectorized - BROADCAST [RS_221] - Group By Operator [GBY_220] (rows=1 width=12) + <-Reducer 21 [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 13 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_204] - Group By Operator [GBY_201] (rows=1 width=12) + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_207] + 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_198] (rows=36524 width=1119) + Select Operator [SEL_201] (rows=36524 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_192] - <-Reducer 4 [ONE_TO_ONE_EDGE] - FORWARD [RS_61] + Please refer to the previous Select Operator [SEL_195] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_63] PartitionCols:_col0 - Select Operator [SEL_46] (rows=696954748 width=88) + Select Operator [SEL_48] (rows=383325119 width=88) Output:["_col0","_col6","_col7","_col8","_col9","_col10"] - Filter Operator [FIL_45] (rows=696954748 width=88) + Filter Operator [FIL_47] (rows=383325119 width=88) predicate:_col12 is null - Merge Join Operator [MERGEJOIN_180] (rows=1393909496 width=88) - Conds:RS_41._col0=RS_42._col0(Left Semi),RS_41._col0=RS_219._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col12"] - <-Reducer 3 [SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_41] + Merge Join Operator [MERGEJOIN_183] (rows=766650239 width=88) + Conds:RS_44._col0=RS_222._col0(Left Outer),Output:["_col0","_col6","_col7","_col8","_col9","_col10","_col12"] + <-Reducer 17 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_222] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_176] (rows=96800003 width=860) - Conds:RS_36._col1=RS_190._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10"] - <-Map 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_190] - PartitionCols:_col0 - Select Operator [SEL_189] (rows=1861800 width=385) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_188] (rows=1861800 width=385) - predicate:cd_demo_sk is not null - TableScan [TS_6] (rows=1861800 width=385) - default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_36] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_175] (rows=88000001 width=860) - Conds:RS_184._col2=RS_187._col0(Inner),Output:["_col0","_col1"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_184] - PartitionCols:_col2 - Select Operator [SEL_183] (rows=80000000 width=860) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_182] (rows=80000000 width=860) - predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) - TableScan [TS_0] (rows=80000000 width=860) - default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] - <-Map 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_187] - PartitionCols:_col0 - Select Operator [SEL_186] (rows=40000000 width=1014) - Output:["_col0"] - Filter Operator [FIL_185] (rows=40000000 width=1014) - predicate:((ca_state) IN ('CO', 'IL', 'MN') and ca_address_sk is not null) - TableScan [TS_3] (rows=40000000 width=1014) - default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_42] - PartitionCols:_col0 - Group By Operator [GBY_40] (rows=633595212 width=88) - Output:["_col0"],keys:_col0 - Select Operator [SEL_18] (rows=633595212 width=88) - Output:["_col0"] - Merge Join Operator [MERGEJOIN_177] (rows=633595212 width=88) - Conds:RS_211._col0=RS_193._col0(Inner),Output:["_col1"] - <-Map 13 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_193] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_192] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_211] - PartitionCols:_col0 - Select Operator [SEL_210] (rows=575995635 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_209] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_41_c_c_customer_sk_min) AND DynamicValue(RS_41_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_41_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_9] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] - <-Reducer 14 [BROADCAST_EDGE] vectorized - BROADCAST [RS_206] - Group By Operator [GBY_205] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_202] - Group By Operator [GBY_199] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_194] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_192] - <-Reducer 8 [BROADCAST_EDGE] vectorized - BROADCAST [RS_208] - Group By Operator [GBY_207] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] - <-Reducer 3 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_138] - Group By Operator [GBY_137] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] - Select Operator [SEL_136] (rows=96800003 width=860) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_176] - <-Reducer 16 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_219] - PartitionCols:_col0 - Select Operator [SEL_218] (rows=79201469 width=135) + Select Operator [SEL_221] (rows=79201469 width=135) Output:["_col0","_col1"] - Group By Operator [GBY_217] (rows=79201469 width=135) + Group By Operator [GBY_220] (rows=79201469 width=135) Output:["_col0"],keys:KEY._col0 - <-Reducer 15 [SIMPLE_EDGE] + <-Reducer 16 [SIMPLE_EDGE] SHUFFLE [RS_30] PartitionCols:_col0 Group By Operator [GBY_29] (rows=158402938 width=135) Output:["_col0"],keys:_col1 - Merge Join Operator [MERGEJOIN_178] (rows=158402938 width=135) - Conds:RS_216._col0=RS_195._col0(Inner),Output:["_col1"] - <-Map 13 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_195] + Merge Join Operator [MERGEJOIN_180] (rows=158402938 width=135) + Conds:RS_219._col0=RS_198._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_198] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_192] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_216] + Please refer to the previous Select Operator [SEL_195] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_219] PartitionCols:_col0 - Select Operator [SEL_215] (rows=144002668 width=135) + Select Operator [SEL_218] (rows=144002668 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_214] (rows=144002668 width=135) + Filter Operator [FIL_217] (rows=144002668 width=135) predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_26_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_19] (rows=144002668 width=135) default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk"] - <-Reducer 17 [BROADCAST_EDGE] vectorized - BROADCAST [RS_213] - Group By Operator [GBY_212] (rows=1 width=12) + <-Reducer 18 [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)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_206] + Group By Operator [GBY_203] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_199] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_195] + <-Reducer 4 [ONE_TO_ONE_EDGE] + FORWARD [RS_44] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_182] (rows=696954748 width=88) + Conds:RS_41._col0=RS_42._col0(Left Semi),Output:["_col0","_col6","_col7","_col8","_col9","_col10"] + <-Reducer 3 [SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_41] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_178] (rows=96800003 width=860) + Conds:RS_36._col1=RS_193._col0(Inner),Output:["_col0","_col6","_col7","_col8","_col9","_col10"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_193] + PartitionCols:_col0 + Select Operator [SEL_192] (rows=1861800 width=385) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_191] (rows=1861800 width=385) + predicate:cd_demo_sk is not null + TableScan [TS_6] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk","cd_gender","cd_marital_status","cd_education_status","cd_purchase_estimate","cd_credit_rating"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_36] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_177] (rows=88000001 width=860) + Conds:RS_187._col2=RS_190._col0(Inner),Output:["_col0","_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_187] + PartitionCols:_col2 + Select Operator [SEL_186] (rows=80000000 width=860) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_185] (rows=80000000 width=860) + predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_customer_sk is not null) + TableScan [TS_0] (rows=80000000 width=860) + default@customer,c,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_current_cdemo_sk","c_current_addr_sk"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_190] + PartitionCols:_col0 + Select Operator [SEL_189] (rows=40000000 width=1014) + Output:["_col0"] + Filter Operator [FIL_188] (rows=40000000 width=1014) + predicate:((ca_state) IN ('CO', 'IL', 'MN') and ca_address_sk is not null) + TableScan [TS_3] (rows=40000000 width=1014) + default@customer_address,ca,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_42] + PartitionCols:_col0 + Group By Operator [GBY_40] (rows=633595212 width=88) + Output:["_col0"],keys:_col0 + Select Operator [SEL_18] (rows=633595212 width=88) + Output:["_col0"] + Merge Join Operator [MERGEJOIN_179] (rows=633595212 width=88) + Conds:RS_214._col0=RS_196._col0(Inner),Output:["_col1"] + <-Map 14 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_196] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_195] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_214] + PartitionCols:_col0 + Select Operator [SEL_213] (rows=575995635 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_212] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_41_c_c_customer_sk_min) AND DynamicValue(RS_41_c_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_41_c_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_16_date_dim_d_date_sk_min) AND DynamicValue(RS_16_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_16_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_9] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk"] + <-Reducer 15 [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=1000000)"] - <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_203] - Group By Operator [GBY_200] (rows=1 width=12) + <-Map 14 [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_196] (rows=36524 width=1119) + Select Operator [SEL_197] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_195] + <-Reducer 9 [BROADCAST_EDGE] vectorized + BROADCAST [RS_211] + Group By Operator [GBY_210] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=96800000)"] + <-Reducer 3 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_138] + Group By Operator [GBY_137] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=96800000)"] + Select Operator [SEL_136] (rows=96800003 width=860) Output:["_col0"] - Please refer to the previous Select Operator [SEL_192] + Please refer to the previous Merge Join Operator [MERGEJOIN_178] diff --git a/ql/src/test/results/clientpositive/perf/tez/query74.q.out b/ql/src/test/results/clientpositive/perf/tez/query74.q.out index a3e7846465..2f94010b2f 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query74.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query74.q.out @@ -131,283 +131,295 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 21 (BROADCAST_EDGE) -Map 11 <- Reducer 23 (BROADCAST_EDGE) -Map 15 <- Reducer 20 (BROADCAST_EDGE), Reducer 25 (BROADCAST_EDGE) -Map 7 <- Reducer 22 (BROADCAST_EDGE), Reducer 26 (BROADCAST_EDGE) -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 12 <- Map 11 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 13 <- Map 24 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE) -Reducer 14 <- Reducer 13 (SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 17 <- Map 24 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 20 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 21 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 22 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 19 (CUSTOM_SIMPLE_EDGE) -Reducer 25 <- Map 24 (CUSTOM_SIMPLE_EDGE) -Reducer 26 <- Map 24 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 24 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Map 1 <- Reducer 23 (BROADCAST_EDGE) +Map 13 <- Reducer 25 (BROADCAST_EDGE) +Map 17 <- Reducer 22 (BROADCAST_EDGE), Reducer 27 (BROADCAST_EDGE) +Map 9 <- Reducer 24 (BROADCAST_EDGE), Reducer 28 (BROADCAST_EDGE) +Reducer 10 <- Map 21 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 11 <- Map 26 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (SIMPLE_EDGE) +Reducer 14 <- Map 13 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 15 <- Map 26 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) +Reducer 16 <- Reducer 15 (SIMPLE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 19 <- Map 26 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) +Reducer 20 <- Reducer 19 (SIMPLE_EDGE) +Reducer 22 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 23 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 21 (CUSTOM_SIMPLE_EDGE) +Reducer 27 <- Map 26 (CUSTOM_SIMPLE_EDGE) +Reducer 28 <- Map 26 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 26 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 10 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 8 <- Map 19 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Map 24 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 5 <- Reducer 12 (SIMPLE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 16 (SIMPLE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 20 (SIMPLE_EDGE), Reducer 6 (ONE_TO_ONE_EDGE) +Reducer 8 <- Reducer 7 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_356] - Limit [LIM_355] (rows=100 width=88) + Reducer 8 vectorized + File Output Operator [FS_364] + Limit [LIM_363] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_354] (rows=574987679 width=88) + Select Operator [SEL_362] (rows=191662559 width=88) Output:["_col0","_col1","_col2"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_89] - Select Operator [SEL_88] (rows=574987679 width=88) + <-Reducer 7 [SIMPLE_EDGE] + SHUFFLE [RS_93] + Select Operator [SEL_92] (rows=191662559 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_87] (rows=574987679 width=88) + Filter Operator [FIL_91] (rows=191662559 width=88) predicate:CASE WHEN (_col3 is not null) THEN (CASE WHEN (_col5 is not null) THEN (((_col1 / _col5) > (_col9 / _col3))) ELSE ((null > (_col9 / _col3))) END) ELSE (CASE WHEN (_col5 is not null) THEN (((_col1 / _col5) > null)) ELSE (null) END) END - Merge Join Operator [MERGEJOIN_279] (rows=1149975359 width=88) - Conds:RS_321._col0=RS_333._col0(Inner),RS_333._col0=RS_343._col0(Inner),RS_333._col0=RS_353._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col7","_col8","_col9"] - <-Reducer 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_333] + Merge Join Operator [MERGEJOIN_287] (rows=383325119 width=88) + Conds:RS_88._col2=RS_361._col0(Inner),Output:["_col1","_col3","_col5","_col6","_col7","_col8","_col9"] + <-Reducer 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_361] PartitionCols:_col0 - Select Operator [SEL_332] (rows=116159124 width=88) - Output:["_col0","_col1"] - Filter Operator [FIL_331] (rows=116159124 width=88) - predicate:(_col4 > 0) - Select Operator [SEL_330] (rows=348477374 width=88) - Output:["_col0","_col4"] - Group By Operator [GBY_329] (rows=348477374 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_37] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_36] (rows=696954748 width=88) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_274] (rows=696954748 width=88) - Conds:RS_32._col1=RS_312._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_312] - PartitionCols:_col0 - Select Operator [SEL_308] (rows=80000000 width=860) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_307] (rows=80000000 width=860) - predicate:(c_customer_id is not null and c_customer_sk is not null) - TableScan [TS_68] (rows=80000000 width=860) - default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_32] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_273] (rows=633595212 width=88) - Conds:RS_328._col0=RS_290._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_290] - PartitionCols:_col0 - Select Operator [SEL_284] (rows=36524 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_281] (rows=36524 width=1119) - predicate:((d_year = 2001) and (d_year) IN (2001, 2002) and d_date_sk is not null) - TableScan [TS_65] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_328] - PartitionCols:_col0 - Select Operator [SEL_327] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_326] (rows=575995635 width=88) - predicate:((ss_customer_sk BETWEEN DynamicValue(RS_33_customer_c_customer_sk_min) AND DynamicValue(RS_33_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_33_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) - TableScan [TS_20] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] - <-Reducer 22 [BROADCAST_EDGE] vectorized - BROADCAST [RS_323] - Group By Operator [GBY_322] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_300] - Group By Operator [GBY_296] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_291] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_284] - <-Reducer 26 [BROADCAST_EDGE] vectorized - BROADCAST [RS_325] - Group By Operator [GBY_324] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_318] - Group By Operator [GBY_316] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_313] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_308] - <-Reducer 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_343] - PartitionCols:_col0 - Select Operator [SEL_342] (rows=29040539 width=135) - Output:["_col0","_col1"] - Filter Operator [FIL_341] (rows=29040539 width=135) - predicate:(_col4 > 0) - Select Operator [SEL_340] (rows=87121617 width=135) - Output:["_col0","_col4"] - Group By Operator [GBY_339] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 13 [SIMPLE_EDGE] - SHUFFLE [RS_58] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_57] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_276] (rows=174243235 width=135) - Conds:RS_53._col1=RS_314._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_314] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_308] - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_53] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_275] (rows=158402938 width=135) - Conds:RS_338._col0=RS_292._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_292] - PartitionCols:_col0 - Select Operator [SEL_285] (rows=36524 width=1119) - Output:["_col0","_col1"] - Filter Operator [FIL_282] (rows=36524 width=1119) - predicate:((d_year = 2001) and (d_year) IN (2001, 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_65] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_338] - PartitionCols:_col0 - Select Operator [SEL_337] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_336] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_51_date_dim_d_date_sk_min) AND DynamicValue(RS_51_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_51_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_41] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_335] - Group By Operator [GBY_334] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_301] - Group By Operator [GBY_297] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_293] (rows=36524 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_285] - <-Reducer 18 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_353] - PartitionCols:_col0 - Select Operator [SEL_352] (rows=348477374 width=88) + Select Operator [SEL_360] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3"] - Group By Operator [GBY_351] (rows=348477374 width=88) + Group By Operator [GBY_359] (rows=348477374 width=88) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 19 [SIMPLE_EDGE] SHUFFLE [RS_79] PartitionCols:_col0, _col1, _col2, _col3 Group By Operator [GBY_78] (rows=696954748 width=88) Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_278] (rows=696954748 width=88) - Conds:RS_74._col1=RS_309._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_309] + Merge Join Operator [MERGEJOIN_284] (rows=696954748 width=88) + Conds:RS_74._col1=RS_317._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_317] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_308] - <-Reducer 16 [SIMPLE_EDGE] + Select Operator [SEL_316] (rows=80000000 width=860) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_315] (rows=80000000 width=860) + predicate:(c_customer_id is not null and c_customer_sk is not null) + TableScan [TS_68] (rows=80000000 width=860) + default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_sk","c_customer_id","c_first_name","c_last_name"] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_74] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_277] (rows=633595212 width=88) - Conds:RS_350._col0=RS_286._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_286] + Merge Join Operator [MERGEJOIN_283] (rows=633595212 width=88) + Conds:RS_358._col0=RS_294._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_294] PartitionCols:_col0 - Select Operator [SEL_283] (rows=36524 width=1119) + Select Operator [SEL_291] (rows=36524 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_280] (rows=36524 width=1119) + Filter Operator [FIL_288] (rows=36524 width=1119) predicate:((d_year = 2002) and (d_year) IN (2001, 2002) and d_date_sk is not null) - Please refer to the previous TableScan [TS_65] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_350] + TableScan [TS_65] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_year"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_358] PartitionCols:_col0 - Select Operator [SEL_349] (rows=575995635 width=88) + Select Operator [SEL_357] (rows=575995635 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_348] (rows=575995635 width=88) + Filter Operator [FIL_356] (rows=575995635 width=88) predicate:((ss_customer_sk BETWEEN DynamicValue(RS_75_customer_c_customer_sk_min) AND DynamicValue(RS_75_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_75_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_72_date_dim_d_date_sk_min) AND DynamicValue(RS_72_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_72_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) TableScan [TS_62] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] - <-Reducer 20 [BROADCAST_EDGE] vectorized - BROADCAST [RS_345] - Group By Operator [GBY_344] (rows=1 width=12) + <-Reducer 22 [BROADCAST_EDGE] vectorized + BROADCAST [RS_353] + Group By Operator [GBY_352] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_298] - Group By Operator [GBY_294] (rows=1 width=12) + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_306] + Group By Operator [GBY_302] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_287] (rows=36524 width=1119) + Select Operator [SEL_295] (rows=36524 width=1119) Output:["_col0"] - Please refer to the previous Select Operator [SEL_283] - <-Reducer 25 [BROADCAST_EDGE] vectorized - BROADCAST [RS_347] - Group By Operator [GBY_346] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_291] + <-Reducer 27 [BROADCAST_EDGE] vectorized + BROADCAST [RS_355] + Group By Operator [GBY_354] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] - <-Map 24 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_317] - Group By Operator [GBY_315] (rows=1 width=12) + <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_325] + Group By Operator [GBY_323] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] - Select Operator [SEL_310] (rows=80000000 width=860) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_308] - <-Reducer 4 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_321] - PartitionCols:_col0 - Select Operator [SEL_320] (rows=87121617 width=135) - Output:["_col0","_col1"] - Group By Operator [GBY_319] (rows=87121617 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_17] - PartitionCols:_col0, _col1, _col2, _col3 - Group By Operator [GBY_16] (rows=174243235 width=135) - Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 - Merge Join Operator [MERGEJOIN_272] (rows=174243235 width=135) - Conds:RS_12._col1=RS_311._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] - <-Map 24 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_311] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_308] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_12] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_271] (rows=158402938 width=135) - Conds:RS_306._col0=RS_288._col0(Inner),Output:["_col1","_col2","_col4"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_288] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_283] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_306] - PartitionCols:_col0 - Select Operator [SEL_305] (rows=144002668 width=135) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_304] (rows=144002668 width=135) - predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) - default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] - <-Reducer 21 [BROADCAST_EDGE] vectorized - BROADCAST [RS_303] - Group By Operator [GBY_302] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 19 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_299] - Group By Operator [GBY_295] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_289] (rows=36524 width=1119) + Select Operator [SEL_318] (rows=80000000 width=860) Output:["_col0"] - Please refer to the previous Select Operator [SEL_283] + Please refer to the previous Select Operator [SEL_316] + <-Reducer 6 [ONE_TO_ONE_EDGE] + FORWARD [RS_88] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_286] (rows=140552545 width=88) + Conds:RS_85._col2=RS_351._col0(Inner),Output:["_col1","_col2","_col3","_col5"] + <-Reducer 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_351] + PartitionCols:_col0 + Select Operator [SEL_350] (rows=29040539 width=135) + Output:["_col0","_col1"] + Filter Operator [FIL_349] (rows=29040539 width=135) + predicate:(_col4 > 0) + Select Operator [SEL_348] (rows=87121617 width=135) + Output:["_col0","_col4"] + Group By Operator [GBY_347] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_58] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_57] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_282] (rows=174243235 width=135) + Conds:RS_53._col1=RS_322._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_322] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_316] + <-Reducer 14 [SIMPLE_EDGE] + SHUFFLE [RS_53] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_281] (rows=158402938 width=135) + Conds:RS_346._col0=RS_300._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_300] + PartitionCols:_col0 + Select Operator [SEL_293] (rows=36524 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_290] (rows=36524 width=1119) + predicate:((d_year = 2001) and (d_year) IN (2001, 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_65] + <-Map 13 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_346] + PartitionCols:_col0 + Select Operator [SEL_345] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_344] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_51_date_dim_d_date_sk_min) AND DynamicValue(RS_51_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_51_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_41] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] + <-Reducer 25 [BROADCAST_EDGE] vectorized + BROADCAST [RS_343] + Group By Operator [GBY_342] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_309] + Group By Operator [GBY_305] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_301] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_293] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_85] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_285] (rows=127775039 width=88) + Conds:RS_329._col0=RS_341._col0(Inner),Output:["_col1","_col2","_col3"] + <-Reducer 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_341] + PartitionCols:_col0 + Select Operator [SEL_340] (rows=116159124 width=88) + Output:["_col0","_col1"] + Filter Operator [FIL_339] (rows=116159124 width=88) + predicate:(_col4 > 0) + Select Operator [SEL_338] (rows=348477374 width=88) + Output:["_col0","_col4"] + Group By Operator [GBY_337] (rows=348477374 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 11 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_36] (rows=696954748 width=88) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_280] (rows=696954748 width=88) + Conds:RS_32._col1=RS_320._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_320] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_316] + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_279] (rows=633595212 width=88) + Conds:RS_336._col0=RS_298._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_298] + PartitionCols:_col0 + Select Operator [SEL_292] (rows=36524 width=1119) + Output:["_col0","_col1"] + Filter Operator [FIL_289] (rows=36524 width=1119) + predicate:((d_year = 2001) and (d_year) IN (2001, 2002) and d_date_sk is not null) + Please refer to the previous TableScan [TS_65] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_336] + PartitionCols:_col0 + Select Operator [SEL_335] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_334] (rows=575995635 width=88) + predicate:((ss_customer_sk BETWEEN DynamicValue(RS_33_customer_c_customer_sk_min) AND DynamicValue(RS_33_customer_c_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_33_customer_c_customer_sk_bloom_filter))) and (ss_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) and ss_customer_sk is not null and ss_sold_date_sk is not null) + TableScan [TS_20] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_date_sk","ss_customer_sk","ss_net_paid"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_331] + Group By Operator [GBY_330] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_308] + Group By Operator [GBY_304] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_299] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_292] + <-Reducer 28 [BROADCAST_EDGE] vectorized + BROADCAST [RS_333] + Group By Operator [GBY_332] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=80000000)"] + <-Map 26 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_326] + Group By Operator [GBY_324] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=80000000)"] + Select Operator [SEL_321] (rows=80000000 width=860) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_316] + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_329] + PartitionCols:_col0 + Select Operator [SEL_328] (rows=87121617 width=135) + Output:["_col0","_col1"] + Group By Operator [GBY_327] (rows=87121617 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(VALUE._col0)"],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_17] + PartitionCols:_col0, _col1, _col2, _col3 + Group By Operator [GBY_16] (rows=174243235 width=135) + Output:["_col0","_col1","_col2","_col3","_col4"],aggregations:["max(_col2)"],keys:_col6, _col7, _col8, _col4 + Merge Join Operator [MERGEJOIN_278] (rows=174243235 width=135) + Conds:RS_12._col1=RS_319._col0(Inner),Output:["_col2","_col4","_col6","_col7","_col8"] + <-Map 26 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_319] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_316] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_12] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_277] (rows=158402938 width=135) + Conds:RS_314._col0=RS_296._col0(Inner),Output:["_col1","_col2","_col4"] + <-Map 21 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_296] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_291] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_314] + PartitionCols:_col0 + Select Operator [SEL_313] (rows=144002668 width=135) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_312] (rows=144002668 width=135) + predicate:((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_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_0] (rows=144002668 width=135) + default@web_sales,web_sales,Tbl:COMPLETE,Col:NONE,Output:["ws_sold_date_sk","ws_bill_customer_sk","ws_net_paid"] + <-Reducer 23 [BROADCAST_EDGE] vectorized + BROADCAST [RS_311] + Group By Operator [GBY_310] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 21 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_307] + Group By Operator [GBY_303] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_297] (rows=36524 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_291] diff --git a/ql/src/test/results/clientpositive/perf/tez/query82.q.out b/ql/src/test/results/clientpositive/perf/tez/query82.q.out index 7291dae466..198f4c6b8c 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query82.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query82.q.out @@ -43,98 +43,104 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 6 (BROADCAST_EDGE), Reducer 9 (BROADCAST_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (SIMPLE_EDGE) +Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 7 (BROADCAST_EDGE) +Reducer 10 <- Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 6 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (ONE_TO_ONE_EDGE), Reducer 9 (SIMPLE_EDGE) Reducer 4 <- Reducer 3 (SIMPLE_EDGE) -Reducer 6 <- Map 5 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Map 10 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE) +Reducer 5 <- Reducer 4 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Map 11 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 4 vectorized - File Output Operator [FS_97] - Limit [LIM_96] (rows=100 width=88) + Reducer 5 vectorized + File Output Operator [FS_103] + Limit [LIM_102] (rows=100 width=88) Number of rows:100 - Select Operator [SEL_95] (rows=633595212 width=88) + Select Operator [SEL_101] (rows=348477374 width=88) Output:["_col0","_col1","_col2"] - <-Reducer 3 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_94] - Group By Operator [GBY_93] (rows=633595212 width=88) + <-Reducer 4 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_100] + Group By Operator [GBY_99] (rows=348477374 width=88) Output:["_col0","_col1","_col2"],keys:KEY._col0, KEY._col1, KEY._col2 - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_22] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_24] PartitionCols:_col0, _col1, _col2 - Group By Operator [GBY_21] (rows=1267190424 width=88) + Group By Operator [GBY_23] (rows=696954748 width=88) Output:["_col0","_col1","_col2"],keys:_col2, _col3, _col4 - Top N Key Operator [TNK_43] (rows=1267190424 width=88) + Top N Key Operator [TNK_43] (rows=696954748 width=88) keys:_col2, _col3, _col4,sort order:+++,top n:100 - Merge Join Operator [MERGEJOIN_73] (rows=1267190424 width=88) - Conds:RS_92._col0=RS_76._col0(Inner),RS_76._col0=RS_18._col1(Inner),Output:["_col2","_col3","_col4"] - <-Map 5 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_76] - PartitionCols:_col0 - Select Operator [SEL_75] (rows=51333 width=1436) - Output:["_col0","_col1","_col2","_col3"] - Filter Operator [FIL_74] (rows=51333 width=1436) - predicate:((i_manufact_id) IN (437, 129, 727, 663) and i_current_price BETWEEN 30 AND 60 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","i_item_desc","i_current_price","i_manufact_id"] - <-Reducer 8 [SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_18] + Merge Join Operator [MERGEJOIN_79] (rows=696954748 width=88) + Conds:RS_19._col1=RS_20._col1(Inner),Output:["_col2","_col3","_col4"] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_20] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_72] (rows=4593600 width=15) - Conds:RS_84._col0=RS_87._col0(Inner),Output:["_col1"] - <-Map 10 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_87] + Merge Join Operator [MERGEJOIN_78] (rows=4593600 width=15) + Conds:RS_90._col0=RS_93._col0(Inner),Output:["_col1"] + <-Map 11 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_93] PartitionCols:_col0 - Select Operator [SEL_86] (rows=8116 width=1119) + Select Operator [SEL_92] (rows=8116 width=1119) Output:["_col0"] - Filter Operator [FIL_85] (rows=8116 width=1119) + Filter Operator [FIL_91] (rows=8116 width=1119) predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'2002-05-30 00:00:00' AND TIMESTAMP'2002-07-29 00:00:00' 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_date"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_84] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_90] PartitionCols:_col0 - Select Operator [SEL_83] (rows=4176000 width=15) + Select Operator [SEL_89] (rows=4176000 width=15) Output:["_col0","_col1"] - Filter Operator [FIL_82] (rows=4176000 width=15) + Filter Operator [FIL_88] (rows=4176000 width=15) predicate:(inv_date_sk is not null and inv_item_sk is not null and inv_quantity_on_hand BETWEEN 100 AND 500) TableScan [TS_6] (rows=37584000 width=15) default@inventory,inventory,Tbl:COMPLETE,Col:NONE,Output:["inv_date_sk","inv_item_sk","inv_quantity_on_hand"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_92] - PartitionCols:_col0 - Select Operator [SEL_91] (rows=575995635 width=88) - Output:["_col0"] - Filter Operator [FIL_90] (rows=575995635 width=88) - predicate:((ss_item_sk BETWEEN DynamicValue(RS_17_item_i_item_sk_min) AND DynamicValue(RS_17_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_17_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_18_inventory_inv_item_sk_min) AND DynamicValue(RS_18_inventory_inv_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_18_inventory_inv_item_sk_bloom_filter))) and ss_item_sk is not null) - TableScan [TS_0] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk"] - <-Reducer 6 [BROADCAST_EDGE] vectorized - BROADCAST [RS_81] - Group By Operator [GBY_80] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 5 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_79] - Group By Operator [GBY_78] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_77] (rows=51333 width=1436) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_75] - <-Reducer 9 [BROADCAST_EDGE] vectorized - BROADCAST [RS_89] - Group By Operator [GBY_88] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4593600)"] - <-Reducer 8 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_51] - Group By Operator [GBY_50] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4593600)"] - Select Operator [SEL_49] (rows=4593600 width=15) - Output:["_col0"] - Please refer to the previous Merge Join Operator [MERGEJOIN_72] + <-Reducer 2 [ONE_TO_ONE_EDGE] + FORWARD [RS_19] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_77] (rows=633595212 width=88) + Conds:RS_98._col0=RS_82._col0(Inner),Output:["_col1","_col2","_col3","_col4"] + <-Map 6 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_82] + PartitionCols:_col0 + Select Operator [SEL_81] (rows=51333 width=1436) + Output:["_col0","_col1","_col2","_col3"] + Filter Operator [FIL_80] (rows=51333 width=1436) + predicate:((i_manufact_id) IN (437, 129, 727, 663) and i_current_price BETWEEN 30 AND 60 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","i_item_desc","i_current_price","i_manufact_id"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_98] + PartitionCols:_col0 + Select Operator [SEL_97] (rows=575995635 width=88) + Output:["_col0"] + Filter Operator [FIL_96] (rows=575995635 width=88) + predicate:((ss_item_sk BETWEEN DynamicValue(RS_17_item_i_item_sk_min) AND DynamicValue(RS_17_item_i_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_17_item_i_item_sk_bloom_filter))) and (ss_item_sk BETWEEN DynamicValue(RS_20_inventory_inv_item_sk_min) AND DynamicValue(RS_20_inventory_inv_item_sk_max) and in_bloom_filter(ss_item_sk, DynamicValue(RS_20_inventory_inv_item_sk_bloom_filter))) and ss_item_sk is not null) + TableScan [TS_0] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_item_sk"] + <-Reducer 10 [BROADCAST_EDGE] vectorized + BROADCAST [RS_95] + Group By Operator [GBY_94] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=4593600)"] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + SHUFFLE [RS_51] + Group By Operator [GBY_50] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=4593600)"] + Select Operator [SEL_49] (rows=4593600 width=15) + Output:["_col0"] + Please refer to the previous Merge Join Operator [MERGEJOIN_78] + <-Reducer 7 [BROADCAST_EDGE] vectorized + BROADCAST [RS_87] + Group By Operator [GBY_86] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 6 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_85] + Group By Operator [GBY_84] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_83] (rows=51333 width=1436) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_81] diff --git a/ql/src/test/results/clientpositive/perf/tez/query83.q.out b/ql/src/test/results/clientpositive/perf/tez/query83.q.out index d5c383f956..5901d03bb0 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query83.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query83.q.out @@ -145,184 +145,190 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Map 21 (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 18 (ONE_TO_ONE_EDGE) -Reducer 17 <- Map 16 (SIMPLE_EDGE), Map 19 (SIMPLE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 3 <- Reducer 15 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 10 <- Reducer 16 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (SIMPLE_EDGE) +Reducer 12 <- Map 22 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 13 <- Reducer 12 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 14 <- Reducer 13 (SIMPLE_EDGE) +Reducer 16 <- Map 15 (SIMPLE_EDGE), Reducer 19 (ONE_TO_ONE_EDGE) +Reducer 18 <- Map 17 (SIMPLE_EDGE), Map 20 (SIMPLE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) +Reducer 3 <- Reducer 16 (SIMPLE_EDGE), Reducer 2 (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 20 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 9 <- Reducer 15 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 5 <- Reducer 11 (ONE_TO_ONE_EDGE), Reducer 4 (ONE_TO_ONE_EDGE) +Reducer 6 <- Reducer 14 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 9 <- Map 21 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:100 Stage-1 - Reducer 6 vectorized - File Output Operator [FS_395] - Limit [LIM_394] (rows=100 width=77) + Reducer 7 vectorized + File Output Operator [FS_398] + Limit [LIM_397] (rows=100 width=77) Number of rows:100 - Select Operator [SEL_393] (rows=76653825 width=77) + Select Operator [SEL_396] (rows=42159604 width=77) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_125] - Select Operator [SEL_124] (rows=76653825 width=77) + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_127] + Select Operator [SEL_126] (rows=42159604 width=77) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_360] (rows=76653825 width=77) - Conds:RS_382._col0=RS_387._col0(Inner),RS_382._col0=RS_392._col0(Inner),Output:["_col0","_col1","_col3","_col5"] - <-Reducer 10 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_387] + Merge Join Operator [MERGEJOIN_363] (rows=42159604 width=77) + Conds:RS_123._col0=RS_395._col0(Inner),Output:["_col0","_col1","_col3","_col5"] + <-Reducer 14 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_395] PartitionCols:_col0 - Group By Operator [GBY_386] (rows=34842647 width=77) + Group By Operator [GBY_394] (rows=8711072 width=92) Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_77] + <-Reducer 13 [SIMPLE_EDGE] + SHUFFLE [RS_117] PartitionCols:_col0 - Group By Operator [GBY_76] (rows=69685294 width=77) + Group By Operator [GBY_116] (rows=17422145 width=92) Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_358] (rows=69685294 width=77) - Conds:RS_72._col0=RS_73._col0(Inner),Output:["_col2","_col4"] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_73] + Merge Join Operator [MERGEJOIN_361] (rows=17422145 width=92) + Conds:RS_112._col0=RS_113._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_113] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_350] (rows=80353 width=1119) - Conds:RS_371._col1=RS_380._col0(Inner),Output:["_col0"] - <-Map 14 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_371] + Merge Join Operator [MERGEJOIN_352] (rows=80353 width=1119) + Conds:RS_374._col1=RS_383._col0(Inner),Output:["_col0"] + <-Map 15 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_374] PartitionCols:_col1 - Select Operator [SEL_370] (rows=73049 width=1119) + Select Operator [SEL_373] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_369] (rows=73049 width=1119) + Filter Operator [FIL_372] (rows=73049 width=1119) 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 18 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_380] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_383] PartitionCols:_col0 - Group By Operator [GBY_379] (rows=40176 width=1119) + Group By Operator [GBY_382] (rows=40176 width=1119) Output:["_col0"],keys:KEY._col0 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_22] PartitionCols:_col0 Group By Operator [GBY_21] (rows=80353 width=1119) Output:["_col0"],keys:_col0 - Merge Join Operator [MERGEJOIN_349] (rows=80353 width=1119) - Conds:RS_374._col1=RS_378._col0(Left Semi),Output:["_col0"] - <-Map 16 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_374] + Merge Join Operator [MERGEJOIN_351] (rows=80353 width=1119) + Conds:RS_377._col1=RS_381._col0(Left Semi),Output:["_col0"] + <-Map 17 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_377] PartitionCols:_col1 - Select Operator [SEL_373] (rows=73049 width=1119) + Select Operator [SEL_376] (rows=73049 width=1119) Output:["_col0","_col1"] - Filter Operator [FIL_372] (rows=73049 width=1119) + Filter Operator [FIL_375] (rows=73049 width=1119) predicate:(d_date is not null and d_week_seq is not null) TableScan [TS_9] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] - <-Map 19 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_378] + <-Map 20 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_381] PartitionCols:_col0 - Group By Operator [GBY_377] (rows=73049 width=1119) + Group By Operator [GBY_380] (rows=73049 width=1119) Output:["_col0"],keys:_col0 - Select Operator [SEL_376] (rows=73049 width=1119) + Select Operator [SEL_379] (rows=73049 width=1119) Output:["_col0"] - Filter Operator [FIL_375] (rows=73049 width=1119) + Filter Operator [FIL_378] (rows=73049 width=1119) predicate:((d_date) IN ('1998-01-02', '1998-10-15', '1998-11-10') and d_week_seq is not null) TableScan [TS_12] (rows=73049 width=1119) default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date","d_week_seq"] - <-Reducer 8 [SIMPLE_EDGE] - SHUFFLE [RS_72] + <-Reducer 12 [SIMPLE_EDGE] + SHUFFLE [RS_112] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_351] (rows=63350266 width=77) - Conds:RS_385._col1=RS_367._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_367] + Merge Join Operator [MERGEJOIN_356] (rows=15838314 width=92) + Conds:RS_393._col1=RS_371._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_371] PartitionCols:_col0 - Select Operator [SEL_365] (rows=462000 width=1436) + Select Operator [SEL_368] (rows=462000 width=1436) Output:["_col0","_col1"] - Filter Operator [FIL_364] (rows=462000 width=1436) + Filter Operator [FIL_367] (rows=462000 width=1436) 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 20 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_385] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_393] PartitionCols:_col1 - Select Operator [SEL_384] (rows=57591150 width=77) + Select Operator [SEL_392] (rows=14398467 width=92) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_383] (rows=57591150 width=77) - predicate:(sr_item_sk is not null and sr_returned_date_sk is not null) - TableScan [TS_40] (rows=57591150 width=77) - default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_return_quantity"] - <-Reducer 13 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_392] - PartitionCols:_col0 - Group By Operator [GBY_391] (rows=8711072 width=92) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 12 [SIMPLE_EDGE] - SHUFFLE [RS_117] - PartitionCols:_col0 - Group By Operator [GBY_116] (rows=17422145 width=92) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_359] (rows=17422145 width=92) - Conds:RS_112._col0=RS_113._col0(Inner),Output:["_col2","_col4"] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_113] - PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_350] - <-Reducer 11 [SIMPLE_EDGE] - SHUFFLE [RS_112] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_354] (rows=15838314 width=92) - Conds:RS_390._col1=RS_368._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_368] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_365] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_390] - PartitionCols:_col1 - Select Operator [SEL_389] (rows=14398467 width=92) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_388] (rows=14398467 width=92) + Filter Operator [FIL_391] (rows=14398467 width=92) predicate:(wr_item_sk is not null and wr_returned_date_sk is not null) TableScan [TS_80] (rows=14398467 width=92) default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_returned_date_sk","wr_item_sk","wr_return_quantity"] - <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_382] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_123] PartitionCols:_col0 - Group By Operator [GBY_381] (rows=17423323 width=106) - Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_37] + Merge Join Operator [MERGEJOIN_362] (rows=38326912 width=77) + Conds:RS_385._col0=RS_390._col0(Inner),Output:["_col0","_col1","_col3"] + <-Reducer 11 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_390] PartitionCols:_col0 - Group By Operator [GBY_36] (rows=34846646 width=106) - Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 - Merge Join Operator [MERGEJOIN_357] (rows=34846646 width=106) - Conds:RS_32._col0=RS_33._col0(Inner),Output:["_col2","_col4"] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_33] - PartitionCols:_col0 - Please refer to the previous Merge Join Operator [MERGEJOIN_350] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_32] - PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_348] (rows=31678769 width=106) - Conds:RS_363._col1=RS_366._col0(Inner),Output:["_col0","_col2","_col4"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_366] + Group By Operator [GBY_389] (rows=34842647 width=77) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 10 [SIMPLE_EDGE] + SHUFFLE [RS_77] + PartitionCols:_col0 + Group By Operator [GBY_76] (rows=69685294 width=77) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_360] (rows=69685294 width=77) + Conds:RS_72._col0=RS_73._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_73] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_365] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_363] - PartitionCols:_col1 - Select Operator [SEL_362] (rows=28798881 width=106) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_361] (rows=28798881 width=106) - predicate:(cr_item_sk is not null and cr_returned_date_sk is not null) - TableScan [TS_0] (rows=28798881 width=106) - default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_item_sk","cr_return_quantity"] + Please refer to the previous Merge Join Operator [MERGEJOIN_352] + <-Reducer 9 [SIMPLE_EDGE] + SHUFFLE [RS_72] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_353] (rows=63350266 width=77) + Conds:RS_388._col1=RS_370._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_370] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_368] + <-Map 21 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_388] + PartitionCols:_col1 + Select Operator [SEL_387] (rows=57591150 width=77) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_386] (rows=57591150 width=77) + predicate:(sr_item_sk is not null and sr_returned_date_sk is not null) + TableScan [TS_40] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_returned_date_sk","sr_item_sk","sr_return_quantity"] + <-Reducer 4 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_385] + PartitionCols:_col0 + Group By Operator [GBY_384] (rows=17423323 width=106) + Output:["_col0","_col1"],aggregations:["sum(VALUE._col0)"],keys:KEY._col0 + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_37] + PartitionCols:_col0 + Group By Operator [GBY_36] (rows=34846646 width=106) + Output:["_col0","_col1"],aggregations:["sum(_col2)"],keys:_col4 + Merge Join Operator [MERGEJOIN_359] (rows=34846646 width=106) + Conds:RS_32._col0=RS_33._col0(Inner),Output:["_col2","_col4"] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col0 + Please refer to the previous Merge Join Operator [MERGEJOIN_352] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_32] + PartitionCols:_col0 + Merge Join Operator [MERGEJOIN_350] (rows=31678769 width=106) + Conds:RS_366._col1=RS_369._col0(Inner),Output:["_col0","_col2","_col4"] + <-Map 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_369] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_368] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_366] + PartitionCols:_col1 + Select Operator [SEL_365] (rows=28798881 width=106) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_364] (rows=28798881 width=106) + predicate:(cr_item_sk is not null and cr_returned_date_sk is not null) + TableScan [TS_0] (rows=28798881 width=106) + default@catalog_returns,catalog_returns,Tbl:COMPLETE,Col:NONE,Output:["cr_returned_date_sk","cr_item_sk","cr_return_quantity"] diff --git a/ql/src/test/results/clientpositive/perf/tez/query84.q.out b/ql/src/test/results/clientpositive/perf/tez/query84.q.out index b30736f1c4..c7a98afe5b 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query84.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query84.q.out @@ -55,94 +55,100 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Reducer 10 <- Map 11 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) -Reducer 3 <- Reducer 2 (SIMPLE_EDGE) -Reducer 6 <- Map 5 (SIMPLE_EDGE), Map 8 (SIMPLE_EDGE) -Reducer 7 <- Reducer 10 (SIMPLE_EDGE), Reducer 6 (SIMPLE_EDGE) +Reducer 11 <- Map 10 (SIMPLE_EDGE), Map 12 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 5 (SIMPLE_EDGE) +Reducer 3 <- Reducer 2 (ONE_TO_ONE_EDGE), Reducer 8 (SIMPLE_EDGE) +Reducer 4 <- Reducer 3 (SIMPLE_EDGE) +Reducer 7 <- Map 6 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) +Reducer 8 <- Reducer 11 (SIMPLE_EDGE), Reducer 7 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 3 vectorized - File Output Operator [FS_137] - Limit [LIM_136] (rows=100 width=860) + Reducer 4 vectorized + File Output Operator [FS_141] + Limit [LIM_140] (rows=100 width=860) Number of rows:100 - Select Operator [SEL_135] (rows=212960011 width=860) + Select Operator [SEL_139] (rows=106480005 width=860) Output:["_col0","_col1"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_34] - Select Operator [SEL_33] (rows=212960011 width=860) + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_36] + Select Operator [SEL_35] (rows=106480005 width=860) Output:["_col1","_col2"] - Merge Join Operator [MERGEJOIN_116] (rows=212960011 width=860) - Conds:RS_119._col0=RS_122._col0(Inner),RS_122._col0=RS_31._col1(Inner),Output:["_col2","_col6","_col7"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_119] - PartitionCols:_col0 - Select Operator [SEL_118] (rows=57591150 width=77) - Output:["_col0"] - Filter Operator [FIL_117] (rows=57591150 width=77) - predicate:sr_cdemo_sk is not null - TableScan [TS_0] (rows=57591150 width=77) - default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_cdemo_sk"] - <-Map 4 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_122] - PartitionCols:_col0 - Select Operator [SEL_121] (rows=1861800 width=385) - Output:["_col0"] - Filter Operator [FIL_120] (rows=1861800 width=385) - predicate:cd_demo_sk is not null - TableScan [TS_3] (rows=1861800 width=385) - default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk"] - <-Reducer 7 [SIMPLE_EDGE] - SHUFFLE [RS_31] + Merge Join Operator [MERGEJOIN_120] (rows=106480005 width=860) + Conds:RS_32._col1=RS_33._col1(Inner),Output:["_col2","_col6","_col7"] + <-Reducer 2 [ONE_TO_ONE_EDGE] + FORWARD [RS_32] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_115] (rows=96800003 width=860) + Merge Join Operator [MERGEJOIN_116] (rows=63350266 width=77) + Conds:RS_123._col0=RS_126._col0(Inner),Output:["_col1"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_123] + PartitionCols:_col0 + Select Operator [SEL_122] (rows=57591150 width=77) + Output:["_col0"] + Filter Operator [FIL_121] (rows=57591150 width=77) + predicate:sr_cdemo_sk is not null + TableScan [TS_0] (rows=57591150 width=77) + default@store_returns,store_returns,Tbl:COMPLETE,Col:NONE,Output:["sr_cdemo_sk"] + <-Map 5 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_126] + PartitionCols:_col0 + Select Operator [SEL_125] (rows=1861800 width=385) + Output:["_col0"] + Filter Operator [FIL_124] (rows=1861800 width=385) + predicate:cd_demo_sk is not null + TableScan [TS_3] (rows=1861800 width=385) + default@customer_demographics,customer_demographics,Tbl:COMPLETE,Col:NONE,Output:["cd_demo_sk"] + <-Reducer 8 [SIMPLE_EDGE] + SHUFFLE [RS_33] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_119] (rows=96800003 width=860) Conds:RS_25._col2=RS_26._col0(Inner),Output:["_col0","_col1","_col4","_col5"] - <-Reducer 10 [SIMPLE_EDGE] + <-Reducer 11 [SIMPLE_EDGE] SHUFFLE [RS_26] PartitionCols:_col0 - Merge Join Operator [MERGEJOIN_114] (rows=7920 width=107) - Conds:RS_131._col1=RS_134._col0(Inner),Output:["_col0"] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_134] - PartitionCols:_col0 - Select Operator [SEL_133] (rows=2 width=12) - Output:["_col0"] - Filter Operator [FIL_132] (rows=2 width=12) - predicate:((ib_lower_bound >= 32287) and (ib_upper_bound <= 82287) and ib_income_band_sk is not null) - TableScan [TS_15] (rows=20 width=12) - default@income_band,income_band,Tbl:COMPLETE,Col:NONE,Output:["ib_income_band_sk","ib_lower_bound","ib_upper_bound"] - <-Map 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_131] + Merge Join Operator [MERGEJOIN_118] (rows=7920 width=107) + Conds:RS_135._col1=RS_138._col0(Inner),Output:["_col0"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_135] PartitionCols:_col1 - Select Operator [SEL_130] (rows=7200 width=107) + Select Operator [SEL_134] (rows=7200 width=107) Output:["_col0","_col1"] - Filter Operator [FIL_129] (rows=7200 width=107) + Filter Operator [FIL_133] (rows=7200 width=107) predicate:(hd_demo_sk is not null and hd_income_band_sk is not null) TableScan [TS_12] (rows=7200 width=107) default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_income_band_sk"] - <-Reducer 6 [SIMPLE_EDGE] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_138] + PartitionCols:_col0 + Select Operator [SEL_137] (rows=2 width=12) + Output:["_col0"] + Filter Operator [FIL_136] (rows=2 width=12) + predicate:((ib_lower_bound >= 32287) and (ib_upper_bound <= 82287) and ib_income_band_sk is not null) + TableScan [TS_15] (rows=20 width=12) + default@income_band,income_band,Tbl:COMPLETE,Col:NONE,Output:["ib_income_band_sk","ib_lower_bound","ib_upper_bound"] + <-Reducer 7 [SIMPLE_EDGE] SHUFFLE [RS_25] PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_113] (rows=88000001 width=860) - Conds:RS_125._col3=RS_128._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] - <-Map 5 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_125] + Merge Join Operator [MERGEJOIN_117] (rows=88000001 width=860) + Conds:RS_129._col3=RS_132._col0(Inner),Output:["_col0","_col1","_col2","_col4","_col5"] + <-Map 6 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_129] PartitionCols:_col3 - Select Operator [SEL_124] (rows=80000000 width=860) + Select Operator [SEL_128] (rows=80000000 width=860) Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_123] (rows=80000000 width=860) + Filter Operator [FIL_127] (rows=80000000 width=860) predicate:(c_current_addr_sk is not null and c_current_cdemo_sk is not null and c_current_hdemo_sk is not null) TableScan [TS_6] (rows=80000000 width=860) default@customer,customer,Tbl:COMPLETE,Col:NONE,Output:["c_customer_id","c_current_cdemo_sk","c_current_hdemo_sk","c_current_addr_sk","c_first_name","c_last_name"] - <-Map 8 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_128] + <-Map 9 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_132] PartitionCols:_col0 - Select Operator [SEL_127] (rows=20000000 width=1014) + Select Operator [SEL_131] (rows=20000000 width=1014) Output:["_col0"] - Filter Operator [FIL_126] (rows=20000000 width=1014) + Filter Operator [FIL_130] (rows=20000000 width=1014) predicate:((ca_city = 'Hopewell') and ca_address_sk is not null) TableScan [TS_9] (rows=40000000 width=1014) default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_city"] diff --git a/ql/src/test/results/clientpositive/perf/tez/query88.q.out b/ql/src/test/results/clientpositive/perf/tez/query88.q.out index f515888aed..7bc5db761f 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query88.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query88.q.out @@ -1,4 +1,10 @@ -Warning: Shuffle Join MERGEJOIN[587][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[599][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 6' is a cross product +Warning: Shuffle Join MERGEJOIN[600][tables = [$hdt$_0, $hdt$_1, $hdt$_2]] in Stage 'Reducer 7' is a cross product +Warning: Shuffle Join MERGEJOIN[601][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3]] in Stage 'Reducer 8' is a cross product +Warning: Shuffle Join MERGEJOIN[602][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4]] in Stage 'Reducer 9' is a cross product +Warning: Shuffle Join MERGEJOIN[603][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5]] in Stage 'Reducer 10' is a cross product +Warning: Shuffle Join MERGEJOIN[604][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6]] in Stage 'Reducer 11' is a cross product +Warning: Shuffle Join MERGEJOIN[605][tables = [$hdt$_0, $hdt$_1, $hdt$_2, $hdt$_3, $hdt$_4, $hdt$_5, $hdt$_6, $hdt$_7]] in Stage 'Reducer 12' is a cross product PREHOOK: query: explain select * from @@ -196,715 +202,745 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 45 (BROADCAST_EDGE), Reducer 54 (BROADCAST_EDGE), Reducer 8 (BROADCAST_EDGE) -Map 62 <- Reducer 13 (BROADCAST_EDGE), Reducer 46 (BROADCAST_EDGE), Reducer 55 (BROADCAST_EDGE) -Map 63 <- Reducer 18 (BROADCAST_EDGE), Reducer 47 (BROADCAST_EDGE), Reducer 56 (BROADCAST_EDGE) -Map 64 <- Reducer 23 (BROADCAST_EDGE), Reducer 48 (BROADCAST_EDGE), Reducer 57 (BROADCAST_EDGE) -Map 65 <- Reducer 28 (BROADCAST_EDGE), Reducer 49 (BROADCAST_EDGE), Reducer 58 (BROADCAST_EDGE) -Map 66 <- Reducer 33 (BROADCAST_EDGE), Reducer 50 (BROADCAST_EDGE), Reducer 59 (BROADCAST_EDGE) -Map 67 <- Reducer 38 (BROADCAST_EDGE), Reducer 51 (BROADCAST_EDGE), Reducer 60 (BROADCAST_EDGE) -Map 68 <- Reducer 43 (BROADCAST_EDGE), Reducer 52 (BROADCAST_EDGE), Reducer 61 (BROADCAST_EDGE) -Reducer 10 <- Map 44 (SIMPLE_EDGE), Reducer 9 (SIMPLE_EDGE) -Reducer 11 <- Map 53 (SIMPLE_EDGE), Reducer 10 (SIMPLE_EDGE) -Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE) -Reducer 13 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Map 63 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 15 <- Map 44 (SIMPLE_EDGE), Reducer 14 (SIMPLE_EDGE) -Reducer 16 <- Map 53 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) -Reducer 17 <- Reducer 16 (CUSTOM_SIMPLE_EDGE) -Reducer 18 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 19 <- Map 64 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 20 <- Map 44 (SIMPLE_EDGE), Reducer 19 (SIMPLE_EDGE) -Reducer 21 <- Map 53 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) -Reducer 22 <- Reducer 21 (CUSTOM_SIMPLE_EDGE) -Reducer 23 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 24 <- Map 65 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 25 <- Map 44 (SIMPLE_EDGE), Reducer 24 (SIMPLE_EDGE) -Reducer 26 <- Map 53 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) -Reducer 27 <- Reducer 26 (CUSTOM_SIMPLE_EDGE) -Reducer 28 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 29 <- Map 66 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 3 <- Map 44 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 30 <- Map 44 (SIMPLE_EDGE), Reducer 29 (SIMPLE_EDGE) -Reducer 31 <- Map 53 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) -Reducer 32 <- Reducer 31 (CUSTOM_SIMPLE_EDGE) -Reducer 33 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 34 <- Map 67 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 35 <- Map 44 (SIMPLE_EDGE), Reducer 34 (SIMPLE_EDGE) -Reducer 36 <- Map 53 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE) -Reducer 37 <- Reducer 36 (CUSTOM_SIMPLE_EDGE) -Reducer 38 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 39 <- Map 68 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) -Reducer 4 <- Map 53 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 40 <- Map 44 (SIMPLE_EDGE), Reducer 39 (SIMPLE_EDGE) -Reducer 41 <- Map 53 (SIMPLE_EDGE), Reducer 40 (SIMPLE_EDGE) -Reducer 42 <- Reducer 41 (CUSTOM_SIMPLE_EDGE) -Reducer 43 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 45 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 46 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 47 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 48 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 49 <- Map 44 (CUSTOM_SIMPLE_EDGE) +Map 1 <- Reducer 14 (BROADCAST_EDGE), Reducer 51 (BROADCAST_EDGE), Reducer 60 (BROADCAST_EDGE) +Map 68 <- Reducer 19 (BROADCAST_EDGE), Reducer 52 (BROADCAST_EDGE), Reducer 61 (BROADCAST_EDGE) +Map 69 <- Reducer 24 (BROADCAST_EDGE), Reducer 53 (BROADCAST_EDGE), Reducer 62 (BROADCAST_EDGE) +Map 70 <- Reducer 29 (BROADCAST_EDGE), Reducer 54 (BROADCAST_EDGE), Reducer 63 (BROADCAST_EDGE) +Map 71 <- Reducer 34 (BROADCAST_EDGE), Reducer 55 (BROADCAST_EDGE), Reducer 64 (BROADCAST_EDGE) +Map 72 <- Reducer 39 (BROADCAST_EDGE), Reducer 56 (BROADCAST_EDGE), Reducer 65 (BROADCAST_EDGE) +Map 73 <- Reducer 44 (BROADCAST_EDGE), Reducer 57 (BROADCAST_EDGE), Reducer 66 (BROADCAST_EDGE) +Map 74 <- Reducer 49 (BROADCAST_EDGE), Reducer 58 (BROADCAST_EDGE), Reducer 67 (BROADCAST_EDGE) +Reducer 10 <- Reducer 38 (CUSTOM_SIMPLE_EDGE), Reducer 9 (CUSTOM_SIMPLE_EDGE) +Reducer 11 <- Reducer 10 (CUSTOM_SIMPLE_EDGE), Reducer 43 (CUSTOM_SIMPLE_EDGE) +Reducer 12 <- Reducer 11 (CUSTOM_SIMPLE_EDGE), Reducer 48 (CUSTOM_SIMPLE_EDGE) +Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 13 (SIMPLE_EDGE), Map 68 (SIMPLE_EDGE) +Reducer 16 <- Map 50 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE) +Reducer 17 <- Map 59 (SIMPLE_EDGE), Reducer 16 (SIMPLE_EDGE) +Reducer 18 <- Reducer 17 (CUSTOM_SIMPLE_EDGE) +Reducer 19 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 13 (SIMPLE_EDGE) +Reducer 20 <- Map 13 (SIMPLE_EDGE), Map 69 (SIMPLE_EDGE) +Reducer 21 <- Map 50 (SIMPLE_EDGE), Reducer 20 (SIMPLE_EDGE) +Reducer 22 <- Map 59 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE) +Reducer 23 <- Reducer 22 (CUSTOM_SIMPLE_EDGE) +Reducer 24 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 25 <- Map 13 (SIMPLE_EDGE), Map 70 (SIMPLE_EDGE) +Reducer 26 <- Map 50 (SIMPLE_EDGE), Reducer 25 (SIMPLE_EDGE) +Reducer 27 <- Map 59 (SIMPLE_EDGE), Reducer 26 (SIMPLE_EDGE) +Reducer 28 <- Reducer 27 (CUSTOM_SIMPLE_EDGE) +Reducer 29 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 50 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 30 <- Map 13 (SIMPLE_EDGE), Map 71 (SIMPLE_EDGE) +Reducer 31 <- Map 50 (SIMPLE_EDGE), Reducer 30 (SIMPLE_EDGE) +Reducer 32 <- Map 59 (SIMPLE_EDGE), Reducer 31 (SIMPLE_EDGE) +Reducer 33 <- Reducer 32 (CUSTOM_SIMPLE_EDGE) +Reducer 34 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 35 <- Map 13 (SIMPLE_EDGE), Map 72 (SIMPLE_EDGE) +Reducer 36 <- Map 50 (SIMPLE_EDGE), Reducer 35 (SIMPLE_EDGE) +Reducer 37 <- Map 59 (SIMPLE_EDGE), Reducer 36 (SIMPLE_EDGE) +Reducer 38 <- Reducer 37 (CUSTOM_SIMPLE_EDGE) +Reducer 39 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 4 <- Map 59 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 40 <- Map 13 (SIMPLE_EDGE), Map 73 (SIMPLE_EDGE) +Reducer 41 <- Map 50 (SIMPLE_EDGE), Reducer 40 (SIMPLE_EDGE) +Reducer 42 <- Map 59 (SIMPLE_EDGE), Reducer 41 (SIMPLE_EDGE) +Reducer 43 <- Reducer 42 (CUSTOM_SIMPLE_EDGE) +Reducer 44 <- Map 13 (CUSTOM_SIMPLE_EDGE) +Reducer 45 <- Map 13 (SIMPLE_EDGE), Map 74 (SIMPLE_EDGE) +Reducer 46 <- Map 50 (SIMPLE_EDGE), Reducer 45 (SIMPLE_EDGE) +Reducer 47 <- Map 59 (SIMPLE_EDGE), Reducer 46 (SIMPLE_EDGE) +Reducer 48 <- Reducer 47 (CUSTOM_SIMPLE_EDGE) +Reducer 49 <- Map 13 (CUSTOM_SIMPLE_EDGE) Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE) -Reducer 50 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 51 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 52 <- Map 44 (CUSTOM_SIMPLE_EDGE) -Reducer 54 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 55 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 56 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 57 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 58 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 59 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 6 <- Reducer 12 (CUSTOM_SIMPLE_EDGE), Reducer 17 (CUSTOM_SIMPLE_EDGE), Reducer 22 (CUSTOM_SIMPLE_EDGE), Reducer 27 (CUSTOM_SIMPLE_EDGE), Reducer 32 (CUSTOM_SIMPLE_EDGE), Reducer 37 (CUSTOM_SIMPLE_EDGE), Reducer 42 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) -Reducer 60 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 61 <- Map 53 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Map 7 (CUSTOM_SIMPLE_EDGE) -Reducer 9 <- Map 62 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE) +Reducer 51 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 52 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 53 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 54 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 55 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 56 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 57 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 58 <- Map 50 (CUSTOM_SIMPLE_EDGE) +Reducer 6 <- Reducer 18 (CUSTOM_SIMPLE_EDGE), Reducer 5 (CUSTOM_SIMPLE_EDGE) +Reducer 60 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 61 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 62 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 63 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 64 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 65 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 66 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 67 <- Map 59 (CUSTOM_SIMPLE_EDGE) +Reducer 7 <- Reducer 23 (CUSTOM_SIMPLE_EDGE), Reducer 6 (CUSTOM_SIMPLE_EDGE) +Reducer 8 <- Reducer 28 (CUSTOM_SIMPLE_EDGE), Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 33 (CUSTOM_SIMPLE_EDGE), Reducer 8 (CUSTOM_SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 6 - File Output Operator [FS_218] - Select Operator [SEL_217] (rows=1 width=65) + Reducer 12 + File Output Operator [FS_230] + Select Operator [SEL_229] (rows=1 width=71) Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - Merge Join Operator [MERGEJOIN_587] (rows=1 width=65) - Conds:(Inner),(Inner),(Inner),(Inner),(Inner),(Inner),(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] - <-Reducer 12 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_725] - Group By Operator [GBY_724] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 11 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_49] - Group By Operator [GBY_48] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_568] (rows=766650239 width=88) - Conds:RS_44._col2=RS_678._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_678] - PartitionCols:_col0 - Select Operator [SEL_675] (rows=852 width=1910) - Output:["_col0"] - Filter Operator [FIL_674] (rows=852 width=1910) - predicate:((s_store_name = 'ese') and s_store_sk is not null) - TableScan [TS_9] (rows=1704 width=1910) - default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] - <-Reducer 10 [SIMPLE_EDGE] - SHUFFLE [RS_44] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_567] (rows=696954748 width=88) - Conds:RS_41._col1=RS_642._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_642] - PartitionCols:_col0 - Select Operator [SEL_639] (rows=3600 width=107) - Output:["_col0"] - Filter Operator [FIL_638] (rows=3600 width=107) - predicate:((((hd_dep_count = 3) and (hd_vehicle_count <= 5)) or ((hd_dep_count = 0) and (hd_vehicle_count <= 2)) or ((hd_dep_count = 1) and (hd_vehicle_count <= 3))) and hd_demo_sk is not null) - TableScan [TS_6] (rows=7200 width=107) - default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] - <-Reducer 9 [SIMPLE_EDGE] - SHUFFLE [RS_41] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_566] (rows=633595212 width=88) - Conds:RS_723._col0=RS_606._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_606] - PartitionCols:_col0 - Select Operator [SEL_597] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_589] (rows=14400 width=471) - predicate:((t_hour = 12) and (t_minute < 30) and t_time_sk is not null) - TableScan [TS_3] (rows=86400 width=471) - default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] - <-Map 62 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_723] - PartitionCols:_col0 - Select Operator [SEL_722] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_721] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_42_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_42_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_42_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_39_time_dim_t_time_sk_min) AND DynamicValue(RS_39_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_39_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_45_store_s_store_sk_min) AND DynamicValue(RS_45_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_45_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_26] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 13 [BROADCAST_EDGE] vectorized - BROADCAST [RS_716] - Group By Operator [GBY_715] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_629] - Group By Operator [GBY_621] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_607] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_597] - <-Reducer 46 [BROADCAST_EDGE] vectorized - BROADCAST [RS_718] - Group By Operator [GBY_717] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_665] - Group By Operator [GBY_657] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_643] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 55 [BROADCAST_EDGE] vectorized - BROADCAST [RS_720] - Group By Operator [GBY_719] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_701] - Group By Operator [GBY_693] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_679] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 17 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_736] - Group By Operator [GBY_735] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 16 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_75] - Group By Operator [GBY_74] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_571] (rows=766650239 width=88) - Conds:RS_70._col2=RS_680._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_680] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 15 [SIMPLE_EDGE] - SHUFFLE [RS_70] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_570] (rows=696954748 width=88) - Conds:RS_67._col1=RS_644._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_644] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 14 [SIMPLE_EDGE] - SHUFFLE [RS_67] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_569] (rows=633595212 width=88) - Conds:RS_734._col0=RS_608._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_608] - PartitionCols:_col0 - Select Operator [SEL_598] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_590] (rows=14400 width=471) - predicate:((t_hour = 11) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 63 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_734] - PartitionCols:_col0 - Select Operator [SEL_733] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_732] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_68_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_68_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_68_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_65_time_dim_t_time_sk_min) AND DynamicValue(RS_65_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_65_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_71_store_s_store_sk_min) AND DynamicValue(RS_71_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_71_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_52] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 18 [BROADCAST_EDGE] vectorized - BROADCAST [RS_727] - Group By Operator [GBY_726] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_630] - Group By Operator [GBY_622] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_609] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_598] - <-Reducer 47 [BROADCAST_EDGE] vectorized - BROADCAST [RS_729] - Group By Operator [GBY_728] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_666] - Group By Operator [GBY_658] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_645] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 56 [BROADCAST_EDGE] vectorized - BROADCAST [RS_731] - Group By Operator [GBY_730] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_702] - Group By Operator [GBY_694] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_681] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 22 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_747] - Group By Operator [GBY_746] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 21 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_101] - Group By Operator [GBY_100] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_574] (rows=766650239 width=88) - Conds:RS_96._col2=RS_682._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_682] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 20 [SIMPLE_EDGE] - SHUFFLE [RS_96] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_573] (rows=696954748 width=88) - Conds:RS_93._col1=RS_646._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_646] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_93] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_572] (rows=633595212 width=88) - Conds:RS_745._col0=RS_610._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_610] - PartitionCols:_col0 - Select Operator [SEL_599] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_591] (rows=14400 width=471) - predicate:((t_hour = 11) and (t_minute < 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 64 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_745] - PartitionCols:_col0 - Select Operator [SEL_744] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_743] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_94_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_94_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_94_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_91_time_dim_t_time_sk_min) AND DynamicValue(RS_91_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_91_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_97_store_s_store_sk_min) AND DynamicValue(RS_97_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_97_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_78] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_738] - Group By Operator [GBY_737] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_631] - Group By Operator [GBY_623] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_611] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_599] - <-Reducer 48 [BROADCAST_EDGE] vectorized - BROADCAST [RS_740] - Group By Operator [GBY_739] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_667] - Group By Operator [GBY_659] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_647] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 57 [BROADCAST_EDGE] vectorized - BROADCAST [RS_742] - Group By Operator [GBY_741] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_703] - Group By Operator [GBY_695] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_683] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 27 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_758] - Group By Operator [GBY_757] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 26 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_127] - Group By Operator [GBY_126] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_577] (rows=766650239 width=88) - Conds:RS_122._col2=RS_684._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_684] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 25 [SIMPLE_EDGE] - SHUFFLE [RS_122] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_576] (rows=696954748 width=88) - Conds:RS_119._col1=RS_648._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_648] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 24 [SIMPLE_EDGE] - SHUFFLE [RS_119] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_575] (rows=633595212 width=88) - Conds:RS_756._col0=RS_612._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_612] - PartitionCols:_col0 - Select Operator [SEL_600] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_592] (rows=14400 width=471) - predicate:((t_hour = 10) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 65 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_756] - PartitionCols:_col0 - Select Operator [SEL_755] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_754] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_120_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_120_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_120_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_117_time_dim_t_time_sk_min) AND DynamicValue(RS_117_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_117_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_123_store_s_store_sk_min) AND DynamicValue(RS_123_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_123_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_104] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 28 [BROADCAST_EDGE] vectorized - BROADCAST [RS_749] - Group By Operator [GBY_748] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_632] - Group By Operator [GBY_624] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_613] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_600] - <-Reducer 49 [BROADCAST_EDGE] vectorized - BROADCAST [RS_751] - Group By Operator [GBY_750] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_668] - Group By Operator [GBY_660] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_649] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 58 [BROADCAST_EDGE] vectorized - BROADCAST [RS_753] - Group By Operator [GBY_752] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_704] - Group By Operator [GBY_696] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_685] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 32 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_769] - Group By Operator [GBY_768] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 31 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_153] - Group By Operator [GBY_152] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_580] (rows=766650239 width=88) - Conds:RS_148._col2=RS_686._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_686] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 30 [SIMPLE_EDGE] - SHUFFLE [RS_148] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_579] (rows=696954748 width=88) - Conds:RS_145._col1=RS_650._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_650] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 29 [SIMPLE_EDGE] - SHUFFLE [RS_145] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_578] (rows=633595212 width=88) - Conds:RS_767._col0=RS_614._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_614] + Merge Join Operator [MERGEJOIN_605] (rows=1 width=71) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"] + <-Reducer 11 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_226] + Merge Join Operator [MERGEJOIN_604] (rows=1 width=62) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"] + <-Reducer 10 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_223] + Merge Join Operator [MERGEJOIN_603] (rows=1 width=53) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + <-Reducer 38 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_787] + Group By Operator [GBY_786] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 37 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_153] + Group By Operator [GBY_152] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_592] (rows=766650239 width=88) + Conds:RS_148._col2=RS_704._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_704] PartitionCols:_col0 - Select Operator [SEL_601] (rows=14400 width=471) + Select Operator [SEL_693] (rows=852 width=1910) Output:["_col0"] - Filter Operator [FIL_593] (rows=14400 width=471) - predicate:((t_hour = 10) and (t_minute < 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 66 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_767] - PartitionCols:_col0 - Select Operator [SEL_766] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_765] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_146_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_146_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_146_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_143_time_dim_t_time_sk_min) AND DynamicValue(RS_143_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_143_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_149_store_s_store_sk_min) AND DynamicValue(RS_149_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_149_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_130] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 33 [BROADCAST_EDGE] vectorized - BROADCAST [RS_760] - Group By Operator [GBY_759] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_633] - Group By Operator [GBY_625] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_615] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_601] - <-Reducer 50 [BROADCAST_EDGE] vectorized - BROADCAST [RS_762] - Group By Operator [GBY_761] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_669] - Group By Operator [GBY_661] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_651] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 59 [BROADCAST_EDGE] vectorized - BROADCAST [RS_764] - Group By Operator [GBY_763] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_705] - Group By Operator [GBY_697] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_687] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 37 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_780] - Group By Operator [GBY_779] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 36 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_179] - Group By Operator [GBY_178] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_583] (rows=766650239 width=88) - Conds:RS_174._col2=RS_688._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_688] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 35 [SIMPLE_EDGE] - SHUFFLE [RS_174] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_582] (rows=696954748 width=88) - Conds:RS_171._col1=RS_652._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_652] + Filter Operator [FIL_692] (rows=852 width=1910) + predicate:((s_store_name = 'ese') and s_store_sk is not null) + TableScan [TS_9] (rows=1704 width=1910) + default@store,store,Tbl:COMPLETE,Col:NONE,Output:["s_store_sk","s_store_name"] + <-Reducer 36 [SIMPLE_EDGE] + SHUFFLE [RS_148] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_591] (rows=696954748 width=88) + Conds:RS_145._col1=RS_668._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_668] + PartitionCols:_col0 + Select Operator [SEL_657] (rows=3600 width=107) + Output:["_col0"] + Filter Operator [FIL_656] (rows=3600 width=107) + predicate:((((hd_dep_count = 3) and (hd_vehicle_count <= 5)) or ((hd_dep_count = 0) and (hd_vehicle_count <= 2)) or ((hd_dep_count = 1) and (hd_vehicle_count <= 3))) and hd_demo_sk is not null) + TableScan [TS_6] (rows=7200 width=107) + default@household_demographics,household_demographics,Tbl:COMPLETE,Col:NONE,Output:["hd_demo_sk","hd_dep_count","hd_vehicle_count"] + <-Reducer 35 [SIMPLE_EDGE] + SHUFFLE [RS_145] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_590] (rows=633595212 width=88) + Conds:RS_785._col0=RS_632._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_632] + PartitionCols:_col0 + Select Operator [SEL_619] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_611] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute < 30) and t_time_sk is not null) + TableScan [TS_3] (rows=86400 width=471) + default@time_dim,time_dim,Tbl:COMPLETE,Col:NONE,Output:["t_time_sk","t_hour","t_minute"] + <-Map 72 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_785] + PartitionCols:_col0 + Select Operator [SEL_784] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_783] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_146_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_146_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_146_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_143_time_dim_t_time_sk_min) AND DynamicValue(RS_143_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_143_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_149_store_s_store_sk_min) AND DynamicValue(RS_149_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_149_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_130] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 39 [BROADCAST_EDGE] vectorized + BROADCAST [RS_778] + Group By Operator [GBY_777] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_651] + Group By Operator [GBY_643] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_633] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_619] + <-Reducer 56 [BROADCAST_EDGE] vectorized + BROADCAST [RS_780] + Group By Operator [GBY_779] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_687] + Group By Operator [GBY_679] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_669] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 65 [BROADCAST_EDGE] vectorized + BROADCAST [RS_782] + Group By Operator [GBY_781] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_723] + Group By Operator [GBY_715] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_705] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 9 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_220] + Merge Join Operator [MERGEJOIN_602] (rows=1 width=44) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3","_col4"] + <-Reducer 33 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_776] + Group By Operator [GBY_775] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 32 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_127] + Group By Operator [GBY_126] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_589] (rows=766650239 width=88) + Conds:RS_122._col2=RS_702._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_702] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_693] + <-Reducer 31 [SIMPLE_EDGE] + SHUFFLE [RS_122] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_588] (rows=696954748 width=88) + Conds:RS_119._col1=RS_666._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_666] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_657] + <-Reducer 30 [SIMPLE_EDGE] + SHUFFLE [RS_119] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_587] (rows=633595212 width=88) + Conds:RS_774._col0=RS_630._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_630] + PartitionCols:_col0 + Select Operator [SEL_618] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_610] (rows=14400 width=471) + predicate:((t_hour = 10) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 71 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_774] + PartitionCols:_col0 + Select Operator [SEL_773] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_772] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_120_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_120_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_120_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_117_time_dim_t_time_sk_min) AND DynamicValue(RS_117_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_117_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_123_store_s_store_sk_min) AND DynamicValue(RS_123_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_123_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_104] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 34 [BROADCAST_EDGE] vectorized + BROADCAST [RS_767] + Group By Operator [GBY_766] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_650] + Group By Operator [GBY_642] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_631] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_618] + <-Reducer 55 [BROADCAST_EDGE] vectorized + BROADCAST [RS_769] + Group By Operator [GBY_768] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_686] + Group By Operator [GBY_678] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_667] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 64 [BROADCAST_EDGE] vectorized + BROADCAST [RS_771] + Group By Operator [GBY_770] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_722] + Group By Operator [GBY_714] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_703] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 8 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_217] + Merge Join Operator [MERGEJOIN_601] (rows=1 width=35) + Conds:(Inner),Output:["_col0","_col1","_col2","_col3"] + <-Reducer 28 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_765] + Group By Operator [GBY_764] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 27 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_101] + Group By Operator [GBY_100] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_586] (rows=766650239 width=88) + Conds:RS_96._col2=RS_700._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_700] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_693] + <-Reducer 26 [SIMPLE_EDGE] + SHUFFLE [RS_96] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_585] (rows=696954748 width=88) + Conds:RS_93._col1=RS_664._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_664] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_657] + <-Reducer 25 [SIMPLE_EDGE] + SHUFFLE [RS_93] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_584] (rows=633595212 width=88) + Conds:RS_763._col0=RS_628._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_628] + PartitionCols:_col0 + Select Operator [SEL_617] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_609] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 70 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_763] + PartitionCols:_col0 + Select Operator [SEL_762] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_761] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_94_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_94_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_94_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_91_time_dim_t_time_sk_min) AND DynamicValue(RS_91_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_91_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_97_store_s_store_sk_min) AND DynamicValue(RS_97_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_97_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_78] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 29 [BROADCAST_EDGE] vectorized + BROADCAST [RS_756] + Group By Operator [GBY_755] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_649] + Group By Operator [GBY_641] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_629] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_617] + <-Reducer 54 [BROADCAST_EDGE] vectorized + BROADCAST [RS_758] + Group By Operator [GBY_757] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_685] + Group By Operator [GBY_677] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_665] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 63 [BROADCAST_EDGE] vectorized + BROADCAST [RS_760] + Group By Operator [GBY_759] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_721] + Group By Operator [GBY_713] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_701] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_214] + Merge Join Operator [MERGEJOIN_600] (rows=1 width=26) + Conds:(Inner),Output:["_col0","_col1","_col2"] + <-Reducer 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_754] + Group By Operator [GBY_753] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 22 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_75] + Group By Operator [GBY_74] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_583] (rows=766650239 width=88) + Conds:RS_70._col2=RS_698._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_698] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_693] + <-Reducer 21 [SIMPLE_EDGE] + SHUFFLE [RS_70] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_582] (rows=696954748 width=88) + Conds:RS_67._col1=RS_662._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_662] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_657] + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_67] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_581] (rows=633595212 width=88) + Conds:RS_752._col0=RS_626._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_626] + PartitionCols:_col0 + Select Operator [SEL_616] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_608] (rows=14400 width=471) + predicate:((t_hour = 11) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 69 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_752] + PartitionCols:_col0 + Select Operator [SEL_751] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_750] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_68_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_68_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_68_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_65_time_dim_t_time_sk_min) AND DynamicValue(RS_65_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_65_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_71_store_s_store_sk_min) AND DynamicValue(RS_71_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_71_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_52] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_745] + Group By Operator [GBY_744] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_648] + Group By Operator [GBY_640] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_627] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_616] + <-Reducer 53 [BROADCAST_EDGE] vectorized + BROADCAST [RS_747] + Group By Operator [GBY_746] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_684] + Group By Operator [GBY_676] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_663] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 62 [BROADCAST_EDGE] vectorized + BROADCAST [RS_749] + Group By Operator [GBY_748] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_720] + Group By Operator [GBY_712] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_699] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 6 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_211] + Merge Join Operator [MERGEJOIN_599] (rows=1 width=17) + Conds:(Inner),Output:["_col0","_col1"] + <-Reducer 18 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_743] + Group By Operator [GBY_742] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 17 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_49] + Group By Operator [GBY_48] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_580] (rows=766650239 width=88) + Conds:RS_44._col2=RS_696._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_696] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_693] + <-Reducer 16 [SIMPLE_EDGE] + SHUFFLE [RS_44] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_579] (rows=696954748 width=88) + Conds:RS_41._col1=RS_660._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_660] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_657] + <-Reducer 15 [SIMPLE_EDGE] + SHUFFLE [RS_41] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_578] (rows=633595212 width=88) + Conds:RS_741._col0=RS_624._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_624] + PartitionCols:_col0 + Select Operator [SEL_615] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_607] (rows=14400 width=471) + predicate:((t_hour = 12) and (t_minute < 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 68 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_741] + PartitionCols:_col0 + Select Operator [SEL_740] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_739] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_42_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_42_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_42_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_39_time_dim_t_time_sk_min) AND DynamicValue(RS_39_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_39_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_45_store_s_store_sk_min) AND DynamicValue(RS_45_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_45_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_26] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 19 [BROADCAST_EDGE] vectorized + BROADCAST [RS_734] + Group By Operator [GBY_733] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_647] + Group By Operator [GBY_639] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_625] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_615] + <-Reducer 52 [BROADCAST_EDGE] vectorized + BROADCAST [RS_736] + Group By Operator [GBY_735] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_683] + Group By Operator [GBY_675] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_661] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 61 [BROADCAST_EDGE] vectorized + BROADCAST [RS_738] + Group By Operator [GBY_737] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_719] + Group By Operator [GBY_711] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_697] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_732] + Group By Operator [GBY_731] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 4 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_23] + Group By Operator [GBY_22] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_577] (rows=766650239 width=88) + Conds:RS_18._col2=RS_694._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_694] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_693] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_18] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_576] (rows=696954748 width=88) + Conds:RS_15._col1=RS_658._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_658] + PartitionCols:_col0 + Please refer to the previous Select Operator [SEL_657] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_15] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_575] (rows=633595212 width=88) + Conds:RS_730._col0=RS_622._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_622] + PartitionCols:_col0 + Select Operator [SEL_614] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_606] (rows=14400 width=471) + predicate:((t_hour = 8) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_730] + PartitionCols:_col0 + Select Operator [SEL_729] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_728] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_16_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_16_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_16_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_13_time_dim_t_time_sk_min) AND DynamicValue(RS_13_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_13_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_19_store_s_store_sk_min) AND DynamicValue(RS_19_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_19_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_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_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 14 [BROADCAST_EDGE] vectorized + BROADCAST [RS_655] + Group By Operator [GBY_654] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_646] + Group By Operator [GBY_638] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_623] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_614] + <-Reducer 51 [BROADCAST_EDGE] vectorized + BROADCAST [RS_691] + Group By Operator [GBY_690] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_682] + Group By Operator [GBY_674] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_659] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 60 [BROADCAST_EDGE] vectorized + BROADCAST [RS_727] + Group By Operator [GBY_726] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_718] + Group By Operator [GBY_710] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_695] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 43 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_798] + Group By Operator [GBY_797] (rows=1 width=8) + Output:["_col0"],aggregations:["count(VALUE._col0)"] + <-Reducer 42 [CUSTOM_SIMPLE_EDGE] + PARTITION_ONLY_SHUFFLE [RS_179] + Group By Operator [GBY_178] (rows=1 width=8) + Output:["_col0"],aggregations:["count()"] + Merge Join Operator [MERGEJOIN_595] (rows=766650239 width=88) + Conds:RS_174._col2=RS_706._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_706] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 34 [SIMPLE_EDGE] - SHUFFLE [RS_171] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_581] (rows=633595212 width=88) - Conds:RS_778._col0=RS_616._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_616] - PartitionCols:_col0 - Select Operator [SEL_602] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_594] (rows=14400 width=471) - predicate:((t_hour = 9) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 67 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_778] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 41 [SIMPLE_EDGE] + SHUFFLE [RS_174] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_594] (rows=696954748 width=88) + Conds:RS_171._col1=RS_670._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_670] PartitionCols:_col0 - Select Operator [SEL_777] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_776] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_172_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_172_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_172_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_169_time_dim_t_time_sk_min) AND DynamicValue(RS_169_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_169_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_175_store_s_store_sk_min) AND DynamicValue(RS_175_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_175_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) - TableScan [TS_156] (rows=575995635 width=88) - default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 38 [BROADCAST_EDGE] vectorized - BROADCAST [RS_771] - Group By Operator [GBY_770] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_634] - Group By Operator [GBY_626] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_617] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_602] - <-Reducer 51 [BROADCAST_EDGE] vectorized - BROADCAST [RS_773] - Group By Operator [GBY_772] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_670] - Group By Operator [GBY_662] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_653] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 60 [BROADCAST_EDGE] vectorized - BROADCAST [RS_775] - Group By Operator [GBY_774] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_706] - Group By Operator [GBY_698] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_689] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 42 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_791] - Group By Operator [GBY_790] (rows=1 width=8) + Please refer to the previous Select Operator [SEL_657] + <-Reducer 40 [SIMPLE_EDGE] + SHUFFLE [RS_171] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_593] (rows=633595212 width=88) + Conds:RS_796._col0=RS_634._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_634] + PartitionCols:_col0 + Select Operator [SEL_620] (rows=14400 width=471) + Output:["_col0"] + Filter Operator [FIL_612] (rows=14400 width=471) + predicate:((t_hour = 9) and (t_minute >= 30) and t_time_sk is not null) + Please refer to the previous TableScan [TS_3] + <-Map 73 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_796] + PartitionCols:_col0 + Select Operator [SEL_795] (rows=575995635 width=88) + Output:["_col0","_col1","_col2"] + Filter Operator [FIL_794] (rows=575995635 width=88) + predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_172_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_172_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_172_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_169_time_dim_t_time_sk_min) AND DynamicValue(RS_169_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_169_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_175_store_s_store_sk_min) AND DynamicValue(RS_175_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_175_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) + TableScan [TS_156] (rows=575995635 width=88) + default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] + <-Reducer 44 [BROADCAST_EDGE] vectorized + BROADCAST [RS_789] + Group By Operator [GBY_788] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_652] + Group By Operator [GBY_644] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_635] (rows=14400 width=471) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_620] + <-Reducer 57 [BROADCAST_EDGE] vectorized + BROADCAST [RS_791] + Group By Operator [GBY_790] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_688] + Group By Operator [GBY_680] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_671] (rows=3600 width=107) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 66 [BROADCAST_EDGE] vectorized + BROADCAST [RS_793] + Group By Operator [GBY_792] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_724] + Group By Operator [GBY_716] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_707] (rows=852 width=1910) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 48 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_809] + Group By Operator [GBY_808] (rows=1 width=8) Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 41 [CUSTOM_SIMPLE_EDGE] + <-Reducer 47 [CUSTOM_SIMPLE_EDGE] PARTITION_ONLY_SHUFFLE [RS_205] Group By Operator [GBY_204] (rows=1 width=8) Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_586] (rows=766650239 width=88) - Conds:RS_200._col2=RS_690._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_690] + Merge Join Operator [MERGEJOIN_598] (rows=766650239 width=88) + Conds:RS_200._col2=RS_708._col0(Inner) + <-Map 59 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_708] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 40 [SIMPLE_EDGE] + Please refer to the previous Select Operator [SEL_693] + <-Reducer 46 [SIMPLE_EDGE] SHUFFLE [RS_200] PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_585] (rows=696954748 width=88) - Conds:RS_197._col1=RS_654._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_654] + Merge Join Operator [MERGEJOIN_597] (rows=696954748 width=88) + Conds:RS_197._col1=RS_672._col0(Inner),Output:["_col2"] + <-Map 50 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_672] PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 39 [SIMPLE_EDGE] + Please refer to the previous Select Operator [SEL_657] + <-Reducer 45 [SIMPLE_EDGE] SHUFFLE [RS_197] PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_584] (rows=633595212 width=88) - Conds:RS_789._col0=RS_618._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_618] + Merge Join Operator [MERGEJOIN_596] (rows=633595212 width=88) + Conds:RS_807._col0=RS_636._col0(Inner),Output:["_col1","_col2"] + <-Map 13 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_636] PartitionCols:_col0 - Select Operator [SEL_603] (rows=14400 width=471) + Select Operator [SEL_621] (rows=14400 width=471) Output:["_col0"] - Filter Operator [FIL_595] (rows=14400 width=471) + Filter Operator [FIL_613] (rows=14400 width=471) predicate:((t_hour = 9) and (t_minute < 30) and t_time_sk is not null) Please refer to the previous TableScan [TS_3] - <-Map 68 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_789] + <-Map 74 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_807] PartitionCols:_col0 - Select Operator [SEL_788] (rows=575995635 width=88) + Select Operator [SEL_806] (rows=575995635 width=88) Output:["_col0","_col1","_col2"] - Filter Operator [FIL_787] (rows=575995635 width=88) + Filter Operator [FIL_805] (rows=575995635 width=88) predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_198_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_198_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_198_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_195_time_dim_t_time_sk_min) AND DynamicValue(RS_195_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_195_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_201_store_s_store_sk_min) AND DynamicValue(RS_201_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_201_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_sk is not null and ss_store_sk is not null) TableScan [TS_182] (rows=575995635 width=88) default@store_sales,store_sales,Tbl:COMPLETE,Col:NONE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 43 [BROADCAST_EDGE] vectorized - BROADCAST [RS_782] - Group By Operator [GBY_781] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_635] - Group By Operator [GBY_627] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_619] (rows=14400 width=471) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_603] - <-Reducer 52 [BROADCAST_EDGE] vectorized - BROADCAST [RS_784] - Group By Operator [GBY_783] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_671] - Group By Operator [GBY_663] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_655] (rows=3600 width=107) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 61 [BROADCAST_EDGE] vectorized - BROADCAST [RS_786] - Group By Operator [GBY_785] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_707] - Group By Operator [GBY_699] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_691] (rows=852 width=1910) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 5 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_714] - Group By Operator [GBY_713] (rows=1 width=8) - Output:["_col0"],aggregations:["count(VALUE._col0)"] - <-Reducer 4 [CUSTOM_SIMPLE_EDGE] - PARTITION_ONLY_SHUFFLE [RS_23] - Group By Operator [GBY_22] (rows=1 width=8) - Output:["_col0"],aggregations:["count()"] - Merge Join Operator [MERGEJOIN_565] (rows=766650239 width=88) - Conds:RS_18._col2=RS_676._col0(Inner) - <-Map 53 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_676] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_675] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_18] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_564] (rows=696954748 width=88) - Conds:RS_15._col1=RS_640._col0(Inner),Output:["_col2"] - <-Map 44 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_640] - PartitionCols:_col0 - Please refer to the previous Select Operator [SEL_639] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_15] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_563] (rows=633595212 width=88) - Conds:RS_712._col0=RS_604._col0(Inner),Output:["_col1","_col2"] - <-Map 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_604] - PartitionCols:_col0 - Select Operator [SEL_596] (rows=14400 width=471) - Output:["_col0"] - Filter Operator [FIL_588] (rows=14400 width=471) - predicate:((t_hour = 8) and (t_minute >= 30) and t_time_sk is not null) - Please refer to the previous TableScan [TS_3] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_712] - PartitionCols:_col0 - Select Operator [SEL_711] (rows=575995635 width=88) - Output:["_col0","_col1","_col2"] - Filter Operator [FIL_710] (rows=575995635 width=88) - predicate:((ss_hdemo_sk BETWEEN DynamicValue(RS_16_household_demographics_hd_demo_sk_min) AND DynamicValue(RS_16_household_demographics_hd_demo_sk_max) and in_bloom_filter(ss_hdemo_sk, DynamicValue(RS_16_household_demographics_hd_demo_sk_bloom_filter))) and (ss_sold_time_sk BETWEEN DynamicValue(RS_13_time_dim_t_time_sk_min) AND DynamicValue(RS_13_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_13_time_dim_t_time_sk_bloom_filter))) and (ss_store_sk BETWEEN DynamicValue(RS_19_store_s_store_sk_min) AND DynamicValue(RS_19_store_s_store_sk_max) and in_bloom_filter(ss_store_sk, DynamicValue(RS_19_store_s_store_sk_bloom_filter))) and ss_hdemo_sk is not null and ss_sold_time_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_time_sk","ss_hdemo_sk","ss_store_sk"] - <-Reducer 45 [BROADCAST_EDGE] vectorized - BROADCAST [RS_673] - Group By Operator [GBY_672] (rows=1 width=12) + <-Reducer 49 [BROADCAST_EDGE] vectorized + BROADCAST [RS_800] + Group By Operator [GBY_799] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 44 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_664] - Group By Operator [GBY_656] (rows=1 width=12) + <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_653] + Group By Operator [GBY_645] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_641] (rows=3600 width=107) + Select Operator [SEL_637] (rows=14400 width=471) Output:["_col0"] - Please refer to the previous Select Operator [SEL_639] - <-Reducer 54 [BROADCAST_EDGE] vectorized - BROADCAST [RS_709] - Group By Operator [GBY_708] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_621] + <-Reducer 58 [BROADCAST_EDGE] vectorized + BROADCAST [RS_802] + Group By Operator [GBY_801] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 53 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_700] - Group By Operator [GBY_692] (rows=1 width=12) + <-Map 50 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_689] + Group By Operator [GBY_681] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_677] (rows=852 width=1910) + Select Operator [SEL_673] (rows=3600 width=107) Output:["_col0"] - Please refer to the previous Select Operator [SEL_675] - <-Reducer 8 [BROADCAST_EDGE] vectorized - BROADCAST [RS_637] - Group By Operator [GBY_636] (rows=1 width=12) + Please refer to the previous Select Operator [SEL_657] + <-Reducer 67 [BROADCAST_EDGE] vectorized + BROADCAST [RS_804] + Group By Operator [GBY_803] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 7 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_628] - Group By Operator [GBY_620] (rows=1 width=12) + <-Map 59 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_725] + Group By Operator [GBY_717] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_605] (rows=14400 width=471) + Select Operator [SEL_709] (rows=852 width=1910) Output:["_col0"] - Please refer to the previous Select Operator [SEL_596] + Please refer to the previous Select Operator [SEL_693] diff --git a/ql/src/test/results/clientpositive/perf/tez/query95.q.out b/ql/src/test/results/clientpositive/perf/tez/query95.q.out index c093eb330d..2fd2cc2a77 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query95.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query95.q.out @@ -75,226 +75,232 @@ POSTHOOK: Output: hdfs://### HDFS PATH ### Plan optimized by CBO. Vertex dependency in root stage -Map 1 <- Reducer 10 (BROADCAST_EDGE), Reducer 12 (BROADCAST_EDGE), Reducer 14 (BROADCAST_EDGE), Reducer 23 (BROADCAST_EDGE) -Map 15 <- Reducer 23 (BROADCAST_EDGE) -Map 21 <- Reducer 23 (BROADCAST_EDGE) -Reducer 10 <- Map 9 (CUSTOM_SIMPLE_EDGE) -Reducer 12 <- Map 11 (CUSTOM_SIMPLE_EDGE) -Reducer 14 <- Map 13 (CUSTOM_SIMPLE_EDGE) -Reducer 16 <- Map 15 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) -Reducer 17 <- Map 22 (SIMPLE_EDGE), Reducer 16 (ONE_TO_ONE_EDGE) -Reducer 18 <- Reducer 17 (SIMPLE_EDGE) -Reducer 19 <- Map 15 (SIMPLE_EDGE), Map 21 (SIMPLE_EDGE) -Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 9 (SIMPLE_EDGE) -Reducer 20 <- Reducer 19 (SIMPLE_EDGE) -Reducer 23 <- Map 22 (CUSTOM_SIMPLE_EDGE) -Reducer 3 <- Map 11 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) -Reducer 4 <- Map 13 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) -Reducer 5 <- Reducer 18 (ONE_TO_ONE_EDGE), Reducer 20 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) -Reducer 6 <- Reducer 5 (SIMPLE_EDGE) -Reducer 7 <- Reducer 6 (CUSTOM_SIMPLE_EDGE) -Reducer 8 <- Reducer 7 (SIMPLE_EDGE) +Map 1 <- Reducer 11 (BROADCAST_EDGE), Reducer 13 (BROADCAST_EDGE), Reducer 15 (BROADCAST_EDGE), Reducer 24 (BROADCAST_EDGE) +Map 16 <- Reducer 24 (BROADCAST_EDGE) +Map 22 <- Reducer 24 (BROADCAST_EDGE) +Reducer 11 <- Map 10 (CUSTOM_SIMPLE_EDGE) +Reducer 13 <- Map 12 (CUSTOM_SIMPLE_EDGE) +Reducer 15 <- Map 14 (CUSTOM_SIMPLE_EDGE) +Reducer 17 <- Map 16 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 18 <- Map 23 (SIMPLE_EDGE), Reducer 17 (ONE_TO_ONE_EDGE) +Reducer 19 <- Reducer 18 (SIMPLE_EDGE) +Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 10 (SIMPLE_EDGE) +Reducer 20 <- Map 16 (SIMPLE_EDGE), Map 22 (SIMPLE_EDGE) +Reducer 21 <- Reducer 20 (SIMPLE_EDGE) +Reducer 24 <- Map 23 (CUSTOM_SIMPLE_EDGE) +Reducer 3 <- Map 12 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE) +Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE) +Reducer 5 <- Reducer 21 (ONE_TO_ONE_EDGE), Reducer 4 (SIMPLE_EDGE) +Reducer 6 <- Reducer 19 (ONE_TO_ONE_EDGE), Reducer 5 (ONE_TO_ONE_EDGE) +Reducer 7 <- Reducer 6 (SIMPLE_EDGE) +Reducer 8 <- Reducer 7 (CUSTOM_SIMPLE_EDGE) +Reducer 9 <- Reducer 8 (SIMPLE_EDGE) Stage-0 Fetch Operator limit:-1 Stage-1 - Reducer 8 vectorized - File Output Operator [FS_286] - Limit [LIM_285] (rows=1 width=344) + Reducer 9 vectorized + File Output Operator [FS_293] + Limit [LIM_292] (rows=1 width=344) Number of rows:100 - Select Operator [SEL_284] (rows=1 width=344) + Select Operator [SEL_291] (rows=1 width=344) Output:["_col0","_col1","_col2"] - <-Reducer 7 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_283] - Select Operator [SEL_282] (rows=1 width=344) + <-Reducer 8 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_290] + Select Operator [SEL_289] (rows=1 width=344) Output:["_col1","_col2","_col3"] - Group By Operator [GBY_281] (rows=1 width=344) + Group By Operator [GBY_288] (rows=1 width=344) Output:["_col0","_col1","_col2"],aggregations:["count(VALUE._col0)","sum(VALUE._col1)","sum(VALUE._col2)"] - <-Reducer 6 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_280] - Group By Operator [GBY_279] (rows=1 width=344) + <-Reducer 7 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_287] + Group By Operator [GBY_286] (rows=1 width=344) Output:["_col0","_col1","_col2"],aggregations:["count(_col0)","sum(_col1)","sum(_col2)"] - Group By Operator [GBY_278] (rows=421668645 width=135) + Group By Operator [GBY_285] (rows=231917759 width=135) Output:["_col0","_col1","_col2"],aggregations:["sum(VALUE._col0)","sum(VALUE._col1)"],keys:KEY._col0 - <-Reducer 5 [SIMPLE_EDGE] - SHUFFLE [RS_116] + <-Reducer 6 [SIMPLE_EDGE] + SHUFFLE [RS_115] PartitionCols:_col0 - Group By Operator [GBY_115] (rows=421668645 width=135) + Group By Operator [GBY_114] (rows=231917759 width=135) Output:["_col0","_col2","_col3"],aggregations:["sum(_col4)","sum(_col5)"],keys:_col3 - Merge Join Operator [MERGEJOIN_228] (rows=421668645 width=135) - Conds:RS_58._col3=RS_277._col0(Inner),RS_58._col3=RS_275._col0(Inner),Output:["_col3","_col4","_col5"] - <-Reducer 18 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_275] + Merge Join Operator [MERGEJOIN_235] (rows=231917759 width=135) + Conds:RS_61._col3=RS_284._col0(Inner),Output:["_col3","_col4","_col5"] + <-Reducer 19 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_284] PartitionCols:_col0 - Group By Operator [GBY_274] (rows=87121617 width=135) + Group By Operator [GBY_283] (rows=87121617 width=135) Output:["_col0"],keys:KEY._col0 - <-Reducer 17 [SIMPLE_EDGE] + <-Reducer 18 [SIMPLE_EDGE] SHUFFLE [RS_46] PartitionCols:_col0 Group By Operator [GBY_45] (rows=174243235 width=135) Output:["_col0"],keys:_col14 - Merge Join Operator [MERGEJOIN_227] (rows=174243235 width=135) - Conds:RS_41._col0=RS_255._col13(Inner),Output:["_col14"] - <-Map 22 [SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_255] + Merge Join Operator [MERGEJOIN_233] (rows=174243235 width=135) + Conds:RS_41._col0=RS_262._col13(Inner),Output:["_col14"] + <-Map 23 [SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_262] PartitionCols:_col13 - Select Operator [SEL_254] (rows=14398467 width=92) + Select Operator [SEL_261] (rows=14398467 width=92) Output:["_col13"] - Filter Operator [FIL_253] (rows=14398467 width=92) + Filter Operator [FIL_260] (rows=14398467 width=92) predicate:wr_order_number is not null TableScan [TS_38] (rows=14398467 width=92) default@web_returns,web_returns,Tbl:COMPLETE,Col:NONE,Output:["wr_order_number"] - <-Reducer 16 [ONE_TO_ONE_EDGE] + <-Reducer 17 [ONE_TO_ONE_EDGE] FORWARD [RS_41] PartitionCols:_col0 Select Operator [SEL_37] (rows=158402938 width=135) Output:["_col0"] Filter Operator [FIL_36] (rows=158402938 width=135) predicate:(_col0 <> _col2) - Merge Join Operator [MERGEJOIN_226] (rows=158402938 width=135) - Conds:RS_268._col1=RS_272._col1(Inner),Output:["_col0","_col1","_col2"] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_268] + Merge Join Operator [MERGEJOIN_232] (rows=158402938 width=135) + Conds:RS_275._col1=RS_279._col1(Inner),Output:["_col0","_col1","_col2"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_275] PartitionCols:_col1 - Select Operator [SEL_267] (rows=144002668 width=135) + Select Operator [SEL_274] (rows=144002668 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_266] (rows=144002668 width=135) + Filter Operator [FIL_273] (rows=144002668 width=135) predicate:((ws_order_number BETWEEN DynamicValue(RS_42_web_returns_wr_order_number_min) AND DynamicValue(RS_42_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_42_web_returns_wr_order_number_bloom_filter))) and ws_order_number is not null) TableScan [TS_27] (rows=144002668 width=135) default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_warehouse_sk","ws_order_number"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_261] - Group By Operator [GBY_259] (rows=1 width=12) + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_268] + Group By Operator [GBY_266] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=14398467)"] - <-Map 22 [CUSTOM_SIMPLE_EDGE] vectorized - PARTITION_ONLY_SHUFFLE [RS_258] - Group By Operator [GBY_257] (rows=1 width=12) + <-Map 23 [CUSTOM_SIMPLE_EDGE] vectorized + PARTITION_ONLY_SHUFFLE [RS_265] + Group By Operator [GBY_264] (rows=1 width=12) Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=14398467)"] - Select Operator [SEL_256] (rows=14398467 width=92) + Select Operator [SEL_263] (rows=14398467 width=92) Output:["_col0"] - Please refer to the previous Select Operator [SEL_254] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_272] + Please refer to the previous Select Operator [SEL_261] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_279] PartitionCols:_col1 - Select Operator [SEL_271] (rows=144002668 width=135) + Select Operator [SEL_278] (rows=144002668 width=135) Output:["_col0","_col1"] - Filter Operator [FIL_270] (rows=144002668 width=135) + Filter Operator [FIL_277] (rows=144002668 width=135) predicate:((ws_order_number BETWEEN DynamicValue(RS_42_web_returns_wr_order_number_min) AND DynamicValue(RS_42_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_42_web_returns_wr_order_number_bloom_filter))) and ws_order_number is not null) TableScan [TS_30] (rows=144002668 width=135) default@web_sales,ws2,Tbl:COMPLETE,Col:NONE,Output:["ws_warehouse_sk","ws_order_number"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_262] - Please refer to the previous Group By Operator [GBY_259] - <-Reducer 20 [ONE_TO_ONE_EDGE] vectorized - FORWARD [RS_277] - PartitionCols:_col0 - Group By Operator [GBY_276] (rows=79201469 width=135) - Output:["_col0"],keys:KEY._col0 - <-Reducer 19 [SIMPLE_EDGE] - SHUFFLE [RS_24] - PartitionCols:_col0 - Group By Operator [GBY_23] (rows=158402938 width=135) - Output:["_col0"],keys:_col1 - Select Operator [SEL_22] (rows=158402938 width=135) - Output:["_col1"] - Filter Operator [FIL_21] (rows=158402938 width=135) - predicate:(_col0 <> _col2) - Merge Join Operator [MERGEJOIN_225] (rows=158402938 width=135) - Conds:RS_269._col1=RS_273._col1(Inner),Output:["_col0","_col1","_col2"] - <-Map 15 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_269] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_267] - <-Map 21 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_273] - PartitionCols:_col1 - Please refer to the previous Select Operator [SEL_271] - <-Reducer 4 [SIMPLE_EDGE] - SHUFFLE [RS_58] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_269] + Please refer to the previous Group By Operator [GBY_266] + <-Reducer 5 [ONE_TO_ONE_EDGE] + FORWARD [RS_61] PartitionCols:_col3 - Merge Join Operator [MERGEJOIN_224] (rows=191667562 width=135) - Conds:RS_55._col2=RS_247._col0(Inner),Output:["_col3","_col4","_col5"] - <-Map 13 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_247] + Merge Join Operator [MERGEJOIN_234] (rows=210834322 width=135) + Conds:RS_58._col3=RS_282._col0(Inner),Output:["_col3","_col4","_col5"] + <-Reducer 21 [ONE_TO_ONE_EDGE] vectorized + FORWARD [RS_282] PartitionCols:_col0 - Select Operator [SEL_246] (rows=42 width=1850) - Output:["_col0"] - Filter Operator [FIL_245] (rows=42 width=1850) - predicate:((web_company_name = 'pri') and web_site_sk is not null) - TableScan [TS_9] (rows=84 width=1850) - default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_company_name"] - <-Reducer 3 [SIMPLE_EDGE] - SHUFFLE [RS_55] - PartitionCols:_col2 - Merge Join Operator [MERGEJOIN_223] (rows=174243235 width=135) - Conds:RS_52._col1=RS_239._col0(Inner),Output:["_col2","_col3","_col4","_col5"] - <-Map 11 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_239] + Group By Operator [GBY_281] (rows=79201469 width=135) + Output:["_col0"],keys:KEY._col0 + <-Reducer 20 [SIMPLE_EDGE] + SHUFFLE [RS_24] + PartitionCols:_col0 + Group By Operator [GBY_23] (rows=158402938 width=135) + Output:["_col0"],keys:_col1 + Select Operator [SEL_22] (rows=158402938 width=135) + Output:["_col1"] + Filter Operator [FIL_21] (rows=158402938 width=135) + predicate:(_col0 <> _col2) + Merge Join Operator [MERGEJOIN_231] (rows=158402938 width=135) + Conds:RS_276._col1=RS_280._col1(Inner),Output:["_col0","_col1","_col2"] + <-Map 16 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_276] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_274] + <-Map 22 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_280] + PartitionCols:_col1 + Please refer to the previous Select Operator [SEL_278] + <-Reducer 4 [SIMPLE_EDGE] + SHUFFLE [RS_58] + PartitionCols:_col3 + Merge Join Operator [MERGEJOIN_230] (rows=191667562 width=135) + Conds:RS_55._col2=RS_254._col0(Inner),Output:["_col3","_col4","_col5"] + <-Map 14 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_254] PartitionCols:_col0 - Select Operator [SEL_238] (rows=20000000 width=1014) + Select Operator [SEL_253] (rows=42 width=1850) Output:["_col0"] - Filter Operator [FIL_237] (rows=20000000 width=1014) - predicate:((ca_state = 'TX') and ca_address_sk is not null) - TableScan [TS_6] (rows=40000000 width=1014) - default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] - <-Reducer 2 [SIMPLE_EDGE] - SHUFFLE [RS_52] - PartitionCols:_col1 - Merge Join Operator [MERGEJOIN_222] (rows=158402938 width=135) - Conds:RS_265._col0=RS_231._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] - <-Map 9 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_231] + Filter Operator [FIL_252] (rows=42 width=1850) + predicate:((web_company_name = 'pri') and web_site_sk is not null) + TableScan [TS_9] (rows=84 width=1850) + default@web_site,web_site,Tbl:COMPLETE,Col:NONE,Output:["web_site_sk","web_company_name"] + <-Reducer 3 [SIMPLE_EDGE] + SHUFFLE [RS_55] + PartitionCols:_col2 + Merge Join Operator [MERGEJOIN_229] (rows=174243235 width=135) + Conds:RS_52._col1=RS_246._col0(Inner),Output:["_col2","_col3","_col4","_col5"] + <-Map 12 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_246] PartitionCols:_col0 - Select Operator [SEL_230] (rows=8116 width=1119) + Select Operator [SEL_245] (rows=20000000 width=1014) Output:["_col0"] - Filter Operator [FIL_229] (rows=8116 width=1119) - predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00' and d_date_sk is not null) - TableScan [TS_3] (rows=73049 width=1119) - default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] - <-Map 1 [SIMPLE_EDGE] vectorized - SHUFFLE [RS_265] - PartitionCols:_col0 - Select Operator [SEL_264] (rows=144002668 width=135) - Output:["_col0","_col1","_col2","_col3","_col4","_col5"] - Filter Operator [FIL_263] (rows=144002668 width=135) - predicate:((ws_order_number BETWEEN DynamicValue(RS_42_web_returns_wr_order_number_min) AND DynamicValue(RS_42_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_42_web_returns_wr_order_number_bloom_filter))) and (ws_ship_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_56_web_site_web_site_sk_min) AND DynamicValue(RS_56_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_56_web_site_web_site_sk_bloom_filter))) and ws_order_number is not null and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null) - TableScan [TS_0] (rows=144002668 width=135) - default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"] - <-Reducer 23 [BROADCAST_EDGE] vectorized - BROADCAST [RS_260] - Please refer to the previous Group By Operator [GBY_259] - <-Reducer 10 [BROADCAST_EDGE] vectorized - BROADCAST [RS_236] - Group By Operator [GBY_235] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 9 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_234] - Group By Operator [GBY_233] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_232] (rows=8116 width=1119) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_230] - <-Reducer 12 [BROADCAST_EDGE] vectorized - BROADCAST [RS_244] - Group By Operator [GBY_243] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] - <-Map 11 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_242] - Group By Operator [GBY_241] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] - Select Operator [SEL_240] (rows=20000000 width=1014) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_238] - <-Reducer 14 [BROADCAST_EDGE] vectorized - BROADCAST [RS_252] - Group By Operator [GBY_251] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] - <-Map 13 [CUSTOM_SIMPLE_EDGE] vectorized - SHUFFLE [RS_250] - Group By Operator [GBY_249] (rows=1 width=12) - Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] - Select Operator [SEL_248] (rows=42 width=1850) - Output:["_col0"] - Please refer to the previous Select Operator [SEL_246] + Filter Operator [FIL_244] (rows=20000000 width=1014) + predicate:((ca_state = 'TX') and ca_address_sk is not null) + TableScan [TS_6] (rows=40000000 width=1014) + default@customer_address,customer_address,Tbl:COMPLETE,Col:NONE,Output:["ca_address_sk","ca_state"] + <-Reducer 2 [SIMPLE_EDGE] + SHUFFLE [RS_52] + PartitionCols:_col1 + Merge Join Operator [MERGEJOIN_228] (rows=158402938 width=135) + Conds:RS_272._col0=RS_238._col0(Inner),Output:["_col1","_col2","_col3","_col4","_col5"] + <-Map 10 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_238] + PartitionCols:_col0 + Select Operator [SEL_237] (rows=8116 width=1119) + Output:["_col0"] + Filter Operator [FIL_236] (rows=8116 width=1119) + predicate:(CAST( d_date AS TIMESTAMP) BETWEEN TIMESTAMP'1999-05-01 00:00:00' AND TIMESTAMP'1999-06-30 00:00:00' and d_date_sk is not null) + TableScan [TS_3] (rows=73049 width=1119) + default@date_dim,date_dim,Tbl:COMPLETE,Col:NONE,Output:["d_date_sk","d_date"] + <-Map 1 [SIMPLE_EDGE] vectorized + SHUFFLE [RS_272] + PartitionCols:_col0 + Select Operator [SEL_271] (rows=144002668 width=135) + Output:["_col0","_col1","_col2","_col3","_col4","_col5"] + Filter Operator [FIL_270] (rows=144002668 width=135) + predicate:((ws_order_number BETWEEN DynamicValue(RS_42_web_returns_wr_order_number_min) AND DynamicValue(RS_42_web_returns_wr_order_number_max) and in_bloom_filter(ws_order_number, DynamicValue(RS_42_web_returns_wr_order_number_bloom_filter))) and (ws_ship_addr_sk BETWEEN DynamicValue(RS_53_customer_address_ca_address_sk_min) AND DynamicValue(RS_53_customer_address_ca_address_sk_max) and in_bloom_filter(ws_ship_addr_sk, DynamicValue(RS_53_customer_address_ca_address_sk_bloom_filter))) and (ws_ship_date_sk BETWEEN DynamicValue(RS_50_date_dim_d_date_sk_min) AND DynamicValue(RS_50_date_dim_d_date_sk_max) and in_bloom_filter(ws_ship_date_sk, DynamicValue(RS_50_date_dim_d_date_sk_bloom_filter))) and (ws_web_site_sk BETWEEN DynamicValue(RS_56_web_site_web_site_sk_min) AND DynamicValue(RS_56_web_site_web_site_sk_max) and in_bloom_filter(ws_web_site_sk, DynamicValue(RS_56_web_site_web_site_sk_bloom_filter))) and ws_order_number is not null and ws_ship_addr_sk is not null and ws_ship_date_sk is not null and ws_web_site_sk is not null) + TableScan [TS_0] (rows=144002668 width=135) + default@web_sales,ws1,Tbl:COMPLETE,Col:NONE,Output:["ws_ship_date_sk","ws_ship_addr_sk","ws_web_site_sk","ws_order_number","ws_ext_ship_cost","ws_net_profit"] + <-Reducer 24 [BROADCAST_EDGE] vectorized + BROADCAST [RS_267] + Please refer to the previous Group By Operator [GBY_266] + <-Reducer 11 [BROADCAST_EDGE] vectorized + BROADCAST [RS_243] + Group By Operator [GBY_242] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 10 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_241] + Group By Operator [GBY_240] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_239] (rows=8116 width=1119) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_237] + <-Reducer 13 [BROADCAST_EDGE] vectorized + BROADCAST [RS_251] + Group By Operator [GBY_250] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=20000000)"] + <-Map 12 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_249] + Group By Operator [GBY_248] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=20000000)"] + Select Operator [SEL_247] (rows=20000000 width=1014) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_245] + <-Reducer 15 [BROADCAST_EDGE] vectorized + BROADCAST [RS_259] + Group By Operator [GBY_258] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(VALUE._col0)","max(VALUE._col1)","bloom_filter(VALUE._col2, expectedEntries=1000000)"] + <-Map 14 [CUSTOM_SIMPLE_EDGE] vectorized + SHUFFLE [RS_257] + Group By Operator [GBY_256] (rows=1 width=12) + Output:["_col0","_col1","_col2"],aggregations:["min(_col0)","max(_col0)","bloom_filter(_col0, expectedEntries=1000000)"] + Select Operator [SEL_255] (rows=42 width=1850) + Output:["_col0"] + Please refer to the previous Select Operator [SEL_253]