Release date: 2012-12-06
This release contains a variety of fixes from 8.3.21. For information about new features in the 8.3 major release, see Section E.205.
The PostgreSQL community will stop releasing updates for the 8.3.X release series in February 2013. Users are encouraged to update to a newer release branch soon.
A dump/restore is not required for those running 8.3.X.
However, if you are upgrading from a version earlier than 8.3.17, see Section E.188.
Fix multiple bugs associated with
CREATE INDEX CONCURRENTLY (Andres
Freund, Tom Lane)
CONCURRENTLY to use in-place updates when changing
the state of an index's
pg_index row. This prevents race
conditions that could cause concurrent sessions to miss
updating the target index, thus resulting in corrupt
Also, fix various other operations to ensure that they
ignore invalid indexes resulting from a failed
CREATE INDEX CONCURRENTLY
command. The most important of these is
VACUUM, because an auto-vacuum could
easily be launched on the table before corrective action
can be taken to fix or remove the invalid index.
Avoid corruption of internal hash tables when out of memory (Hitoshi Harada)
Fix planning of non-strict equivalence clauses above outer joins (Tom Lane)
The planner could derive incorrect constraints from a
clause equating a non-strict construct to something else,
WHERE COALESCE(foo, 0)
= 0 when
coming from the nullable side of an outer join.
Improve planner's ability to prove exclusion constraints from equivalence classes (Tom Lane)
Fix partial-row matching in hashed subplans to handle cross-type cases correctly (Tom Lane)
This affects multicolumn
IN subplans, such as
(a, b) NOT IN (SELECT x, y FROM ...) when for
int8 respectively. This mistake
led to wrong answers or crashes depending on the specific
Acquire buffer lock when re-fetching the old tuple for
AFTER ROW UPDATE/DELETE
trigger (Andres Freund)
In very unusual circumstances, this oversight could result in passing incorrect data to the precheck logic for a foreign-key enforcement trigger. That could result in a crash, or in an incorrect decision about whether to fire the trigger.
REASSIGN OWNED to
handle grants on tablespaces (Álvaro Herrera)
pg_attribute entries for system
columns for views (Tom Lane)
Views do not have any system columns. However, we forgot to remove such entries when converting a table to a view. That's fixed properly for 9.3 and later, but in previous branches we need to defend against existing mis-converted views.
Fix rule printing to dump
INTO correctly (Tom Lane)
Guard against stack overflow when there are too many
EXCEPT clauses in a query (Tom Lane)
Prevent platform-dependent failures when dividing the minimum possible integer value by -1 (Xi Wang, Tom Lane)
Fix possible access past end of string in date parsing (Hitoshi Harada)
Produce an understandable error message if the length of the path name for a Unix-domain socket exceeds the platform-specific limit (Tom Lane, Andrew Dunstan)
Formerly, this would result in something quite unhelpful, such as “Non-recoverable failure in name resolution”.
Fix memory leaks when sending composite column values to the client (Tom Lane)
Make pg_ctl more
robust about reading the
postmaster.pid file (Heikki
Fix race conditions and possible file descriptor leakage.
Fix possible crash in psql if incorrectly-encoded data is
presented and the
client_encoding setting is a client-only
encoding, such as SJIS (Jiang Guiqing)
Fix bugs in the
restore.sql script emitted by
tar output format (Tom Lane)
The script would fail outright on tables whose names
include upper-case characters. Also, make the script
capable of restoring data in
--inserts mode as well as the regular
Fix pg_restore to
files (Brian Weaver, Tom Lane)
The original coding of pg_dump's
tar output mode produced files that are
not fully conformant with the POSIX standard. This has
been corrected for version 9.3. This patch updates
previous branches so that they will accept both the
incorrect and the corrected formats, in hopes of avoiding
compatibility problems when 9.3 comes out.
Fix pg_resetxlog to
correctly when given a relative path to the data
directory (Tom Lane)
This mistake could lead to pg_resetxlog not noticing that there is an active postmaster using the data directory.
lo_export() functions to
report file I/O errors properly (Tom Lane)
Fix ecpg's processing of nested structure pointer variables (Muhammad Usama)
contrib/pageinspect's btree page
inspection functions take buffer locks while examining
pages (Tom Lane)
Fix pgxs support for building loadable modules on AIX (Tom Lane)
Building modules outside the original source tree didn't work on AIX.
Update time zone data files to tzdata release 2012j for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, and portions of Brazil.
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.