"hubert depesz lubaczewski" <depesz@xxxxxxxxx> writes: > but in 8.3 i get: > # select 1 where '1'::text in (1::int8); > ERROR: operator does not exist: text = bigint > why? i mean - i see that types are bad, but it worked in 8.2. why it was > broken/modified in 8.3? This is intentional --- implicit casts to text are gone. You should be happy that the above now fails, because it's calling your attention to the fact that you've got very ill-defined semantics there. Is the comparison going to be done according to text rules, or according to int8 rules? (This would matter, for instance, if there was a space in the string.) There are dozens of examples in the archives of people having been burnt by the old behavior, for instance http://archives.postgresql.org/pgsql-general/2007-02/msg01028.php http://archives.postgresql.org/pgsql-general/2007-02/msg00871.php http://archives.postgresql.org/pgsql-hackers/2005-11/msg00510.php regards, tom lane