On Thu, Jul 07, 2011 at 03:06:46PM -0400, Robert Haas wrote: > On Thu, Jul 7, 2011 at 2:55 PM, Noah Misch <n...@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(). -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers