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 textual columns.
Repair potential deadlock between concurrent VACUUM FULL
operations on different system catalogs (Tom)
Fix longstanding LISTEN/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.
Disallow LISTEN and UNLISTEN within a
prepared transaction (Tom)
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 UNLISTEN remained uncommitted.
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
ALTER OWNER (Tom)
Ensure pg_stat_activity.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)
Previously, pg_ctl start -w could try to contact the
postmaster on the wrong port, leading to bogus reports of startup
failure.
Use -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.
Correctly enforce statement_timeout values longer
than INT_MAX microseconds (about 35 minutes) (Tom)
This bug affects only builds with --enable-integer-datetimes.
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 GROUP BY (Tom)
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.