Re: BUG #13846: INSERT ON CONFLICT consumessequencersonconflicts

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: BUG #13846: INSERT ON CONFLICT consumessequencersonconflicts
Дата
Msg-id CAKFQuwZzqqpeOfqzs3gOMdV6dnA14Rr22nG30Fn9Fadb+W8aVA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #13846: INSERT ON CONFLICT consumessequencersonconflicts  (Peter Geoghegan <pg@heroku.com>)
Список pgsql-bugs
On Fri, May 6, 2016 at 12:10 PM, Peter Geoghegan <pg@heroku.com> wrote:

> On Fri, May 6, 2016 at 12:02 PM, David G. Johnston
> <david.g.johnston@gmail.com> wrote:
> > To solve this situation it is likely that some form of "UPDATE ON MISSI=
NG
> > INSERT" would need to be designed.  The insert portion would specify
> > "DEFAULT" for sequence columns and would execute nextval() only if the =
ON
> > MISSING portion is executed.
>
> That's unworkable, at least without accepting a bunch of new
> edge-cases, like having the insert then have a duplicate violation
> involving a value that was determined to not exist in the first phase.
> IOW, it's unworkable to do an insert on the basis of an *absence* of
> something in an index or in a table (and not get those edge-cases).
> Doing so on the basis of the *presence* of a value (i.e. INSERT ... ON
> CONFLICT DO UPDATE as implemented) lets the implementation clamp down
> on race conditions enough to provide those useful user-visible
> guarantees about getting 1 of 2 possible outcomes.
>
> There are multiple definitions of a value "existing" here that are in
> tension here. It's rather complicated.
>

=E2=80=8BUPDATE ON MISSING INSERT ON CONFLICT DO THE ORIGINAL UPDATE ...

=E2=80=8BI'm nowhere near close enough to this to contribute deeply - the m=
ost I
hope for is to spark an idea in someone else.

=E2=80=8BDavid J.
=E2=80=8B

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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: BUG #13846: INSERT ON CONFLICT consumessequencersonconflicts
Следующее
От: Paul
Дата:
Сообщение: Re: BUG #13846: INSERT ON CONFLICTconsumessequencersonconflicts