On Dec 17, 2007 12:24 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > "robert lazarski" <robertlazarski@xxxxxxxxx> writes: > > Is there any way to get the above insert to work as is, via a function > > or some other way? I tried the function of another poster but it seems > > there is already a cast built in for 8.1.9 for integer to boolean, and > > it didn't work for me on the above insert. > > You could mark the built-in cast as assignment-only (I wouldn't > recommend setting it to implicit, as it's not clear what cases > that might break). > > d1=# create table foo (f1 bool); > CREATE TABLE > d1=# insert into foo values(1); > ERROR: column "f1" is of type boolean but expression is of type integer > HINT: You will need to rewrite or cast the expression. > d1=# update pg_cast set castcontext = 'a' where castsource = 'int'::regtype > d1-# and casttarget = 'bool'::regtype; > UPDATE 1 > d1=# insert into foo values(1); > INSERT 0 1 > > Unfortunately this is something you'd have to do over after any database > reload, because pg_dump won't preserve changes to the definitions of > built-in objects. > > regards, tom lane > Snoopy dance <http://www.google.com/search?q=snoopy+dance> :-) That worked great!!! Kind regards, Robert ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly