[ https://issues.apache.org/jira/browse/HIVE-4905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15075812#comment-15075812 ]
Gaurav Kumar commented on HIVE-4905: ------------------------------------ *For left/right outer joins:* {code:sql} select * from tbl1 left outer join tbl2 on tbl1.col1 = tbl2.col2 and tbl2.month=20 and tbl2.day=20 where tbl1.month=20 and tbl1.day=20 {code} The key is to put the partitions of tbl2 in the ‘on’ condition and the partitions of tbl1 in the ‘where’ condition. *For full outer joins:* The only way is to wrap both the tables in a subquery. {code:sql} select * from (select * from tbl1 where month=20 and day=20) tbl1_x full outer join (select * from tbl2 where month=20 and day=20) tbl2_x on tbl1_x.col1 = tbl2_x.col2 {code} > In strict mode, predicate pushdown does not work on partition columns with > statements using left/right join > ------------------------------------------------------------------------------------------------------------ > > Key: HIVE-4905 > URL: https://issues.apache.org/jira/browse/HIVE-4905 > Project: Hive > Issue Type: Bug > Components: Query Processor > Affects Versions: 0.12.0 > Reporter: caofangkun > Assignee: caofangkun > Priority: Minor > > set hive.mapred.mode=strict; > drop table mpt3; > create table mpt3 (s1 string , s2 string) partitioned by (dt string, time > string); > alter table mpt3 add partition (dt='1',time='2'); > drop table mpt4; > create table mpt4 (s1 string , s2 string) partitioned by (dt string, time > string); > alter table mpt4 add partition (dt='1',time='2'); > Query One: works well > explain > select * from mpt3 a join mpt4 b on (a.s1 = b.s1) where a.dt='1' and > a.time='2' and b.dt='1'; > Query Two :failed > hive (default)> explain select a.* from mpt3 a right outer join mpt4 b on > (a.s1 = b.s1) where a.dt='1' and a.time='2' and b.dt='1'; > FAILED: SemanticException [Error 10041]: No partition predicate found for > Alias "a" Table "mpt3" > Query Three: failed > hive (default)> explain select a.* from mpt3 a left outer join mpt4 b on > (a.s1 = b.s1) where a.dt='1' and a.time='2' and b.dt='1'; > FAILED: SemanticException [Error 10041]: No partition predicate found for > Alias "b" Table "mpt4" -- This message was sent by Atlassian JIRA (v6.3.4#6332)