Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
doc: clarify when row-level locks are released
authorBruce Momjian <bruce@momjian.us>
Tue, 31 Mar 2020 21:27:32 +0000 (17:27 -0400)
committerBruce Momjian <bruce@momjian.us>
Tue, 31 Mar 2020 21:27:32 +0000 (17:27 -0400)
They are released just like table-level locks.  Also clean up wording.

Reported-by: me@sillymon.ch
Discussion: https://postgr.es/m/158074944048.1095.4309647363871637715@wrigleys.postgresql.org

Backpatch-through: 9.5

doc/src/sgml/mvcc.sgml

index 306def4a15a0425942878580ec11da19f591db74..1788e0f1e47baac29b9b145b9306d3968ae986b0 100644 (file)
@@ -1035,9 +1035,9 @@ ERROR:  could not serialize access due to read/write dependencies among transact
      </tip>
 
    <para>
-    Once acquired, a lock is normally held till end of transaction.  But if a
+    Once acquired, a lock is normally held until the end of the transaction.  But if a
     lock is acquired after establishing a savepoint, the lock is released
-    immediately if the savepoint is rolled back to.  This is consistent with
+    immediately if the savepoint is rolled back.  This is consistent with
     the principle that <command>ROLLBACK</> cancels all effects of the
     commands since the savepoint.  The same holds for locks acquired within a
     <application>PL/pgSQL</> exception block: an error escape from the block
@@ -1174,7 +1174,10 @@ ERROR:  could not serialize access due to read/write dependencies among transact
      conflicting locks on the same row, even in different subtransactions;
      but other than that, two transactions can never hold conflicting locks
      on the same row.  Row-level locks do not affect data querying; they
-     block only <emphasis>writers and lockers</emphasis> to the same row.
+     block only <emphasis>writers and lockers</emphasis> to the same
+     row.  Row-level locks are released at transaction end or during
+     savepoint rollback, just like table-level locks.
+
     </para>
 
      <variablelist>