drill-dev mailing list archives

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

             Summary: 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