[ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503772#comment-13503772 ]
Phabricator commented on HIVE-3381: ----------------------------------- navis has commented on the revision "HIVE-3381 [jira] Result of outer join is not valid". INLINE COMMENTS ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:352 'skipVectors' has same meaning with 'inputNulls' in original source, which makes output value for the index(alias) to be filled with null. But doing this I always confused by it's name that it means value for the index(alias) is null, which can be true or false either. I'll change it to 'inputNulls' if you prefer. When inputNulls for some index is true, it gets metadata for the index and gets length for it and fills null for that length. 'offsets' is just pre-calculated values of such offsets. ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:363 The problem is I'm also still not sure that this patch is right. I'll add more comments. ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java:396 ok. 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