postgresql/src
Heikki Linnakangas 93d888232e Don't throw a warning if vacuum sees PD_ALL_VISIBLE flag set on a page that
contains newly-inserted tuples that according to our OldestXmin are not
yet visible to everyone. The value returned by GetOldestXmin() is conservative,
and it can move backwards on repeated calls, so if we see that contradiction
between the PD_ALL_VISIBLE flag and status of tuples on the page, we have to
assume it's because an earlier vacuum calculated a higher OldestXmin value,
and all the tuples really are visible to everyone.

We have received several reports of this bug, with the "PD_ALL_VISIBLE flag
was incorrectly set in relation ..." warning appearing in logs. We were
finally able to hunt it down with David Gould's help to run extra diagnostics
in an environment where this happened frequently.

Also reword the warning, per Robert Haas' suggestion, to not imply that the
PD_ALL_VISIBLE flag is necessarily at fault, as it might also be a symptom
of corruption on a tuple header.

Backpatch to 8.4, where the PD_ALL_VISIBLE flag was introduced.
2011-03-08 20:30:53 +02:00
..
backend Don't throw a warning if vacuum sees PD_ALL_VISIBLE flag set on a page that 2011-03-08 20:30:53 +02:00
bin Fix pg_dump's dump order for collations versus extensions. 2011-03-06 18:26:53 -05:00
include Truncate predicate lock manager's SLRU lazily at checkpoint. That's safer 2011-03-08 12:12:54 +02:00
interfaces Added new version of ecpg's parser test script which was written by Andy Colson <andy@squeakycode.net>. 2011-03-08 11:28:16 +01:00
makefiles Allow make check in PL directories 2011-02-15 06:52:12 +02:00
pl Fix behavior when raising plpy.Fatal() 2011-03-07 23:47:43 +02:00
port Fix reverse 'if' test in path_is_relative_and_below_cwd(), per Tom. 2011-02-13 00:14:47 -05:00
template Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
test Efficient transaction-controlled synchronous replication. 2011-03-06 22:49:16 +00:00
timezone Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
tools Add PL extension files to MSVC Install procedure. 2011-03-05 16:21:37 -05:00
tutorial Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Make handling of errcodes.h more consistent with other generated headers. 2011-02-04 09:29:10 -05:00
Makefile.global.in Allow make check in PL directories 2011-02-15 06:52:12 +02:00
Makefile.shlib Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
nls-global.mk Fix makefile logic to not break the build when xgettext is missing 2010-10-14 23:16:46 +03:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00