Its not a bug - automatic casting was removed in 8.3. You should cast( a as text)||cast(b ... = cast(123456 as text). Other option is to define your own operators which is to be used only in case you can not fix clients of your database...
Tony Liao rašė:
hi,all for example tableA create table tableA ( id serial, a integer, b integer, c integer ); insert into tableA (a,b,c) values (12,34,56);
then, select id from tableA where (a||b||c)=123456; in postgresql version 8.2.11,it works. but in postgresql version 8.3.6,the error as bellow: ERROR: operator does not exist: integer || integer LINE 1: select id from tableA where (a||b||c)=123456; ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
is it a bug in 8.2.11 or I install 8.3.6 not completely?
-- Julius Tuskenis Programavimo skyriaus vadovas UAB nSoft mob. +37068233050