Release notes for 9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19, 9.1.24.

This commit is contained in:
Tom Lane 2016-10-23 22:13:28 -04:00
parent beac793694
commit ce9bae2261
5 changed files with 2099 additions and 16 deletions

View File

@ -1,6 +1,216 @@
<!-- doc/src/sgml/release-9.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-1-24">
<title>Release 9.1.24</title>
<note>
<title>Release Date</title>
<simpara>2016-10-27</simpara>
</note>
<para>
This release contains a variety of fixes from 9.1.23.
For information about new features in the 9.1 major release, see
<xref linkend="release-9-1">.
</para>
<para>
This is expected to be the last <productname>PostgreSQL</> release
in the 9.1.X series. Users are encouraged to update to a newer
release branch soon.
</para>
<sect2>
<title>Migration to Version 9.1.24</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 EvalPlanQual rechecks involving CTE scans (Tom Lane)
</para>
<para>
The recheck would always see the CTE as returning no rows, typically
leading to failure to update rows that were recently updated.
</para>
</listitem>
<listitem>
<para>
Fix improper repetition of previous results from hashed aggregation in
a subquery (Andrew Gierth)
</para>
<para>
The test to see if we can reuse a previously-computed hash table of
the aggregate state values neglected the possibility of an outer query
reference appearing in an aggregate argument expression. A change in
the value of such a reference should lead to recalculating the hash
table, but did not.
</para>
</listitem>
<listitem>
<para>
Fix timeout length when <command>VACUUM</> is waiting for exclusive
table lock so that it can truncate the table (Simon Riggs)
</para>
<para>
The timeout was meant to be 50 milliseconds, but it was actually only
50 microseconds, causing <command>VACUUM</> to give up on truncation
much more easily than intended. Set it to the intended value.
</para>
</listitem>
<listitem>
<para>
Remove artificial restrictions on the values accepted
by <function>numeric_in()</> and <function>numeric_recv()</>
(Tom Lane)
</para>
<para>
We allow numeric values up to the limit of the storage format (more
than <literal>1e100000</>), so it seems fairly pointless
that <function>numeric_in()</> rejected scientific-notation exponents
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
reject more than 1000 digits in an input value.
</para>
</listitem>
<listitem>
<para>
Avoid very-low-probability data corruption due to testing tuple
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix file descriptor leakage when truncating a temporary relation of
more than 1GB (Andres Freund)
</para>
</listitem>
<listitem>
<para>
Disallow starting a standalone backend with <literal>standby_mode</>
turned on (Michael Paquier)
</para>
<para>
This can't do anything useful, since there will be no WAL receiver
process to fetch more WAL data; and it could result in misbehavior
in code that wasn't designed with this situation in mind.
</para>
</listitem>
<listitem>
<para>
Don't try to share SSL contexts across multiple connections
in <application>libpq</> (Heikki Linnakangas)
</para>
<para>
This led to assorted corner-case bugs, particularly when trying to use
different SSL parameters for different connections.
</para>
</listitem>
<listitem>
<para>
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
</para>
<para>
The reported problem involved leaking an error report
during <function>PQreset()</>, but there might be related cases.
</para>
</listitem>
<listitem>
<para>
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
options work consistently with our other executables (Haribabu Kommi)
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
of the <command>EXPLAIN</> it does when given the <option>-e</> option
(Daniel Gustafsson)
</para>
</listitem>
<listitem>
<para>
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
</para>
<para>
If a dynamic time zone abbreviation does not match any entry in the
referenced time zone, treat it as equivalent to the time zone name.
This avoids unexpected failures when IANA removes abbreviations from
their time zone database, as they did in <application>tzdata</>
release 2016f and seem likely to do again in the future. The
consequences were not limited to not recognizing the individual
abbreviation; any mismatch caused
the <structname>pg_timezone_abbrevs</> view to fail altogether.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2016h
for DST law changes in Palestine and Turkey, plus historical
corrections for Turkey and some regions of Russia.
Switch to numeric abbreviations for some time zones in Antarctica,
the former Soviet Union, and Sri Lanka.
</para>
<para>
The IANA time zone database previously provided textual abbreviations
for all time zones, sometimes making up abbreviations that have little
or no currency among the local population. They are in process of
reversing that policy in favor of using numeric UTC offsets in zones
where there is no evidence of real-world use of an English
abbreviation. At least for the time being, <productname>PostgreSQL</>
will continue to accept such removed abbreviations for timestamp input.
But they will not be shown in the <structname>pg_timezone_names</>
view nor used for output.
</para>
<para>
In this update, <literal>AMT</> is no longer shown as being in use to
mean Armenia Time. Therefore, we have changed the <literal>Default</>
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-1-23">
<title>Release 9.1.23</title>
@ -599,7 +809,7 @@ Branch: REL9_1_STABLE [354b3a3ac] 2016-06-19 14:01:17 -0400
<para>
This dodges a portability problem on FreeBSD-derived platforms
(including OS X).
(including macOS).
</para>
</listitem>
@ -2937,7 +3147,7 @@ Branch: REL9_0_STABLE [9d6af7367] 2015-08-15 11:02:34 -0400
<listitem>
<para>
Warn if OS X's <function>setlocale()</> starts an unwanted extra
Warn if macOS's <function>setlocale()</> starts an unwanted extra
thread inside the postmaster (Noah Misch)
</para>
</listitem>
@ -3574,7 +3784,7 @@ Branch: REL9_0_STABLE [9d6af7367] 2015-08-15 11:02:34 -0400
<listitem>
<para>
Fix linking of <application>libpython</> on OS X (Tom Lane)
Fix linking of <application>libpython</> on macOS (Tom Lane)
</para>
<para>
@ -8443,7 +8653,7 @@ Branch: REL9_0_STABLE [9d6af7367] 2015-08-15 11:02:34 -0400
<listitem>
<para>
Fix incorrect quoting of log file name in Mac OS X start script
Fix incorrect quoting of log file name in macOS start script
(Sidar Lopez)
</para>
</listitem>

View File

@ -1,6 +1,272 @@
<!-- doc/src/sgml/release-9.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-2-19">
<title>Release 9.2.19</title>
<note>
<title>Release Date</title>
<simpara>2016-10-27</simpara>
</note>
<para>
This release contains a variety of fixes from 9.2.18.
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.19</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 EvalPlanQual rechecks involving CTE scans (Tom Lane)
</para>
<para>
The recheck would always see the CTE as returning no rows, typically
leading to failure to update rows that were recently updated.
</para>
</listitem>
<listitem>
<para>
Fix improper repetition of previous results from hashed aggregation in
a subquery (Andrew Gierth)
</para>
<para>
The test to see if we can reuse a previously-computed hash table of
the aggregate state values neglected the possibility of an outer query
reference appearing in an aggregate argument expression. A change in
the value of such a reference should lead to recalculating the hash
table, but did not.
</para>
</listitem>
<listitem>
<para>
Fix <command>EXPLAIN</> to emit valid XML when
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
</para>
<para>
Previously the XML output-format option produced syntactically invalid
tags such as <literal>&lt;I/O-Read-Time&gt;</>. That is now
rendered as <literal>&lt;I-O-Read-Time&gt;</>.
</para>
</listitem>
<listitem>
<para>
Suppress printing of zeroes for unmeasured times
in <command>EXPLAIN</> (Maksim Milyutin)
</para>
<para>
Certain option combinations resulted in printing zero values for times
that actually aren't ever measured in that combination. Our general
policy in <command>EXPLAIN</> is not to print such fields at all, so
do that consistently in all cases.
</para>
</listitem>
<listitem>
<para>
Fix timeout length when <command>VACUUM</> is waiting for exclusive
table lock so that it can truncate the table (Simon Riggs)
</para>
<para>
The timeout was meant to be 50 milliseconds, but it was actually only
50 microseconds, causing <command>VACUUM</> to give up on truncation
much more easily than intended. Set it to the intended value.
</para>
</listitem>
<listitem>
<para>
Fix bugs in merging inherited <literal>CHECK</> constraints while
creating or altering a table (Tom Lane, Amit Langote)
</para>
<para>
Allow identical <literal>CHECK</> constraints to be added to a parent
and child table in either order. Prevent merging of a valid
constraint from the parent table with a <literal>NOT VALID</>
constraint on the child. Likewise, prevent merging of a <literal>NO
INHERIT</> child constraint with an inherited constraint.
</para>
</listitem>
<listitem>
<para>
Remove artificial restrictions on the values accepted
by <function>numeric_in()</> and <function>numeric_recv()</>
(Tom Lane)
</para>
<para>
We allow numeric values up to the limit of the storage format (more
than <literal>1e100000</>), so it seems fairly pointless
that <function>numeric_in()</> rejected scientific-notation exponents
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
reject more than 1000 digits in an input value.
</para>
</listitem>
<listitem>
<para>
Avoid very-low-probability data corruption due to testing tuple
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix file descriptor leakage when truncating a temporary relation of
more than 1GB (Andres Freund)
</para>
</listitem>
<listitem>
<para>
Disallow starting a standalone backend with <literal>standby_mode</>
turned on (Michael Paquier)
</para>
<para>
This can't do anything useful, since there will be no WAL receiver
process to fetch more WAL data; and it could result in misbehavior
in code that wasn't designed with this situation in mind.
</para>
</listitem>
<listitem>
<para>
Don't try to share SSL contexts across multiple connections
in <application>libpq</> (Heikki Linnakangas)
</para>
<para>
This led to assorted corner-case bugs, particularly when trying to use
different SSL parameters for different connections.
</para>
</listitem>
<listitem>
<para>
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
</para>
<para>
The reported problem involved leaking an error report
during <function>PQreset()</>, but there might be related cases.
</para>
</listitem>
<listitem>
<para>
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
options work consistently with our other executables (Haribabu Kommi)
</para>
</listitem>
<listitem>
<para>
In <application>pg_dump</>, never dump range constructor functions
(Tom Lane)
</para>
<para>
This oversight led to <application>pg_upgrade</> failures with
extensions containing range types, due to duplicate creation of the
constructor functions.
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
of the <command>EXPLAIN</> it does when given the <option>-e</> option
(Daniel Gustafsson)
</para>
</listitem>
<listitem>
<para>
Update Windows time zone mapping to recognize some time zone names
added in recent Windows versions (Michael Paquier)
</para>
</listitem>
<listitem>
<para>
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
</para>
<para>
If a dynamic time zone abbreviation does not match any entry in the
referenced time zone, treat it as equivalent to the time zone name.
This avoids unexpected failures when IANA removes abbreviations from
their time zone database, as they did in <application>tzdata</>
release 2016f and seem likely to do again in the future. The
consequences were not limited to not recognizing the individual
abbreviation; any mismatch caused
the <structname>pg_timezone_abbrevs</> view to fail altogether.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2016h
for DST law changes in Palestine and Turkey, plus historical
corrections for Turkey and some regions of Russia.
Switch to numeric abbreviations for some time zones in Antarctica,
the former Soviet Union, and Sri Lanka.
</para>
<para>
The IANA time zone database previously provided textual abbreviations
for all time zones, sometimes making up abbreviations that have little
or no currency among the local population. They are in process of
reversing that policy in favor of using numeric UTC offsets in zones
where there is no evidence of real-world use of an English
abbreviation. At least for the time being, <productname>PostgreSQL</>
will continue to accept such removed abbreviations for timestamp input.
But they will not be shown in the <structname>pg_timezone_names</>
view nor used for output.
</para>
<para>
In this update, <literal>AMT</> is no longer shown as being in use to
mean Armenia Time. Therefore, we have changed the <literal>Default</>
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-2-18">
<title>Release 9.2.18</title>
@ -629,7 +895,7 @@
<para>
This dodges a portability problem on FreeBSD-derived platforms
(including OS X).
(including macOS).
</para>
</listitem>
@ -3190,7 +3456,7 @@ Branch: REL9_2_STABLE [6b700301c] 2015-02-17 16:03:00 +0100
<listitem>
<para>
Warn if OS X's <function>setlocale()</> starts an unwanted extra
Warn if macOS's <function>setlocale()</> starts an unwanted extra
thread inside the postmaster (Noah Misch)
</para>
</listitem>
@ -3899,7 +4165,7 @@ Branch: REL9_2_STABLE [6b700301c] 2015-02-17 16:03:00 +0100
<listitem>
<para>
Fix linking of <application>libpython</> on OS X (Tom Lane)
Fix linking of <application>libpython</> on macOS (Tom Lane)
</para>
<para>

View File

@ -1,6 +1,335 @@
<!-- doc/src/sgml/release-9.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-3-15">
<title>Release 9.3.15</title>
<note>
<title>Release Date</title>
<simpara>2016-10-27</simpara>
</note>
<para>
This release contains a variety of fixes from 9.3.14.
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.15</title>
<para>
A dump/restore is not required for those running 9.3.X.
</para>
<para>
However, if your installation has been affected by the bug described in
the first changelog entry below, then after updating you may need
to take action to repair corrupted free space maps.
</para>
<para>
Also, 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 WAL-logging of truncation of relation free space maps and
visibility maps (Pavan Deolasee, Heikki Linnakangas)
</para>
<para>
It was possible for these files to not be correctly restored during
crash recovery, or to be written incorrectly on a standby server.
Bogus entries in a free space map could lead to attempts to access
pages that have been truncated away from the relation itself, typically
producing errors like <quote>could not read block <replaceable>XXX</>:
read only 0 of 8192 bytes</quote>. Checksum failures in the
visibility map are also possible, if checksumming is enabled.
</para>
<para>
Procedures for determining whether there is a problem and repairing it
if so are discussed at
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
</para>
</listitem>
<listitem>
<para>
Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
have been updated by a subsequently-aborted transaction
(&Aacute;lvaro Herrera)
</para>
<para>
In 9.5 and later, the <command>SELECT</> would sometimes fail to
return such tuples at all. A failure has not been proven to occur in
earlier releases, but might be possible with concurrent updates.
</para>
</listitem>
<listitem>
<para>
Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
</para>
<para>
The recheck would always see the CTE as returning no rows, typically
leading to failure to update rows that were recently updated.
</para>
</listitem>
<listitem>
<para>
Fix improper repetition of previous results from hashed aggregation in
a subquery (Andrew Gierth)
</para>
<para>
The test to see if we can reuse a previously-computed hash table of
the aggregate state values neglected the possibility of an outer query
reference appearing in an aggregate argument expression. A change in
the value of such a reference should lead to recalculating the hash
table, but did not.
</para>
</listitem>
<listitem>
<para>
Fix <command>EXPLAIN</> to emit valid XML when
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
</para>
<para>
Previously the XML output-format option produced syntactically invalid
tags such as <literal>&lt;I/O-Read-Time&gt;</>. That is now
rendered as <literal>&lt;I-O-Read-Time&gt;</>.
</para>
</listitem>
<listitem>
<para>
Suppress printing of zeroes for unmeasured times
in <command>EXPLAIN</> (Maksim Milyutin)
</para>
<para>
Certain option combinations resulted in printing zero values for times
that actually aren't ever measured in that combination. Our general
policy in <command>EXPLAIN</> is not to print such fields at all, so
do that consistently in all cases.
</para>
</listitem>
<listitem>
<para>
Fix timeout length when <command>VACUUM</> is waiting for exclusive
table lock so that it can truncate the table (Simon Riggs)
</para>
<para>
The timeout was meant to be 50 milliseconds, but it was actually only
50 microseconds, causing <command>VACUUM</> to give up on truncation
much more easily than intended. Set it to the intended value.
</para>
</listitem>
<listitem>
<para>
Fix bugs in merging inherited <literal>CHECK</> constraints while
creating or altering a table (Tom Lane, Amit Langote)
</para>
<para>
Allow identical <literal>CHECK</> constraints to be added to a parent
and child table in either order. Prevent merging of a valid
constraint from the parent table with a <literal>NOT VALID</>
constraint on the child. Likewise, prevent merging of a <literal>NO
INHERIT</> child constraint with an inherited constraint.
</para>
</listitem>
<listitem>
<para>
Remove artificial restrictions on the values accepted
by <function>numeric_in()</> and <function>numeric_recv()</>
(Tom Lane)
</para>
<para>
We allow numeric values up to the limit of the storage format (more
than <literal>1e100000</>), so it seems fairly pointless
that <function>numeric_in()</> rejected scientific-notation exponents
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
reject more than 1000 digits in an input value.
</para>
</listitem>
<listitem>
<para>
Avoid very-low-probability data corruption due to testing tuple
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix file descriptor leakage when truncating a temporary relation of
more than 1GB (Andres Freund)
</para>
</listitem>
<listitem>
<para>
Disallow starting a standalone backend with <literal>standby_mode</>
turned on (Michael Paquier)
</para>
<para>
This can't do anything useful, since there will be no WAL receiver
process to fetch more WAL data; and it could result in misbehavior
in code that wasn't designed with this situation in mind.
</para>
</listitem>
<listitem>
<para>
Don't try to share SSL contexts across multiple connections
in <application>libpq</> (Heikki Linnakangas)
</para>
<para>
This led to assorted corner-case bugs, particularly when trying to use
different SSL parameters for different connections.
</para>
</listitem>
<listitem>
<para>
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
</para>
<para>
The reported problem involved leaking an error report
during <function>PQreset()</>, but there might be related cases.
</para>
</listitem>
<listitem>
<para>
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
options work consistently with our other executables (Haribabu Kommi)
</para>
</listitem>
<listitem>
<para>
In <application>pg_dump</>, never dump range constructor functions
(Tom Lane)
</para>
<para>
This oversight led to <application>pg_upgrade</> failures with
extensions containing range types, due to duplicate creation of the
constructor functions.
</para>
</listitem>
<listitem>
<para>
In <application>pg_xlogdump</>, retry opening new WAL segments when
using <option>--follow</> option (Magnus Hagander)
</para>
<para>
This allows for a possible delay in the server's creation of the next
segment.
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_xlogdump</> to cope with a WAL file that begins
with a continuation record spanning more than one page (Pavan
Deolasee)
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
of the <command>EXPLAIN</> it does when given the <option>-e</> option
(Daniel Gustafsson)
</para>
</listitem>
<listitem>
<para>
Update Windows time zone mapping to recognize some time zone names
added in recent Windows versions (Michael Paquier)
</para>
</listitem>
<listitem>
<para>
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
</para>
<para>
If a dynamic time zone abbreviation does not match any entry in the
referenced time zone, treat it as equivalent to the time zone name.
This avoids unexpected failures when IANA removes abbreviations from
their time zone database, as they did in <application>tzdata</>
release 2016f and seem likely to do again in the future. The
consequences were not limited to not recognizing the individual
abbreviation; any mismatch caused
the <structname>pg_timezone_abbrevs</> view to fail altogether.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2016h
for DST law changes in Palestine and Turkey, plus historical
corrections for Turkey and some regions of Russia.
Switch to numeric abbreviations for some time zones in Antarctica,
the former Soviet Union, and Sri Lanka.
</para>
<para>
The IANA time zone database previously provided textual abbreviations
for all time zones, sometimes making up abbreviations that have little
or no currency among the local population. They are in process of
reversing that policy in favor of using numeric UTC offsets in zones
where there is no evidence of real-world use of an English
abbreviation. At least for the time being, <productname>PostgreSQL</>
will continue to accept such removed abbreviations for timestamp input.
But they will not be shown in the <structname>pg_timezone_names</>
view nor used for output.
</para>
<para>
In this update, <literal>AMT</> is no longer shown as being in use to
mean Armenia Time. Therefore, we have changed the <literal>Default</>
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-3-14">
<title>Release 9.3.14</title>
@ -812,7 +1141,7 @@ Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
<para>
This dodges a portability problem on FreeBSD-derived platforms
(including OS X).
(including macOS).
</para>
</listitem>
@ -3021,7 +3350,7 @@ Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
<listitem>
<para>
Silence some build warnings on OS X (Tom Lane)
Silence some build warnings on macOS (Tom Lane)
</para>
</listitem>
@ -4092,7 +4421,7 @@ Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
<listitem>
<para>
Warn if OS X's <function>setlocale()</> starts an unwanted extra
Warn if macOS's <function>setlocale()</> starts an unwanted extra
thread inside the postmaster (Noah Misch)
</para>
</listitem>
@ -5743,7 +6072,7 @@ Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
<listitem>
<para>
Fix linking of <application>libpython</> on OS X (Tom Lane)
Fix linking of <application>libpython</> on macOS (Tom Lane)
</para>
<para>
@ -10710,7 +11039,7 @@ ALTER EXTENSION hstore UPDATE;
<listitem>
<para>
Add <link linkend="docguide-toolsets">instructions</link> for setting
up the documentation tool chain on Mac <productname>OS X</>
up the documentation tool chain on <productname>macOS</>
(Peter Eisentraut)
</para>
</listitem>

View File

@ -1,6 +1,472 @@
<!-- doc/src/sgml/release-9.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-4-10">
<title>Release 9.4.10</title>
<note>
<title>Release Date</title>
<simpara>2016-10-27</simpara>
</note>
<para>
This release contains a variety of fixes from 9.4.9.
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.10</title>
<para>
A dump/restore is not required for those running 9.4.X.
</para>
<para>
However, if your installation has been affected by the bug described in
the first changelog entry below, then after updating you may need
to take action to repair corrupted free space maps.
</para>
<para>
Also, 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 WAL-logging of truncation of relation free space maps and
visibility maps (Pavan Deolasee, Heikki Linnakangas)
</para>
<para>
It was possible for these files to not be correctly restored during
crash recovery, or to be written incorrectly on a standby server.
Bogus entries in a free space map could lead to attempts to access
pages that have been truncated away from the relation itself, typically
producing errors like <quote>could not read block <replaceable>XXX</>:
read only 0 of 8192 bytes</quote>. Checksum failures in the
visibility map are also possible, if checksumming is enabled.
</para>
<para>
Procedures for determining whether there is a problem and repairing it
if so are discussed at
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
</para>
</listitem>
<listitem>
<para>
Fix incorrect creation of GIN index WAL records on big-endian machines
(Tom Lane)
</para>
<para>
The typical symptom was <quote>unexpected GIN leaf action</> errors
during WAL replay.
</para>
</listitem>
<listitem>
<para>
Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
have been updated by a subsequently-aborted transaction
(&Aacute;lvaro Herrera)
</para>
<para>
In 9.5 and later, the <command>SELECT</> would sometimes fail to
return such tuples at all. A failure has not been proven to occur in
earlier releases, but might be possible with concurrent updates.
</para>
</listitem>
<listitem>
<para>
Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
</para>
<para>
The recheck would always see the CTE as returning no rows, typically
leading to failure to update rows that were recently updated.
</para>
</listitem>
<listitem>
<para>
Fix improper repetition of previous results from hashed aggregation in
a subquery (Andrew Gierth)
</para>
<para>
The test to see if we can reuse a previously-computed hash table of
the aggregate state values neglected the possibility of an outer query
reference appearing in an aggregate argument expression. A change in
the value of such a reference should lead to recalculating the hash
table, but did not.
</para>
</listitem>
<listitem>
<para>
Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table
with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix <command>EXPLAIN</> to emit valid XML when
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
</para>
<para>
Previously the XML output-format option produced syntactically invalid
tags such as <literal>&lt;I/O-Read-Time&gt;</>. That is now
rendered as <literal>&lt;I-O-Read-Time&gt;</>.
</para>
</listitem>
<listitem>
<para>
Suppress printing of zeroes for unmeasured times
in <command>EXPLAIN</> (Maksim Milyutin)
</para>
<para>
Certain option combinations resulted in printing zero values for times
that actually aren't ever measured in that combination. Our general
policy in <command>EXPLAIN</> is not to print such fields at all, so
do that consistently in all cases.
</para>
</listitem>
<listitem>
<para>
Fix timeout length when <command>VACUUM</> is waiting for exclusive
table lock so that it can truncate the table (Simon Riggs)
</para>
<para>
The timeout was meant to be 50 milliseconds, but it was actually only
50 microseconds, causing <command>VACUUM</> to give up on truncation
much more easily than intended. Set it to the intended value.
</para>
</listitem>
<listitem>
<para>
Fix bugs in merging inherited <literal>CHECK</> constraints while
creating or altering a table (Tom Lane, Amit Langote)
</para>
<para>
Allow identical <literal>CHECK</> constraints to be added to a parent
and child table in either order. Prevent merging of a valid
constraint from the parent table with a <literal>NOT VALID</>
constraint on the child. Likewise, prevent merging of a <literal>NO
INHERIT</> child constraint with an inherited constraint.
</para>
</listitem>
<listitem>
<para>
Remove artificial restrictions on the values accepted
by <function>numeric_in()</> and <function>numeric_recv()</>
(Tom Lane)
</para>
<para>
We allow numeric values up to the limit of the storage format (more
than <literal>1e100000</>), so it seems fairly pointless
that <function>numeric_in()</> rejected scientific-notation exponents
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
reject more than 1000 digits in an input value.
</para>
</listitem>
<listitem>
<para>
Avoid very-low-probability data corruption due to testing tuple
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix logical WAL decoding to work properly when a subtransaction's WAL
output is large enough to spill to disk (Andres Freund)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: REL9_4_STABLE [10ad15f48] 2016-09-01 11:45:16 -0400
-->
<para>
Fix buffer overread in logical WAL decoding (Tom Lane)
</para>
<para>
Logical decoding of a tuple update record read 23 bytes too many,
which was usually harmless but with very bad luck could result in a
crash.
</para>
</listitem>
<listitem>
<para>
Fix file descriptor leakage when truncating a temporary relation of
more than 1GB (Andres Freund)
</para>
</listitem>
<listitem>
<para>
Disallow starting a standalone backend with <literal>standby_mode</>
turned on (Michael Paquier)
</para>
<para>
This can't do anything useful, since there will be no WAL receiver
process to fetch more WAL data; and it could result in misbehavior
in code that wasn't designed with this situation in mind.
</para>
</listitem>
<listitem>
<para>
Properly initialize replication slot state when recycling a
previously-used slot (Michael Paquier)
</para>
<para>
This failure to reset all of the fields of the slot could
prevent <command>VACUUM</> from removing dead tuples.
</para>
</listitem>
<listitem>
<para>
Round shared-memory allocation request to a multiple of the actual
huge page size when attempting to use huge pages on Linux (Tom Lane)
</para>
<para>
This avoids possible failures during <function>munmap()</> on systems
with atypical default huge page sizes. Except in crash-recovery
cases, there were no ill effects other than a log message.
</para>
</listitem>
<listitem>
<para>
Use a more random value for the dynamic shared memory control
segment's ID (Robert Haas, Tom Lane)
</para>
<para>
Previously, the same value would be chosen every time, because it was
derived from <function>random()</> but <function>srandom()</> had not
yet been called. While relatively harmless, this was not the intended
behavior.
</para>
</listitem>
<listitem>
<para>
On Windows, retry creation of the dynamic shared memory control
segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
</para>
<para>
Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather
than <literal>ERROR_ALREADY_EXISTS</> when there is an existing
segment. This led to postmaster startup failure due to believing that
the former was an unrecoverable error.
</para>
</listitem>
<listitem>
<para>
Don't try to share SSL contexts across multiple connections
in <application>libpq</> (Heikki Linnakangas)
</para>
<para>
This led to assorted corner-case bugs, particularly when trying to use
different SSL parameters for different connections.
</para>
</listitem>
<listitem>
<para>
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
</para>
<para>
The reported problem involved leaking an error report
during <function>PQreset()</>, but there might be related cases.
</para>
</listitem>
<listitem>
<para>
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
options work consistently with our other executables (Haribabu Kommi)
</para>
</listitem>
<listitem>
<para>
Fix <application>pgbench</>'s calculation of average latency
(Fabien Coelho)
</para>
<para>
The calculation was incorrect when there were <literal>\sleep</>
commands in the script, or when the test duration was specified in
number of transactions rather than total time.
</para>
</listitem>
<listitem>
<para>
In <application>pg_dump</>, never dump range constructor functions
(Tom Lane)
</para>
<para>
This oversight led to <application>pg_upgrade</> failures with
extensions containing range types, due to duplicate creation of the
constructor functions.
</para>
</listitem>
<listitem>
<para>
In <application>pg_xlogdump</>, retry opening new WAL segments when
using <option>--follow</> option (Magnus Hagander)
</para>
<para>
This allows for a possible delay in the server's creation of the next
segment.
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_xlogdump</> to cope with a WAL file that begins
with a continuation record spanning more than one page (Pavan
Deolasee)
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/pg_buffercache</> to work
when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei)
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
of the <command>EXPLAIN</> it does when given the <option>-e</> option
(Daniel Gustafsson)
</para>
</listitem>
<listitem>
<para>
Install TAP test infrastructure so that it's available for extension
testing (Craig Ringer)
</para>
<para>
When <productname>PostgreSQL</> has been configured
with <option>--enable-tap-tests</>, <quote>make install</> will now
install the Perl support files for TAP testing where PGXS can find
them. This allows non-core extensions to
use <literal>$(prove_check)</> without extra tests.
</para>
</listitem>
<listitem>
<para>
In MSVC builds, include <application>pg_recvlogical</> in a
client-only installation (MauMau)
</para>
</listitem>
<listitem>
<para>
Update Windows time zone mapping to recognize some time zone names
added in recent Windows versions (Michael Paquier)
</para>
</listitem>
<listitem>
<para>
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
</para>
<para>
If a dynamic time zone abbreviation does not match any entry in the
referenced time zone, treat it as equivalent to the time zone name.
This avoids unexpected failures when IANA removes abbreviations from
their time zone database, as they did in <application>tzdata</>
release 2016f and seem likely to do again in the future. The
consequences were not limited to not recognizing the individual
abbreviation; any mismatch caused
the <structname>pg_timezone_abbrevs</> view to fail altogether.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2016h
for DST law changes in Palestine and Turkey, plus historical
corrections for Turkey and some regions of Russia.
Switch to numeric abbreviations for some time zones in Antarctica,
the former Soviet Union, and Sri Lanka.
</para>
<para>
The IANA time zone database previously provided textual abbreviations
for all time zones, sometimes making up abbreviations that have little
or no currency among the local population. They are in process of
reversing that policy in favor of using numeric UTC offsets in zones
where there is no evidence of real-world use of an English
abbreviation. At least for the time being, <productname>PostgreSQL</>
will continue to accept such removed abbreviations for timestamp input.
But they will not be shown in the <structname>pg_timezone_names</>
view nor used for output.
</para>
<para>
In this update, <literal>AMT</> is no longer shown as being in use to
mean Armenia Time. Therefore, we have changed the <literal>Default</>
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-4-9">
<title>Release 9.4.9</title>
@ -929,7 +1395,7 @@ Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400
<para>
This dodges a portability problem on FreeBSD-derived platforms
(including OS X).
(including macOS).
</para>
</listitem>
@ -5254,7 +5720,7 @@ Branch: REL9_3_STABLE [6347bdb31] 2015-04-05 13:01:55 -0400
<listitem>
<para>
Silence some build warnings on OS X (Tom Lane)
Silence some build warnings on macOS (Tom Lane)
</para>
</listitem>
@ -5813,7 +6279,7 @@ Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
<listitem>
<para>
Warn if OS X's <function>setlocale()</> starts an unwanted extra
Warn if macOS's <function>setlocale()</> starts an unwanted extra
thread inside the postmaster (Noah Misch)
</para>
</listitem>

View File

@ -1,6 +1,818 @@
<!-- doc/src/sgml/release-9.5.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-5-5">
<title>Release 9.5.5</title>
<note>
<title>Release Date</title>
<simpara>2016-10-27</simpara>
</note>
<para>
This release contains a variety of fixes from 9.5.4.
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.5</title>
<para>
A dump/restore is not required for those running 9.5.X.
</para>
<para>
However, if your installation has been affected by the bug described in
the first changelog entry below, then after updating you may need
to take action to repair corrupted free space maps.
</para>
<para>
Also, 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>
<para>
Fix WAL-logging of truncation of relation free space maps and
visibility maps (Pavan Deolasee, Heikki Linnakangas)
</para>
<para>
It was possible for these files to not be correctly restored during
crash recovery, or to be written incorrectly on a standby server.
Bogus entries in a free space map could lead to attempts to access
pages that have been truncated away from the relation itself, typically
producing errors like <quote>could not read block <replaceable>XXX</>:
read only 0 of 8192 bytes</quote>. Checksum failures in the
visibility map are also possible, if checksumming is enabled.
</para>
<para>
Procedures for determining whether there is a problem and repairing it
if so are discussed at
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
</para>
</listitem>
<listitem>
<!--
zAuthor: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [60893786d] 2016-09-03 13:28:53 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [36646d3af] 2016-09-03 13:28:53 -0400
Branch: REL9_5_STABLE [08a72872f] 2016-09-03 13:28:53 -0400
Branch: REL9_4_STABLE [a69443564] 2016-09-03 13:28:53 -0400
-->
<para>
Fix incorrect creation of GIN index WAL records on big-endian machines
(Tom Lane)
</para>
<para>
The typical symptom was <quote>unexpected GIN leaf action</> errors
during WAL replay.
</para>
</listitem>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master [5c609a742] 2016-09-09 15:54:29 -0300
Branch: REL9_6_STABLE Release: REL9_6_0 [c3656c9ff] 2016-09-09 15:54:29 -0300
Branch: REL9_5_STABLE [f33765885] 2016-09-09 15:54:29 -0300
Branch: REL9_4_STABLE [8778da2af] 2016-09-09 15:54:29 -0300
Branch: REL9_3_STABLE [dfe7121df] 2016-09-09 15:54:29 -0300
-->
<para>
Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
have been updated by a subsequently-aborted transaction
(&Aacute;lvaro Herrera)
</para>
<para>
In 9.5 and later, the <command>SELECT</> would sometimes fail to
return such tuples at all. A failure has not been proven to occur in
earlier releases, but might be possible with concurrent updates.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [96dd77d34] 2016-09-22 11:35:03 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [a88fe25f5] 2016-09-22 11:34:44 -0400
Branch: REL9_5_STABLE [c35917835] 2016-09-22 11:34:44 -0400
Branch: REL9_4_STABLE [d3dd00e67] 2016-09-22 11:34:44 -0400
Branch: REL9_3_STABLE [73df86a37] 2016-09-22 11:34:44 -0400
Branch: REL9_2_STABLE [8552f9b90] 2016-09-22 11:34:44 -0400
Branch: REL9_1_STABLE [0183df5dc] 2016-09-22 11:34:45 -0400
-->
<para>
Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
</para>
<para>
The recheck would always see the CTE as returning no rows, typically
leading to failure to update rows that were recently updated.
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [07ef03512] 2016-08-17 17:03:36 -0700
Branch: REL9_6_STABLE Release: REL9_6_0 [e79aaebcc] 2016-08-17 17:03:36 -0700
Branch: REL9_5_STABLE [94bc30725] 2016-08-17 17:03:36 -0700
-->
<para>
Fix deletion of speculatively inserted TOAST tuples when backing out
of <command>INSERT ... ON CONFLICT</> (Oskari Saarenmaa)
</para>
<para>
In the race condition where two transactions try to insert conflicting
tuples at about the same time, the loser would fail with
an <quote>attempted to delete invisible tuple</> error if its
insertion included any TOAST'ed fields.
</para>
</listitem>
<listitem>
<para>
Don't throw serialization errors for self-conflicting insertions
in <command>INSERT ... ON CONFLICT</> (Thomas Munro, Peter Geoghegan)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [2c00fad28] 2016-08-24 14:38:12 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [616be05df] 2016-08-24 14:38:13 -0400
Branch: REL9_5_STABLE [25fe5f758] 2016-08-24 14:37:50 -0400
Branch: REL9_4_STABLE [08a823e53] 2016-08-24 14:37:51 -0400
Branch: REL9_3_STABLE [aaad96e40] 2016-08-24 14:37:51 -0400
Branch: REL9_2_STABLE [237663897] 2016-08-24 14:37:51 -0400
Branch: REL9_1_STABLE [3570ea424] 2016-08-24 14:37:51 -0400
-->
<para>
Fix improper repetition of previous results from hashed aggregation in
a subquery (Andrew Gierth)
</para>
<para>
The test to see if we can reuse a previously-computed hash table of
the aggregate state values neglected the possibility of an outer query
reference appearing in an aggregate argument expression. A change in
the value of such a reference should lead to recalculating the hash
table, but did not.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [ae4760d66] 2016-08-24 22:20:25 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [006fb80a5] 2016-08-24 22:20:26 -0400
Branch: REL9_5_STABLE [46bd14a10] 2016-08-24 22:20:01 -0400
Branch: REL9_4_STABLE [566afa15c] 2016-08-24 22:20:01 -0400
-->
<para>
Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table
with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix <command>COPY</> with a column name list from a table that has
row-level security enabled (Adam Brightwell)
</para>
</listitem>
<listitem>
<para>
Fix <command>EXPLAIN</> to emit valid XML when
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
</para>
<para>
Previously the XML output-format option produced syntactically invalid
tags such as <literal>&lt;I/O-Read-Time&gt;</>. That is now
rendered as <literal>&lt;I-O-Read-Time&gt;</>.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master Release: REL9_6_BR [4b234fd8b] 2016-08-12 12:13:04 -0400
Branch: REL9_5_STABLE [ed2d7b8c8] 2016-08-12 12:13:04 -0400
Branch: REL9_4_STABLE [85974b468] 2016-08-12 12:13:04 -0400
Branch: REL9_3_STABLE [16cc6d23b] 2016-08-12 12:13:04 -0400
Branch: REL9_2_STABLE [ceb005319] 2016-08-12 12:13:04 -0400
-->
<para>
Suppress printing of zeroes for unmeasured times
in <command>EXPLAIN</> (Maksim Milyutin)
</para>
<para>
Certain option combinations resulted in printing zero values for times
that actually aren't ever measured in that combination. Our general
policy in <command>EXPLAIN</> is not to print such fields at all, so
do that consistently in all cases.
</para>
</listitem>
<listitem>
<para>
Fix statistics update for <command>TRUNCATE</> in a prepared
transaction (Stas Kelvich)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
Branch: master [dcb12ce8d] 2016-09-06 15:35:47 +0100
Branch: REL9_6_STABLE Release: REL9_6_0 [1fa42debe] 2016-09-09 11:43:08 +0100
Branch: REL9_5_STABLE [f3b3e871e] 2016-09-09 11:43:46 +0100
Branch: REL9_4_STABLE [81b0f8204] 2016-09-09 11:44:54 +0100
Branch: REL9_3_STABLE [e1dddf3e8] 2016-09-09 11:45:16 +0100
Branch: REL9_2_STABLE [eaf6fe7fa] 2016-09-09 11:45:40 +0100
Branch: REL9_1_STABLE [3ed7f54bc] 2016-09-09 11:46:03 +0100
-->
<para>
Fix timeout length when <command>VACUUM</> is waiting for exclusive
table lock so that it can truncate the table (Simon Riggs)
</para>
<para>
The timeout was meant to be 50 milliseconds, but it was actually only
50 microseconds, causing <command>VACUUM</> to give up on truncation
much more easily than intended. Set it to the intended value.
</para>
</listitem>
<listitem>
<para>
Fix bugs in merging inherited <literal>CHECK</> constraints while
creating or altering a table (Tom Lane, Amit Langote)
</para>
<para>
Allow identical <literal>CHECK</> constraints to be added to a parent
and child table in either order. Prevent merging of a valid
constraint from the parent table with a <literal>NOT VALID</>
constraint on the child. Likewise, prevent merging of a <literal>NO
INHERIT</> child constraint with an inherited constraint.
</para>
</listitem>
<listitem>
<para>
Show a sensible value
in <structname>pg_settings</>.<structfield>unit</>
for <varname>min_wal_size</> and <varname>max_wal_size</> (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master Release: REL9_6_BR [9389fbd03] 2016-08-14 15:06:01 -0400
Branch: REL9_5_STABLE [635651214] 2016-08-14 15:06:01 -0400
Branch: REL9_4_STABLE [4ac3d7794] 2016-08-14 15:06:01 -0400
Branch: REL9_3_STABLE [e8e20aadd] 2016-08-14 15:06:02 -0400
Branch: REL9_2_STABLE [9d5bf77b5] 2016-08-14 15:06:02 -0400
Branch: REL9_1_STABLE [7e01c8ef3] 2016-08-14 15:06:02 -0400
-->
<para>
Remove artificial restrictions on the values accepted
by <function>numeric_in()</> and <function>numeric_recv()</>
(Tom Lane)
</para>
<para>
We allow numeric values up to the limit of the storage format (more
than <literal>1e100000</>), so it seems fairly pointless
that <function>numeric_in()</> rejected scientific-notation exponents
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
reject more than 1000 digits in an input value.
</para>
</listitem>
<listitem>
<para>
Avoid very-low-probability data corruption due to testing tuple
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix logical WAL decoding to work properly when a subtransaction's WAL
output is large enough to spill to disk (Andres Freund)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [008c4135c] 2016-08-22 15:22:11 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [48b9ca0b6] 2016-08-22 15:30:31 -0400
Branch: REL9_5_STABLE [da9659f87] 2016-08-22 15:30:37 -0400
-->
<para>
Fix possible sorting error when aborting use of abbreviated keys
(Peter Geoghegan)
</para>
<para>
In the worst case, this could result in a corrupt btree index, which
would need to be rebuilt using <command>REINDEX</>. However, the
situation is believed to be rare.
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [769fd9d8e] 2016-09-08 16:51:09 -0700
Branch: REL9_6_STABLE Release: REL9_6_0 [f6802936a] 2016-09-08 16:52:13 -0700
Branch: REL9_5_STABLE [26ce63ce7] 2016-09-08 16:52:13 -0700
Branch: REL9_4_STABLE [075cfbe4a] 2016-09-08 16:52:13 -0700
Branch: REL9_3_STABLE [d2a5b2b28] 2016-09-08 16:52:13 -0700
Branch: REL9_2_STABLE [f5462dedb] 2016-09-08 16:52:13 -0700
Branch: REL9_1_STABLE [08fdfe7a8] 2016-09-08 16:52:13 -0700
-->
<para>
Fix file descriptor leakage when truncating a temporary relation of
more than 1GB (Andres Freund)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [0e0f43d6f] 2016-08-31 08:52:13 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [3fc489cb3] 2016-08-31 08:52:13 -0400
Branch: REL9_5_STABLE [c40bb1155] 2016-08-31 08:52:13 -0400
Branch: REL9_4_STABLE [f4e40537e] 2016-08-31 08:52:13 -0400
Branch: REL9_3_STABLE [baf111d31] 2016-08-31 08:52:13 -0400
Branch: REL9_2_STABLE [823df401d] 2016-08-31 08:52:13 -0400
Branch: REL9_1_STABLE [e3439a455] 2016-08-31 08:52:13 -0400
-->
<para>
Disallow starting a standalone backend with <literal>standby_mode</>
turned on (Michael Paquier)
</para>
<para>
This can't do anything useful, since there will be no WAL receiver
process to fetch more WAL data; and it could result in misbehavior
in code that wasn't designed with this situation in mind.
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
Branch: master [2d7e59100] 2016-08-17 13:15:03 -0700
Branch: REL9_6_STABLE Release: REL9_6_0 [8cb23dba8] 2016-08-17 13:15:03 -0700
Branch: REL9_5_STABLE [de396a1cb] 2016-08-17 13:15:03 -0700
Branch: REL9_4_STABLE [690a2fb90] 2016-08-17 13:15:04 -0700
-->
<para>
Properly initialize replication slot state when recycling a
previously-used slot (Michael Paquier)
</para>
<para>
This failure to reset all of the fields of the slot could
prevent <command>VACUUM</> from removing dead tuples.
</para>
</listitem>
<listitem>
<para>
Round shared-memory allocation request to a multiple of the actual
huge page size when attempting to use huge pages on Linux (Tom Lane)
</para>
<para>
This avoids possible failures during <function>munmap()</> on systems
with atypical default huge page sizes. Except in crash-recovery
cases, there were no ill effects other than a log message.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [470d886c3] 2016-09-20 12:26:29 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [92668cd4d] 2016-09-20 12:28:02 -0400
Branch: REL9_5_STABLE [b1aed95f5] 2016-09-20 12:30:38 -0400
Branch: REL9_4_STABLE [626312d1b] 2016-09-20 12:30:42 -0400
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [49a91b88e] 2016-09-23 09:54:11 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [b251379fb] 2016-09-23 09:54:11 -0400
Branch: REL9_5_STABLE [93528f7b4] 2016-09-23 09:54:11 -0400
Branch: REL9_4_STABLE [32cdf680f] 2016-09-23 09:54:11 -0400
-->
<para>
Use a more random value for the dynamic shared memory control
segment's ID (Robert Haas, Tom Lane)
</para>
<para>
Previously, the same value would be chosen every time, because it was
derived from <function>random()</> but <function>srandom()</> had not
yet been called. While relatively harmless, this was not the intended
behavior.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [419113dfd] 2016-09-20 12:04:41 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [6bcd26c43] 2016-09-20 12:12:27 -0400
Branch: REL9_5_STABLE [c124e3649] 2016-09-20 12:12:31 -0400
Branch: REL9_4_STABLE [c23b2523d] 2016-09-20 12:12:36 -0400
-->
<para>
On Windows, retry creation of the dynamic shared memory control
segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
</para>
<para>
Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather
than <literal>ERROR_ALREADY_EXISTS</> when there is an existing
segment. This led to postmaster startup failure due to believing that
the former was an unrecoverable error.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [5697522d8] 2016-08-18 14:49:08 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [c81c71d88] 2016-08-18 14:48:51 -0400
Branch: REL9_5_STABLE [a8fc19505] 2016-08-18 14:48:51 -0400
-->
<para>
Fix <application>PL/pgSQL</> to not misbehave with parameters and
local variables of type <type>int2vector</> or <type>oidvector</>
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
Don't try to share SSL contexts across multiple connections
in <application>libpq</> (Heikki Linnakangas)
</para>
<para>
This led to assorted corner-case bugs, particularly when trying to use
different SSL parameters for different connections.
</para>
</listitem>
<listitem>
<para>
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
</para>
<para>
The reported problem involved leaking an error report
during <function>PQreset()</>, but there might be related cases.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Branch: master [3fcc98c99] 2016-09-18 13:46:32 +0300
Branch: REL9_6_STABLE Release: REL9_6_0 [e06728d63] 2016-09-18 13:56:11 +0300
Branch: REL9_5_STABLE [7c177ddc2] 2016-09-18 13:56:52 +0300
Branch: REL9_4_STABLE [d48e10a68] 2016-09-18 13:59:57 +0300
Branch: REL9_3_STABLE [b31f335bf] 2016-09-18 14:00:10 +0300
Branch: REL9_2_STABLE [a4a3fac16] 2016-09-18 14:00:13 +0300
Branch: REL9_1_STABLE [ed29d2de2] 2016-09-18 14:07:30 +0300
-->
<para>
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
options work consistently with our other executables (Haribabu Kommi)
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Branch: master [40c3fe498] 2016-09-19 22:55:43 +0300
Branch: REL9_6_STABLE Release: REL9_6_0 [f65764a04] 2016-09-19 22:55:50 +0300
Branch: REL9_5_STABLE [edb5c4097] 2016-09-19 22:58:03 +0300
Branch: REL9_4_STABLE [476945c45] 2016-09-19 22:59:44 +0300
Branch: master [65c655638] 2016-09-21 13:14:48 +0300
Branch: REL9_6_STABLE Release: REL9_6_0 [93834a20f] 2016-09-21 13:16:02 +0300
Branch: REL9_5_STABLE [b93d37474] 2016-09-21 13:16:20 +0300
Branch: REL9_4_STABLE [f16d4a241] 2016-09-21 13:16:24 +0300
-->
<para>
Fix <application>pgbench</>'s calculation of average latency
(Fabien Coelho)
</para>
<para>
The calculation was incorrect when there were <literal>\sleep</>
commands in the script, or when the test duration was specified in
number of transactions rather than total time.
</para>
</listitem>
<listitem>
<para>
In <application>pg_upgrade</>, check library loadability in name order
(Tom Lane)
</para>
<para>
This is a workaround to deal with cross-extension dependencies from
language transform modules to their base language and data type
modules.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [12f6eadff] 2016-09-23 13:49:26 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [7e02476f3] 2016-09-23 13:49:26 -0400
Branch: REL9_5_STABLE [96e16d739] 2016-09-23 13:49:26 -0400
Branch: REL9_4_STABLE [912ea1945] 2016-09-23 13:49:27 -0400
Branch: REL9_3_STABLE [f39bb487d] 2016-09-23 13:49:27 -0400
Branch: REL9_2_STABLE [53b29d986] 2016-09-23 13:49:27 -0400
-->
<para>
In <application>pg_dump</>, never dump range constructor functions
(Tom Lane)
</para>
<para>
This oversight led to <application>pg_upgrade</> failures with
extensions containing range types, due to duplicate creation of the
constructor functions.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [e97e9c57b] 2016-09-08 10:48:03 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [a88cee90f] 2016-09-08 10:48:03 -0400
Branch: REL9_5_STABLE [142a110b3] 2016-09-08 10:48:03 -0400
-->
<para>
In <application>pg_dump</> with <option>-C</>,
suppress <literal>TABLESPACE</> clause of <command>CREATE DATABASE</>
if <option>--no-tablespaces</> is specified (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
Branch: master [49340627f] 2016-08-29 12:16:18 +0100
Branch: REL9_6_STABLE Release: REL9_6_0 [216fd7fe7] 2016-08-29 12:18:12 +0100
Branch: REL9_5_STABLE [9050e5c89] 2016-08-29 12:18:57 +0100
Branch: REL9_5_STABLE [3aa233f82] 2016-08-29 18:12:04 -0300
-->
<para>
Make <application>pg_receivexlog</> work correctly
with <option>--synchronous</> without slots (Gabriele Bartolini)
</para>
</listitem>
<listitem>
<para>
Disallow specifying both <option>--source-server</>
and <option>--source-target</> options to <application>pg_rewind</>
(Michael Banck)
</para>
</listitem>
<listitem>
<para>
Make <application>pg_rewind</> turn off <varname>synchronous_commit</>
in its session on the source server (Michael Banck, Michael Paquier)
</para>
<para>
This allows <application>pg_rewind</> to work even when the source
server is using synchronous replication that is not working for some
reason.
</para>
</listitem>
<listitem>
<para>
In <application>pg_xlogdump</>, retry opening new WAL segments when
using <option>--follow</> option (Magnus Hagander)
</para>
<para>
This allows for a possible delay in the server's creation of the next
segment.
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
Branch: master [bab7823a4] 2016-08-29 14:34:58 +0900
Branch: REL9_6_STABLE Release: REL9_6_0 [2802b02a5] 2016-08-29 14:35:40 +0900
Branch: REL9_5_STABLE [7dfb9b479] 2016-08-29 14:35:51 +0900
Branch: REL9_4_STABLE [314a25fb3] 2016-08-29 14:38:17 +0900
Branch: REL9_3_STABLE [5833306dd] 2016-08-29 15:51:30 +0900
-->
<para>
Fix <application>pg_xlogdump</> to cope with a WAL file that begins
with a continuation record spanning more than one page (Pavan
Deolasee)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [8a503526e] 2016-09-15 09:30:38 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [bea38f34a] 2016-09-15 09:30:37 -0400
Branch: REL9_5_STABLE [60b6d99da] 2016-09-15 09:30:36 -0400
Branch: REL9_4_STABLE [1336bd986] 2016-09-15 09:22:52 -0400
-->
<para>
Fix <filename>contrib/pg_buffercache</> to work
when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [6657acc01] 2016-08-17 15:51:10 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [d715b76d1] 2016-08-17 15:51:10 -0400
Branch: REL9_5_STABLE [509815ed7] 2016-08-17 15:51:10 -0400
Branch: REL9_4_STABLE [3fa8ec44d] 2016-08-17 15:51:10 -0400
Branch: REL9_3_STABLE [7baa8bfca] 2016-08-17 15:51:10 -0400
Branch: REL9_2_STABLE [60bb1bb12] 2016-08-17 15:51:11 -0400
Branch: REL9_1_STABLE [9942376a5] 2016-08-17 15:51:11 -0400
-->
<para>
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
of the <command>EXPLAIN</> it does when given the <option>-e</> option
(Daniel Gustafsson)
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Branch: master [593d4e47d] 2016-09-15 14:42:29 +0300
Branch: REL9_6_STABLE Release: REL9_6_0 [fcd93e4af] 2016-09-15 12:55:38 +0300
Branch: REL9_5_STABLE [e2838c580] 2016-09-15 14:51:42 +0300
Branch: master [5c6df67e0] 2016-09-15 22:52:51 +0300
Branch: REL9_6_STABLE Release: REL9_6_0 [9895818d5] 2016-09-15 22:45:08 +0300
Branch: REL9_5_STABLE [48e5ba61e] 2016-09-15 22:38:01 +0300
-->
<para>
Support OpenSSL 1.1.0 (Heikki Linnakangas)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [c3a081846] 2016-09-23 15:50:00 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [5a83e2d4e] 2016-09-23 15:50:00 -0400
Branch: REL9_5_STABLE [025c9a722] 2016-09-23 15:50:00 -0400
Branch: REL9_4_STABLE [5d41f27a9] 2016-09-23 15:50:00 -0400
-->
<para>
Install TAP test infrastructure so that it's available for extension
testing (Craig Ringer)
</para>
<para>
When <productname>PostgreSQL</> has been configured
with <option>--enable-tap-tests</>, <quote>make install</> will now
install the Perl support files for TAP testing where PGXS can find
them. This allows non-core extensions to
use <literal>$(prove_check)</> without extra tests.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
Branch: master [8614b39bc] 2016-09-19 14:25:57 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [156f974f5] 2016-09-19 14:27:04 -0400
Branch: REL9_5_STABLE [52acf020a] 2016-09-19 14:27:08 -0400
Branch: REL9_4_STABLE [ca93b816f] 2016-09-19 14:27:13 -0400
-->
<para>
In MSVC builds, include <application>pg_recvlogical</> in a
client-only installation (MauMau)
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
Branch: master [a79a68562] 2016-08-18 12:32:42 +0200
Branch: REL9_6_STABLE Release: REL9_6_0 [191d45793] 2016-08-18 12:37:55 +0200
Branch: REL9_5_STABLE [a0833b972] 2016-08-18 15:35:12 +0200
Branch: REL9_4_STABLE [1d990cd8c] 2016-08-18 15:35:26 +0200
Branch: REL9_3_STABLE [e8aed974b] 2016-08-18 15:35:36 +0200
Branch: REL9_2_STABLE [35982db49] 2016-08-18 15:35:43 +0200
-->
<para>
Update Windows time zone mapping to recognize some time zone names
added in recent Windows versions (Michael Paquier)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
Branch: master [39b691f25] 2016-09-02 17:30:02 -0400
Branch: REL9_6_STABLE Release: REL9_6_0 [32c9950b3] 2016-09-02 17:29:31 -0400
Branch: REL9_5_STABLE [73a802a41] 2016-09-02 17:29:31 -0400
Branch: REL9_4_STABLE [7430ac852] 2016-09-02 17:29:32 -0400
Branch: REL9_3_STABLE [ee78d4885] 2016-09-02 17:29:32 -0400
Branch: REL9_2_STABLE [1195b8efe] 2016-09-02 17:29:32 -0400
Branch: REL9_1_STABLE [380dad29d] 2016-09-02 17:29:32 -0400
-->
<para>
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
</para>
<para>
If a dynamic time zone abbreviation does not match any entry in the
referenced time zone, treat it as equivalent to the time zone name.
This avoids unexpected failures when IANA removes abbreviations from
their time zone database, as they did in <application>tzdata</>
release 2016f and seem likely to do again in the future. The
consequences were not limited to not recognizing the individual
abbreviation; any mismatch caused
the <structname>pg_timezone_abbrevs</> view to fail altogether.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2016h
for DST law changes in Palestine and Turkey, plus historical
corrections for Turkey and some regions of Russia.
Switch to numeric abbreviations for some time zones in Antarctica,
the former Soviet Union, and Sri Lanka.
</para>
<para>
The IANA time zone database previously provided textual abbreviations
for all time zones, sometimes making up abbreviations that have little
or no currency among the local population. They are in process of
reversing that policy in favor of using numeric UTC offsets in zones
where there is no evidence of real-world use of an English
abbreviation. At least for the time being, <productname>PostgreSQL</>
will continue to accept such removed abbreviations for timestamp input.
But they will not be shown in the <structname>pg_timezone_names</>
view nor used for output.
</para>
<para>
In this update, <literal>AMT</> is no longer shown as being in use to
mean Armenia Time. Therefore, we have changed the <literal>Default</>
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-5-4">
<title>Release 9.5.4</title>
@ -2023,7 +2835,7 @@ Branch: REL9_1_STABLE [e56acbe2a] 2016-02-10 19:30:12 -0500
<para>
This dodges a portability problem on FreeBSD-derived platforms
(including OS X).
(including macOS).
</para>
</listitem>