[ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503642#comment-13503642 ]
Phabricator commented on HIVE-3381: ----------------------------------- njain has commented on the revision "HIVE-3381 [jira] Result of outer join is not valid". Navis, I know I am asking pretty naive questions here, but I am not able to proceed. INLINE COMMENTS ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:363 Can you add more comments everywhere ? I know that the old code also did not have many good comments, but it would be really useful. It is really difficult for me to be sure. I reviewed some test results, and they look fine. As you correctly said, this is hard. It would really help if you have a small example explained in comments in the code. It would really increase the maintainability of this code bigtime. Something like: for Query ::: where the data is ::: the aliasFilterTags will be:: I know I am asking for too much, but this code is too risky to change. ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:396 General comment: please add lots of comments for all the private functions. ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:352 What is a skipvector ? Going to the comment below, can you explain with a query/data example. Same for offsets. REVISION DETAIL https://reviews.facebook.net/D5565 To: JIRA, navis Cc: njain > Result of outer join is not valid > --------------------------------- > > Key: HIVE-3381 > URL: https://issues.apache.org/jira/browse/HIVE-3381 > Project: Hive > Issue Type: Bug > Components: Query Processor > Affects Versions: 0.10.0 > Reporter: Navis > Assignee: Navis > Priority: Critical > Attachments: HIVE-3381.D5565.3.patch > > > Outer joins, especially full outer joins or outer join with filter on 'ON > clause' is not showing proper results. For example, query in test join_1to1.q > {code} > SELECT * FROM join_1to1_1 a full outer join join_1to1_2 b on a.key1 = b.key1 > and a.value = 66 and b.value = 66 ORDER BY a.key1 ASC, a.key2 ASC, a.value > ASC, b.key1 ASC, b.key2 ASC, b.value ASC; > {code} > results > {code} > NULL NULL NULL NULL NULL 66 > NULL NULL NULL NULL 10050 66 > NULL NULL NULL 10 10010 66 > NULL NULL NULL 30 10030 88 > NULL NULL NULL 35 10035 88 > NULL NULL NULL 40 10040 88 > NULL NULL NULL 40 10040 88 > NULL NULL NULL 50 10050 88 > NULL NULL NULL 50 10050 88 > NULL NULL NULL 50 10050 88 > NULL NULL NULL 70 10040 88 > NULL NULL NULL 70 10040 88 > NULL NULL NULL 70 10040 88 > NULL NULL NULL 70 10040 88 > NULL NULL 66 NULL NULL NULL > NULL 10050 66 NULL NULL NULL > 5 10005 66 5 10005 66 > 15 10015 66 NULL NULL NULL > 20 10020 66 20 10020 66 > 25 10025 88 NULL NULL NULL > 30 10030 66 NULL NULL NULL > 35 10035 88 NULL NULL NULL > 40 10040 66 NULL NULL NULL > 40 10040 66 40 10040 66 > 40 10040 88 NULL NULL NULL > 40 10040 88 NULL NULL NULL > 50 10050 66 NULL NULL NULL > 50 10050 66 50 10050 66 > 50 10050 66 50 10050 66 > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 70 10040 66 NULL NULL NULL > 70 10040 66 NULL NULL NULL > 70 10040 66 NULL NULL NULL > 70 10040 66 NULL NULL NULL > 80 10040 88 NULL NULL NULL > 80 10040 88 NULL NULL NULL > 80 10040 88 NULL NULL NULL > 80 10040 88 NULL NULL NULL > {code} > but it seemed not right. This should be > {code} > NULL NULL NULL NULL NULL 66 > NULL NULL NULL NULL 10050 66 > NULL NULL NULL 10 10010 66 > NULL NULL NULL 25 10025 66 > NULL NULL NULL 30 10030 88 > NULL NULL NULL 35 10035 88 > NULL NULL NULL 40 10040 88 > NULL NULL NULL 50 10050 88 > NULL NULL NULL 70 10040 88 > NULL NULL NULL 70 10040 88 > NULL NULL NULL 80 10040 66 > NULL NULL NULL 80 10040 66 > NULL NULL 66 NULL NULL NULL > NULL 10050 66 NULL NULL NULL > 5 10005 66 5 10005 66 > 15 10015 66 NULL NULL NULL > 20 10020 66 20 10020 66 > 25 10025 88 NULL NULL NULL > 30 10030 66 NULL NULL NULL > 35 10035 88 NULL NULL NULL > 40 10040 66 40 10040 66 > 40 10040 88 NULL NULL NULL > 50 10050 66 50 10050 66 > 50 10050 66 50 10050 66 > 50 10050 88 NULL NULL NULL > 50 10050 88 NULL NULL NULL > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 60 10040 66 60 10040 66 > 70 10040 66 NULL NULL NULL > 70 10040 66 NULL NULL NULL > 80 10040 88 NULL NULL NULL > 80 10040 88 NULL NULL NULL > {code} -- 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