mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Disallow LOCK TABLE outside a transaction block (or function), since this case
almost certainly represents user error. Per a gripe from Sebastian Böhm and subsequent discussion.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/declare.sgml,v 1.42 2007/10/24 23:27:07 tgl Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/declare.sgml,v 1.43 2008/11/04 00:57:19 tgl Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -175,10 +175,9 @@ DECLARE <replaceable class="parameter">name</replaceable> [ BINARY ] [ INSENSITI
|
||||
<productname>PostgreSQL</productname> reports an error if such a
|
||||
command is used outside a transaction block.
|
||||
Use
|
||||
<xref linkend="sql-begin" endterm="sql-begin-title">,
|
||||
<xref linkend="sql-begin" endterm="sql-begin-title"> and
|
||||
<xref linkend="sql-commit" endterm="sql-commit-title">
|
||||
and
|
||||
<xref linkend="sql-rollback" endterm="sql-rollback-title">
|
||||
(or <xref linkend="sql-rollback" endterm="sql-rollback-title">)
|
||||
to define a transaction block.
|
||||
</para>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/lock.sgml,v 1.49 2008/09/08 00:47:40 tgl Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/lock.sgml,v 1.50 2008/11/04 00:57:19 tgl Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -160,12 +160,15 @@ where <replaceable class="PARAMETER">lockmode</replaceable> is one of:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>LOCK TABLE</command> is useful only inside a transaction
|
||||
block (<command>BEGIN</>/<command>COMMIT</> pair), since the lock
|
||||
is dropped as soon as the transaction ends. A <command>LOCK
|
||||
TABLE</> command appearing outside any transaction block forms a
|
||||
self-contained transaction, so the lock will be dropped as soon as
|
||||
it is obtained.
|
||||
<command>LOCK TABLE</> is useless outside a transaction block: the lock
|
||||
would remain held only to the completion of the statement. Therefore
|
||||
<productname>PostgreSQL</productname> reports an error if <command>LOCK</>
|
||||
is used outside a transaction block.
|
||||
Use
|
||||
<xref linkend="sql-begin" endterm="sql-begin-title"> and
|
||||
<xref linkend="sql-commit" endterm="sql-commit-title">
|
||||
(or <xref linkend="sql-rollback" endterm="sql-rollback-title">)
|
||||
to define a transaction block.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Reference in New Issue
Block a user