mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-05 13:09:21 +02:00
Release notes for 9.5.4, 9.4.9, 9.3.14, 9.2.18, 9.1.23.
This commit is contained in:
parent
cb5c14984a
commit
c9bb00fbd4
@ -1,6 +1,268 @@
|
|||||||
<!-- doc/src/sgml/release-9.1.sgml -->
|
<!-- doc/src/sgml/release-9.1.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-1-23">
|
||||||
|
<title>Release 9.1.23</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2016-08-11</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.1.22.
|
||||||
|
For information about new features in the 9.1 major release, see
|
||||||
|
<xref linkend="release-9-1">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <productname>PostgreSQL</> community will stop releasing updates
|
||||||
|
for the 9.1.X release series in September 2016.
|
||||||
|
Users are encouraged to update to a newer release branch soon.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.1.23</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.1.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.1.16,
|
||||||
|
see <xref linkend="release-9-1-16">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
||||||
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The SQL standard specifies that <literal>IS NULL</> should return
|
||||||
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
||||||
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
||||||
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
||||||
|
The core executor got this right, but certain planner optimizations
|
||||||
|
treated the test as recursive (thus producing TRUE in both cases),
|
||||||
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
||||||
|
that misbehaved similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
||||||
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash in <function>close_ps()</>
|
||||||
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
||||||
|
for NaN input coordinates (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make it return NULL instead of crashing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unsafe intermediate state during expensive paths
|
||||||
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
||||||
|
but did not WAL-log that action, thus risking data integrity problems
|
||||||
|
if the page were spilled to disk and then a database crash occurred
|
||||||
|
before the tuple update could be completed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
||||||
|
(Alexander Korotkov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
||||||
|
assigned to the current transaction. Normally this is negligible,
|
||||||
|
but if one is up against the XID wraparound limit, consuming more
|
||||||
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
|
||||||
|
(Simon Riggs, Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could
|
||||||
|
result in unnecessary cancellations of queries on its standby
|
||||||
|
servers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
||||||
|
reset the table's <literal>changes_since_analyze</> counter
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If we're only analyzing some columns, we should not prevent routine
|
||||||
|
auto-analyze from happening for the other columns.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
||||||
|
for a unique or nearly-unique column with many null entries (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The nulls could get counted as though they were themselves distinct
|
||||||
|
values, leading to serious planner misestimates in some types of
|
||||||
|
queries.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent autovacuum from starting multiple workers for the same shared
|
||||||
|
catalog (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally this isn't much of a problem because the vacuum doesn't take
|
||||||
|
long anyway; but in the case of a severely bloated catalog, it could
|
||||||
|
result in all but one worker uselessly waiting instead of doing
|
||||||
|
useful work on other tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
||||||
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach libpq to correctly decode server version from future servers
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It's planned to switch to two-part instead of three-part server
|
||||||
|
version numbers for releases after 9.6. Make sure
|
||||||
|
that <function>PQserverVersion()</> returns the correct value for
|
||||||
|
such cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
||||||
|
array elements (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
||||||
|
specifying no compression (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: REL9_1_STABLE [d56c02f1a] 2016-06-19 13:45:03 -0400
|
||||||
|
Branch: REL9_1_STABLE [354b3a3ac] 2016-06-19 14:01:17 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Revert to the old heuristic timeout for <literal>pg_ctl start -w</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The new method adopted as of release 9.1.20 does not work
|
||||||
|
when <varname>silent_mode</> is enabled, so go back to the old way.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
||||||
|
parallel make (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
||||||
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Change some test data that triggered the unusual sorting rules of
|
||||||
|
these locales.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update our copy of the timezone code to match
|
||||||
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This is needed to cope with anticipated future changes in the time
|
||||||
|
zone data files. It also fixes some corner-case bugs in coping with
|
||||||
|
unusual time zones.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016f
|
||||||
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
||||||
|
corrections for Azerbaijan, Belarus, and Morocco.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-1-22">
|
<sect1 id="release-9-1-22">
|
||||||
<title>Release 9.1.22</title>
|
<title>Release 9.1.22</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,267 @@
|
|||||||
<!-- doc/src/sgml/release-9.2.sgml -->
|
<!-- doc/src/sgml/release-9.2.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-2-18">
|
||||||
|
<title>Release 9.2.18</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2016-08-11</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.2.17.
|
||||||
|
For information about new features in the 9.2 major release, see
|
||||||
|
<xref linkend="release-9-2">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.2.18</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.2.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.2.11,
|
||||||
|
see <xref linkend="release-9-2-11">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
||||||
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The SQL standard specifies that <literal>IS NULL</> should return
|
||||||
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
||||||
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
||||||
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
||||||
|
The core executor got this right, but certain planner optimizations
|
||||||
|
treated the test as recursive (thus producing TRUE in both cases),
|
||||||
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
||||||
|
that misbehaved similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
||||||
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash in <function>close_ps()</>
|
||||||
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
||||||
|
for NaN input coordinates (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make it return NULL instead of crashing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unsafe intermediate state during expensive paths
|
||||||
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
||||||
|
but did not WAL-log that action, thus risking data integrity problems
|
||||||
|
if the page were spilled to disk and then a database crash occurred
|
||||||
|
before the tuple update could be completed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid crash in <literal>postgres -C</> when the specified variable
|
||||||
|
has a null string value (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
||||||
|
(Alexander Korotkov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
||||||
|
assigned to the current transaction. Normally this is negligible,
|
||||||
|
but if one is up against the XID wraparound limit, consuming more
|
||||||
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
|
||||||
|
(Simon Riggs, Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could
|
||||||
|
result in unnecessary cancellations of queries on its standby
|
||||||
|
servers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
||||||
|
reset the table's <literal>changes_since_analyze</> counter
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If we're only analyzing some columns, we should not prevent routine
|
||||||
|
auto-analyze from happening for the other columns.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
||||||
|
for a unique or nearly-unique column with many null entries (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The nulls could get counted as though they were themselves distinct
|
||||||
|
values, leading to serious planner misestimates in some types of
|
||||||
|
queries.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent autovacuum from starting multiple workers for the same shared
|
||||||
|
catalog (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally this isn't much of a problem because the vacuum doesn't take
|
||||||
|
long anyway; but in the case of a severely bloated catalog, it could
|
||||||
|
result in all but one worker uselessly waiting instead of doing
|
||||||
|
useful work on other tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent infinite loop in GiST index build for geometric columns
|
||||||
|
containing NaN component values (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
||||||
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach libpq to correctly decode server version from future servers
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It's planned to switch to two-part instead of three-part server
|
||||||
|
version numbers for releases after 9.6. Make sure
|
||||||
|
that <function>PQserverVersion()</> returns the correct value for
|
||||||
|
such cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
||||||
|
array elements (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>pg_dump</> with both <option>-c</> and <option>-C</>
|
||||||
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
|
||||||
|
command (David Johnston, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
||||||
|
specifying no compression (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
||||||
|
parallel make (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
||||||
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Change some test data that triggered the unusual sorting rules of
|
||||||
|
these locales.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update our copy of the timezone code to match
|
||||||
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This is needed to cope with anticipated future changes in the time
|
||||||
|
zone data files. It also fixes some corner-case bugs in coping with
|
||||||
|
unusual time zones.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016f
|
||||||
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
||||||
|
corrections for Azerbaijan, Belarus, and Morocco.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-2-17">
|
<sect1 id="release-9-2-17">
|
||||||
<title>Release 9.2.17</title>
|
<title>Release 9.2.17</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,416 @@
|
|||||||
<!-- doc/src/sgml/release-9.3.sgml -->
|
<!-- doc/src/sgml/release-9.3.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-3-14">
|
||||||
|
<title>Release 9.3.14</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2016-08-11</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.3.13.
|
||||||
|
For information about new features in the 9.3 major release, see
|
||||||
|
<xref linkend="release-9-3">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.3.14</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.3.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.3.9,
|
||||||
|
see <xref linkend="release-9-3-9">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
||||||
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The SQL standard specifies that <literal>IS NULL</> should return
|
||||||
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
||||||
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
||||||
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
||||||
|
The core executor got this right, but certain planner optimizations
|
||||||
|
treated the test as recursive (thus producing TRUE in both cases),
|
||||||
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
||||||
|
that misbehaved similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
||||||
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash in <function>close_ps()</>
|
||||||
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
||||||
|
for NaN input coordinates (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make it return NULL instead of crashing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible crash in <function>pg_get_expr()</> when inconsistent
|
||||||
|
values are passed to it (Michael Paquier, Thomas Munro)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Do not run the planner on the query contained in <literal>CREATE
|
||||||
|
MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
|
||||||
|
when <literal>WITH NO DATA</> is specified (Michael Paquier,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids some unnecessary failure conditions, for example if a
|
||||||
|
stable function invoked by the materialized view depends on a table
|
||||||
|
that doesn't exist yet.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unsafe intermediate state during expensive paths
|
||||||
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
||||||
|
but did not WAL-log that action, thus risking data integrity problems
|
||||||
|
if the page were spilled to disk and then a database crash occurred
|
||||||
|
before the tuple update could be completed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix hint bit update during WAL replay of row locking operations
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The only known consequence of this problem is that row locks held by
|
||||||
|
a prepared, but uncommitted, transaction might fail to be enforced
|
||||||
|
after a crash and restart.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unnecessary <quote>could not serialize access</> errors when
|
||||||
|
acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid crash in <literal>postgres -C</> when the specified variable
|
||||||
|
has a null string value (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that backends see up-to-date statistics for shared catalogs
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The statistics collector failed to update the statistics file for
|
||||||
|
shared catalogs after a request from a regular backend. This problem
|
||||||
|
was partially masked because the autovacuum launcher regularly makes
|
||||||
|
requests that did cause such updates; however, it became obvious with
|
||||||
|
autovacuum disabled.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid redundant writes of the statistics files when multiple
|
||||||
|
backends request updates close together (Tom Lane, Tomas Vondra)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
||||||
|
(Alexander Korotkov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
||||||
|
assigned to the current transaction. Normally this is negligible,
|
||||||
|
but if one is up against the XID wraparound limit, consuming more
|
||||||
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
|
||||||
|
(Simon Riggs, Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could
|
||||||
|
result in unnecessary cancellations of queries on its standby
|
||||||
|
servers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent possible failure when vacuuming multixact IDs in an
|
||||||
|
installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
|
||||||
|
Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The usual symptom of this bug is errors
|
||||||
|
like <quote>MultiXactId <replaceable>NNN</> has not been created
|
||||||
|
yet -- apparent wraparound</quote>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
||||||
|
reset the table's <literal>changes_since_analyze</> counter
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If we're only analyzing some columns, we should not prevent routine
|
||||||
|
auto-analyze from happening for the other columns.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
||||||
|
for a unique or nearly-unique column with many null entries (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The nulls could get counted as though they were themselves distinct
|
||||||
|
values, leading to serious planner misestimates in some types of
|
||||||
|
queries.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent autovacuum from starting multiple workers for the same shared
|
||||||
|
catalog (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally this isn't much of a problem because the vacuum doesn't take
|
||||||
|
long anyway; but in the case of a severely bloated catalog, it could
|
||||||
|
result in all but one worker uselessly waiting instead of doing
|
||||||
|
useful work on other tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent infinite loop in GiST index build for geometric columns
|
||||||
|
containing NaN component values (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
||||||
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach libpq to correctly decode server version from future servers
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It's planned to switch to two-part instead of three-part server
|
||||||
|
version numbers for releases after 9.6. Make sure
|
||||||
|
that <function>PQserverVersion()</> returns the correct value for
|
||||||
|
such cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
||||||
|
array elements (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>pg_dump</> with both <option>-c</> and <option>-C</>
|
||||||
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
|
||||||
|
command (David Johnston, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve handling of <systemitem>SIGTERM</>/control-C in
|
||||||
|
parallel <application>pg_dump</> and <application>pg_restore</> (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make sure that the worker processes will exit promptly, and also arrange
|
||||||
|
to send query-cancel requests to the connected backends, in case they
|
||||||
|
are doing something long-running such as a <command>CREATE INDEX</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix error reporting in parallel <application>pg_dump</>
|
||||||
|
and <application>pg_restore</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, errors reported by <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> worker processes might never make it to
|
||||||
|
the user's console, because the messages went through the master
|
||||||
|
process, and there were various deadlock scenarios that would prevent
|
||||||
|
the master process from passing on the messages. Instead, just print
|
||||||
|
everything to <literal>stderr</>. In some cases this will result in
|
||||||
|
duplicate messages (for instance, if all the workers report a server
|
||||||
|
shutdown), but that seems better than no message.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that parallel <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> on Windows will shut down properly
|
||||||
|
after an error (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, it would report the error, but then just sit until
|
||||||
|
manually stopped by the user.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_dump</> behave better when built without zlib
|
||||||
|
support (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It didn't work right for parallel dumps, and emitted some rather
|
||||||
|
pointless warnings in other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
||||||
|
specifying no compression (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
||||||
|
parallel make (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
||||||
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Be more predictable about reporting <quote>statement timeout</>
|
||||||
|
versus <quote>lock timeout</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
On heavily loaded machines, the regression tests sometimes failed due
|
||||||
|
to reporting <quote>lock timeout</> even though the statement timeout
|
||||||
|
should have occurred first.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Change some test data that triggered the unusual sorting rules of
|
||||||
|
these locales.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update our copy of the timezone code to match
|
||||||
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This is needed to cope with anticipated future changes in the time
|
||||||
|
zone data files. It also fixes some corner-case bugs in coping with
|
||||||
|
unusual time zones.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016f
|
||||||
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
||||||
|
corrections for Azerbaijan, Belarus, and Morocco.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-3-13">
|
<sect1 id="release-9-3-13">
|
||||||
<title>Release 9.3.13</title>
|
<title>Release 9.3.13</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,448 @@
|
|||||||
<!-- doc/src/sgml/release-9.4.sgml -->
|
<!-- doc/src/sgml/release-9.4.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-4-9">
|
||||||
|
<title>Release 9.4.9</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2016-08-11</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.4.8.
|
||||||
|
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.9</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>
|
||||||
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
||||||
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The SQL standard specifies that <literal>IS NULL</> should return
|
||||||
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
||||||
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
||||||
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
||||||
|
The core executor got this right, but certain planner optimizations
|
||||||
|
treated the test as recursive (thus producing TRUE in both cases),
|
||||||
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
||||||
|
that misbehaved similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
||||||
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash in <function>close_ps()</>
|
||||||
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
||||||
|
for NaN input coordinates (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make it return NULL instead of crashing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible crash in <function>pg_get_expr()</> when inconsistent
|
||||||
|
values are passed to it (Michael Paquier, Thomas Munro)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Do not run the planner on the query contained in <literal>CREATE
|
||||||
|
MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
|
||||||
|
when <literal>WITH NO DATA</> is specified (Michael Paquier,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids some unnecessary failure conditions, for example if a
|
||||||
|
stable function invoked by the materialized view depends on a table
|
||||||
|
that doesn't exist yet.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unsafe intermediate state during expensive paths
|
||||||
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
||||||
|
but did not WAL-log that action, thus risking data integrity problems
|
||||||
|
if the page were spilled to disk and then a database crash occurred
|
||||||
|
before the tuple update could be completed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix hint bit update during WAL replay of row locking operations
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The only known consequence of this problem is that row locks held by
|
||||||
|
a prepared, but uncommitted, transaction might fail to be enforced
|
||||||
|
after a crash and restart.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid unnecessary <quote>could not serialize access</> errors when
|
||||||
|
acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid crash in <literal>postgres -C</> when the specified variable
|
||||||
|
has a null string value (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible loss of large subtransactions in logical decoding
|
||||||
|
(Petru-Florin Mihancea)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure of logical decoding when a subtransaction contains no
|
||||||
|
actual changes (Marko Tiikkaja, Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that backends see up-to-date statistics for shared catalogs
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The statistics collector failed to update the statistics file for
|
||||||
|
shared catalogs after a request from a regular backend. This problem
|
||||||
|
was partially masked because the autovacuum launcher regularly makes
|
||||||
|
requests that did cause such updates; however, it became obvious with
|
||||||
|
autovacuum disabled.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid redundant writes of the statistics files when multiple
|
||||||
|
backends request updates close together (Tom Lane, Tomas Vondra)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
||||||
|
(Alexander Korotkov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
||||||
|
assigned to the current transaction. Normally this is negligible,
|
||||||
|
but if one is up against the XID wraparound limit, consuming more
|
||||||
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: REL9_4_STABLE [7a0f09da7] 2016-05-25 19:39:49 -0400
|
||||||
|
Branch: REL9_3_STABLE [6537a48c5] 2016-05-25 19:39:49 -0400
|
||||||
|
Branch: REL9_2_STABLE [294509ea9] 2016-05-25 19:39:49 -0400
|
||||||
|
Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
|
||||||
|
(Simon Riggs, Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could
|
||||||
|
result in unnecessary cancellations of queries on its standby
|
||||||
|
servers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent possible failure when vacuuming multixact IDs in an
|
||||||
|
installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
|
||||||
|
Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The usual symptom of this bug is errors
|
||||||
|
like <quote>MultiXactId <replaceable>NNN</> has not been created
|
||||||
|
yet -- apparent wraparound</quote>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
||||||
|
reset the table's <literal>changes_since_analyze</> counter
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If we're only analyzing some columns, we should not prevent routine
|
||||||
|
auto-analyze from happening for the other columns.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
||||||
|
for a unique or nearly-unique column with many null entries (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The nulls could get counted as though they were themselves distinct
|
||||||
|
values, leading to serious planner misestimates in some types of
|
||||||
|
queries.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent autovacuum from starting multiple workers for the same shared
|
||||||
|
catalog (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally this isn't much of a problem because the vacuum doesn't take
|
||||||
|
long anyway; but in the case of a severely bloated catalog, it could
|
||||||
|
result in all but one worker uselessly waiting instead of doing
|
||||||
|
useful work on other tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid duplicate buffer lock release when abandoning a b-tree index
|
||||||
|
page deletion attempt (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake prevented <command>VACUUM</> from completing in some
|
||||||
|
cases involving corrupt b-tree indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent infinite loop in GiST index build for geometric columns
|
||||||
|
containing NaN component values (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
||||||
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach libpq to correctly decode server version from future servers
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It's planned to switch to two-part instead of three-part server
|
||||||
|
version numbers for releases after 9.6. Make sure
|
||||||
|
that <function>PQserverVersion()</> returns the correct value for
|
||||||
|
such cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
||||||
|
array elements (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>pg_dump</> with both <option>-c</> and <option>-C</>
|
||||||
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
|
||||||
|
command (David Johnston, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve handling of <systemitem>SIGTERM</>/control-C in
|
||||||
|
parallel <application>pg_dump</> and <application>pg_restore</> (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make sure that the worker processes will exit promptly, and also arrange
|
||||||
|
to send query-cancel requests to the connected backends, in case they
|
||||||
|
are doing something long-running such as a <command>CREATE INDEX</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix error reporting in parallel <application>pg_dump</>
|
||||||
|
and <application>pg_restore</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, errors reported by <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> worker processes might never make it to
|
||||||
|
the user's console, because the messages went through the master
|
||||||
|
process, and there were various deadlock scenarios that would prevent
|
||||||
|
the master process from passing on the messages. Instead, just print
|
||||||
|
everything to <literal>stderr</>. In some cases this will result in
|
||||||
|
duplicate messages (for instance, if all the workers report a server
|
||||||
|
shutdown), but that seems better than no message.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that parallel <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> on Windows will shut down properly
|
||||||
|
after an error (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, it would report the error, but then just sit until
|
||||||
|
manually stopped by the user.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_dump</> behave better when built without zlib
|
||||||
|
support (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It didn't work right for parallel dumps, and emitted some rather
|
||||||
|
pointless warnings in other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
||||||
|
specifying no compression (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
||||||
|
parallel make (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
||||||
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Be more predictable about reporting <quote>statement timeout</>
|
||||||
|
versus <quote>lock timeout</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
On heavily loaded machines, the regression tests sometimes failed due
|
||||||
|
to reporting <quote>lock timeout</> even though the statement timeout
|
||||||
|
should have occurred first.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Change some test data that triggered the unusual sorting rules of
|
||||||
|
these locales.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update our copy of the timezone code to match
|
||||||
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This is needed to cope with anticipated future changes in the time
|
||||||
|
zone data files. It also fixes some corner-case bugs in coping with
|
||||||
|
unusual time zones.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016f
|
||||||
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
||||||
|
corrections for Azerbaijan, Belarus, and Morocco.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-4-8">
|
<sect1 id="release-9-4-8">
|
||||||
<title>Release 9.4.8</title>
|
<title>Release 9.4.8</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,934 @@
|
|||||||
<!-- doc/src/sgml/release-9.5.sgml -->
|
<!-- doc/src/sgml/release-9.5.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-5-4">
|
||||||
|
<title>Release 9.5.4</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2016-08-11</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.5.3.
|
||||||
|
For information about new features in the 9.5 major release, see
|
||||||
|
<xref linkend="release-9-5">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.5.4</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.5.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.5.2,
|
||||||
|
see <xref linkend="release-9-5-2">.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [4452000f3] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: REL9_5_STABLE [d2ef7758d] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: REL9_4_STABLE [0733188cc] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: REL9_3_STABLE [c235d510e] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: REL9_2_STABLE [bcdd8a194] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: REL9_1_STABLE [d243bf77c] 2016-07-26 15:25:02 -0400
|
||||||
|
Branch: master [9492cf86e] 2016-07-28 16:09:15 -0400
|
||||||
|
Branch: REL9_5_STABLE [1e2f96f0a] 2016-07-28 16:09:15 -0400
|
||||||
|
Branch: REL9_4_STABLE [66f7e4081] 2016-07-28 16:09:15 -0400
|
||||||
|
Branch: REL9_3_STABLE [069714387] 2016-07-28 16:09:15 -0400
|
||||||
|
Branch: REL9_2_STABLE [7b8526e5d] 2016-07-28 16:09:15 -0400
|
||||||
|
Branch: REL9_1_STABLE [c0e5096fc] 2016-07-28 16:09:15 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
||||||
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The SQL standard specifies that <literal>IS NULL</> should return
|
||||||
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
||||||
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
||||||
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
||||||
|
The core executor got this right, but certain planner optimizations
|
||||||
|
treated the test as recursive (thus producing TRUE in both cases),
|
||||||
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
||||||
|
that misbehaved similarly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [eae1ad9b6] 2016-05-23 19:23:36 -0400
|
||||||
|
Branch: REL9_5_STABLE [e504d915b] 2016-05-23 19:23:36 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <quote>unrecognized node type</> error for <command>INSERT ... ON
|
||||||
|
CONFLICT</> within a recursive CTE (a <literal>WITH</> item) (Peter
|
||||||
|
Geoghegan)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [26e66184d] 2016-05-11 16:20:23 -0400
|
||||||
|
Branch: REL9_5_STABLE [58d802410] 2016-05-11 16:20:03 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <command>INSERT ... ON CONFLICT</> to successfully match index
|
||||||
|
expressions or index predicates that are simplified during the
|
||||||
|
planner's expression preprocessing phase (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [9c810a2ed] 2016-07-04 16:09:11 -0400
|
||||||
|
Branch: REL9_5_STABLE [31ce32ade] 2016-07-04 16:09:11 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Correctly handle violations of exclusion constraints that apply to
|
||||||
|
the target table of an <literal>INSERT ... ON CONFLICT</> command,
|
||||||
|
but are not one of the selected arbiter indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Such a case should raise a normal constraint-violation error, but it
|
||||||
|
got into an infinite loop instead.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [8a13d5e6d] 2016-05-11 17:06:53 -0400
|
||||||
|
Branch: REL9_5_STABLE [428484ce1] 2016-05-11 17:06:53 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <command>INSERT ... ON CONFLICT</> to not fail if the target
|
||||||
|
table has a unique index on OID (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [4c56f3269] 2016-06-16 17:16:32 -0400
|
||||||
|
Branch: REL9_5_STABLE [a41b14f94] 2016-06-16 17:16:40 -0400
|
||||||
|
Branch: REL9_4_STABLE [2a8b5d210] 2016-06-16 17:16:44 -0400
|
||||||
|
Branch: REL9_3_STABLE [519445ba2] 2016-06-16 17:16:48 -0400
|
||||||
|
Branch: REL9_2_STABLE [f66e0fec3] 2016-06-16 17:16:53 -0400
|
||||||
|
Branch: REL9_1_STABLE [7b97dafa2] 2016-06-16 17:16:58 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
||||||
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [278148907] 2016-07-16 14:42:37 -0400
|
||||||
|
Branch: REL9_5_STABLE [884bae143] 2016-07-16 14:42:37 -0400
|
||||||
|
Branch: REL9_4_STABLE [59fa0195c] 2016-07-16 14:42:37 -0400
|
||||||
|
Branch: REL9_3_STABLE [16e28fcec] 2016-07-16 14:42:37 -0400
|
||||||
|
Branch: REL9_2_STABLE [89b301104] 2016-07-16 14:42:37 -0400
|
||||||
|
Branch: REL9_1_STABLE [608cc0c41] 2016-07-16 14:42:37 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Prevent crash in <function>close_ps()</>
|
||||||
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
||||||
|
for NaN input coordinates (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make it return NULL instead of crashing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [0daeba0e9] 2016-07-01 11:40:33 -0400
|
||||||
|
Branch: REL9_5_STABLE [40d0bd8d5] 2016-07-01 11:40:22 -0400
|
||||||
|
Branch: REL9_4_STABLE [b25d87f91] 2016-07-01 11:40:22 -0400
|
||||||
|
Branch: REL9_3_STABLE [b0f20c2ea] 2016-07-01 11:40:22 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid possible crash in <function>pg_get_expr()</> when inconsistent
|
||||||
|
values are passed to it (Michael Paquier, Thomas Munro)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [874fe3aea] 2016-06-27 15:57:50 -0400
|
||||||
|
Branch: REL9_5_STABLE [1651b9aa2] 2016-06-27 15:57:21 -0400
|
||||||
|
Branch: REL9_4_STABLE [dc9e03bf4] 2016-06-27 15:57:21 -0400
|
||||||
|
Branch: REL9_3_STABLE [17bfef80e] 2016-06-27 15:57:21 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Do not run the planner on the query contained in <literal>CREATE
|
||||||
|
MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
|
||||||
|
when <literal>WITH NO DATA</> is specified (Michael Paquier,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids some unnecessary failure conditions, for example if a
|
||||||
|
stable function invoked by the materialized view depends on a table
|
||||||
|
that doesn't exist yet.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [bfa2ab56b] 2016-07-15 17:49:48 -0700
|
||||||
|
Branch: REL9_5_STABLE [1f9534b49] 2016-07-15 17:49:48 -0700
|
||||||
|
Branch: REL9_4_STABLE [3d5b227ba] 2016-07-15 17:49:48 -0700
|
||||||
|
Branch: REL9_3_STABLE [2e51ae1f6] 2016-07-15 17:49:48 -0700
|
||||||
|
Branch: REL9_2_STABLE [941557f18] 2016-07-15 17:49:48 -0700
|
||||||
|
Branch: REL9_1_STABLE [37276017f] 2016-07-15 17:49:49 -0700
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid unsafe intermediate state during expensive paths
|
||||||
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
||||||
|
but did not WAL-log that action, thus risking data integrity problems
|
||||||
|
if the page were spilled to disk and then a database crash occurred
|
||||||
|
before the tuple update could be completed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [a4d357bfb] 2016-07-15 14:45:37 -0700
|
||||||
|
Branch: REL9_5_STABLE [b33e81cba] 2016-07-15 14:45:38 -0700
|
||||||
|
Branch: REL9_4_STABLE [f66828ba6] 2016-07-15 14:50:46 -0700
|
||||||
|
Branch: REL9_3_STABLE [46acbeb2f] 2016-07-15 14:51:03 -0700
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix hint bit update during WAL replay of row locking operations
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The only known consequence of this problem is that row locks held by
|
||||||
|
a prepared, but uncommitted, transaction might fail to be enforced
|
||||||
|
after a crash and restart.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [533e9c6b0] 2016-07-15 14:17:20 -0400
|
||||||
|
Branch: REL9_5_STABLE [649dd1b58] 2016-07-15 14:17:20 -0400
|
||||||
|
Branch: REL9_4_STABLE [166873dd0] 2016-07-15 14:17:20 -0400
|
||||||
|
Branch: REL9_3_STABLE [6c243f90a] 2016-07-15 14:17:20 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid unnecessary <quote>could not serialize access</> errors when
|
||||||
|
acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [69f526aa4] 2016-06-03 15:14:50 -0400
|
||||||
|
Branch: REL9_5_STABLE [a102f98e2] 2016-06-03 15:14:35 -0400
|
||||||
|
Branch: master [9eaf5be50] 2016-06-03 18:07:14 -0400
|
||||||
|
Branch: REL9_5_STABLE [8355897ff] 2016-06-03 18:07:14 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make sure <quote>expanded</> datums returned by a plan node are
|
||||||
|
read-only (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids failures in some cases where the result of a lower plan
|
||||||
|
node is referenced in multiple places in upper nodes. So far as
|
||||||
|
core <productname>PostgreSQL</> is concerned, only array values
|
||||||
|
returned by PL/pgSQL functions are at risk; but extensions might
|
||||||
|
use expanded datums for other things.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [0b0baf262] 2016-06-16 12:17:38 -0400
|
||||||
|
Branch: REL9_5_STABLE [4f5995dd9] 2016-06-16 12:17:11 -0400
|
||||||
|
Branch: REL9_4_STABLE [e542bfe61] 2016-06-16 12:17:16 -0400
|
||||||
|
Branch: REL9_3_STABLE [29987b2e1] 2016-06-16 12:17:20 -0400
|
||||||
|
Branch: REL9_2_STABLE [23ed284a5] 2016-06-16 12:17:25 -0400
|
||||||
|
Branch: master [e45e990e4] 2016-06-22 11:55:18 -0400
|
||||||
|
Branch: REL9_5_STABLE [f2c28bb1f] 2016-06-22 11:55:24 -0400
|
||||||
|
Branch: REL9_4_STABLE [f22a3e5ce] 2016-06-22 11:55:28 -0400
|
||||||
|
Branch: REL9_3_STABLE [dafdcbb6c] 2016-06-22 11:55:32 -0400
|
||||||
|
Branch: REL9_2_STABLE [dd41661d2] 2016-06-22 11:55:35 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid crash in <literal>postgres -C</> when the specified variable
|
||||||
|
has a null string value (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [80b346c20] 2016-07-29 12:52:57 -0400
|
||||||
|
Branch: REL9_5_STABLE [c8966a925] 2016-07-29 12:53:02 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Prevent unintended waits for the receiver in WAL sender processes
|
||||||
|
(Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [f8c58554d] 2016-06-30 12:37:02 -0400
|
||||||
|
Branch: REL9_5_STABLE [8caf9fe62] 2016-06-30 12:37:02 -0400
|
||||||
|
Branch: REL9_4_STABLE [1843d88e0] 2016-06-30 12:37:02 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix possible loss of large subtransactions in logical decoding
|
||||||
|
(Petru-Florin Mihancea)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [bcbecbce2] 2016-08-07 13:15:55 -0400
|
||||||
|
Branch: REL9_5_STABLE [71dca408c] 2016-08-07 13:15:55 -0400
|
||||||
|
Branch: REL9_4_STABLE [c63588feb] 2016-08-07 13:15:55 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix failure of logical decoding when a subtransaction contains no
|
||||||
|
actual changes (Marko Tiikkaja, Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [52e8fc3e2] 2016-05-25 17:48:15 -0400
|
||||||
|
Branch: REL9_5_STABLE [b2355a29c] 2016-05-25 17:48:15 -0400
|
||||||
|
Branch: REL9_4_STABLE [4b612a78f] 2016-05-25 17:48:15 -0400
|
||||||
|
Branch: REL9_3_STABLE [463207630] 2016-05-25 17:48:15 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Ensure that backends see up-to-date statistics for shared catalogs
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The statistics collector failed to update the statistics file for
|
||||||
|
shared catalogs after a request from a regular backend. This problem
|
||||||
|
was partially masked because the autovacuum launcher regularly makes
|
||||||
|
requests that did cause such updates; however, it became obvious with
|
||||||
|
autovacuum disabled.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [22b27b4c9] 2016-05-31 15:55:15 -0400
|
||||||
|
Branch: REL9_5_STABLE [47215c16f] 2016-05-31 15:54:46 -0400
|
||||||
|
Branch: REL9_4_STABLE [3ffff7257] 2016-05-31 15:54:46 -0400
|
||||||
|
Branch: REL9_3_STABLE [a84cad224] 2016-05-31 15:54:47 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid redundant writes of the statistics files when multiple
|
||||||
|
backends request updates close together (Tom Lane, Tomas Vondra)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [996d27397] 2016-05-24 15:20:36 -0400
|
||||||
|
Branch: REL9_5_STABLE [a34c3dd50] 2016-05-24 15:20:12 -0400
|
||||||
|
Branch: REL9_4_STABLE [defe936ef] 2016-05-24 15:20:12 -0400
|
||||||
|
Branch: REL9_3_STABLE [9f3e4c813] 2016-05-24 15:20:12 -0400
|
||||||
|
Branch: REL9_2_STABLE [2e7f0c34a] 2016-05-24 15:20:12 -0400
|
||||||
|
Branch: REL9_1_STABLE [fe1731fca] 2016-05-24 15:20:12 -0400
|
||||||
|
Branch: master [2d2e40e3b] 2016-05-24 15:47:51 -0400
|
||||||
|
Branch: REL9_5_STABLE [bbbe2c97e] 2016-05-24 15:47:51 -0400
|
||||||
|
Branch: REL9_4_STABLE [edd8873ff] 2016-05-24 15:47:51 -0400
|
||||||
|
Branch: REL9_3_STABLE [ff98ae908] 2016-05-24 15:47:51 -0400
|
||||||
|
Branch: REL9_2_STABLE [4cf0978ea] 2016-05-24 15:47:51 -0400
|
||||||
|
Branch: REL9_1_STABLE [5551dac59] 2016-05-24 15:47:51 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
||||||
|
(Alexander Korotkov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
||||||
|
assigned to the current transaction. Normally this is negligible,
|
||||||
|
but if one is up against the XID wraparound limit, consuming more
|
||||||
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [e3ad3ffa6] 2016-06-24 18:29:28 -0400
|
||||||
|
Branch: REL9_5_STABLE [d372cb173] 2016-06-24 18:29:28 -0400
|
||||||
|
Branch: REL9_4_STABLE [61b24fef8] 2016-06-24 18:29:28 -0400
|
||||||
|
Branch: REL9_3_STABLE [28f294afd] 2016-06-24 18:29:28 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Prevent possible failure when vacuuming multixact IDs in an
|
||||||
|
installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
|
||||||
|
Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The usual symptom of this bug is errors
|
||||||
|
like <quote>MultiXactId <replaceable>NNN</> has not been created
|
||||||
|
yet -- apparent wraparound</quote>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [f64340e74] 2016-06-06 17:44:17 -0400
|
||||||
|
Branch: REL9_5_STABLE [5acc58c5e] 2016-06-06 17:44:17 -0400
|
||||||
|
Branch: REL9_4_STABLE [a4400c251] 2016-06-06 17:44:17 -0400
|
||||||
|
Branch: REL9_3_STABLE [5f3e0e84b] 2016-06-06 17:44:17 -0400
|
||||||
|
Branch: REL9_2_STABLE [3201709de] 2016-06-06 17:44:18 -0400
|
||||||
|
Branch: REL9_1_STABLE [32ceb8dfb] 2016-06-06 17:44:18 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
||||||
|
reset the table's <literal>changes_since_analyze</> counter
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If we're only analyzing some columns, we should not prevent routine
|
||||||
|
auto-analyze from happening for the other columns.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [95bee941b] 2016-08-07 18:52:02 -0400
|
||||||
|
Branch: REL9_5_STABLE [cb5c14984] 2016-08-07 18:52:02 -0400
|
||||||
|
Branch: REL9_4_STABLE [8f180a6cc] 2016-08-07 18:52:02 -0400
|
||||||
|
Branch: REL9_3_STABLE [20a859504] 2016-08-07 18:52:02 -0400
|
||||||
|
Branch: REL9_2_STABLE [127d73009] 2016-08-07 18:52:02 -0400
|
||||||
|
Branch: REL9_1_STABLE [a449ad095] 2016-08-07 18:52:02 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
||||||
|
for a unique or nearly-unique column with many null entries (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The nulls could get counted as though they were themselves distinct
|
||||||
|
values, leading to serious planner misestimates in some types of
|
||||||
|
queries.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [15739393e] 2016-05-10 16:23:54 -0300
|
||||||
|
Branch: REL9_5_STABLE [7516cdb76] 2016-05-10 16:23:54 -0300
|
||||||
|
Branch: REL9_4_STABLE [e9a273199] 2016-05-10 16:23:54 -0300
|
||||||
|
Branch: REL9_3_STABLE [92ebe509e] 2016-05-10 16:23:54 -0300
|
||||||
|
Branch: REL9_2_STABLE [ca4c6d043] 2016-05-10 16:23:54 -0300
|
||||||
|
Branch: REL9_1_STABLE [2152762c5] 2016-05-10 16:23:54 -0300
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Prevent autovacuum from starting multiple workers for the same shared
|
||||||
|
catalog (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally this isn't much of a problem because the vacuum doesn't take
|
||||||
|
long anyway; but in the case of a severely bloated catalog, it could
|
||||||
|
result in all but one worker uselessly waiting instead of doing
|
||||||
|
useful work on other tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
||||||
|
Branch: master [7392eed7c] 2016-06-02 12:23:01 -0500
|
||||||
|
Branch: REL9_5_STABLE [236d569f9] 2016-06-02 12:23:19 -0500
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix bug in b-tree mark/restore processing (Kevin Grittner)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This error could lead to incorrect join results or assertion failures
|
||||||
|
in a merge join whose inner source node is a b-tree indexscan.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [e89526d4f] 2016-08-06 14:28:37 -0400
|
||||||
|
Branch: REL9_5_STABLE [ee5d1de04] 2016-08-06 14:28:37 -0400
|
||||||
|
Branch: REL9_4_STABLE [98d5f366b] 2016-08-06 14:28:38 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Avoid duplicate buffer lock release when abandoning a b-tree index
|
||||||
|
page deletion attempt (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake prevented <command>VACUUM</> from completing in some
|
||||||
|
cases involving corrupt b-tree indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [8cf739de8] 2016-06-24 16:57:36 -0400
|
||||||
|
Branch: REL9_5_STABLE [07f69137b] 2016-06-24 16:57:36 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix building of large (bigger than <varname>shared_buffers</>)
|
||||||
|
hash indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The code path used for large indexes contained a bug causing
|
||||||
|
incorrect hash values to be inserted into the index, so that
|
||||||
|
subsequent index searches always failed, except for tuples inserted
|
||||||
|
into the index after the initial build.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [1acf75725] 2016-07-14 18:45:59 -0400
|
||||||
|
Branch: REL9_5_STABLE [503546376] 2016-07-14 18:46:00 -0400
|
||||||
|
Branch: REL9_4_STABLE [054052b3a] 2016-07-14 18:46:00 -0400
|
||||||
|
Branch: REL9_3_STABLE [57dba87a7] 2016-07-14 18:46:00 -0400
|
||||||
|
Branch: REL9_2_STABLE [042009f24] 2016-07-14 18:46:00 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Prevent infinite loop in GiST index build for geometric columns
|
||||||
|
containing NaN component values (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [8a859691d] 2016-06-05 11:53:06 -0400
|
||||||
|
Branch: REL9_5_STABLE [a7aa61ffe] 2016-06-05 11:53:06 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix possible crash during a nearest-neighbor (<literal>ORDER BY</>
|
||||||
|
distance) indexscan on a <filename>contrib/btree_gist</> index on
|
||||||
|
an <type>interval</> column (Peter Geoghegan)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [975ad4e60] 2016-05-30 14:47:22 -0400
|
||||||
|
Branch: REL9_5_STABLE [2973d7d02] 2016-05-30 14:47:22 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <quote>PANIC: failed to add BRIN tuple</> error when attempting
|
||||||
|
to update a BRIN index entry (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [8d498a5c8] 2016-08-04 16:06:14 -0400
|
||||||
|
Branch: REL9_5_STABLE [c1d6ee879] 2016-08-04 16:06:14 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix possible crash during background worker shutdown (Dmitry Ivanov)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [baebab3ac] 2016-07-12 18:07:03 -0400
|
||||||
|
Branch: REL9_5_STABLE [a0943dbbe] 2016-07-12 18:06:50 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix PL/pgSQL's handling of the <literal>INTO</> clause
|
||||||
|
within <command>IMPORT FOREIGN SCHEMA</> commands (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
||||||
|
Branch: master [f36ca9af0] 2016-07-17 09:15:37 -0400
|
||||||
|
Branch: REL9_5_STABLE [fb279fc7a] 2016-07-17 09:24:06 -0400
|
||||||
|
Branch: REL9_4_STABLE [97d741650] 2016-07-17 09:37:33 -0400
|
||||||
|
Branch: REL9_3_STABLE [805f2bb53] 2016-07-17 09:38:23 -0400
|
||||||
|
Branch: REL9_2_STABLE [6c0be49b2] 2016-07-17 09:39:51 -0400
|
||||||
|
Branch: REL9_1_STABLE [84d679204] 2016-07-17 09:41:08 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
||||||
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [69dc5ae40] 2016-08-05 18:58:12 -0400
|
||||||
|
Branch: REL9_5_STABLE [cae0d4f9b] 2016-08-05 18:58:19 -0400
|
||||||
|
Branch: REL9_4_STABLE [a3cd60ebf] 2016-08-05 18:58:23 -0400
|
||||||
|
Branch: REL9_3_STABLE [c3107f18a] 2016-08-05 18:58:28 -0400
|
||||||
|
Branch: REL9_2_STABLE [3e40d9227] 2016-08-05 18:58:32 -0400
|
||||||
|
Branch: REL9_1_STABLE [1f63b0e09] 2016-08-05 18:58:36 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Teach libpq to correctly decode server version from future servers
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It's planned to switch to two-part instead of three-part server
|
||||||
|
version numbers for releases after 9.6. Make sure
|
||||||
|
that <function>PQserverVersion()</> returns the correct value for
|
||||||
|
such cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Michael Meskes <meskes@postgresql.org>
|
||||||
|
Branch: master [3ebc88e56] 2016-08-01 15:08:12 +0200
|
||||||
|
Branch: REL9_5_STABLE [dc6b20c6b] 2016-08-01 15:09:23 +0200
|
||||||
|
Branch: REL9_4_STABLE [057404854] 2016-08-01 15:09:12 +0200
|
||||||
|
Branch: REL9_3_STABLE [3ca359426] 2016-08-01 15:08:59 +0200
|
||||||
|
Branch: REL9_2_STABLE [295edbecf] 2016-08-01 15:08:48 +0200
|
||||||
|
Branch: REL9_1_STABLE [c15f502b6] 2016-08-01 15:08:36 +0200
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
||||||
|
array elements (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [e2e95f5ef] 2016-08-02 12:49:40 -0400
|
||||||
|
Branch: REL9_5_STABLE [89c30d113] 2016-08-02 12:49:41 -0400
|
||||||
|
Branch: REL9_4_STABLE [2ff8a2fc0] 2016-08-02 12:49:04 -0400
|
||||||
|
Branch: REL9_3_STABLE [6693c9d7b] 2016-08-02 12:49:09 -0400
|
||||||
|
Branch: REL9_2_STABLE [a5a7caaa1] 2016-08-02 12:49:15 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
In <application>pg_dump</> with both <option>-c</> and <option>-C</>
|
||||||
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
|
||||||
|
command (David Johnston, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [e652273e0] 2016-06-02 13:28:17 -0400
|
||||||
|
Branch: REL9_5_STABLE [404429038] 2016-06-02 13:28:18 -0400
|
||||||
|
Branch: REL9_4_STABLE [96aac0e6d] 2016-06-02 13:27:53 -0400
|
||||||
|
Branch: REL9_3_STABLE [5c9724305] 2016-06-02 13:27:53 -0400
|
||||||
|
Branch: master [6c72a28e5] 2016-06-03 11:29:38 -0400
|
||||||
|
Branch: REL9_5_STABLE [ec5622351] 2016-06-03 11:29:20 -0400
|
||||||
|
Branch: REL9_4_STABLE [53c2601a5] 2016-06-03 11:29:20 -0400
|
||||||
|
Branch: REL9_3_STABLE [4a21c6fd7] 2016-06-03 11:29:20 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Improve handling of <systemitem>SIGTERM</>/control-C in
|
||||||
|
parallel <application>pg_dump</> and <application>pg_restore</> (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Make sure that the worker processes will exit promptly, and also arrange
|
||||||
|
to send query-cancel requests to the connected backends, in case they
|
||||||
|
are doing something long-running such as a <command>CREATE INDEX</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [9abd64ec9] 2016-05-25 12:40:12 -0400
|
||||||
|
Branch: REL9_5_STABLE [af6555b80] 2016-05-25 12:39:57 -0400
|
||||||
|
Branch: REL9_4_STABLE [ea274b2f4] 2016-05-25 12:39:57 -0400
|
||||||
|
Branch: REL9_3_STABLE [1c8205159] 2016-05-25 12:39:57 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix error reporting in parallel <application>pg_dump</>
|
||||||
|
and <application>pg_restore</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, errors reported by <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> worker processes might never make it to
|
||||||
|
the user's console, because the messages went through the master
|
||||||
|
process, and there were various deadlock scenarios that would prevent
|
||||||
|
the master process from passing on the messages. Instead, just print
|
||||||
|
everything to <literal>stderr</>. In some cases this will result in
|
||||||
|
duplicate messages (for instance, if all the workers report a server
|
||||||
|
shutdown), but that seems better than no message.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [df8d2d8c4] 2016-05-26 10:50:30 -0400
|
||||||
|
Branch: REL9_5_STABLE [6479df137] 2016-05-26 10:50:38 -0400
|
||||||
|
Branch: REL9_4_STABLE [d32bc204c] 2016-05-26 10:50:42 -0400
|
||||||
|
Branch: REL9_3_STABLE [b9784e1f7] 2016-05-26 10:50:46 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Ensure that parallel <application>pg_dump</>
|
||||||
|
or <application>pg_restore</> on Windows will shut down properly
|
||||||
|
after an error (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, it would report the error, but then just sit until
|
||||||
|
manually stopped by the user.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Magnus Hagander <magnus@hagander.net>
|
||||||
|
Branch: master [d74048def] 2016-05-26 22:14:23 +0200
|
||||||
|
Branch: REL9_5_STABLE [47e596976] 2016-05-26 22:18:04 +0200
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make parallel <application>pg_dump</> fail cleanly when run against a
|
||||||
|
standby server (Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This usage is not supported
|
||||||
|
unless <option>--no-synchronized-snapshots</> is specified, but the
|
||||||
|
error was not handled very well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [cae2bb198] 2016-05-26 11:51:04 -0400
|
||||||
|
Branch: REL9_5_STABLE [64b296976] 2016-05-26 11:51:11 -0400
|
||||||
|
Branch: REL9_4_STABLE [f2f18a37c] 2016-05-26 11:51:16 -0400
|
||||||
|
Branch: REL9_3_STABLE [99565a1ef] 2016-05-26 11:51:20 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make <application>pg_dump</> behave better when built without zlib
|
||||||
|
support (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It didn't work right for parallel dumps, and emitted some rather
|
||||||
|
pointless warnings in other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Fujii Masao <fujii@postgresql.org>
|
||||||
|
Branch: master [74d8c95b7] 2016-08-01 17:36:14 +0900
|
||||||
|
Branch: REL9_5_STABLE [928e92fda] 2016-08-01 17:37:18 +0900
|
||||||
|
Branch: REL9_4_STABLE [dbe56f2a1] 2016-08-01 17:37:41 +0900
|
||||||
|
Branch: REL9_3_STABLE [013f42372] 2016-08-01 17:37:53 +0900
|
||||||
|
Branch: REL9_2_STABLE [a21617759] 2016-08-01 17:38:00 +0900
|
||||||
|
Branch: REL9_1_STABLE [366f4a962] 2016-08-01 17:38:05 +0900
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
||||||
|
specifying no compression (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Noah Misch <noah@leadboat.com>
|
||||||
|
Branch: master [e8564ef03] 2016-07-23 20:30:03 -0400
|
||||||
|
Branch: REL9_5_STABLE [cf35406f9] 2016-07-23 20:30:40 -0400
|
||||||
|
Branch: REL9_4_STABLE [f0c9e4697] 2016-07-23 20:30:44 -0400
|
||||||
|
Branch: REL9_3_STABLE [98b7a3cf2] 2016-07-23 20:30:48 -0400
|
||||||
|
Branch: REL9_2_STABLE [a4daf59ee] 2016-07-23 20:30:55 -0400
|
||||||
|
Branch: REL9_1_STABLE [b1fa6c0eb] 2016-07-23 20:30:59 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
||||||
|
parallel make (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [30b2731bd] 2016-07-09 16:47:38 -0400
|
||||||
|
Branch: REL9_5_STABLE [f80395ca1] 2016-07-09 16:47:39 -0400
|
||||||
|
Branch: REL9_4_STABLE [02a898b00] 2016-07-09 16:47:39 -0400
|
||||||
|
Branch: REL9_3_STABLE [57e9ea2dd] 2016-07-11 11:24:04 -0400
|
||||||
|
Branch: REL9_2_STABLE [fdf2ee62e] 2016-07-11 11:24:04 -0400
|
||||||
|
Branch: REL9_1_STABLE [71af6c006] 2016-07-11 11:24:04 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
||||||
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [9dd4178ce] 2016-05-27 10:40:20 -0400
|
||||||
|
Branch: REL9_5_STABLE [cea17ba07] 2016-05-27 10:40:20 -0400
|
||||||
|
Branch: REL9_4_STABLE [c2651cd24] 2016-05-27 10:40:20 -0400
|
||||||
|
Branch: REL9_3_STABLE [1f1e70a87] 2016-05-27 10:40:20 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Be more predictable about reporting <quote>statement timeout</>
|
||||||
|
versus <quote>lock timeout</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
On heavily loaded machines, the regression tests sometimes failed due
|
||||||
|
to reporting <quote>lock timeout</> even though the statement timeout
|
||||||
|
should have occurred first.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [b3399cb0f] 2016-07-21 13:11:00 -0400
|
||||||
|
Branch: REL9_5_STABLE [fd507d542] 2016-07-21 13:11:00 -0400
|
||||||
|
Branch: master [9d7abca90] 2016-07-22 15:41:39 -0400
|
||||||
|
Branch: REL9_5_STABLE [2aa2533f2] 2016-07-22 15:41:40 -0400
|
||||||
|
Branch: master [95810ed8e] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: REL9_5_STABLE [95e8b44f0] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: REL9_4_STABLE [dfddc452d] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: REL9_3_STABLE [0060638c8] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: REL9_2_STABLE [52502e7a5] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: REL9_1_STABLE [f61ecd01e] 2016-07-21 14:24:07 -0400
|
||||||
|
Branch: master [d70d11915] 2016-07-21 16:52:35 -0400
|
||||||
|
Branch: REL9_5_STABLE [d365dc3d1] 2016-07-21 16:52:36 -0400
|
||||||
|
Branch: REL9_4_STABLE [1156a9db8] 2016-07-21 16:52:36 -0400
|
||||||
|
Branch: REL9_3_STABLE [e15e7886e] 2016-07-21 16:52:36 -0400
|
||||||
|
Branch: REL9_2_STABLE [a1e750553] 2016-07-21 16:52:36 -0400
|
||||||
|
Branch: REL9_1_STABLE [ba64aed70] 2016-07-21 16:52:36 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
||||||
|
Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Change some test data that triggered the unusual sorting rules of
|
||||||
|
these locales.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: REL9_5_STABLE [19d477aa6] 2016-07-19 15:59:36 -0400
|
||||||
|
Branch: REL9_4_STABLE [590a7f82b] 2016-07-19 15:59:36 -0400
|
||||||
|
Branch: REL9_3_STABLE [3928132ea] 2016-07-19 15:59:36 -0400
|
||||||
|
Branch: REL9_2_STABLE [cd951aa61] 2016-07-19 15:59:36 -0400
|
||||||
|
Branch: REL9_1_STABLE [5db14fad0] 2016-07-19 15:59:36 -0400
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: REL9_5_STABLE [0aabe80c6] 2016-07-19 17:53:31 -0400
|
||||||
|
Branch: REL9_4_STABLE [bdbcfba35] 2016-07-19 17:53:31 -0400
|
||||||
|
Branch: REL9_3_STABLE [f102bd868] 2016-07-19 17:53:31 -0400
|
||||||
|
Branch: REL9_2_STABLE [4d37b7cff] 2016-07-19 17:53:31 -0400
|
||||||
|
Branch: REL9_1_STABLE [d70df7867] 2016-07-19 17:53:31 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Update our copy of the timezone code to match
|
||||||
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This is needed to cope with anticipated future changes in the time
|
||||||
|
zone data files. It also fixes some corner-case bugs in coping with
|
||||||
|
unusual time zones.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [a629330b2] 2016-08-05 12:59:29 -0400
|
||||||
|
Branch: REL9_5_STABLE [3fddd6484] 2016-08-05 12:58:38 -0400
|
||||||
|
Branch: REL9_4_STABLE [8080337b0] 2016-08-05 12:58:46 -0400
|
||||||
|
Branch: REL9_3_STABLE [5630bd2ec] 2016-08-05 12:58:53 -0400
|
||||||
|
Branch: REL9_2_STABLE [7822792f7] 2016-08-05 12:58:58 -0400
|
||||||
|
Branch: REL9_1_STABLE [a44388ffe] 2016-08-05 12:59:02 -0400
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016f
|
||||||
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
||||||
|
corrections for Azerbaijan, Belarus, and Morocco.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-5-3">
|
<sect1 id="release-9-5-3">
|
||||||
<title>Release 9.5.3</title>
|
<title>Release 9.5.3</title>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user