Erik Nordström 3170014030 Fix NaN-handling for vectorized aggregation
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.
2025-01-10 09:16:37 +01:00

2 lines
57 B
Plaintext

Fixes: #7584 Fix NaN-handling for vectorized aggregation