Release date: 2016-05-12
This release contains a variety of fixes from 9.2.16. For information about new features in the 9.2 major release, see Section E.82.
A dump/restore is not required for those running 9.2.X.
However, if you are upgrading from a version earlier than 9.2.11, see Section E.71.
Clear the OpenSSL error queue before OpenSSL calls, rather than assuming it's clear already; and make sure we leave it clear afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
This change prevents problems when there are multiple connections using OpenSSL within a single process and not all the code involved follows the same rules for when to clear the error queue. Failures have been reported specifically when a client application uses SSL connections in libpq concurrently with SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL. It's possible for similar problems to arise within the server as well, if an extension module establishes an outgoing SSL connection.
Fix “failed to build any N
-way joins”
planner error with a full join enclosed in the right-hand side of a
left join (Tom Lane)
Fix incorrect handling of equivalence-class tests in multilevel nestloop plans (Tom Lane)
Given a three-or-more-way equivalence class of variables, such
as X.X = Y.Y = Z.Z
, it was possible for the planner to omit
some of the tests needed to enforce that all the variables are actually
equal, leading to join rows being output that didn't satisfy
the WHERE
clauses. For various reasons, erroneous plans
were seldom selected in practice, so that this bug has gone undetected
for a long time.
Fix possible misbehavior of TH
, th
,
and Y,YYY
format codes in to_timestamp()
(Tom Lane)
These could advance off the end of the input string, causing subsequent format codes to read garbage.
Fix dumping of rules and views in which the array
argument of a
construct is a sub-SELECT
(Tom Lane)
value
operator
ANY (array
)
Make pg_regress use a startup timeout from the
PGCTLTIMEOUT
environment variable, if that's set (Tom Lane)
This is for consistency with a behavior recently added to pg_ctl; it eases automated testing on slow machines.
Fix pg_upgrade to correctly restore extension membership for operator families containing only one operator class (Tom Lane)
In such a case, the operator family was restored into the new database, but it was no longer marked as part of the extension. This had no immediate ill effects, but would cause later pg_dump runs to emit output that would cause (harmless) errors on restore.
Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
These changes were not originally needed in pre-9.4 branches, but we recently back-patched a fix that expected the barrier code to work properly. Only IA64 (when using icc), HPPA, and Alpha platforms are affected.
Reduce the number of SysV semaphores used by a build configured with
--disable-spinlocks
(Tom Lane)
Rename internal function strtoi()
to strtoint()
to avoid conflict with a NetBSD library
function (Thomas Munro)
Fix reporting of errors from bind()
and listen()
system calls on Windows (Tom Lane)
Reduce verbosity of compiler output when building with Microsoft Visual Studio (Christian Ullrich)
Avoid possibly-unsafe use of Windows' FormatMessage()
function (Christian Ullrich)
Use the FORMAT_MESSAGE_IGNORE_INSERTS
flag where
appropriate. No live bug is known to exist here, but it seems like a
good idea to be careful.
Update time zone data files to tzdata release 2016d
for DST law changes in Russia and Venezuela. There are new zone
names Europe/Kirov
and Asia/Tomsk
to reflect
the fact that these regions now have different time zone histories from
adjacent regions.