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

Per discussion.
This commit is contained in:
Tom Lane 2008-11-27 00:34:49 +00:00
parent 0b1953868e
commit b9e8986d1b
2 changed files with 8 additions and 5 deletions

View File

@ -1,5 +1,5 @@
<!--
$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>

View File

@ -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();
}