From: Tom Lane Date: Thu, 27 Nov 2008 00:34:49 +0000 (+0000) Subject: Back-patch change to make DISCARD ALL release advisory locks. X-Git-Tag: REL8_3_6~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9e8986d1b7b1f49fa8097d3b20abebac9b1bc85;p=postgresql Back-patch change to make DISCARD ALL release advisory locks. Per discussion. --- diff --git a/doc/src/sgml/ref/discard.sgml b/doc/src/sgml/ref/discard.sgml index a4ca919394..9572d5ab85 100644 --- a/doc/src/sgml/ref/discard.sgml +++ b/doc/src/sgml/ref/discard.sgml @@ -1,5 +1,5 @@ @@ -70,15 +70,16 @@ DISCARD { ALL | PLANS | TEMPORARY | TEMP } 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: SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; CLOSE ALL; UNLISTEN *; +SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD TEMP; diff --git a/src/backend/commands/discard.c b/src/backend/commands/discard.c index 65d910c320..adf663f6ee 100644 --- a/src/backend/commands/discard.c +++ b/src/backend/commands/discard.c @@ -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(); }