recognize transitive join conditions
------------------------------------
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
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 message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira