You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2016/02/19 23:25:18 UTC

[jira] [Created] (HIVE-13102) CBO: Reduce operations in Calcite do not fold as tight as rule-based folding

Gopal V created HIVE-13102:
------------------------------

             Summary: CBO: Reduce operations in Calcite do not fold as tight as rule-based folding
                 Key: HIVE-13102
                 URL: https://issues.apache.org/jira/browse/HIVE-13102
             Project: Hive
          Issue Type: Improvement
          Components: CBO
    Affects Versions: 2.1.0
            Reporter: Gopal V
            Assignee: Jesus Camacho Rodriguez


With CBO

{code}
create temporary table table1(id int, val int, val1 int, dimid int);
create temporary table table3(id int, val int, val1 int);

hive> explain select table1.id, table1.val, table1.val1 from table1 inner join table3 on table1.dimid = table3.id and table3.id = 1 where table1.dimid <>1 ;
Warning: Map Join MAPJOIN[14][bigTable=?] in task 'Map 1' is a cross product
OK
Plan optimized by CBO.

Vertex dependency in root stage
Map 1 <- Map 2 (BROADCAST_EDGE)

Stage-0
  Fetch Operator
    limit:-1
    Stage-1
      Map 1 llap
      File Output Operator [FS_11]
        Map Join Operator [MAPJOIN_14] (rows=1 width=0)
          Conds:(Inner),Output:["_col0","_col1","_col2"]
        <-Map 2 [BROADCAST_EDGE] llap
          BROADCAST [RS_8]
            Select Operator [SEL_5] (rows=1 width=0)
              Filter Operator [FIL_13] (rows=1 width=0)
                predicate:(id = 1)
                TableScan [TS_3] (rows=1 width=0)
                  default@table3,table3,Tbl:PARTIAL,Col:NONE,Output:["id"]
        <-Select Operator [SEL_2] (rows=1 width=0)
            Output:["_col0","_col1","_col2"]
            Filter Operator [FIL_12] (rows=1 width=0)
              predicate:((dimid = 1) and (dimid <> 1))
              TableScan [TS_0] (rows=1 width=0)
                default@table1,table1,Tbl:PARTIAL,Col:NONE,Output:["id","val","val1","dimid"]
{code}

without CBO

{code}
hive> explain select table1.id, table1.val, table1.val1 from table1 inner join table3 on table1.dimid = table3.id and table3.id = 1 where table1.dimid <>1 ;
OK
Vertex dependency in root stage
Map 1 <- Map 2 (BROADCAST_EDGE)

Stage-0
  Fetch Operator
    limit:-1
    Stage-1
      Map 1 llap
      File Output Operator [FS_9]
        Map Join Operator [MAPJOIN_14] (rows=1 width=0)
          Conds:FIL_12.1=RS_17.1(Inner),Output:["_col0","_col1","_col2"]
        <-Map 2 [BROADCAST_EDGE] vectorized, llap
          BROADCAST [RS_17]
            PartitionCols:1
            Filter Operator [FIL_16] (rows=1 width=0)
              predicate:false
              TableScan [TS_1] (rows=1 width=0)
                default@table3,table3,Tbl:PARTIAL,Col:COMPLETE
        <-Filter Operator [FIL_12] (rows=1 width=0)
            predicate:false
            TableScan [TS_0] (rows=1 width=0)
              default@table1,table1,Tbl:PARTIAL,Col:NONE,Output:["id","val","val1"]

Time taken: 0.044 seconds, Fetched: 23 row(s)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)