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

From: Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>
To: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
Cc: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, pgsql-hackers mailing list <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: SSI: ON CONFLICT DO SELECT takes no predicate lock on the returned row
Date: 2026-10-01 08:28:04
Message-ID: CAN4CZFPzwmTjbsu_hVu2bFENCssmycf4d1etjOn=mNq7dHwcoQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> I found a caller in pg_lake [0] that creates its own EState without
> setting es_snapshot. It pushes an active snapshot, but passes the
> unchanged EState to ExecCheckIndexConstraints(). Your proposed
> InvalidSnapshot guard would cover this too.

Maybe we should open a bug report to pg_lake about this? Even if we
allow for this here, the documentation still requires es_snapshot to
be set.

I attached v2 based on Dean's suggestion, if we want to go that route.
I would still be leaning towards including both code changes instead
(or if we do not want that, adjusting the documentation about this),
but for now this is a simple alternative patch that only relaxes the
original fix when we use es_snapshot.

Attachment Content-Type Size
v2-0001-Fix-crash-in-logical-replication-apply-worker-at-.patch application/octet-stream 4.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Zsolt Parragi 2026-10-01 08:54:05 Re: REPACK: warn about skipping foreign partitions
Previous Message Álvaro Herrera 2026-10-01 08:27:49 Re: Commitfest PG20-2 is now closed