From: | Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com> |
---|---|
To: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, Rustam ALLAKOV <rustamallakov(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Foreign key isolation tests |
Date: | 2025-09-11 16:54:54 |
Message-ID: | CA+renyXgq0AUiQnYPN-D6Wqv834ixqnAWn3HHrEGiMEKMdFewA@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Sep 11, 2025 at 9:30 AM Álvaro Herrera <alvherre(at)kurilemu(dot)de> wrote:
> The wording of the last sentence (which you don't change) is a bit
> funny, because the macros aren't really to be used to check which
> isolation level is selected (which an interested observer could
> determine simply by looking at XactIsoLevel). What they do is implement
> a layer on top of the selected isolation level -- they are there to know
> which implementation to use depending on the isolation level.
>
> I also think that, for the explanation about serializable, we should
> change "in addition to snapshots" to "in addition to the snapshot",
> calling out the fact that the transaction will in fact use a single
> snapshot throughout.
>
> So how about something like this? (I include the macros in question so
> that we see exactly what we're talking about).
>
> /*
> * We implement three isolation levels internally.
> * The weakest uses one snapshot per statement;
> * the two stronger levels use one snapshot per database transaction.
> * Serializable uses predicate locks in addition to the snapshot.
> * These macros can be used to determine which implementation to use
> * depending on the prevailing serialization level.
> */
> #define IsolationUsesXactSnapshot() (XactIsoLevel >= XACT_REPEATABLE_READ)
> #define IsolationIsSerializable() (XactIsoLevel == XACT_SERIALIZABLE)
These all seem like improvements to me. Thanks for the review!
--
Paul ~{:-)
pj(at)illuminatedcomputing(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Masahiko Sawada | 2025-09-11 17:46:20 | Re: POC: enable logical decoding when wal_level = 'replica' without a server restart |
Previous Message | Tom Lane | 2025-09-11 16:36:04 | Re: race condition in pg_class |