drop-temp-schema-adjust-v1.patch
text/x-diff
Filename: drop-temp-schema-adjust-v1.patch
Type: text/x-diff
Part: 0
Patch
Format: unified
Series: patch v1
| File | + | − |
|---|---|---|
| src/backend/commands/dropcmds.c | 2 | 1 |
| src/backend/postmaster/autovacuum.c | 10 | 5 |
diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index e7891a4418..725e395bbe 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -109,7 +109,8 @@ RemoveObjects(DropStmt *stmt)
* result in inconsistencies within the session whose temporary schema
* has been dropped.
*/
- if (stmt->removeType == OBJECT_SCHEMA &&
+ if (!allowSystemTableMods &&
+ stmt->removeType == OBJECT_SCHEMA &&
isAnyTempNamespace(address.objectId))
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index f0e40e36af..c3bf02b040 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -2250,11 +2250,16 @@ do_autovacuum(void)
}
/* OK, let's delete it */
- ereport(LOG,
- (errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"",
- get_database_name(MyDatabaseId),
- get_namespace_name(classForm->relnamespace),
- NameStr(classForm->relname))));
+ if (log_min_messages <= LOG)
+ {
+ char *schemaname = get_namespace_name(classForm->relnamespace);
+
+ ereport(LOG,
+ (errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"",
+ get_database_name(MyDatabaseId),
+ schemaname != NULL ? schemaname : "(null)",
+ NameStr(classForm->relname))));
+ }
object.classId = RelationRelationId;
object.objectId = relid;