提交 b9e8986d 编写于 作者: T Tom Lane

Back-patch change to make DISCARD ALL release advisory locks.

Per discussion.
上级 0b195386
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/discard.sgml,v 1.2 2007/04/26 18:00:24 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/discard.sgml,v 1.2.2.1 2008/11/27 00:34:49 tgl Exp $
PostgreSQL documentation
-->
......@@ -70,15 +70,16 @@ DISCARD { ALL | PLANS | TEMPORARY | TEMP }
<listitem>
<para>
Releases all temporary resources associated with the current
session and resets the session to its initial state. This has
the same effect as executing the following sequence of
statements:
session and resets the session to its initial state.
Currently, this has the same effect as executing the following sequence
of statements:
<programlisting>
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
CLOSE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD TEMP;
</programlisting>
......
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/discard.c,v 1.4 2008/01/01 19:45:49 momjian Exp $
* $PostgreSQL: pgsql/src/backend/commands/discard.c,v 1.4.2.1 2008/11/27 00:34:49 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -19,6 +19,7 @@
#include "commands/discard.h"
#include "commands/prepare.h"
#include "commands/variable.h"
#include "storage/lock.h"
#include "utils/plancache.h"
#include "utils/portal.h"
......@@ -66,6 +67,7 @@ DiscardAll(bool isTopLevel)
DropAllPreparedStatements();
PortalHashTableDeleteAll();
Async_UnlistenAll();
LockReleaseAll(USER_LOCKMETHOD, true);
ResetPlanCache();
ResetTempTableNamespace();
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册