Обсуждение: bad choice of the word in sentence

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

bad choice of the word in sentence

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

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

https://www.postgresql.org/docs/current/transaction-iso.html#XACT-READ-COMMITTED

Quote:
"<...>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. <...>"

"... changes committed during ..."

Don't you think this is bad choice of the word, especially while speaking
about "commiting transactions" in very same sentence?

Wouldn't it be better to say something like
<...> it never sees either uncommitted data or changes produced during query
execution by concurrent transactions. <...> 

I mean, with read committed isolation level SELECT clearly can see changes
from concurrent transactions, if these transactions COMMITED.

In fact, you can read about that in few lines later:
"<...>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. <...>"

The sentences seem to contradict each other because of " it never sees ...
changes committed during ..."

Re: bad choice of the word in sentence

От
Bruce Momjian
Дата:
On Thu, Jun 22, 2023 at 06:38:37PM +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
> 
> Page: https://www.postgresql.org/docs/15/transaction-iso.html
> Description:
> 
> https://www.postgresql.org/docs/current/transaction-iso.html#XACT-READ-COMMITTED
> 
> Quote:
> "<...>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. <...>"
> 
> "... changes committed during ..."
> 
> Don't you think this is bad choice of the word, especially while speaking
> about "commiting transactions" in very same sentence?
> 
> Wouldn't it be better to say something like
> <...> it never sees either uncommitted data or changes produced during query
> execution by concurrent transactions. <...> 

No, the issue is only for committed transactions, not aborted ones.

> I mean, with read committed isolation level SELECT clearly can see changes
> from concurrent transactions, if these transactions COMMITED.

No, it does not see any changes from concurrent transaction commits that
happen after the query starts, which is the point of the sentence.

> In fact, you can read about that in few lines later:
> "<...>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. <...>"
> 
> The sentences seem to contradict each other because of " it never sees ...
> changes committed during ..."

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

  Only you can decide what is important to you.



Re: bad choice of the word in sentence

От
Tom Lane
Дата:
Bruce Momjian <bruce@momjian.us> writes:
> On Thu, Jun 22, 2023 at 06:38:37PM +0000, PG Doc comments form wrote:
>> Quote:
>> "<...>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. <...>"

>> Don't you think this is bad choice of the word, especially while speaking
>> about "commiting transactions" in very same sentence?

> No, the issue is only for committed transactions, not aborted ones.

I think this sentence is formally correct, but it is not very hard to
misparse.  Maybe a bit of re-ordering would help?  Like

    ... it never sees either uncommitted data or changes committed by
    concurrent transactions during the query's execution.

            regards, tom lane



Re: bad choice of the word in sentence

От
Bruce Momjian
Дата:
On Fri, Jun 23, 2023 at 09:16:39PM -0400, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > On Thu, Jun 22, 2023 at 06:38:37PM +0000, PG Doc comments form wrote:
> >> Quote:
> >> "<...>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. <...>"
> 
> >> Don't you think this is bad choice of the word, especially while speaking
> >> about "commiting transactions" in very same sentence?
> 
> > No, the issue is only for committed transactions, not aborted ones.
> 
> I think this sentence is formally correct, but it is not very hard to
> misparse.  Maybe a bit of re-ordering would help?  Like
> 
>     ... it never sees either uncommitted data or changes committed by
>     concurrent transactions during the query's execution.

Sure.

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

  Only you can decide what is important to you.



Re: bad choice of the word in sentence

От
Tom Lane
Дата:
Bruce Momjian <bruce@momjian.us> writes:
> On Fri, Jun 23, 2023 at 09:16:39PM -0400, Tom Lane wrote:
>> I think this sentence is formally correct, but it is not very hard to
>> misparse.  Maybe a bit of re-ordering would help?  Like
>> ... it never sees either uncommitted data or changes committed by
>> concurrent transactions during the query's execution.

> Sure.

Done that way.

            regards, tom lane