Revert "Forbid DROP SCHEMA on temporary namespaces"
authorMichael Paquier <[email protected]>
Wed, 8 Jan 2020 01:36:52 +0000 (10:36 +0900)
committerMichael Paquier <[email protected]>
Wed, 8 Jan 2020 01:36:52 +0000 (10:36 +0900)
This reverts commit a052f6c, following complains from Robert Haas and
Tom Lane.  Backpatch down to 9.4, like the previous commit.

Discussion: https://postgr.es/m/CA+TgmobL4npEX5=E5h=5Jm_9mZun3MT39Kq2suJFVeamc9skSQ@mail.gmail.com
Backpatch-through: 9.4

src/backend/commands/dropcmds.c

index cb0227661deef58b48f1a4e2b49844b64e3c7323..e64ad8027e22f9455063b6b9b87b74edee9109ba 100644 (file)
@@ -26,7 +26,6 @@
 #include "nodes/makefuncs.h"
 #include "parser/parse_type.h"
 #include "utils/builtins.h"
-#include "utils/lsyscache.h"
 #include "utils/syscache.h"
 
 
@@ -117,21 +116,6 @@ RemoveObjects(DropStmt *stmt)
            ReleaseSysCache(tup);
        }
 
-       /*
-        * Prevent the drop of a temporary schema, be it owned by the current
-        * session or another backend as this would mess up with the callback
-        * registered to clean up temporary objects at the end of a session.
-        * Note also that the creation of any follow-up temporary object would
-        * result in inconsistencies within the session whose temporary schema
-        * has been dropped.
-        */
-       if (stmt->removeType == OBJECT_SCHEMA &&
-           isAnyTempNamespace(address.objectId))
-           ereport(ERROR,
-                   (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                    errmsg("cannot drop temporary schema \"%s\"",
-                           get_namespace_name(address.objectId))));
-
        /* Check permissions. */
        namespaceId = get_object_namespace(&address);
        if (!OidIsValid(namespaceId) ||