-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16728/
-----------------------------------------------------------

Review request for hive.


Bugs: HIVE-6144
    https://issues.apache.org/jira/browse/HIVE-6144


Repository: hive-git


Description
-------

For map join, all data in small aliases are hashed and stored into temporary 
file in MapRedLocalTask. But for some aliases without filter or projection, it 
seemed not necessary to do that. For example.

{noformat}
select a.* from src a join src b on a.key=b.key;
{noformat}

makes plan like this.
{noformat}
STAGE PLANS:
  Stage: Stage-4
    Map Reduce Local Work
      Alias -> Map Local Tables:
        a 
          Fetch Operator
            limit: -1
      Alias -> Map Local Operator Tree:
        a 
          TableScan
            alias: a
            HashTable Sink Operator
              condition expressions:
                0 {key} {value}
                1 
              handleSkewJoin: false
              keys:
                0 [Column[key]]
                1 [Column[key]]
              Position of Big Table: 1

  Stage: Stage-3
    Map Reduce
      Alias -> Map Operator Tree:
        b 
          TableScan
            alias: b
            Map Join Operator
              condition map:
                   Inner Join 0 to 1
              condition expressions:
                0 {key} {value}
                1 
              handleSkewJoin: false
              keys:
                0 [Column[key]]
                1 [Column[key]]
              outputColumnNames: _col0, _col1
              Position of Big Table: 1
              Select Operator
                File Output Operator
      Local Work:
        Map Reduce Local Work
  Stage: Stage-0
    Fetch Operator
{noformat}

table src(a) is fetched and stored as-is in MRLocalTask. With this patch, plan 
can be like below.
{noformat}
  Stage: Stage-3
    Map Reduce
      Alias -> Map Operator Tree:
        b 
          TableScan
            alias: b
            Map Join Operator
              condition map:
                   Inner Join 0 to 1
              condition expressions:
                0 {key} {value}
                1 
              handleSkewJoin: false
              keys:
                0 [Column[key]]
                1 [Column[key]]
              outputColumnNames: _col0, _col1
              Position of Big Table: 1
              Select Operator
                  File Output Operator
      Local Work:
        Map Reduce Local Work
          Alias -> Map Local Tables:
            a 
              Fetch Operator
                limit: -1
          Alias -> Map Local Operator Tree:
            a 
              TableScan
                alias: a
          Has Any Stage Alias: false
  Stage: Stage-0
    Fetch Operator
{noformat}


Diffs
-----

  common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 3bfd539 
  ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapJoinOperator.java 
d8f4eb4 
  ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableLoader.java a080fcc 
  ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java aa8f19c 
  ql/src/java/org/apache/hadoop/hive/ql/exec/JoinUtil.java 1e0314d 
  ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java bdc85b9 
  ql/src/java/org/apache/hadoop/hive/ql/exec/TemporaryHashSinkOperator.java 
PRE-CREATION 
  ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java 42d764d 
  ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HashTableLoader.java efe5710 
  ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java 0cc90d0 
  
ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java
 5a53e15 
  ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MapJoinResolver.java 
010ac54 
  ql/src/java/org/apache/hadoop/hive/ql/plan/HashTableSinkDesc.java 14fced7 
  ql/src/java/org/apache/hadoop/hive/ql/plan/MapredLocalWork.java 83a778d 
  ql/src/test/queries/clientpositive/auto_join_without_localtask.q PRE-CREATION 
  ql/src/test/results/clientpositive/auto_join_without_localtask.q.out 
PRE-CREATION 

Diff: https://reviews.apache.org/r/16728/diff/


Testing
-------


Thanks,

Navis Ryu

Reply via email to