On Tue, Jan 04, 2005 at 11:51:54PM -0600, Jaime Casanova wrote: > create view vfoo as select oid, * from foo; > ... > create rule insrule as on insert to vfoo > do instead > insert into foo(id, name) values (new.id, new.name); > ... > insert into vfoo values(1, 'test1'); > ERROR: invalid input syntax for integer: "test1" > > it seems like it's trying to insert into the oid > column is that the intended behaviour? or is it a bug? > (i think is the latter).
vfoo has three fields: oid, id, and name. If you INSERT without a column list, the values are assigned to the columns in order: oid=1, id='test1', name=NULL. Are you suggesting that the insert should ignore oid since its source is a system column? I'm not sure such behavior would be desirable because of the inconsistency it would introduce: sometimes values would be assigned to the displayed columns in order, but other times one or more of those columns might be implicitly skipped. -- Michael Fuhr http://www.fuhr.org/~mfuhr/ ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org