mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Update "Conflicting lock modes" to show as conflict, add
current/requested headings, add link to table from text.
This commit is contained in:
parent
49451ae03e
commit
9b9cd9c205
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/mvcc.sgml,v 2.68 2007/02/16 03:50:29 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/mvcc.sgml,v 2.69 2007/02/18 01:21:49 momjian Exp $ -->
|
||||||
|
|
||||||
<chapter id="mvcc">
|
<chapter id="mvcc">
|
||||||
<title>Concurrency Control</title>
|
<title>Concurrency Control</title>
|
||||||
@ -536,7 +536,8 @@ SELECT SUM(value) FROM mytab WHERE class = 2;
|
|||||||
To some extent the names reflect the typical usage of each lock
|
To some extent the names reflect the typical usage of each lock
|
||||||
mode — but the semantics are all the same. The only real difference
|
mode — but the semantics are all the same. The only real difference
|
||||||
between one lock mode and another is the set of lock modes with
|
between one lock mode and another is the set of lock modes with
|
||||||
which each conflicts. Two transactions cannot hold locks of conflicting
|
which each conflicts (see <xref linkend="table-lock-compatibility">).
|
||||||
|
. Two transactions cannot hold locks of conflicting
|
||||||
modes on the same table at the same time. (However, a transaction
|
modes on the same table at the same time. (However, a transaction
|
||||||
never conflicts with itself. For example, it might acquire
|
never conflicts with itself. For example, it might acquire
|
||||||
<literal>ACCESS EXCLUSIVE</literal> lock and later acquire
|
<literal>ACCESS EXCLUSIVE</literal> lock and later acquire
|
||||||
@ -741,119 +742,118 @@ SELECT SUM(value) FROM mytab WHERE class = 2;
|
|||||||
releases locks acquired within it.
|
releases locks acquired within it.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table tocentry="1" id="table-lock-compatibility">
|
<table tocentry="1" id="table-lock-compatibility">
|
||||||
<title> Compatibility of lock modes</title>
|
<title> Conflicting lock modes</title>
|
||||||
<tgroup cols="9">
|
<tgroup cols="9">
|
||||||
<colspec colnum="1" colwidth="1*">
|
<colspec colnum="2" colname="lockst">
|
||||||
<colspec colnum="2" colwidth="1*">
|
<colspec colnum="9" colname="lockend">
|
||||||
<colspec colnum="3" colwidth="1*">
|
<spanspec namest="lockst" nameend="lockend" spanname="lockreq">
|
||||||
<colspec colnum="4" colwidth="1*">
|
|
||||||
<colspec colnum="5" colwidth="1*">
|
|
||||||
<colspec colnum="6" colwidth="1*">
|
|
||||||
<colspec colnum="7" colwidth="1*">
|
|
||||||
<colspec colnum="8" colwidth="1*">
|
|
||||||
<colspec colnum="9" colwidth="1*">
|
|
||||||
<thead>
|
<thead>
|
||||||
<row>
|
<row>
|
||||||
<entry>Modes</entry>
|
<entry morerows="1">Requested Lock Mode</entry>
|
||||||
<entry>AS</entry>
|
<entry spanname="lockreq">Current Lock Mode</entry>
|
||||||
<entry>RS</entry>
|
</row>
|
||||||
<entry>RE</entry>
|
<row>
|
||||||
<entry>SUE</entry>
|
<entry>ACCESS SHARE</entry>
|
||||||
<entry>S</entry>
|
<entry>ROW SHARE</entry>
|
||||||
<entry>SRE</entry>
|
<entry>ROW EXCLUSIVE</entry>
|
||||||
<entry>E</entry>
|
<entry>SHARE UPDATE EXCLUSIVE</entry>
|
||||||
<entry>AE</entry>
|
<entry>SHARE</entry>
|
||||||
|
<entry>SHARE ROW EXCLUSIVE</entry>
|
||||||
|
<entry>EXCLUSIVE</entry>
|
||||||
|
<entry>ACCESS EXCLUSIVE</entry>
|
||||||
</row>
|
</row>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<row>
|
<row>
|
||||||
<entry>AS</entry>
|
<entry>ACCESS SHARE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>RS</entry>
|
<entry>ROW SHARE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>RE</entry>
|
<entry>ROW EXCLUSIVE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>SUE</entry>
|
<entry>SHARE UPDATE EXCLUSIVE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>S</entry>
|
<entry>SHARE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>SRE</entry>
|
<entry>SHARE ROW EXCLUSIVE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>E</entry>
|
<entry>EXCLUSIVE</entry>
|
||||||
<entry align="center">Y</entry>
|
<entry align="center"></entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>AE</entry>
|
<entry>ACCESS EXCLUSIVE</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
<entry align="center">N</entry>
|
<entry align="center">X</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user