Re: Repeatable Read Isolation Level "transaction start time" - Mailing list pgsql-general

From David G. Johnston
Subject Re: Repeatable Read Isolation Level "transaction start time"
Date
Msg-id CAKFQuwYvh02jtAAmybAPGC00k-AWiOqm3vT2Aj3m8dKLO+fugg@mail.gmail.com
Whole thread Raw
In response to Repeatable Read Isolation Level "transaction start time"  (Wizard Brony <wizardbrony@gmail.com>)
Responses Re: Repeatable Read Isolation Level "transaction start time"
List pgsql-general
On Monday, September 23, 2024, Wizard Brony <wizardbrony@gmail.com> wrote:
https://www.postgresql.org/docs/16/transaction-iso.html#XACT-REPEATABLE-READ

The PostgreSQL documentation for the Repeatable Read Isolation Level states the following:

“UPDATE, DELETE, MERGE, SELECT FOR UPDATE, and SELECT FOR SHARE commands behave the same as SELECT in terms of searching for target rows: they will only find target rows that were committed as of the transaction start time.”

What is defined as the "transaction start time?" When I first read the statement, I interpreted it as the start of the transaction:

BEGIN;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

But in my testing, I find that according to that statement, the transaction start time is actually "the start of the first non-transaction-control statement in the transaction" (as mentioned earlier in the section). Is my conclusion correct, or am I misunderstanding the documentation?


Probably, since indeed the transaction cannot start at begin because once it does start it cannot be modified.

David J.
 

pgsql-general by date:

Previous
From: Ayush Vatsa
Date:
Subject: Issues with PostgreSQL Source Code Installation
Next
From: Ron Johnson
Date:
Subject: Re: Repeatable Read Isolation Level "transaction start time"