Re: Undocumented behavior od DROP SCHEMA ... CASCADE - Mailing list pgsql-docs

From Tom Lane
Subject Re: Undocumented behavior od DROP SCHEMA ... CASCADE
Date
Msg-id 25576.1471010504@sss.pgh.pa.us
Whole thread Raw
In response to Re: Undocumented behavior od DROP SCHEMA ... CASCADE  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: Undocumented behavior od DROP SCHEMA ... CASCADE  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Undocumented behavior od DROP SCHEMA ... CASCADE  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-docs
"David G. Johnston" <david.g.johnston@gmail.com> writes:
> On Fri, Aug 12, 2016 at 8:54 AM, Vik Fearing <vik@2ndquadrant.fr> wrote:
>> I think the OP is complaining that cascading to b.v is not sufficiently
>> documented.  It seems logical to me that this would be the correct
>> behavior, but since at least one person got confused enough about it to
>> come and tell us, we should probably add some kind of warning or something.

> ​Yeah, it should probably be modified to something like:

> Automatically drop objects (tables, functions, etc...) that are contained
> in the schema.  Each object dropped is also done with the CASCADE option.
> This means that others schemas will be affected if they depend on objects
> in the named schema.

If we're going to add a warning about CASCADE being recursive, it would
logically need to be added to every last DROP command that has a CASCADE
option, which is most of them.  I don't necessarily object to that, but
we'd need a more boiler-plate, copy-and-pasteable phrasing.

A quick survey says that DROP SCHEMA is just about the only such command
that isn't documented with wording along the lines of "Automatically drop
objects that depend on the <whatever>", often with a parenthetical "such
as" to illustrate what sorts of objects might be dependent.  I think the
variant wording for DROP SCHEMA was intentional, with the thought that it
was easy to specify exactly which objects "depend on" a schema --- but is
that decision contributing to the confusion?

I'm inclined to suggest that maybe the generic phrasing could be
"Automatically drop objects that depend on the <whatever> [(such as ...)],
and in turn all objects that depend on those objects".

            regards, tom lane


pgsql-docs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Undocumented behavior od DROP SCHEMA ... CASCADE
Next
From: Tom Lane
Date:
Subject: Re: Wording in TABLESAMPLE documentation