Fix two problems in infer_arbiter_indexes().
authorAndres Freund <andres@anarazel.de>
Fri, 8 May 2015 20:22:05 +0000 (22:22 +0200)
committerAndres Freund <andres@anarazel.de>
Fri, 8 May 2015 20:28:23 +0000 (22:28 +0200)
commitbab64ef9e8bc56fa5db9bd41cefb54c3d8051dbe
treed7286cb2add3c11f3854a846746f8a0474ba9f9a
parentde7688442f5aaa03da60416a6aa3474738718803
Fix two problems in infer_arbiter_indexes().

The first is a pretty simple bug where a relcache entry is used after
the relation is closed. In this particular situation it does not appear
to have bad consequences unless compiled with RELCACHE_FORCE_RELEASE.

The second is that infer_arbiter_indexes() skipped indexes that aren't
yet valid according to indcheckxmin. That's not required here, because
uniqueness checks don't care about visibility according to an older
snapshot.  While thats not really a bug, it makes things undesirably
non-deterministic.  There is some hope that this explains a test failure
on buildfarm member jaguarundi.

Discussion: 9096.1431102730@sss.pgh.pa.us
src/backend/optimizer/util/plancat.c