[
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)