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

Navis commented on HIVE-7159:
-----------------------------

Reviewing this, I found some predicates are removed(replaced?) from plan. For 
example in auto_join29.q, it was like this
{noformat}
predicate: ((key > 10) and (key < 10)) (type: boolean)
{noformat}
But now it became,
{noformat}
predicate: ((key < 10) and key is not null) (type: boolean)
{noformat}
Similar things can be found in 
auto_join12.q,auto_join14.q,auto_join16.q,auto_join27.q,tez/filter_join_breaktask.q,
 etc. And auto_join_without_localtask.q is changed a lot in plan. 

I'm not sure it's intended or not. [~rhbutani], Could you check this? 

> For inner joins push a 'is not null predicate' to the join sources for every 
> non nullSafe join condition
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-7159
>                 URL: https://issues.apache.org/jira/browse/HIVE-7159
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Harish Butani
>            Assignee: Harish Butani
>             Fix For: 0.14.0
>
>         Attachments: HIVE-7159.1.patch, HIVE-7159.10.patch, 
> HIVE-7159.11.patch, HIVE-7159.2.patch, HIVE-7159.3.patch, HIVE-7159.4.patch, 
> HIVE-7159.5.patch, HIVE-7159.6.patch, HIVE-7159.7.patch, HIVE-7159.8.patch, 
> HIVE-7159.9.patch, HIVE-7159.addendum.patch
>
>
> A join B on A.x = B.y
> can be transformed to
> (A where x is not null) join (B where y is not null) on A.x = B.y
> Apart from avoiding shuffling null keyed rows it also avoids issues with 
> reduce-side skew when there are a lot of null values in the data.
> Thanks to [~gopalv] for the analysis and coming up with the solution.



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

Reply via email to