Reword text on ROW SHARE lock as acquired by SELECT FOR <lock>
authorAlvaro Herrera <[email protected]>
Thu, 14 Apr 2022 19:52:20 +0000 (21:52 +0200)
committerAlvaro Herrera <[email protected]>
Thu, 14 Apr 2022 19:52:20 +0000 (21:52 +0200)
It was missing lock levels FOR KEY SHARE and FOR NO KEY EXCLUSIVE; but
also SELECT FOR UPDATE is not a command separate from SELECT, as the
original text implied.  It is clearer to state that FOR <lock strength>
is an option of regular SELECT.

Per suggestion from Joey Bodoia <[email protected]>

Reviewed-by: Joey Bodoia <[email protected]> (offlist)
Reviewed-by: Erikjan Rijkers <[email protected]>
Discussion: https://postgr.es/m/164908765512.682.17348032020747341013@wrigleys.postgresql.org

doc/src/sgml/mvcc.sgml

index 905460723c5b6f5aabea95396dd4542b00ba6369..341fea524a18dd3a64d7c853ed453113967c9f74 100644 (file)
@@ -932,12 +932,14 @@ ERROR:  could not serialize access due to read/write dependencies among transact
         </para>
 
         <para>
-         The <command>SELECT FOR UPDATE</command> and
-         <command>SELECT FOR SHARE</command> commands acquire a
-         lock of this mode on the target table(s) (in addition to
-         <literal>ACCESS SHARE</literal> locks on any other tables
-         that are referenced but not selected
-         <option>FOR UPDATE/FOR SHARE</option>).
+         The <command>SELECT</command> command acquires a lock of this mode
+         on all tables on which one of the <option>FOR UPDATE</option>,
+         <option>FOR NO KEY UPDATE</option>,
+         <option>FOR SHARE</option>, or
+         <option>FOR KEY SHARE</option> options is specified
+         (in addition to <literal>ACCESS SHARE</literal> locks on any other
+         tables that are referenced without any explicit
+         <option>FOR ...</option> locking option).
         </para>
        </listitem>
       </varlistentry>