Re: [BUGS] BUG #14526: no unique or exclusion constraint matching theON CONFLICT

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: [BUGS] BUG #14526: no unique or exclusion constraint matching theON CONFLICT
Дата
Msg-id CAH2-Wz=ui3Asb8xtY40L1jF4cxgqmnoSbmpoJT74TWSUYMz69g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [BUGS] BUG #14526: no unique or exclusion constraint matching theON CONFLICT  (Peter Geoghegan <pg@bowt.ie>)
Ответы Re: [BUGS] BUG #14526: no unique or exclusion constraint matching theON CONFLICT
Re: [BUGS] BUG #14526: no unique or exclusion constraint matching the ON CONFLICT
Список pgsql-bugs
On Tue, Feb 7, 2017 at 5:41 PM, Peter Geoghegan <pg@bowt.ie> wrote:
> It won't work with deferrable constraints (even when immediate
> enforcement is in effect, so obscure reasons). Enforcement occurs in
> the executor -- see ExecCheckIndexConstraints().

Note also that it needs to happen in the executor, because
infer_arbiter_indexes() may return immediately when ON CONFLICT DO
NOTHING is used without the user specifying which particular
constraint to use as an arbiter.  (This is forbidden with ON CONFLICT
DO UPDATE, since it doesn't make sense to not have an arbiter in mind
there.)

This is actually noted directly within infer_arbiter_indexes(), about
half way down:

/*
 * Extract info from the relation descriptor for the index.  We know
 * that this is a target, so get lock type it is known will ultimately
 * be required by the executor.
 *
 * Let executor complain about !indimmediate case directly, because
 * enforcement needs to occur there anyway when an inference clause is
 * omitted.
 */

-- 
Peter Geoghegan


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: [BUGS] BUG #14526: no unique or exclusion constraint matching theON CONFLICT
Следующее
От: NAVEEN CHALIMETI
Дата:
Сообщение: Re: [BUGS] BUG #14531: server process (PID 12714) was terminated bysignal 11: Segmentation fault