Re: DROP CASCADE transitive dependencies - Mailing list pgsql-general

From C GG
Subject Re: DROP CASCADE transitive dependencies
Date
Msg-id CAJXW-z89ubwoRAxNv7gRXvPZQ95o5KVw9R09B_etM1q3Y-k5AA@mail.gmail.com
Whole thread Raw
In response to Re: DROP CASCADE transitive dependencies  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: DROP CASCADE transitive dependencies  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: DROP CASCADE transitive dependencies  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-general


On Mon, Dec 3, 2018 at 1:26 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
C GG <cgg0007@gmail.com> writes:
> ...PostgreSQL 9.5...
> `DROP SCHEMA blah;` reports all the dependent objects and advises to `DROP
> SCHEMA blah CASCADE;` ...

> Will DROP ... CASCADE traverse the entire dependency tree for each of the
> dependent objects (potentially dropping something unintended), or will it
> stop at the first level and balk at any new transitive dependencies?

The former.  However, the list of dependencies it's showing you as
potentially dropped already includes transitive dependencies; there
aren't going to be "new" ones unless somebody is adding things
concurrently.

That's good news!
 

If you're feeling paranoid, you could always do

begin;
drop ... cascade;

and then look at the reported list of objects before deciding whether
to commit or roll back.

Me, paranoid? Yes. Yes I am.

So I did that-- 

data=# begin;
BEGIN
data=# DROP SCHEMA blah CASCADE;
NOTICE:  drop cascades to 278 other objects
DETAIL:  drop cascades to type blah.timeclock_compute_hours_type
...
and 178 other objects (see server log for list)
data=# rollback;
ROLLBACK
data=# 

and I can't see any of the other 178 objects in the server log. I did see all the deadlock reports because I had left the transaction hanging open while I went rubbernecking. ;) Maybe my log level isn't detailed enough.

Also-- it is interesting to note that the list that I was shown when I executed `DROP SCHEMA blah;` is only 100 objects long. So that tells me that there's 178 other entries I'm not seeing. Where's that tin-foil hat?

Any suggestions for getting the names of the other 178 dependent objects?
 

                        regards, tom lane

Thanks Tom. I don't say it enough: I _really_ appreciate you and your consistent excellent contributions to PostgreSQL and to the PostgreSQL community.
 

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: DROP CASCADE transitive dependencies
Next
From: Pavel Stehule
Date:
Subject: Re: DROP CASCADE transitive dependencies