mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-28 20:27:03 +00:00
This patch contains tests reproducing issue #13601 and the corresponding Cassandra issue CASSANDRA-18470. These issues are about what the AVG aggregation does for arbitrary-precision "decimal" numbers - the tests we add here show examples where the current behavior doesn't make sense: The problem is that "decimal" has arbitrary precision - so, should an average of 1/3 be returned as 0.3 or 0.33333333333333333? This is not specified, so Scylla (and Cassandra) decided to pick the result precision based on the input precision. In particular, the average of 1 and 2 is returned as 2 (zero digits after the decimal point, like in the inputs) instead of the expected 1.5. Arguably this isn't useful behavior. The test adds a second test which fails on Cassandra, but does pass on Scylla: Cassandra returns as the average of 1, 2, 2, 3 the integer 1 whereas the correct average is 2 (and Scylla returns it correctly). The reason why this bug is even worse on Cassandra is that Scylla's AVG only loses precision when dividing the sum and count, but Cassandra tries to maintain only the average, and loses precision at every step. Refs #13601 Signed-off-by: Nadav Har'El <nyh@scylladb.com> Closes #13603