]> granicus.if.org Git - postgresql/commit
Fix a violation of WAL coding rules in the recent patch to include an
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 24 Aug 2009 02:18:40 +0000 (02:18 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 24 Aug 2009 02:18:40 +0000 (02:18 +0000)
commitfedb1665495b54bd587d1d396ecfb1f9e7b936ba
tree0805d85c94189cb9ba58404fbb325baf5aa7689a
parent2acb2bcbcb91431e7877e5f46292f50b7a4cdf1f
Fix a violation of WAL coding rules in the recent patch to include an
"all tuples visible" flag in heap page headers.  The flag update *must*
be applied before calling XLogInsert, but heap_update and the tuple
moving routines in VACUUM FULL were ignoring this rule.  A crash and
replay could therefore leave the flag incorrectly set, causing rows
to appear visible in seqscans when they should not be.  This might explain
recent reports of data corruption from Jeff Ross and others.

In passing, do a bit of editorialization on comments in visibilitymap.c.
src/backend/access/heap/heapam.c
src/backend/access/heap/visibilitymap.c
src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c
src/include/access/heapam.h
src/include/access/visibilitymap.h