[jira] [Updated] (HIVE-20557) Constant Folding: null > (expr) is not constant folded to NULL

2018-09-13 Thread Gopal V (JIRA)


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

Gopal V updated HIVE-20557:
---
Component/s: CBO

> Constant Folding: null > (expr) is not constant folded to NULL
> --
>
> Key: HIVE-20557
> URL: https://issues.apache.org/jira/browse/HIVE-20557
> Project: Hive
>  Issue Type: Improvement
>  Components: CBO
>Affects Versions: 3.1.0, 4.0.0
>Reporter: Gopal V
>Priority: Major
>
> {code}
> create temporary table foo(col1 int, col2 int, col3 int, col5 int, col9 int) 
> stored as orc;
> explain select count(1) from foo where 
> CASE WHEN (col5 is not null) THEN (((col1 / col5) > (col9 / col3))) ELSE 
> ((null > (col9 / col3))) END;
> explain select count(1), max((col9/col3) > null) from foo where 
> CASE WHEN (col5 is not null) THEN (((col1 / col5) > (col9 / col3))) ELSE 
> (((col9 / col3) > null)) END;
> {code}
> There's no sane way to write this query, but this is actually generated by 
> CBO for an expression which looks like 
> {code}
> 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
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (HIVE-20557) Constant Folding: null > (expr) is not constant folded to NULL

2018-09-13 Thread Gopal V (JIRA)


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

Gopal V updated HIVE-20557:
---
Affects Version/s: 4.0.0
   3.1.0

> Constant Folding: null > (expr) is not constant folded to NULL
> --
>
> Key: HIVE-20557
> URL: https://issues.apache.org/jira/browse/HIVE-20557
> Project: Hive
>  Issue Type: Improvement
>  Components: CBO
>Affects Versions: 3.1.0, 4.0.0
>Reporter: Gopal V
>Priority: Major
>
> {code}
> create temporary table foo(col1 int, col2 int, col3 int, col5 int, col9 int) 
> stored as orc;
> explain select count(1) from foo where 
> CASE WHEN (col5 is not null) THEN (((col1 / col5) > (col9 / col3))) ELSE 
> ((null > (col9 / col3))) END;
> explain select count(1), max((col9/col3) > null) from foo where 
> CASE WHEN (col5 is not null) THEN (((col1 / col5) > (col9 / col3))) ELSE 
> (((col9 / col3) > null)) END;
> {code}
> There's no sane way to write this query, but this is actually generated by 
> CBO for an expression which looks like 
> {code}
> 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
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)