|
|
|
@ -1,6 +1,269 @@ |
|
|
|
|
<!-- doc/src/sgml/release-9.4.sgml --> |
|
|
|
|
<!-- See header comment in release.sgml about typical markup --> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-4-8"> |
|
|
|
|
<title>Release 9.4.8</title> |
|
|
|
|
|
|
|
|
|
<note> |
|
|
|
|
<title>Release Date</title> |
|
|
|
|
<simpara>2016-05-12</simpara> |
|
|
|
|
</note> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This release contains a variety of fixes from 9.4.7. |
|
|
|
|
For information about new features in the 9.4 major release, see |
|
|
|
|
<xref linkend="release-9-4">. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Migration to Version 9.4.8</title> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
A dump/restore is not required for those running 9.4.X. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
However, if you are upgrading from a version earlier than 9.4.6, |
|
|
|
|
see <xref linkend="release-9-4-6">. |
|
|
|
|
</para> |
|
|
|
|
</sect2> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Changes</title> |
|
|
|
|
|
|
|
|
|
<itemizedlist> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
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) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
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 <application>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. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <quote>failed to build any <replaceable>N</>-way joins</quote> |
|
|
|
|
planner error with a full join enclosed in the right-hand side of a |
|
|
|
|
left join (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix incorrect handling of equivalence-class tests in multilevel |
|
|
|
|
nestloop plans (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Given a three-or-more-way equivalence class of variables, such |
|
|
|
|
as <literal>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 <literal>WHERE</> clauses. For various reasons, erroneous plans |
|
|
|
|
were seldom selected in practice, so that this bug has gone undetected |
|
|
|
|
for a long time. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix query-lifespan memory leak and potential index corruption hazard in |
|
|
|
|
GIN index insertion (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The memory leak would typically not amount to much in simple queries, |
|
|
|
|
but it could be very substantial during a large GIN index build with |
|
|
|
|
high <varname>maintenance_work_mem</>. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix possible misbehavior of <literal>TH</>, <literal>th</>, |
|
|
|
|
and <literal>Y,YYY</> format codes in <function>to_timestamp()</> |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
These could advance off the end of the input string, causing subsequent |
|
|
|
|
format codes to read garbage. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix dumping of rules and views in which the <replaceable>array</> |
|
|
|
|
argument of a <literal><replaceable>value</> <replaceable>operator</> |
|
|
|
|
ANY (<replaceable>array</>)</literal> construct is a sub-SELECT |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Disallow newlines in <command>ALTER SYSTEM</> parameter values |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The configuration-file parser doesn't support embedded newlines in |
|
|
|
|
string literals, so we mustn't allow them in values to be inserted |
|
|
|
|
by <command>ALTER SYSTEM</>. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</> to |
|
|
|
|
work properly if an index on OID is selected (David Rowley) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix crash in logical decoding on alignment-picky platforms (Tom Lane, |
|
|
|
|
Andres Freund) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The failure occurred only with a transaction large enough to spill to |
|
|
|
|
disk and a primary-key change within that transaction. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid repeated requests for feedback from receiver while shutting down |
|
|
|
|
walsender (Nick Cleaton) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Make <application>pg_regress</> use a startup timeout from the |
|
|
|
|
<envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This is for consistency with a behavior recently added |
|
|
|
|
to <application>pg_ctl</>; it eases automated testing on slow machines. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>pg_upgrade</> to correctly restore extension |
|
|
|
|
membership for operator families containing only one operator class |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
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 <application>pg_dump</> |
|
|
|
|
runs to emit output that would cause (harmless) errors on restore. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules |
|
|
|
|
differ from old (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
<application>pg_upgrade</> had special-case code to handle the |
|
|
|
|
situation where the new <productname>PostgreSQL</> version thinks that |
|
|
|
|
a table should have a TOAST table while the old version did not. That |
|
|
|
|
code was broken, so remove it, and instead do nothing in such cases; |
|
|
|
|
there seems no reason to believe that we can't get along fine without |
|
|
|
|
a TOAST table if that was okay according to the old version's rules. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Reduce the number of SysV semaphores used by a build configured with |
|
|
|
|
<option>--disable-spinlocks</> (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Rename internal function <function>strtoi()</> |
|
|
|
|
to <function>strtoint()</> to avoid conflict with a NetBSD library |
|
|
|
|
function (Thomas Munro) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix reporting of errors from <function>bind()</> |
|
|
|
|
and <function>listen()</> system calls on Windows (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Reduce verbosity of compiler output when building with Microsoft Visual |
|
|
|
|
Studio (Christian Ullrich) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <function>putenv()</> to work properly with Visual Studio 2013 |
|
|
|
|
(Michael Paquier) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid possibly-unsafe use of Windows' <function>FormatMessage()</> |
|
|
|
|
function (Christian Ullrich) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Use the <literal>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. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Update time zone data files to <application>tzdata</> release 2016d |
|
|
|
|
for DST law changes in Russia and Venezuela. There are new zone |
|
|
|
|
names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect |
|
|
|
|
the fact that these regions now have different time zone histories from |
|
|
|
|
adjacent regions. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-4-7"> |
|
|
|
|
<title>Release 9.4.7</title> |
|
|
|
|
|
|
|
|
|