From: | Hugo Jonker <hugo(at)gewis(dot)win(dot)tue(dot)nl> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Insert aborted, but Sequence increased |
Date: | 2002-07-08 15:29:14 |
Message-ID: | 20020708172914.Q19515@gewis.win.tue.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi,
While using Postgres, I encountered some unexpected behaviour.
In short:
---------
Upon doing a faulty INSERT which left a column with default value
nextval('sequence') unspecified, the INSERT aborted due to an error.
However, a call had been placed to nextval('sequence'), thus
increasing the sequence, while this value never got used.
I certainly didn't expect this.
Detailed report:
----------------
Table projectlist looks like:
wwf-projects=# \d projectlist
Table "projectlist"
Column | Type | Modifiers
-------------+-----------------------+--------------------------------------------------------
id | integer | not null default nextval('"projectlist_id_seq"'::text)
dbms_host | character varying(30) | not null
dbms_port | numeric(5,0) | not null
dbms_type | character varying(10) | not null
db_name | character varying(20) | not null
admin_login | character varying(20) | not null
admin_pwd | character varying(20) | not null
Unique keys: projectlist_id_key
We have a SEQUENCE for id:
wwf-projects=# select currval('"projectlist_id_seq"'::text);
currval
---------
6
(1 row)
Now if we try to perform a faulty INSERT, the INSERT aborts. However,
the SEQUENCE is increased!:
wwf-projects=# insert into projectlist (dbms_host, dbms_port, dbms_type,
db_name, admin_login, admin_pwd) values ('webadmict.tue.nl','5432',
'hugotest-2', 'test', 'test');
ERROR: ExecAppend: Fail to add null value in not null attribute admin_pwd
wwf-projects=# select currval('"projectlist_id_seq"'::text);
currval
---------
7
(1 row)
So 'currval' increased due to an INSERT that was aborted.
(Yes, the insert is definately not in the table).
I'm not sure if one can call this a bug, but it is unexpected behaviour
-- to me, at least.
Regards,
Hugo Jonker.
PS: My apologies about not being on the list, but it was taking longer than
expected to get on.
From | Date | Subject | |
---|---|---|---|
Next Message | Tomisaw Kityski | 2002-07-08 20:01:33 | SERIAL type, NOT NULL constraint and rule |
Previous Message | eric | 2002-07-08 14:41:01 | segfault which isn't supposed to happen (including example code) |