Обсуждение: docs issue in transactions section

Поиск
Список
Период
Сортировка

docs issue in transactions section

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

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

13.2.1. Read Committed Isolation Level
Read Committed is the default isolation level in PostgreSQL. When a
transaction uses this isolation level, a SELECT query (without a FOR
UPDATE/SHARE clause) sees only data committed before the query began; it
never sees either uncommitted data or changes committed during query
execution by concurrent transactions. In effect, a SELECT query sees a
snapshot of the database as of the instant the query begins to run. However,
SELECT does see the effects of previous updates executed within its own
transaction, even though they are not yet committed. Also note that two
successive SELECT commands can see different data, even though they are
within a single transaction, if other transactions commit changes after the
first SELECT starts and before the second SELECT starts.

I don't understand this very clearly: " it never sees either uncommitted
data or changes committed during query execution by concurrent
transactions." and this statement " Also note that two successive SELECT
commands can see different data, even though they are within a single
transaction, if other transactions commit changes after the first SELECT
starts and before the second SELECT starts."

Re: docs issue in transactions section

От
Bruce Momjian
Дата:
On Fri, Jul  2, 2021 at 07:11:15PM +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
> 
> Page: https://www.postgresql.org/docs/13/transaction-iso.html
> Description:
> 
> 13.2.1. Read Committed Isolation Level
> Read Committed is the default isolation level in PostgreSQL. When a
> transaction uses this isolation level, a SELECT query (without a FOR
> UPDATE/SHARE clause) sees only data committed before the query began; it
> never sees either uncommitted data or changes committed during query
> execution by concurrent transactions. In effect, a SELECT query sees a
> snapshot of the database as of the instant the query begins to run. However,
> SELECT does see the effects of previous updates executed within its own
> transaction, even though they are not yet committed. Also note that two
> successive SELECT commands can see different data, even though they are
> within a single transaction, if other transactions commit changes after the
> first SELECT starts and before the second SELECT starts.
> 
> I don't understand this very clearly: " it never sees either uncommitted
> data or changes committed during query execution by concurrent
> transactions." and this statement " Also note that two successive SELECT
> commands can see different data, even though they are within a single
> transaction, if other transactions commit changes after the first SELECT
> starts and before the second SELECT starts."

Uh, what is your question?  Does page 11 of this help?

    https://momjian.us/main/writings/pgsql/mvcc.pdf#page=11

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  If only the physical world exists, free will is an illusion.