BUG #19524: NaN handling in btree_gist's float4/float8 opclasses
Bill Kim <billkimjh@gmail.com>
From: Bill Kim <billkimjh@gmail.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2026-06-28T02:14:35Z
Lists: pgsql-bugs
Hi all,
I have a patch for this and `make check` passes (core + all contrib, plus
new btree_gist NaN cases covering the three scenarios in the report).
Posting here first in case someone is already further along — if not,
I'll send it to pgsql-hackers and register it in the open CF in a couple
of days.
The fix swaps the five gbt_float{4,8}{gt,ge,eq,le,lt} comparators and
gbt_float{4,8}key_cmp for the NaN-aware float{4,8}_* helpers and
float{4,8}_cmp_internal() from utils/float.h — same total order the
btree opclass already uses. No on-disk change.
Bill
Commits
-
btree_gist: fix NaN handling in float4/float8 opclasses.
- d569ccd40858 16 (unreleased) landed
- d215d2cc2ae1 17 (unreleased) landed
- a47005f0b11d 19 (unreleased) landed
- 98dd4406f7a4 15 (unreleased) landed
- 7d3448961da3 master landed
- 255bce44884e 14 (unreleased) landed
- 1e1d07792e08 18 (unreleased) landed