You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2014/07/08 03:05:35 UTC

[jira] [Commented] (DRILL-861) sum(decimal38) gives wrong result, even without overflowing

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

Jacques Nadeau commented on DRILL-861:
--------------------------------------

Fixed by 810a204 or earlier.

> 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: DrillCommitter
>             Fix For: 1.0.0-BETA1
>
>         Attachments: DRILL-861.patch
>
>
> #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)