Revert "Forbid DROP SCHEMA on temporary namespaces"
authorMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2020 01:36:12 +0000 (10:36 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2020 01:36:12 +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 e7891a441877b965b6e7317e0115ad8354a80f6e..b3131ab208c0c32bb063fbe82834811e4bab1c1b 100644 (file)
@@ -101,21 +101,6 @@ RemoveObjects(DropStmt *stmt)
                         errhint("Use DROP AGGREGATE to drop aggregate functions.")));
        }
 
-       /*
-        * 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) ||