# hive-issues mailing list archives

##### Site index · List index
Message view
Top
From "Jason Dere (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
Date Thu, 15 Dec 2016 22:44:58 GMT
```
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15752726#comment-15752726
]

Jason Dere commented on HIVE-15331:
-----------------------------------

Which file in particular? These are all cases where the resulting precision/scale exceeds
38 - for example decimal_precision.q.out, the operation is decimal(20,10) * decimal(20,10),
the precision/scale (assuming unlimited precision/scale) would be decimal(41,20), however
we're already at the Hive limit of 38.
So this is where the updated logic would kick in terms of making the precision/scale fit within
38 digits.

> 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
>         Attachments: HIVE-15331.1.patch, HIVE-15331.2.patch, HIVE-15331.3.patch
>
>
> {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)

```
Mime
View raw message