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. */