drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chun Chang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-861) sum(decimal38) gives wrong result, even without overflowing
Date Thu, 29 May 2014 23:08:01 GMT

    [ https://issues.apache.org/jira/browse/DRILL-861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14013073#comment-14013073
] 

Chun Chang commented on DRILL-861:
----------------------------------

similar error for sum() for decimal28.

> sum(decimal38) gives wrong result, even without overflowing
> -----------------------------------------------------------
>
>                 Key: DRILL-861
>                 URL: https://issues.apache.org/jira/browse/DRILL-861
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Functions - Drill
>            Reporter: Chun Chang
>            Assignee: Mehant Baid
>
> #Wed May 28 17:19:59 PDT 2014
> git.commit.id.abbrev=c8a08c3
> sum over decimal38 type of data gives wrong result. this is without encounter overflowing.
> I have the following data in a decimal38 column:
> 0: jdbc:drill:schema=dfs> select cast(c_decimal38 as decimal(38,14)) from data where
c_row <= 14;
> +------------+
> |   EXPR$0   |
> +------------+
> | 0E-14      |
> | 1.00000000000000 |
> | 123456789.00000000000000 |
> | 999999999.00000000000000 |
> | -999999999.00000000000000 |
> | 1.000000E-8 |
> | -1.000000E-8 |
> | 12345.67890000000000 |
> | 123456789.12345678900000 |
> | 999999999999999999.00000000000000 |
> | -999999999999999999.00000000000000 |
> | 0E-14      |
> | 0E-14      |
> | 12345678901234.12345678901234 |
> +------------+
> 14 rows selected (0.288 seconds)
> The sum of the columns gives the following wrong number:
> 0: jdbc:drill:schema=dfs> select sum(cast(c_decimal38 as decimal(38,14))) from data
where c_row <= 14;
> +------------+
> |   EXPR$0   |
> +------------+
> | 1.2345925827186123E13 |
> The correct number should be (from postgres, I also hand calculated):
> foodmart=# select sum(cast(c_decimal38 as decimal(38,14))) from data where c_row <=
14;
>               sum
> -------------------------------
>  12345925827158.92581357801234



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message