Release date: 2009-09-09
This release contains a variety of fixes from 8.4. For information about new features in the 8.4 major release, see Section E.181.
A dump/restore is not required for those running 8.4.X.
Fix WAL page header initialization at the end of archive recovery (Heikki)
This could lead to failure to process the WAL in a subsequent archive recovery.
Fix “cannot make new WAL entries during recovery” error (Tom)
Fix problem that could make expired rows visible after a crash (Tom)
This bug involved a page status bit potentially not being set correctly after a server crash.
RESET ROLE and
RESET SESSION AUTHORIZATION
inside security-definer functions (Tom, Heikki)
This covers a case that was missed in the previous
patch that disallowed
AUTHORIZATION inside security-definer functions.
LOAD of an
already-loaded loadable module into a no-op (Tom)
attempt to unload and re-load the module, but this is
unsafe and not all that useful.
Make window function
ORDER BY items
always be interpreted as simple expressions (Tom)
In 8.4.0 these lists were parsed following the rules
used for top-level
ORDER BY lists. But this
was not correct per the SQL standard, and it led to
Fix several errors in planning of semi-joins (Tom)
These led to wrong query results in some cases where
EXISTS was used together with another
Fix handling of whole-row references to subqueries that are within an outer join (Tom)
An example is
FROM ... LEFT JOIN (SELECT ...) ss ON .... Here,
ss.* would be treated as
null-extended join rows, which is not the same as a
simple NULL. Now it is treated as a simple NULL.
Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
This bug led to the often-reported “could not reattach to shared memory” error message.
Fix locale handling with plperl (Heikki)
This bug could cause the server's locale setting to change when a plperl function is called, leading to data corruption.
Fix handling of reloptions to ensure setting one option doesn't force default values for others (Itagaki Takahiro)
Ensure that a “fast shutdown” request will forcibly terminate open sessions, even if a “smart shutdown” was already in progress (Fujii Masao)
Avoid memory leak for
GROUP BY queries (Tom)
as an uppercase ordinal suffix with
It was previously handled as
Include the fractional part in the result of
time with time zone inputs (Tom)
This has always worked for floating-point datetime configurations, but was broken in the integer datetime code.
Fix overflow for
x is more
than 2 million and integer datetimes are in use (Alex
Improve performance when processing toasted values in index scans (Tom)
This is particularly useful for PostGIS.
Fix a typo that disabled
commit_delay (Jeff Janes)
Output early-startup messages to
postmaster.log if the server is started
in silent mode (Tom)
Previously such error messages were discarded, leading to difficulty in debugging.
Remove translated FAQs (Peter)
They are now on the wiki. The main FAQ was moved to the wiki some time ago.
Fix pg_ctl to not go
into an infinite loop if
postgresql.conf is empty (Jeff
Fix several errors in pg_dump's
--binary-upgrade mode (Bruce, Tom)
is used by pg_migrator.
xslt_process() to properly
handle the maximum number of parameters (twenty)
Improve robustness of libpq's code to recover from errors
COPY FROM STDIN
Avoid including conflicting readline and editline header files when both libraries are installed (Zdenek Kotala)
Work around gcc bug that causes “floating-point exception” instead of “division by zero” on some platforms (Tom)
Update time zone data files to tzdata release 2009l for DST law changes in Bangladesh, Egypt, Mauritius.
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.