mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-14 09:37:00 +08:00
The vector agg functions didn't handle NaN-floats properly for min/max functions, which produced the wrong `min()` output when NaN values were presents (e.g., picking NaN over -Inf). NaN-checks are different for min and max so the checks are moved to the predicate macro instead of being defined in the template function. The previously erroneous handling of NaN is evident by some of the changes in the test output. However, some queries didn't run any actual vectorized agg plans when they should have, thus "accidentally" producing the correct min result in the test file. In those cases, instead of the vectorized plan, the test ran an init plan doing a sort with a limit of 1 to find the min. Disabling sort in the test ensures the plan is vectorized, and thus producing the erroneous result when the fix is not present.
2 lines
57 B
Plaintext
2 lines
57 B
Plaintext
Fixes: #7584 Fix NaN-handling for vectorized aggregation
|