Re: Foreign key isolation tests
От | Álvaro Herrera |
---|---|
Тема | Re: Foreign key isolation tests |
Дата | |
Msg-id | 202509111622.zdaxtors4wxy@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: Foreign key isolation tests (Paul A Jungwirth <pj@illuminatedcomputing.com>) |
Список | pgsql-hackers |
Thank you, I pushed 0001 and 0002. Regarding 0003, On 2025-Aug-11, Paul A Jungwirth wrote: > /* > * We implement three isolation levels internally. > - * The two stronger ones use one snapshot per database transaction; > - * the others use one snapshot per statement. > + * The weakest uses one snapshot per statement; > + * the two stronger levels use one snapshot per database transaction. > * Serializable uses predicate locks in addition to snapshots. > * These macros should be used to check which isolation level is selected. > */ 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) -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "Porque Kim no hacía nada, pero, eso sí, con extraordinario éxito" ("Kim", Kipling)
В списке pgsql-hackers по дате отправления: