Re: SSI: ON CONFLICT DO SELECT takes no predicate lock on the returned row

From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Cc: Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>, pgsql-hackers mailing list <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Nathan Bossart <nathandbossart(at)gmail(dot)com>
Subject: Re: SSI: ON CONFLICT DO SELECT takes no predicate lock on the returned row
Date: 2026-09-12 18:01:21
Message-ID: 0508CF9D-C41C-4240-9380-39FC611569C4@yandex-team.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Dean,

On 12 Sep 2026, Dean Rasheed wrote:
> possible to fix this without a potentially expensive re-fetch.

Unlike v4, v5 also takes SIREAD locks on index pages, which can cause
extra false positives. The additional retries could outweigh saving
the fetch.

Also, violationOK includes preliminary checks of deferred exclusion
constraints, so v5 adds predicate locking there at SERIALIZABLE too.
Is that needed? Could we restrict the new snapshot to arbiter probes?

Thank you!

Best regards, Andrey Borodin.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ayush Tiwari 2026-09-12 18:10:23 Re: [BUG] ON CONFLICT DO UPDATE SET x = EXCLUDED.<virtual-generated-column> errors or silently writes NULL
Previous Message Rui Zhao 2026-09-12 17:46:18 Re: Support for 8-byte TOAST values, round two