On Fri, 2006-03-24 at 19:02 -0400, Tom Lane wrote:
> Log Message:
> -----------
> Comments in IndexBuildHeapScan describe the indexing of recently-dead
> tuples as needed "to keep VACUUM from complaining", but actually there is
> a more compelling reason to do it: failure to do so violates MVCC semantics.
> This is because a pre-existing serializable transaction might try to use
> the index after we finish (re)building it, and it might fail to find tuples
> it should be able to see. We got this mostly right, but not in the case
> of partial indexes: the code mistakenly discarded recently-dead tuples for
> partial indexes. Fix that, and adjust the comments.
>
> Tags:
> ----
> REL8_1_STABLE
>
> Modified Files:
> --------------
> pgsql/src/backend/catalog:
> index.c (r1.261.2.1 -> r1.261.2.2)
> (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c.diff?r1=1.261.2.1&r2=1.261.2.2)
Well spotted...
I notice the same error occurs in REL8_0_STABLE, REL7_4_STABLE and
REL7_3_STABLE. This is a data loss bug, so why not back apply to those
releases also?
Best Regards, Simon Riggs