Release date: 2008-03-17
This release contains a variety of fixes from 8.3.0. For information about new features in the 8.3 major release, see Section E.203.
A dump/restore is not required for those running 8.3.X. However,
you might need to
REINDEX 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 textual
Repair corner-case bugs in
A potential deadlock between concurrent
VACUUM FULL operations on different system
catalogs was introduced in 8.2. This has now been corrected. 8.3
made this worse because the deadlock could occur within a critical
code section, making it a PANIC rather than just ERROR
VACUUM FULL that failed
partway through vacuuming a system catalog could result in cache
corruption in concurrent database sessions.
VACUUM FULL bug introduced
in 8.3 could result in a crash or out-of-memory report when dealing
with pages containing no live tuples.
Fix misbehavior of foreign key checks involving
If the referencing column were of a different but compatible
type (for instance
constraint was enforced incorrectly.
Avoid needless deadlock failures in no-op foreign-key checks (Stephan Szabo, Tom)
Fix possible core dump when re-planning a prepared query (Tom)
This bug affected only protocol-level prepare operations, not
PREPARE, and so tended to be seen
only with JDBC, DBI, and other client-side drivers that use
prepared statements heavily.
Fix possible failure when re-planning a query that calls an SPI-using function (Tom)
Fix failure in row-wise comparisons involving columns of different datatypes (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
A side effect of the fix is that a transaction that has executed
will not see any row in
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 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
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 and 8.3.
Fix rare crash when an error occurs during a query using a hash index (Heikki)
Fix incorrect comparison of
Fix incorrect behavior of
non-ASCII characters in single-byte encodings (Rolf Jentsch)
This function should have been removed before 8.3 release, but was inadvertently left in the source code. It poses a small security risk since unprivileged users could use it to read the first few characters of any file accessible to the server.
Fix memory leaks in certain usages of set-returning functions (Neil)
encode( convert all
high-bit-set byte values into
octal escape sequences (Tom)
This is necessary to avoid encoding problems when the database
encoding is multi-byte. This change could pose compatibility issues
for applications that are expecting specific results from
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)
Avoid tablespace permissions errors in
CREATE TABLE LIKE INCLUDING INDEXES (Tom)
waiting flag is cleared when a lock wait is
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
Fix ecpg problems with arrays (Michael)
Fix pg_ctl to correctly extract the postmaster's port number from command-line options (Itagaki Takahiro, Tom)
pg_ctl start -w could
try to contact the postmaster on the wrong port, leading to bogus
reports of startup failure.
-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.
with MSVC (Hiroshi Saito)
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.