Release date: 2008-03-17
This release contains a variety of fixes from 8.2.6. For information about new features in the 8.2 major release, see Section E.229.
A dump/restore is not required for those running 8.2.X.
However, you might need to
indexes on textual columns after updating, if you are affected
by the Windows locale issue described below.
Fix character string comparison for Windows locales that consider different character combinations as equal (Tom)
This fix applies only on Windows and only when using
UTF-8 database encoding. The same fix was made for all
other cases over two years ago, but Windows with UTF-8
uses a separate code path that was not updated. If you
are using a locale that considers some non-identical
strings as equal, you may need to
REINDEX to fix existing indexes on
Repair potential deadlock between concurrent
VACUUM FULL operations on
different system catalogs (Tom)
NOTIFY race condition (Tom)
In rare cases a session that had just executed a
LISTEN might not get a
notification, even though one would be expected because
the concurrent transaction executing
NOTIFY was observed to commit later.
A side effect of the fix is that a transaction that
has executed a not-yet-committed
LISTEN command will not see any row in
pg_listener for the
LISTEN, should it choose to
look; formerly it would have. This behavior was never
documented one way or the other, but it is possible that
some applications depend on the old behavior.
UNLISTEN within a prepared
This was formerly allowed but trying to do it had
various unpleasant consequences, notably that the
originating backend could not exit as long as an
Disallow dropping a temporary table within a prepared transaction (Heikki)
This was correctly disallowed by 8.1, but the check was inadvertently broken in 8.2.
Fix rare crash when an error occurs during a query using a hash index (Heikki)
Fix memory leaks in certain usages of set-returning functions (Neil)
Fix input of datetime values for February 29 in years BC (Tom)
The former coding was mistaken about which years were leap years.
Fix “unrecognized node type” error in
some variants of
waiting flag is cleared when a lock
wait is aborted (Tom)
Fix handling of process permissions on Windows Vista (Dave, Magnus)
In particular, this fix allows starting the server as the Administrator user.
Update time zone data files to tzdata release 2008a (in particular,
recent Chile changes); adjust timezone abbreviation
VET (Venezuela) to mean
UTC-4:30, not UTC-4:00 (Tom)
Fix pg_ctl to correctly extract the postmaster's port number from command-line options (Itagaki Takahiro, Tom)
-w could try to contact the postmaster on the
wrong port, leading to bogus reports of startup
-fwrapv to defend
against possible misoptimization in recent gcc versions (Tom)
This is known to be necessary when building PostgreSQL with gcc 4.3 or later.
statement_timeout values longer than
INT_MAX microseconds (about
35 minutes) (Tom)
This bug affects only builds with
Fix “unexpected PARAM_SUBLINK ID” planner error when constant-folding simplifies a sub-select (Tom)
Fix logical errors in constraint-exclusion handling of
IS NULL and
NOT expressions (Tom)
The planner would sometimes exclude partitions that should not have been excluded because of the possibility of NULL results.
Fix another cause of “failed to build any N-way joins” planner errors (Tom)
This could happen in cases where a clauseless join needed to be forced before a join clause could be exploited.
Fix incorrect constant propagation in outer-join planning (Tom)
The planner could sometimes incorrectly conclude that a variable could be constrained to be equal to a constant, leading to wrong query results.
Fix display of constant expressions in
ORDER BY and
An explicitly casted constant would be shown incorrectly. This could for example lead to corruption of a view definition during dump and reload.
Fix libpq to handle NOTICE messages correctly during COPY OUT (Tom)
This failure has only been observed to occur when a user-defined datatype's output routine issues a NOTICE, but there is no guarantee it couldn't happen due to other causes.
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.