From: | David Hunnisett <david(dot)hunnisett(at)probit(dot)io> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | differences between <> and != when using signed values on the right hand side |
Date: | 2024-05-16 09:27:25 |
Message-ID: | B9C40FC5-5FA1-40DF-BC91-114493622F61@probit.io |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
When using a signed comparison != does not behave like <> if the right hand side comparator is signed and there is no space between the comparator and the sign
<>+1
<>-1
Both bahave as the inverse to
=+1
=-1
But
!=-1
!=+1
Throw errors.
Tested with 16.3,13.15 and 9.6.24
postgres=# select version();
version
---------------------------------------------------------------------------------------------------------------------------
PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)
postgres=# select 1<>-1.0;
?column?
----------
t
(1 row)
postgres=# select 1<>-1;
?column?
----------
t
(1 row)
postgres=# select 1!=-1.0;
ERROR: operator does not exist: integer !=- numeric
LINE 1: select 1!=-1.0;
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
postgres=# select 1!=-1;
ERROR: operator does not exist: integer !=- integer
LINE 1: select 1!=-1;
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Adding a space does produce the expected answer
select 1!= -1.0;
?column?
----------
t
(1 row)
From | Date | Subject | |
---|---|---|---|
Next Message | Japin Li | 2024-05-16 09:54:03 | Re: BUG #18467: postgres_fdw (deparser) ignores LimitOption |
Previous Message | Etsuro Fujita | 2024-05-16 09:11:36 | Re: BUG #18467: postgres_fdw (deparser) ignores LimitOption |