BUG #3661: Missing equality comparator: string = integer
The following bug has been logged online:
Bug reference: 3661
Logged by: David Bachmann
Email address: david.bachmann@ersystems.ch
PostgreSQL version: 8.3-beta1
Operating system: Windows XP
Description: Missing equality comparator: string = integer
Details:
This does not function any more under PG 8.3-beta1:
select '5'::varchar = 5;
ERROR: operator does not exist: character varying = integer
select '5'::char = 5;
ERROR: operator does not exist: character = integer
Note that this still works:
select '5' = 5;
Am Dienstag, 9. Oktober 2007 schrieb David Bachmann:
This does not function any more under PG 8.3-beta1:
select '5'::varchar = 5;
ERROR: operator does not exist: character varying = integer
That is intentional. Fix your application by inserting appropriate explicit
casts.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
This does not function any more under PG 8.3-beta1:
select '5'::varchar = 5;
ERROR: operator does not exist: character varying = integerselect '5'::char = 5;
ERROR: operator does not exist: character = integer
you cannot compare any character type and numeric type. If you wont to
do, you have to cast to text or use function to_char or to_numeric.
Note that this still works:
select '5' = 5;
It is integer = integer. Value in apostrophes doesn't mean 100% char
or varchar in Postgres. Pg detects unknown type (in apostrophes)
accordance with know type (integer)
try:
postgres=# select '5.0'=5;
ERROR: invalid input syntax for integer: "5a"
postgres=# select '5.0'=5;
ERROR: invalid input syntax for integer: "5.0"
postgres=# select '5.0'=5.0;
?column?
----------
t
(1 row)
Show quoted text
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?