On Monday, September 23, 2024, Wizard Brony <wizardbr...@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.