[
https://issues.apache.org/jira/browse/HIVE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Phabricator updated HIVE-3464:
------------------------------
Attachment: HIVE-3464.D5409.5.patch
navis updated the revision "HIVE-3464 [jira] Merging join tree may reorder
joins which could be invalid".
1. Use largest one as big table if all tables are smaller than threshold
2. Fix bug on max aliases for outer join
3. Addressed comments & rebased to trunk
Reviewers: JIRA
REVISION DETAIL
https://reviews.facebook.net/D5409
CHANGE SINCE LAST DIFF
https://reviews.facebook.net/D5409?vs=30549&id=30597#toc
AFFECTED FILES
ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/CommonJoinResolver.java
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
ql/src/test/queries/clientpositive/mergejoins_mixed.q
ql/src/test/queries/clientpositive/smb_mapjoin_17.q
ql/src/test/results/clientpositive/join_filters_overlap.q.out
ql/src/test/results/clientpositive/mergejoins_mixed.q.out
ql/src/test/results/clientpositive/smb_mapjoin_17.q.out
To: JIRA, navis
Cc: njain, vikram
> Merging join tree may reorder joins which could be invalid
> ----------------------------------------------------------
>
> Key: HIVE-3464
> URL: https://issues.apache.org/jira/browse/HIVE-3464
> Project: Hive
> Issue Type: Bug
> Components: Query Processor
> Affects Versions: 0.10.0
> Reporter: Navis
> Assignee: Navis
> Attachments: HIVE-3464.D5409.2.patch, HIVE-3464.D5409.3.patch,
> HIVE-3464.D5409.4.patch, HIVE-3464.D5409.5.patch
>
>
> Currently, hive merges join tree from right to left regardless of join types,
> which may introduce join reordering. For example,
> select * from a join a b on a.key=b.key join a c on b.key=c.key join a d on
> a.key=d.key;
> Hive tries to merge join tree in a-d=b-d, a-d=a-b, b-c=a-b order and a-d=a-b
> and b-c=a-b will be merged. Final join tree is "a-(bdc)".
> With this, ab-d join will be executed prior to ab-c. But if join type of -c
> and -d is different, this is not valid.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira