rearrange_countdbsubscription_check_1.patch
application/octet-stream
Filename: rearrange_countdbsubscription_check_1.patch
Type: application/octet-stream
Part: 0
Message:
CountDBSubscriptions check in dropdb
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/commands/dbcommands.c | 13 | 13 |
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 01d66212e9..4ad62e6bf8 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -896,19 +896,6 @@ dropdb(const char *dbname, bool missing_ok)
nslots_active, nslots_active)));
}
- /*
- * Check for other backends in the target database. (Because we hold the
- * database lock, no new ones can start after this.)
- *
- * As in CREATE DATABASE, check this after other error conditions.
- */
- if (CountOtherDBBackends(db_id, ¬herbackends, &npreparedxacts))
- ereport(ERROR,
- (errcode(ERRCODE_OBJECT_IN_USE),
- errmsg("database \"%s\" is being accessed by other users",
- dbname),
- errdetail_busy_db(notherbackends, npreparedxacts)));
-
/*
* Check if there are subscriptions defined in the target database.
*
@@ -924,6 +911,19 @@ dropdb(const char *dbname, bool missing_ok)
"There are %d subscriptions.",
nsubscriptions, nsubscriptions)));
+ /*
+ * Check for other backends in the target database. (Because we hold the
+ * database lock, no new ones can start after this.)
+ *
+ * As in CREATE DATABASE, check this after other error conditions.
+ */
+ if (CountOtherDBBackends(db_id, ¬herbackends, &npreparedxacts))
+ ereport(ERROR,
+ (errcode(ERRCODE_OBJECT_IN_USE),
+ errmsg("database \"%s\" is being accessed by other users",
+ dbname),
+ errdetail_busy_db(notherbackends, npreparedxacts)));
+
/*
* Remove the database's tuple from pg_database.
*/