Better error message for trying to drop a DB with open subscriptions?

From: Josh Berkus <josh(at)berkus(dot)org>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Better error message for trying to drop a DB with open subscriptions?
Date: 2017-07-20 23:09:14
Message-ID: e6df8484-2b22-084c-7412-e7c1427e608b@berkus.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

All:

The problem:

postgres=# drop database bookdata;
ERROR: database "bookdata" is being accessed by other users
DETAIL: There is 1 other session using the database.
postgres=# \c bookdata
You are now connected to database "bookdata" as user "postgres".
bookdata=# drop subscription wholedb;
NOTICE: dropped replication slot "wholedb" on publisher
DROP SUBSCRIPTION
bookdata=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# drop database bookdata;
DROP DATABASE

Is there any easy way for us to detect that the "user" accessing the
target database is actually a logical replication subscription, and give
the DBA a better error message (e.g. "database 'bookdata' still has open
subscrptions")?

--
Josh Berkus
Containers & Databases Oh My!

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2017-07-20 23:11:07 More optimization effort?
Previous Message Thomas Munro 2017-07-20 22:40:43 Re: <> join selectivity estimate question