I have just noticed that VACUUM doesn't always call
FlushRelationBuffers(); it does so only if it wants to truncate
the relation (ie, shrink the physical file).

This is OK for normal purposes but it's bad for pg_upgrade, which
is invoking VACUUM just to ensure that on-row transaction status bits
are set correctly.  Without FlushRelationBuffers(), pages that only
had status bit updates may never get written back to disk...

I have fixed VACUUM so that FlushRelationBuffers() will be called in
all execution paths, and back-patched the fix into REL7_0 branch.
This looks like another good reason for a 7.0.3 release :-(

			regards, tom lane

Tue, 19 Sep 2000 17:13:16 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Another hole detected in pg_upgrade