Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE - Mailing list pgsql-hackers

From Noah Misch
Subject Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE
Date
Msg-id 20110707192138.GH1840@tornado.leadboat.com
Whole thread Raw
In response to Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE
List pgsql-hackers
On Thu, Jul 07, 2011 at 03:06:46PM -0400, Robert Haas wrote:
> On Thu, Jul 7, 2011 at 2:55 PM, Noah Misch <noah@2ndquadrant.com> wrote:
> > CheckIndexCompatible() calls ComputeIndexAttrs() to resolve the new operator
> > classes, collations and exclusion operators for each index column.  It then
> > checks those against the existing values for the same.  I figured that was
> > obvious enough, but do you want a new version noting that?
> 
> I guess one question I had was... are we depending on the fact that
> ComputeIndexAttrs() performs a bunch of internal sanity checks?  Or
> are we just expecting those to always pass, and we're going to examine
> the outputs after the fact?

Those checks can fail; consider an explicit operator class or collation that
does not support the destination type.  At that stage, we neither rely on those
checks nor mind if they do fire.  If we somehow miss the problem at that stage,
DefineIndex() will detect it later.  Likewise, if we hit an error in
CheckIndexCompatible(), we would also hit it later in DefineIndex().


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Small SSI issues
Next
From: Robert Haas
Date:
Subject: Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE