You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Vineet Garg (JIRA)" <ji...@apache.org> on 2019/03/26 00:58:00 UTC

[jira] [Updated] (HIVE-21230) LEFT OUTER JOIN does not generate transitive IS NOT NULL filter on right side (HiveJoinAddNotNullRule bails out for outer joins)

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

Vineet Garg updated HIVE-21230:
-------------------------------
    Status: Patch Available  (was: Open)

> LEFT OUTER JOIN does not generate transitive IS NOT NULL filter on right side (HiveJoinAddNotNullRule bails out for outer joins)
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-21230
>                 URL: https://issues.apache.org/jira/browse/HIVE-21230
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Vineet Garg
>            Priority: Major
>              Labels: newbie
>         Attachments: HIVE-21230.1.patch
>
>
> For instance, given the following query:
> {code:sql}
> SELECT t0.col0, t0.col1
> FROM
>   (
>     SELECT col0, col1 FROM tab
>   ) AS t0
>   LEFT JOIN
>   (
>     SELECT col0, col1 FROM tab
>   ) AS t1
> ON t0.col0 = t1.col0 AND t0.col1 = t1.col1
> {code}
> we could still infer that col0 and col1 cannot be null in the right input and introduce the corresponding filter predicate. Currently, the rule just bails out if it is not an inner join.
> https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinAddNotNullRule.java#L79



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