mirror of
https://github.com/apache/impala.git
synced 2026-01-22 18:02:34 -05:00
Currently -0.0/+0.0 values are hashed to different values due to their different binary representation, while -0.0==+0.0 is true in C++. This caused them to be distinct values in hash maps despite being treated as equal in comparisons. This commit fixes the hashing of -0.0/+0.0, thus changing the behaviour of hash joins and aggregations (since aggregations follow the behaviour of the join). That way, the canonical form for -0/+0 is changed to +0. Tests: - Added e2e tests for aggregation (group by and distinct) and join queries with -0.0 and +0.0 present. Change-Id: I6bb1a817c81c452d041238c19cb6c9f602a5d565 Reviewed-on: http://gerrit.cloudera.org:8080/14588 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
35 KiB
35 KiB