Re: BUG #13846: INSERT ON CONFLICT consumes sequencers on conflicts

From: Andres Freund <andres(at)anarazel(dot)de>
To: paul(at)salesintel(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #13846: INSERT ON CONFLICT consumes sequencers on conflicts
Date: 2016-01-05 16:13:26
Message-ID: 20160105161326.GD7650@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 2016-01-05 15:02:27 +0000, paul(at)salesintel(dot)com wrote:
> The following bug has been logged on the website:
>
> Bug reference: 13846
> Logged by: Paul Hester
> Email address: paul(at)salesintel(dot)com
> PostgreSQL version: 9.5rc1
> Operating system: Windows 10 Pro
> Description:
>
> When using an INSERT statement with an ON CONFLICT clause, if there is a
> conflict, and the table being inserted into has a column defaulted to
> nextval('seq'), the sequencer 'seq' is always incremented. This can quickly
> and artificially consume all values of the sequencer; it behaves as if
> conflict detection happens after inserts are attempted, rather than before.

Yes. That's by design. You can't reliably do conflict detection before
evaluating column default values.

Andres Freund

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Paul 2016-01-05 17:27:22 Re: BUG #13846: INSERT ON CONFLICT consumes sequencers onconflicts
Previous Message gnkna 2016-01-05 15:15:26 BUG #13847: WARNING: skipping "pg_toast_" --- cannot vacuum indexes, views, or special system tables VACUUM