BUG #18990: The results of equivalent queries are inconsistent (one returns 0, another returns -0)

PG Bug reporting form <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: jinhui-lai@foxmail.com
Date: 2025-07-17T11:30:40Z
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      18990
Logged by:          Jinhui
Email address:      jinhui-lai@foxmail.com
PostgreSQL version: 17.5
Operating system:   ubuntu 22.04
Description:        

Hi, PG developers

Thanks for reading my report!

You can reproduce it as follows:

SELECT DISTINCT t1.c0 FROM t1 WHERE NOT EXISTS (SELECT 1 FROM t0 WHERE t1.c0
> t0.c0)
UNION
SELECT DISTINCT t1.c0 FROM t1 WHERE EXISTS (SELECT 1 FROM t0 WHERE t1.c0 >
t0.c0);
c0
----
 -4
 -3
 -2
 -1
 -0
  1

SELECT DISTINCT t1.c0 FROM t1;
 c0
----
  0
 -2
 -1
 -4
 -3
  1

Thanks once again for your precious time.

Best regard,

Jinhui