You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Navis (JIRA)" <ji...@apache.org> on 2012/08/14 09:11:37 UTC

[jira] [Created] (HIVE-3381) Result of outer join is not valid

Navis created HIVE-3381:
---------------------------

             Summary: 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


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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phabricator updated HIVE-3381:
------------------------------

    Attachment: HIVE-3381.D5565.3.patch

navis updated the revision "HIVE-3381 [jira] Result of outer join is not valid".
Reviewers: JIRA

  Fixed and rebased on trunk


REVISION DETAIL
  https://reviews.facebook.net/D5565

AFFECTED FILES
  ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/SMBMapJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinObjectValue.java
  ql/src/test/results/clientpositive/auto_join21.q.out
  ql/src/test/results/clientpositive/auto_join29.q.out
  ql/src/test/results/clientpositive/auto_join7.q.out
  ql/src/test/results/clientpositive/auto_join_filters.q.out
  ql/src/test/results/clientpositive/join21.q.out
  ql/src/test/results/clientpositive/join7.q.out
  ql/src/test/results/clientpositive/join_1to1.q.out
  ql/src/test/results/clientpositive/join_filters.q.out
  ql/src/test/results/clientpositive/join_filters_overlap.q.out

To: JIRA, navis

                
> 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Ashutosh Chauhan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503266#comment-13503266 ] 

Ashutosh Chauhan commented on HIVE-3381:
----------------------------------------

Namit,
Since this bug silently results in wrong results, I would like to have this fixed before 0.10 is released. Patch looks good to me. Will wait for your review.
                
> 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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Navis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Navis updated HIVE-3381:
------------------------

    Status: Open  (was: Patch Available)

I found a bug with semi join.
                
> 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
>
> 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
    [ 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
    [ 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Namit Jain (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497952#comment-13497952 ] 

Namit Jain commented on HIVE-3381:
----------------------------------

[~navis], can you hold off for a few days ? I also wanted to take a look at this.
                
> 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Carl Steinbach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497840#comment-13497840 ] 

Carl Steinbach commented on HIVE-3381:
--------------------------------------

+1

@Navis: Can you test and commit this patch? Thanks.
                
> 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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Namit Jain (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Namit Jain updated HIVE-3381:
-----------------------------

    Status: Open  (was: Patch Available)

comments on phabricator
                
> 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

[jira] [Commented] (HIVE-3381) Result of outer join is not valid

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13504355#comment-13504355 ] 

Phabricator commented on HIVE-3381:
-----------------------------------

njain has commented on the revision "HIVE-3381 [jira] Result of outer join is not valid".

  Navis, I am not saying that the old code is good. On the contrary, it is really difficult to follow.
  There is serious lack of comments in that.
  But, we have to improve that - I really appreciate that you are fixing this very serious bug,
  but it would be really useful if you can add lots of comments so that it becomes much easier to
  maintain/enhance in future.

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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Navis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Navis updated HIVE-3381:
------------------------

    Status: Patch Available  (was: Open)
    
> 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, HIVE-3381.D5565.4.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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Navis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Navis updated HIVE-3381:
------------------------

    Status: Patch Available  (was: Open)

https://reviews.facebook.net/D5565

It was hard. 
                
> 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
>
> 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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Phabricator (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phabricator updated HIVE-3381:
------------------------------

    Attachment: HIVE-3381.D5565.4.patch

navis updated the revision "HIVE-3381 [jira] Result of outer join is not valid".
Reviewers: JIRA

  1. Simplified code a little
  2. Added comments including example
  3. Rebased on trunk & passed all tests


REVISION DETAIL
  https://reviews.facebook.net/D5565

AFFECTED FILES
  ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/SMBMapJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinObjectValue.java
  ql/src/test/results/clientpositive/auto_join21.q.out
  ql/src/test/results/clientpositive/auto_join29.q.out
  ql/src/test/results/clientpositive/auto_join7.q.out
  ql/src/test/results/clientpositive/auto_join_filters.q.out
  ql/src/test/results/clientpositive/join21.q.out
  ql/src/test/results/clientpositive/join7.q.out
  ql/src/test/results/clientpositive/join_1to1.q.out
  ql/src/test/results/clientpositive/join_filters.q.out
  ql/src/test/results/clientpositive/join_filters_overlap.q.out

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, HIVE-3381.D5565.4.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

[jira] [Updated] (HIVE-3381) Result of outer join is not valid

Posted by "Navis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HIVE-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Navis updated HIVE-3381:
------------------------

    Status: Patch Available  (was: Open)
    
> 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
>
> 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