[ 
https://issues.apache.org/jira/browse/HIVE-14431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15992839#comment-15992839
 ] 

Jesus Camacho Rodriguez commented on HIVE-14431:
------------------------------------------------

OK, got it. I think the easiest is to go with your first proposal then and add 
that extension to Calcite, since it will benefit COALESCE and CASE statements 
alike. Then just recognizing COALESCE as CASE on the Hive side, i.e., checking 
in the _RexNodeConverter_ changes, would be enough to trigger the rewriting.

> Recognize COALESCE as CASE
> --------------------------
>
>                 Key: HIVE-14431
>                 URL: https://issues.apache.org/jira/browse/HIVE-14431
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO
>    Affects Versions: 2.2.0
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Remus Rusanu
>         Attachments: HIVE-14431.01.patch, HIVE-14431.03.patch, 
> HIVE-14431.2.patch, HIVE-14431.patch
>
>
> Transform:
> {code}
> (COALESCE(a, '')  = '') OR
>            (a = 'A' AND b = c)  OR
>            (a = 'B' AND b = d) OR
>            (a = 'C' AND b = e) OR
>            (a = 'D' AND b = f) OR
>            (a = 'E' AND b = g) OR
>            (a = 'F' AND b = h)
> {code}
> into:
> {code}
> (a='') OR
>            (a is null) OR
>            (a = 'A' AND b = c)  OR
>            (a = 'B' AND b = d) OR
>            (a = 'C' AND b = e) OR
>            (a = 'D' AND b = f) OR
>            (a = 'E' AND b = g) OR
>            (a = 'F' AND b = h)
> {code}
> With complex queries, this will lead us to factor more predicates that could 
> be pushed to the TS.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to