Re: [BUGS] BUG #14867: Cascade drop type error - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [BUGS] BUG #14867: Cascade drop type error
Date
Msg-id 4421.1508774964@sss.pgh.pa.us
Whole thread Raw
In response to [BUGS] BUG #14867: Cascade drop type error  (gomer94@yandex.ru)
Responses Re: [BUGS] BUG #14867: Cascade drop type error
List pgsql-bugs
gomer94@yandex.ru writes:
> CREATE TYPE my_type AS (f1 integer);
> CREATE TYPE my_type_2 AS (f2 my_type);
> CREATE TABLE my_table (c1 my_type_2);
> CREATE VIEW my_view AS SELECT ((C1).f2).f1 FROM my_table;
> DROP TYPE my_type CASCADE;

Cute.  Type my_type isn't exposed as a dependency of the view,
because it's only referenced internally in the expression tree
not as a result column type.  We can fix that easily enough by
teaching dependency.c to log the result type of a FieldSelect
as a dependency.  That results in dropping the whole view, not
just one column:

regression=# DROP TYPE my_type CASCADE;
NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to composite type my_type_2 column f2
drop cascades to view my_view
DROP TYPE

which is a bit annoying but I think there's no help for it.
We don't have logic that could rip apart the view query and
reconstruct it without the expression for that one column.
        regards, tom lane


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

pgsql-bugs by date:

Previous
From: gomer94@yandex.ru
Date:
Subject: [BUGS] BUG #14867: Cascade drop type error
Next
From: Andres Freund
Date:
Subject: Re: [BUGS] BUG #14867: Cascade drop type error