Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Revert "Forbid DROP SCHEMA on temporary namespaces"
authorMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2020 01:36:40 +0000 (10:36 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2020 01:36:40 +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 d47cd2a589b68823544c57590c8376b4ae727a68..61ff8f2190d4dad1364b9e50ab485564af78ecbe 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) ||