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

Nadav Har'El commented on CASSANDRA-18470:
------------------------------------------

Benedict, I confirmed your worry in the last paragraph: The fact that the 
implementation's is keeping only "avg" and not the sum and count separately 
indeed makes this bug even worse:

Today, the AVG of _decimal_ values {*}1{*}, {*}2{*}, *2, 3* comes out as an 1, 
while the correct result isĀ  2.

So the current algorithm can be wrong even if we know a-priori that the result 
is an integer.

> Average of "decimal" values rounds the average if all inputs are integers
> -------------------------------------------------------------------------
>
>                 Key: CASSANDRA-18470
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18470
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Nadav Har'El
>            Priority: Normal
>
> When running the AVG aggregator on "decimal" values, each value is an 
> arbitrary-precision number which may be an integer or fractional, but it is 
> expected that the average would be, in general, fractional. But it turns out 
> that if all the values are integer *without* a ".0", the aggregator sums them 
> up as integers and the final division returns an integer too instead of the 
> fractional response expected from a "decimal" value.
> For example:
>  # AVG of {{decimal}} values 1.0 and 2.0 returns 1.5, as expected.
>  # AVG of 1.0 and 2 or 1 and 2.0 also return 1.5.
>  # But AVG of 1 and 2 returns... 1. This is wrong. The user asked for the 
> average to be a "decimal", not a "varint", so there is no reason why it 
> should be rounded up to be an integer.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to