Re: TODO: DROP COLUMN .. CASCADE
От | Antti Haapala |
---|---|
Тема | Re: TODO: DROP COLUMN .. CASCADE |
Дата | |
Msg-id | Pine.LNX.4.44.0303062009500.8975-100000@lastu2.oulu.fi обсуждение исходный текст |
Ответ на | Re: TODO: DROP COLUMN .. CASCADE (Bruce Momjian <pgman@candle.pha.pa.us>) |
Список | pgsql-hackers |
On Thu, 6 Mar 2003, Bruce Momjian wrote: > Tom Lane wrote: > > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > > Tom Lane wrote: > > >> Personally I'm not sold on the sensefulness of the TODO item to begin > > >> with. > > > > > The current code just drops any index that inludes the dropped column, > > > even if the column is the second column in a multi-column index. Does > > > that seem OK to you? > > > > What's wrong with it? Any unique constraint the index might have > > carried is no longer interesting, so there's no semantic reason for > > treating the index as an independent object. And queries that might > > have referenced the column aren't going to work anymore, so the query > > mix changes and hence the index setup will really need rethinking anyhow. > > I do see the confusion argument, but I also see cases where folks are > losing the use of an index for single-column lookups. Others? If I had table x: create table dev (major int,minor int ); and I CREATEd UNIQUE INDEX ON dev(major,minor), and then dropped col minor, postgresql would silently create a new index on dev(major), or even worse, use the existing index which has satellite data haunting from minor? That would really be strange. What if I noticed that I need to change type of b to int8 in the early design stages? I drop col b and then add again col b with type int8, and CREATE new UNIQUE INDEX ON dev(major, minor). Perhaps I don't even notice that I have (redundant) index still on major, which only eats CPU time and disk space. -- Antti Haapala
В списке pgsql-hackers по дате отправления: