From: | Wizard Brony <wizardbrony(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Repeatable Read Isolation Level "transaction start time" |
Date: | 2024-09-23 15:15:20 |
Message-ID: | 9CEBFAC7-4372-4FF0-8124-FFFE834B03C6@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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?
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2024-09-23 15:16:53 | Re: Customize psql prompt to show current_role |
Previous Message | Dominique Devienne | 2024-09-23 15:07:47 | Re: Customize psql prompt to show current_role |