However, if your installation was upgraded from a previous
major release by running pg_upgrade, you should take action to
prevent possible data loss due to a now-fixed bug in
pg_upgrade. The recommended
solution is to run VACUUM FREEZE on
all TOAST tables. More information is available at http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix.

Also, if you are upgrading from a version earlier than
8.4.2, see Section E.41.

The pg_class.relfrozenxid value for TOAST tables was
not correctly copied into the new installation during
pg_upgrade. This could
later result in pg_clog files
being discarded while they were still needed to validate
tuples in the TOAST tables, leading to "could not access status of transaction"
failures.

This error poses a significant risk of data loss for
installations that have been upgraded with pg_upgrade. This patch corrects the
problem for future uses of pg_upgrade, but does not in itself
cure the issue in installations that have been processed
with a buggy version of pg_upgrade.

VACUUM would sometimes issue
this warning in cases that are actually valid.

Disallow including a composite type in itself (Tom
Lane)

This prevents scenarios wherein the server could recurse
infinitely while processing the composite type. While there
are some possible uses for such a structure, they don't
seem compelling enough to justify the effort required to
make sure it always works safely.

In some cases the cache loading code would acquire share
lock on a system index before locking the index's catalog.
This could deadlock against processes trying to acquire
exclusive locks in the other, more standard order.

Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when
there was a concurrent update to the target tuple (Tom
Lane)

This bug has been observed to result in intermittent
"cannot extract system attribute from
virtual tuple" failures while trying to do
UPDATE RETURNING ctid. There is a
very small probability of more serious errors, such as
generating incorrect index entries for the updated
tuple.

Disallow DROP TABLE when there
are pending deferred trigger events for the table (Tom
Lane)

Formerly the DROP would go
through, leading to "could not open
relation with OID nnn" errors when the triggers were
eventually fired.

Fix usage of xcopy in
Windows build scripts to work correctly under Windows 7
(Andrew Dunstan)

This affects the build scripts only, not installation or
usage.

Fix path separator used by pg_regress on Cygwin (Andrew
Dunstan)

Update time zone data files to tzdata release 2011f for DST law
changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
and Turkey; also historical corrections for South
Australia, Alaska, and Hawaii.