Re: TODO: DROP COLUMN .. CASCADE - Mailing list pgsql-hackers

From Antti Haapala
Subject Re: TODO: DROP COLUMN .. CASCADE
Date
Msg-id Pine.LNX.4.44.0303062009500.8975-100000@lastu2.oulu.fi
Whole thread Raw
In response to Re: TODO: DROP COLUMN .. CASCADE  (Bruce Momjian <pgman@candle.pha.pa.us>)
List 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 by date:

Previous
From: Rod Taylor
Date:
Subject: Re: TODO: DROP COLUMN .. CASCADE
Next
From: Bruce Momjian
Date:
Subject: Re: TODO: DROP COLUMN .. CASCADE