Re: Assert failure when rechecking an exclusion constraint

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org, Jeff Davis <pgsql@j-davis.com>
Date: 2011-06-06T00:26:07Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add an Assert that indexam.c isn't used on an index awaiting reindexing.

On Sun, Jun 05, 2011 at 02:17:00PM -0400, Tom Lane wrote:
> I wrote:
> > Noah Misch <noah@leadboat.com> writes:
> >> Sounds reasonable.  Need to remove the index from pendingReindexedIndexes, not
> >> just call ResetReindexProcessing().
> 
> > [ looks again... ]  Uh, right.  I was thinking that the pending list was
> > just "pending" and not "in progress" indexes.  I wonder if we should
> > rejigger things so that that's actually true, ie, remove an index's OID
> > from the pending list when we mark it as the current one?
> 
> Attached are two versions of a patch to fix this.  The second one
> modifies the code that tracks what's "pending" as per the above thought.
> I'm not entirely sure which one I like better ... any comments?

+1 for the second approach.  It had bothered me that SetReindexProcessing() and
ResetReindexProcessing() manipulated one thing, but ReindexIsProcessingIndex()
checked something else besides.  (That's still technically true, but the overall
effect seems more natural.)

Thanks,
nm