Jason Dere created HIVE-15331:
---------------------------------

             Summary: Decimal multiplication with high precision/scale often 
returns NULL
                 Key: HIVE-15331
                 URL: https://issues.apache.org/jira/browse/HIVE-15331
             Project: Hive
          Issue Type: Bug
          Components: Types
            Reporter: Jason Dere
            Assignee: Jason Dere


{noformat}
create temporary table dec (a decimal(38,18));
insert into dec values(100.0);

hive> select a*a from dec;
OK
NULL
Time taken: 0.165 seconds, Fetched: 1 row(s)
{noformat}

Looks like the reason is because the result of decimal(38,18) * decimal(38,18) 
only has 2 digits of precision for integers:

{noformat}
hive> set hive.explain.user=false;
hive> explain select a*a from dec;
OK
STAGE DEPENDENCIES:
  Stage-0 is a root stage

STAGE PLANS:
  Stage: Stage-0
    Fetch Operator
      limit: -1
      Processor Tree:
        TableScan
          alias: dec
          Select Operator
            expressions: (a * a) (type: decimal(38,36))
            outputColumnNames: _col0
            ListSink

Time taken: 0.039 seconds, Fetched: 15 row(s)
{noformat}



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

Reply via email to