Hi, I have bunch of rules created for tables to implement upsert functionality. My problem is our tables gets updated from multiple places , non –necessarily with the same no of columns. I want to figure out columns are being asked to be updated E.g. The rule for the the table base-table is CREATE OR REPLACE RULE base-table-rule AS ON INSERT TO base-table WHERE (EXISTS ( SELECT 1 FROM base-table WHERE bas-table::x1 = new.x1 )) DO INSTEAD UPDATE base-table SET x1=new.x1,x2=new.x2,x3 =new.x3,x4=new.x4 WHERE base-table.x1= new.x1; 1) user 1 comes with the below insert Insert into base-table(x1,x2,x3,x4) values(v1,v2,v3,v4); 2) user 2 comes with the below insert Insert into base-table(x1,x2) values(v1,v2); Since user 2 uses only x1 and x2 as its column the rule replaces x3 and x4 with null. Is there a way to figure out that only x1 and x2 is being asked for an updating. In the above example column x1 is the primary key. Thanks, Sajeev |