You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Phabricator (JIRA)" <ji...@apache.org> on 2013/01/18 03:00:16 UTC

[jira] [Updated] (HIVE-3909) Wrong data due to HIVE-2820

     [ https://issues.apache.org/jira/browse/HIVE-3909?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phabricator updated HIVE-3909:
------------------------------

    Attachment: HIVE-3909.D8013.1.patch

navis requested code review of "HIVE-3909 [jira] Wrong data due to HIVE-2820".
Reviewers: JIRA

  Consider the query:

  ~/hive/hive1$ more ql/src/test/queries/clientpositive/join_reorder4.q
  CREATE TABLE T1(key1 STRING, val1 STRING) STORED AS TEXTFILE;
  CREATE TABLE T2(key2 STRING, val2 STRING) STORED AS TEXTFILE;
  CREATE TABLE T3(key3 STRING, val3 STRING) STORED AS TEXTFILE;

  LOAD DATA LOCAL INPATH '../data/files/T1.txt' INTO TABLE T1;
  LOAD DATA LOCAL INPATH '../data/files/T2.txt' INTO TABLE T2;
  LOAD DATA LOCAL INPATH '../data/files/T3.txt' INTO TABLE T3;

  set hive.auto.convert.join=true;

  explain select /+ STREAMTABLE(a) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
  select /+ STREAMTABLE(a) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;

  explain select /+ STREAMTABLE(b) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
  select /+ STREAMTABLE(b) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;

  explain select /+ STREAMTABLE(c) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
  select /+ STREAMTABLE(c) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;

  select /+ STREAMTABLE(b) */ a., b., c. from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;

  returns:
  2	12	2	12	2	22

TEST PLAN
  EMPTY

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

AFFECTED FILES
  ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
  ql/src/java/org/apache/hadoop/hive/ql/exec/ConditionalTask.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/optimizer/physical/LocalMapJoinProcFactory.java
  ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java
  ql/src/test/queries/clientpositive/join_reorder4.q
  ql/src/test/results/clientpositive/join_reorder4.q.out

MANAGE HERALD DIFFERENTIAL RULES
  https://reviews.facebook.net/herald/view/differential/

WHY DID I GET THIS EMAIL?
  https://reviews.facebook.net/herald/transcript/19341/

To: JIRA, navis

                
> Wrong data due to HIVE-2820
> ---------------------------
>
>                 Key: HIVE-3909
>                 URL: https://issues.apache.org/jira/browse/HIVE-3909
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Namit Jain
>            Assignee: Navis
>         Attachments: HIVE-3909.D8013.1.patch
>
>
> Consider the query:
> ~/hive/hive1$ more ql/src/test/queries/clientpositive/join_reorder4.q
> CREATE TABLE T1(key1 STRING, val1 STRING) STORED AS TEXTFILE;
> CREATE TABLE T2(key2 STRING, val2 STRING) STORED AS TEXTFILE;
> CREATE TABLE T3(key3 STRING, val3 STRING) STORED AS TEXTFILE;
> LOAD DATA LOCAL INPATH '../data/files/T1.txt' INTO TABLE T1;
> LOAD DATA LOCAL INPATH '../data/files/T2.txt' INTO TABLE T2;
> LOAD DATA LOCAL INPATH '../data/files/T3.txt' INTO TABLE T3;
> set hive.auto.convert.join=true;
> explain select /*+ STREAMTABLE(a) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> select /*+ STREAMTABLE(a) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> explain select /*+ STREAMTABLE(b) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> select /*+ STREAMTABLE(b) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> explain select /*+ STREAMTABLE(c) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> select /*+ STREAMTABLE(c) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> select /*+ STREAMTABLE(b) */ a.*, b.*, c.* from T1 a join T2 b on a.key1=b.key2 join T3 c on a.key1=c.key3;
> returns:
> 2	12	2	12	2	22

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