Release date: 2011-09-26
This release contains a variety of fixes from 8.4.8. For information about new features in the 8.4 major release, see Section E.179.
A dump/restore is not required for those running 8.4.X.
However, if you are upgrading from a version earlier than 8.4.8, see Section E.171.
Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
These bugs could result in index corruption after reindexing a system catalog. They are not believed to affect user indexes.
Fix multiple bugs in GiST index page split processing (Heikki Linnakangas)
The probability of occurrence was low, but these could lead to index corruption.
Fix possible buffer overrun in
tsvector_concat() (Tom Lane)
The function could underestimate the amount of memory needed for its result, leading to server crashes.
Fix crash in
processing a “standalone” parameter (Tom Lane)
NULL for an option with no value (Tom Lane)
Previously such cases would result in a server crash.
Avoid possibly accessing off the end of memory in
ANALYZE and in SJIS-2004 encoding conversion (Noah
This fixes some very-low-probability server crash scenarios.
Prevent intermittent hang in interactions of startup process with bgwriter process (Simon Riggs)
This affected recovery in non-hot-standby cases.
Fix race condition in relcache init file invalidation (Tom Lane)
There was a window wherein a new backend process could read a stale init file but miss the inval messages that would tell it the data is stale. The result would be bizarre failures in catalog accesses, typically “could not read block 0 in file ...” later during startup.
Fix memory leak at end of a GiST index scan (Tom Lane)
Commands that perform many separate GiST index scans, such as verification of a new GiST-based exclusion constraint on a table already containing many rows, could transiently require large amounts of memory due to this leak.
Fix incorrect memory accounting (leading to possible memory
bloat) in tuplestores supporting holdable cursors and plpgsql's
RETURN NEXT command (Tom Lane)
Fix performance problem when constructing a large, lossy bitmap (Tom Lane)
Fix join selectivity estimation for unique columns (Tom Lane)
This fixes an erroneous planner heuristic that could lead to poor estimates of the result size of a join.
Fix nested PlaceHolderVar expressions that appear only in sub-select target lists (Tom Lane)
This mistake could result in outputs of an outer join incorrectly appearing as NULL.
EXISTS queries to be
optimized properly (Tom Lane)
Fix array- and path-creating functions to ensure padding bytes are zeroes (Tom Lane)
This avoids some situations where the planner will think that semantically-equal constants are not equal, resulting in poor optimization.
EXPLAIN to handle gating Result
nodes within inner-indexscan subplans (Tom Lane)
The usual symptom of this oversight was “bogus varno” errors.
Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
This could lead to loss of committed transactions after a server crash.
Fix dump bug for
VALUES in a view
SELECT FOR UPDATE/SHARE on
sequences (Tom Lane)
This operation doesn't work as expected and can lead to failures.
VACUUM so that it always
This fixes some scenarios where autovacuum could make increasingly poor decisions about when to vacuum tables.
Defend against integer overflow when computing size of a hash table (Tom Lane)
Fix cases where
attempt to access already-removed TOAST data (Tom Lane)
Fix portability bugs in use of credentials control messages for “peer” authentication (Tom Lane)
Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari, Magnus Hagander)
The typical symptom of this problem was “The function requested is not supported” errors during SSPI login.
Throw an error if
hostssl but SSL is disabled
This was concluded to be more user-friendly than the previous behavior of silently ignoring such lines.
Fix typo in
initialization (Andres Freund)
This led to failure to use all bits of the provided seed. This
function is not used on most platforms (only those without
srandom), and the potential security
exposure from a less-random-than-expected seed seems minimal in any
Avoid integer overflow when the sum of
values exceeds 2^63 (Heikki Linnakangas)
Add overflow checks to
int8 versions of
generate_series() (Robert Haas)
Fix trailing-zero removal in
to_char() (Marti Raudsepp)
In a format with
FM and no digit
positions after the decimal point, zeroes to the left of the
decimal point could be removed incorrectly.
pg_size_pretty() to avoid
overflow for inputs close to 2^63 (Tom Lane)
Weaken plpgsql's check for typmod matching in record values (Tom Lane)
An overly enthusiastic check could lead to discarding length modifiers that should have been kept.
Correctly handle quotes in locale names during initdb (Heikki Linnakangas)
The case can arise with some Windows locales, such as “People's Republic of China”.
Fix pg_upgrade to preserve toast tables' relfrozenxids during an upgrade from 8.3 (Bruce Momjian)
Failure to do this could lead to
pg_clog files being removed too soon after the
In pg_ctl, support silent mode for service registrations on Windows (MauMau)
Fix psql's counting of script
file line numbers during
COPY from a
different file (Tom Lane)
direct-to-database mode for
standard_conforming_strings (Tom Lane)
pg_restore could emit incorrect
commands when restoring directly to a database server from an
archive file that had been made with
standard_conforming_strings set to
Be more user-friendly about unsupported cases for parallel pg_restore (Tom Lane)
This change ensures that such cases are detected and reported before any restore actions have been taken.
Fix write-past-buffer-end and memory leak in libpq's LDAP service lookup code (Albe Laurenz)
In libpq, avoid failures when using nonblocking I/O and an SSL connection (Martin Pihlak, Tom Lane)
Improve libpq's handling of failures during connection startup (Tom Lane)
In particular, the response to a server report of
fork() failure during SSL connection startup is
Improve libpq's error reporting for SSL failures (Tom Lane)
PQsetvalue() to avoid possible
crash when adding a new tuple to a
PGresult originally obtained from a server
query (Andrew Chernow)
Make ecpglib write
double values with 15 digits precision (Akira
In ecpglib, be sure
LC_NUMERIC setting is restored after
an error (Michael Meskes)
Apply upstream fix for blowfish signed-character bug (CVE-2011-2483) (Tom Lane)
encryption code could give wrong results on platforms where char is
signed (which is most), leading to encrypted passwords being weaker
than they should be.
Fix memory leak in
pgstatindex() to give
consistent results for empty indexes (Tom Lane)
Allow building with perl 5.14 (Alex Hunsaker)
Update configure script's method for probing existence of system functions (Tom Lane)
The version of autoconf we used in 8.3 and 8.2 could be fooled by compilers that perform link-time optimization.
Fix assorted issues with build and install file paths containing spaces (Tom Lane)
Update time zone data files to tzdata release 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.