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)