[ https://issues.apache.org/jira/browse/HIVE-1989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Charles Chen updated HIVE-1989: ------------------------------- Description: Given {noformat} set hive.mapred.mode=strict; create table invites (foo int, bar string) partitioned by (ds string); create table invites2 (foo int, bar string) partitioned by (ds string); select count(*) from invites join invites2 on invites.ds=invites2.ds where invites.ds='2011-01-01'; {noformat} currently an error occurs: {noformat} Error in semantic analysis: No Partition Predicate Found for Alias "invites2" Table "invites2" {noformat} The optimizer should be able to infer a predicate on invites2 via transitivity. The current lack places a burden on the user to add a redundant predicate, and makes impossible (at least in strict mode) join views where both underlying tables are partitioned (the join select list has to pick one of the tables arbitrarily). was: Given {noformat} set hive.mapred.mode=strict; create table invites (foo int, bar string) partitioned by (ds string); create table invites2 (foo int, bar string) partitioned by (ds string); select count(*) from invites join invites2 on invites.ds=invites2.ds and invites.ds='2011-01-01'; {noformat} currently an error occurs: {noformat} Error in semantic analysis: No Partition Predicate Found for Alias "invites2" Table "invites2" {noformat} The optimizer should be able to infer a predicate on invites2 via transitivity. The current lack places a burden on the user to add a redundant predicate, and makes impossible (at least in strict mode) join views where both underlying tables are partitioned (the join select list has to pick one of the tables arbitrarily). This does not cover the case {noformat} select count(*) from invites join invites2 on invites.ds=invites2.ds and invites.ds='2011-01-01'; {noformat} where the filtering predicate invites.ds='2011-01-01' is in the on clause (because the filter in the "ON" key is pushed down even before the predicate pushdown optimizer runs) > recognize transitivity of predicates on join keys > ------------------------------------------------- > > Key: HIVE-1989 > URL: https://issues.apache.org/jira/browse/HIVE-1989 > Project: Hive > Issue Type: Improvement > Components: Query Processor > Affects Versions: 0.6.0 > Reporter: John Sichi > Assignee: Charles Chen > > Given > {noformat} > set hive.mapred.mode=strict; > create table invites (foo int, bar string) partitioned by (ds string); > create table invites2 (foo int, bar string) partitioned by (ds string); > select count(*) from invites join invites2 on invites.ds=invites2.ds where > invites.ds='2011-01-01'; > {noformat} > currently an error occurs: > {noformat} > Error in semantic analysis: No Partition Predicate Found for Alias "invites2" > Table "invites2" > {noformat} > The optimizer should be able to infer a predicate on invites2 via > transitivity. The current lack places a burden on the user to add a > redundant predicate, and makes impossible (at least in strict mode) join > views where both underlying tables are partitioned (the join select list has > to pick one of the tables arbitrarily). -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira