Thread: Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column)

Strange behaviour of RULE (selecting last inserted ID of 'sequenced' column)

From
"Nikolay Samokhvalov"
Date:
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