Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)
От | Tom Lane |
---|---|
Тема | Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages) |
Дата | |
Msg-id | 20599.1547769456@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages) (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
I wrote: > Also, I am suspicious that this implementation fails on point 3 > anyway ... If nothing else, it looks like ALTER OBJECT DEPENDS ON > EXTENSION can be used to attach a random dependency to just > about anything. Yup: regression=# drop table if exists idxpart cascade; DROP TABLE regression=# create table idxpart (a int) partition by range (a); CREATE TABLE regression=# create index on idxpart (a); CREATE INDEX regression=# create table idxpart1 partition of idxpart for values from (0) to (10); CREATE TABLE regression=# drop index idxpart1_a_idx; -- no way ERROR: cannot drop index idxpart1_a_idx because index idxpart_a_idx requires it HINT: You can drop index idxpart_a_idx instead. regression=# \d idxpart1 Table "public.idxpart1" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- a | integer | | | Partition of: idxpart FOR VALUES FROM (0) TO (10) Indexes: "idxpart1_a_idx" btree (a) regression=# create extension cube; CREATE EXTENSION regression=# alter index idxpart1_a_idx depends on extension cube; ALTER INDEX regression=# drop extension cube; DROP EXTENSION regression=# \d idxpart1 Table "public.idxpart1" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- a | integer | | | Partition of: idxpart FOR VALUES FROM (0) TO (10) regards, tom lane
В списке pgsql-hackers по дате отправления: