You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Jason Dere (JIRA)" <ji...@apache.org> on 2016/12/01 19:09:58 UTC

[jira] [Created] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL

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)