[ https://issues.apache.org/jira/browse/HIVE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13615730#comment-13615730 ]
Vikram Dixit K commented on HIVE-3464: -------------------------------------- [~navis] I went through the tests and code and I see how this affects the plan. Could you please add tests that produce some output rows. You could add something like {noformat} insert overwrite table a select * from src; {noformat} in your test file(mergejoins_mixed.q). I see that when I remove the explain statements associated with this test, a complicated query - inner, right outer (different key), full outer is what produces a different output. Others seem fine perhaps lucky. Also had a comment on code review. > 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 > > > 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