Release date: 2011-04-18
This release contains a variety of fixes from 8.4.7. For information about new features in the 8.4 major release, see Section E.175.
A dump/restore is not required for those running 8.4.X.
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.173.
Fix pg_upgrade's handling of TOAST tables (Bruce Momjian)
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.
Suppress incorrect “PD_ALL_VISIBLE flag was incorrectly set” warning (Heikki Linnakangas)
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.
Avoid potential deadlock during catalog cache initialization (Nikhil Sontakke)
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.
Prevent crash triggered by constant-false WHERE conditions during GEQO optimization (Tom Lane)
Improve planner's handling of semi-join and anti-join cases (Tom Lane)
Fix selectivity estimation for text search to account for NULLs (Jesper Krogh)
Improve PL/pgSQL's ability to handle row types with dropped columns (Pavel Stehule)
This is a back-patch of fixes previously made in 9.0.
Fix PL/Python memory leak involving array slices (Daniel Popowich)
Fix pg_restore to cope with long lines (over 1KB) in TOC files (Tom Lane)
Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization (Aurelien Jarno)
Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
There was a hard-wired assumption that this system function was not available on MIPS hardware on these systems. Use a compile-time test instead, since more recent versions have it.
Fix compilation failures on HP-UX (Heikki Linnakangas)
Fix version-incompatibility problem with libintl on Windows (Hiroshi Inoue)
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.