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