hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gopal V (JIRA)" <>
Subject [jira] [Created] (HIVE-14302) Tez: Optimized Hashtable can support DECIMAL keys of same precision
Date Thu, 21 Jul 2016 01:02:20 GMT
Gopal V created HIVE-14302:

             Summary: Tez: Optimized Hashtable can support DECIMAL keys of same precision
                 Key: HIVE-14302
             Project: Hive
          Issue Type: Improvement
          Components: Tez
    Affects Versions: 2.2.0
            Reporter: Gopal V

Decimal support in the optimized hashtable was decided on the basis of the fact that Decimal(10,1)
== Decimal(10, 2) when both contain "1.0" and "1.00".

However, the joins now don't have any issues with decimal precision because they cast to common.

create temporary table x (a decimal(10,2), b decimal(10,1)) stored as orc;
insert into x values (1.0, 1.0);

    > explain logical select count(1) from x, x x1 where x.a = x1.b;
  TableScan (TS_0)
    alias: x
    filterExpr: (a is not null and true) (type: boolean)
    Filter Operator (FIL_18)
      predicate: (a is not null and true) (type: boolean)
      Select Operator (SEL_2)
        expressions: a (type: decimal(10,2))
        outputColumnNames: _col0
        Reduce Output Operator (RS_6)
          key expressions: _col0 (type: decimal(11,2))
          sort order: +
          Map-reduce partition columns: _col0 (type: decimal(11,2))
          Join Operator (JOIN_8)
            condition map:
                 Inner Join 0 to 1
              0 _col0 (type: decimal(11,2))
              1 _col0 (type: decimal(11,2))
            Group By Operator (GBY_11)
              aggregations: count(1)
              mode: hash
              outputColumnNames: _col0

See cast up to Decimal(11, 2) in the plan, which normalizes both sides of the join to be able
to compare HiveDecimal as-is.

This message was sent by Atlassian JIRA

View raw message