diff --git a/doc/src/sgml/ref/discard.sgml b/doc/src/sgml/ref/discard.sgml
index ecae00b..f2d6ea2 100644
--- a/doc/src/sgml/ref/discard.sgml
+++ b/doc/src/sgml/ref/discard.sgml
@@ -82,6 +82,7 @@ CLOSE ALL;
 UNLISTEN *;
 DISCARD PLANS;
 DISCARD TEMP;
+SELECT pg_advisory_unlock_all();
 </programlisting>
      </para>
     </listitem>
diff --git a/src/backend/commands/discard.c b/src/backend/commands/discard.c
index d7bddbd..2917b76 100644
--- a/src/backend/commands/discard.c
+++ b/src/backend/commands/discard.c
@@ -68,4 +68,5 @@ DiscardAll(bool isTopLevel)
 	Async_UnlistenAll();
 	ResetPlanCache();
 	ResetTempTableNamespace();
+	LockReleaseAll(USER_LOCKMETHOD, true);
 }
