From: PG Doc comments form <noreply@postgresql.org>
To: pgsql-docs@lists.postgresql.org
Cc: anthony@berglas.org
Subject: Common case not at all clear
Date: Wed, 28 Jul 2021 03:48:04 +0000
Message-ID: <162744408450.25751.18322473171054919168@wrigleys.postgresql.org> (raw)
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/13/transaction-iso.html
Description:
For all this documentation, it is completely unclear how to handle the most
common, simple case. I.e.
Select balance into :bal ...where key =123;
Update set balance = :bal+100 where key = 100
The discussion of read committed for Updates is misleading, I am pretty sure
it will fail if the select is in a different statement, a common case.
For Oracle, I think that by default a Select will return values at the
beginning of a transaction, Select For Update will return the read committed
value, and Select For Update will wait until conflicting transactions
complete. So the answer is that the first Select would be a Select For
Update, which should be the normal pattern to be safe (with primary key
access) and minimize deadlocks.
Is that how PostgreSql works? Is that the generally recommended pattern?
Impossible to tell from the docs as written. MVCC really relies on Select
For Update to work for transactions, I think.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: noreply@postgresql.org, pgsql-docs@lists.postgresql.org, anthony@berglas.org
Subject: Re: Common case not at all clear
In-Reply-To: <162744408450.25751.18322473171054919168@wrigleys.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox