Ian Cook created IMPALA-7255:
--------------------------------
Summary: Incorrect result rounding midpoint negative numbers to
negative precision
Key: IMPALA-7255
URL: https://issues.apache.org/jira/browse/IMPALA-7255
Project: IMPALA
Issue Type: Bug
Reporter: Ian Cook
Based on the Impala docs and on the behavior of other SQL engines, it's evident
that:
{{round(-55, -1)}} should return {{-60}}
{{round(-550, -2)}} should return {{-600}}
and so on, because negative values at the midpoint between the upper and lower
rounded values are supposed to round to the value farther from zero. However,
in Impala:
{{round(-55, -1)}} returns {{-50}}
{{round(-550, -2)}} returns {{-500}}
and so on. This issue affects cases where both arguments are negative and the
number being rounded is at the midpoint. I believe this issue affects cases
where the first argument has any of the integer data types or the {{FLOAT}} or
{{DOUBLE}} type, but not when it has a {{DECIMAL}} type. This issue seems to
occur regardless of whether the numbers being rounded are specified as
literals, column references, or expressions.
To reproduce this, execute queries like:
{{SELECT round(-55, -1);}}
{{SELECT round(-550, -2);}}
{{SELECT round(cast(-550 AS BIGINT), -2);}}
{{SELECT round(cast(-550 AS DOUBLE), -2);}}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]