[ 
https://issues.apache.org/jira/browse/HIVE-7913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mostafa Mokhtar updated HIVE-7913:
----------------------------------

    Description: 
Simplify predicates for disjunctive predicates so that can get pushed down to 
the scan

{code}
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 store.s_store_sk = store_sales.ss_store_sk
 and  store_sales.ss_sold_date_sk = date_dim.d_date_sk and date_dim.d_year = 
2001
 and((store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
  and customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk
  and customer_demographics.cd_marital_status = 'M'
  and customer_demographics.cd_education_status = '4 yr Degree'
  and store_sales.ss_sales_price between 100.00 and 150.00
  and household_demographics.hd_dep_count = 3   
     )or
     (store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
  and customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk
  and customer_demographics.cd_marital_status = 'D'
  and customer_demographics.cd_education_status = 'Primary'
  and store_sales.ss_sales_price between 50.00 and 100.00   
  and household_demographics.hd_dep_count = 1
     ) or 
     (store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
  and customer_demographics.cd_demo_sk = ss_cdemo_sk
  and customer_demographics.cd_marital_status = 'U'
  and customer_demographics.cd_education_status = 'Advanced Degree'
  and store_sales.ss_sales_price between 150.00 and 200.00 
  and household_demographics.hd_dep_count = 1  
     ))
 and((store_sales.ss_addr_sk = customer_address.ca_address_sk
  and customer_address.ca_country = 'United States'
  and customer_address.ca_state in ('KY', 'GA', 'NM')
  and store_sales.ss_net_profit between 100 and 200  
     ) or
     (store_sales.ss_addr_sk = customer_address.ca_address_sk
  and customer_address.ca_country = 'United States'
  and customer_address.ca_state in ('MT', 'OR', 'IN')
  and store_sales.ss_net_profit between 150 and 300  
     ) or
     (store_sales.ss_addr_sk = customer_address.ca_address_sk
  and customer_address.ca_country = 'United States'
  and customer_address.ca_state in ('WI', 'MO', 'WV')
  and store_sales.ss_net_profit between 50 and 250  
     ))
;

{code}

> Simplify predicates for CBO
> ---------------------------
>
>                 Key: HIVE-7913
>                 URL: https://issues.apache.org/jira/browse/HIVE-7913
>             Project: Hive
>          Issue Type: Bug
>          Components: CBO
>    Affects Versions: 0.13.1
>            Reporter: Mostafa Mokhtar
>            Assignee: Laljo John Pullokkaran
>             Fix For: 0.14.0
>
>
> Simplify predicates for disjunctive predicates so that can get pushed down to 
> the scan
> {code}
> 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 store.s_store_sk = store_sales.ss_store_sk
>  and  store_sales.ss_sold_date_sk = date_dim.d_date_sk and date_dim.d_year = 
> 2001
>  and((store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
>   and customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk
>   and customer_demographics.cd_marital_status = 'M'
>   and customer_demographics.cd_education_status = '4 yr Degree'
>   and store_sales.ss_sales_price between 100.00 and 150.00
>   and household_demographics.hd_dep_count = 3   
>      )or
>      (store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
>   and customer_demographics.cd_demo_sk = store_sales.ss_cdemo_sk
>   and customer_demographics.cd_marital_status = 'D'
>   and customer_demographics.cd_education_status = 'Primary'
>   and store_sales.ss_sales_price between 50.00 and 100.00   
>   and household_demographics.hd_dep_count = 1
>      ) or 
>      (store_sales.ss_hdemo_sk=household_demographics.hd_demo_sk
>   and customer_demographics.cd_demo_sk = ss_cdemo_sk
>   and customer_demographics.cd_marital_status = 'U'
>   and customer_demographics.cd_education_status = 'Advanced Degree'
>   and store_sales.ss_sales_price between 150.00 and 200.00 
>   and household_demographics.hd_dep_count = 1  
>      ))
>  and((store_sales.ss_addr_sk = customer_address.ca_address_sk
>   and customer_address.ca_country = 'United States'
>   and customer_address.ca_state in ('KY', 'GA', 'NM')
>   and store_sales.ss_net_profit between 100 and 200  
>      ) or
>      (store_sales.ss_addr_sk = customer_address.ca_address_sk
>   and customer_address.ca_country = 'United States'
>   and customer_address.ca_state in ('MT', 'OR', 'IN')
>   and store_sales.ss_net_profit between 150 and 300  
>      ) or
>      (store_sales.ss_addr_sk = customer_address.ca_address_sk
>   and customer_address.ca_country = 'United States'
>   and customer_address.ca_state in ('WI', 'MO', 'WV')
>   and store_sales.ss_net_profit between 50 and 250  
>      ))
> ;
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to