The "default" values of a column during table definition do not accept values generated by passing another column's value through my own function. So I try to do this with a rule as follows. The name of my function in this example is MYFUNCTION. drop table test cascade; create table test (id serial primary key, nowd timestamp without time zone, processed_id varchar(10)); create or replace rule test_ins as on insert to test DO UPDATE test SET processed_id = MYFUNCTION(NEW.id) WHERE id = NEW.id ; insert into test (nowd) values (current_timestamp); insert into test (nowd) values (now()); select * from test; This results in the "processed_id" column coming up blank. What am I doing wrong? How can I make sure that upon insert of a row, the value of one column ("id in my example) is used to immediately generate the value of another column ("process_id" in my example). ---------------------------(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