Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE

From: Noah Misch <noah(at)2ndQuadrant(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE
Date: 2011-07-07 19:21:39
Message-ID: 20110707192138.GH1840@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)2ndquadrant(dot)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().

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2011-07-07 19:25:08 Re: Avoid index rebuilds for no-rewrite ALTER TABLE ALTER TYPE
Previous Message Robert Haas 2011-07-07 19:09:57 Re: Small SSI issues