| From: | Ewan Young <kdbase(dot)hack(at)gmail(dot)com> |
|---|---|
| To: | Tender Wang <tndrwang(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: btree_gist: Fix NaN handling in float4 and float8 opclasses |
| Date: | 2026-06-17 10:36:17 |
| Message-ID: | CAON2xHMrsUkWw6=ZfxA73dp1iBhr1r0aj=C0BwuE8dtE2DqsTQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Thanks Tender -- you're right, this is the same issue as #19501
(Man Zeng, 2026-05-29), which I missed before posting. Apologies for
the duplicate; let's consolidate on that thread.
On Wed, Jun 17, 2026 at 5:56 PM Tender Wang <tndrwang(at)gmail(dot)com> wrote:
>
> Ewan Young <kdbase(dot)hack(at)gmail(dot)com> 于2026年6月17日周三 16:40写道:
> >
> > Hi,
> >
> > A GiST index on a float4/float8 column (via btree_gist) can silently
> > omit rows containing NaN, returning different results from a sequential
> > scan:
> >
> > CREATE EXTENSION btree_gist;
> > CREATE TABLE t (a float8);
> > INSERT INTO t SELECT 1 FROM generate_series(1, 1000);
> > INSERT INTO t SELECT 'NaN' FROM generate_series(1, 1000);
> > CREATE INDEX ON t USING gist (a);
> >
> > SET enable_seqscan = on;
> > SELECT count(*) FROM t WHERE a = 'NaN'; -- 1000
> > SET enable_seqscan = off;
> > SELECT count(*) FROM t WHERE a = 'NaN'; -- 0 (wrong)
> >
>
> It seems the issue you reported is the same as [1].
> Please double-check.
>
> [1] https://www.postgresql.org/message-id/19501-3bff3bbc97f1e7c9%40postgresql.org
>
>
> --
> Thanks,
> Tender Wang
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ilia Evdokimov | 2026-06-17 10:48:15 | Re: Show estimated number of groups for IncrementalSort in EXPLAIN |
| Previous Message | Etsuro Fujita | 2026-06-17 10:23:07 | Re: use of SPI by postgresImportForeignStatistics |