RE: BUG #15935: Auto increment column changes on error whileinserting (violating unique constraint)

Поиск
Список
Период
Сортировка
От David Raymond
Тема RE: BUG #15935: Auto increment column changes on error whileinserting (violating unique constraint)
Дата
Msg-id VI1PR07MB5792827D83F27490A89F5A7487DF0@VI1PR07MB5792.eurprd07.prod.outlook.com
обсуждение исходный текст
Ответ на BUG #15935: Auto increment column changes on error while inserting (violating unique constraint)  (PG Bug reporting form <noreply@postgresql.org>)
Список pgsql-bugs
That's expected. You can see the note here:
https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL


Note

Because smallserial, serial and bigserial are implemented using sequences, there may be "holes" or gaps in the sequence
ofvalues which appears in the column, even if no rows are ever deleted. A value allocated from the sequence is still
"usedup" even if a row containing that value is never successfully inserted into the table column. This may happen, for
example,if the inserting transaction rolls back. See nextval() in Section 9.16 for details.
 



-----Original Message-----
From: PG Bug reporting form <noreply@postgresql.org> 
Sent: Wednesday, July 31, 2019 7:30 AM
To: pgsql-bugs@lists.postgresql.org
Cc: muhammadalinazarov@gmail.com
Subject: BUG #15935: Auto increment column changes on error while inserting (violating unique constraint)

The following bug has been logged on the website:

Bug reference:      15935
Logged by:          Muhammadali Nazarov
Email address:      muhammadalinazarov@gmail.com
PostgreSQL version: 11.1
Operating system:   Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86
Description:        

I have seen one interesting behavior.
Let me show on example.

create table tmp (
id serial,
user_id int unique not null);

insert into tmp(user_id)
select 1;

our id => 1, autoincrement value 2;
insert into tmp(user_id)
select 1;

violating unique constraint, autoincrement value 3;
insert into tmp(user_id)
select 2;

select id, user_id
from tmp;
id | user_id 
----+---------
  1 |       1
  3 |       2

Is this a bug or no?
Thank you for your attention.


В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #15935: Auto increment column changes on error while inserting (violating unique constraint)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15934: pg_dump output in wrong order if custom operator class is used as subtype_opclass in a range type