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

Eugene Koifman commented on HIVE-7159:
--------------------------------------

FWIW, you can do the same with outer joins on inner side
R left outer join S on R.r=S.s is the same as R LOJ (select * from S where s is 
not null) as S on R.r=S.s
and symmetrically for ROJ.

> 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
>         Attachments: HIVE-7159.1.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
>
>
> 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