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)

Reply via email to