I still think that this is quite strange behaviour. When I write '...SELECT NEW.id...' I don't expect that another calling of column's default expr will take place. I just want to have access to "id" column of just-created row.
Any thoughts? ---------- Forwarded message ---------- From: Nikolay Samokhvalov <[EMAIL PROTECTED]> Date: Jul 13, 2006 6:15 PM Subject: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column) To: PostgreSQL-general <pgsql-general@postgresql.org> Is this a bug? test=> create sequence strange_seq; CREATE SEQUENCE test=> create table strange(id integer not null default nextval('strange_seq') primary key, data text); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "strange_pkey" for table "strange" CREATE TABLE test=> create rule strange_rule as on insert to strange do select new.id as id; CREATE RULE test=> insert into strange(data) values('adas'); id ---- 2 (1 row) test=> select * from strange; id | data ----+------ 1 | adas (1 row) test=> insert into strange(data) values('adas'); id ---- 4 (1 row) test=> insert into strange(data) values('adas'); id ---- 6 (1 row) test=> select * from strange; id | data ----+------ 1 | adas 3 | adas 5 | adas (3 rows) -- Best regards, Nikolay -- Best regards, Nikolay ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings