Subject: Serializable description seems misleading?

From: PG Doc comments form <[email-masked]>
Date: Tue, 10 Dec 2019 21:49:54 +0000

The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/12/transaction-iso.html
Description:

Let's say I have two transactions running in Serializable isolation:
T1: Reads a row
T2: Reads the same row
T1: Updates the row
T1: Commits
T2: Commits

You will not get an error on the second commit. These appear to fit the
description of concurrent transactions, and running one before the other
would give different results in the reading of the row by T2, depending on
which transaction was executed first. So how does this square with the docs
that state "it monitors for conditions which could make execution of a
concurrent set of serializable transactions behave in a manner inconsistent
with all possible serial (one at a time) executions".

This seems quite misleading, but I understand there may just be an aspect of
this that I am not understanding.

---

From: Thomas Munro <[email-masked]>
Date: Wed, 11 Dec 2019 17:06:33 +1300

> with all possible serial (one at a time) executions".

It only has to be consistent with *one* serial ordering of the
transactions to be allowed, not all serial orderings.  In this case,
the observed values and effects are consistent with T2 running before
T1.

> this that I am not understanding.

Do you think that wording could be improved?