From: PG Doc comments form <noreply@postgresql.org>
To: pgsql-docs@lists.postgresql.org
Cc: noamraph@gmail.com
Subject: I think that the transaction tutorial document (3.4) should mention transaction isolation
Date: Thu, 02 Mar 2023 13:55:31 +0000
Message-ID: <167776533152.987840.17852197823152196095@wrigleys.postgresql.org> (raw)
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/15/tutorial-transactions.html
Description:
Hi,
I just discovered that by default, transactions are not entirely isolated. I
think that the tutorial should mention this.
The tutorial gives the example of a bank account, where you make two
commands, one to increase the balance and one to decrease the balance,
explaining why you need a transaction. The example, in which the command is
"UPDATE accounts SET balance = balance - 100.00 WHERE name = 'Alice'", would
indeed be correct with the default transaction isolation. However, if the
transaction included getting the balance by a program, adding 100 to it, and
then setting the balance, consistency would not always be kept, since
another transaction could have modified the balance in between. By just
reading the tutorial, the reader would have no idea that this may happen.
I think that a notice saying that for absolute transaction isolation you
should set the default transaction isolation to serializable, and be
prepared to have transactions fail, and referring to the more details
document, would help users prevent consistency bugs.
Thanks,
Noam
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, noamraph@gmail.com
Subject: Re: I think that the transaction tutorial document (3.4) should mention transaction isolation
In-Reply-To: <167776533152.987840.17852197823152196095@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