<listitem>
<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [b8a1247a3] 2018-08-04 19:38:58 -0400
+Branch: REL_11_STABLE [e7154b6ac] 2018-08-04 19:38:58 -0400
+Branch: REL_10_STABLE [f6a124d01] 2018-08-04 19:38:58 -0400
+Branch: REL9_6_STABLE [b484bffe7] 2018-08-04 19:38:58 -0400
+Branch: REL9_5_STABLE [5ad143cda] 2018-08-04 19:38:59 -0400
+-->
+ <para>
+ Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
+ that isn't just <literal>SELECT * FROM ...</literal>
+ (Dean Rasheed, Amit Langote)
+ </para>
+
+ <para>
+ Erroneous expansion of an updatable view could lead to crashes
+ or <quote>attribute ... has the wrong type</quote> errors, if the
+ view's <literal>SELECT</literal> list doesn't match one-to-one with
+ the underlying table's columns.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+Branch: master [b3f919da0] 2018-08-03 15:11:31 -0700
+Branch: REL_11_STABLE [b9612e5cf] 2018-08-03 14:45:02 -0700
+Branch: REL_10_STABLE [c83408aa7] 2018-08-03 14:44:56 -0700
+Branch: REL9_6_STABLE [0a60a291c] 2018-08-03 14:44:44 -0700
+Branch: REL9_5_STABLE [aca225741] 2018-08-03 14:44:38 -0700
+Branch: REL9_4_STABLE [250528cec] 2018-08-03 14:44:33 -0700
+Branch: REL9_3_STABLE [0229e087d] 2018-08-03 14:44:26 -0700
+-->
+ <para>
+ Ensure a table's cached index list is correctly rebuilt after an index
+ creation fails partway through (Peter Geoghegan)
+ </para>
+
+ <para>
+ Previously, the failed index's OID could remain in the list, causing
+ problems later in the same session.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
Branch: master [309765fa1] 2018-07-19 21:04:17 +0300
Branch: REL_11_STABLE [608793266] 2018-07-19 23:26:15 +0300
<para>
Corrupted btree indexes could result in an infinite loop here, and
- that previously wasn't interruptable without forcing a crash.
+ that previously wasn't interruptible without forcing a crash.
</para>
</listitem>
</para>
<para>
- Manually-created unique indexes were properly marked, but not those
+ Manually created unique indexes were properly marked, but not those
created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
KEY</literal> constraints.
</para>
Branch: REL9_5_STABLE [910e2aca1] 2018-06-25 11:21:49 +0900
Branch: REL9_4_STABLE [79b5b101f] 2018-06-25 11:22:02 +0900
Branch: REL9_3_STABLE [f53ed82b7] 2018-06-25 11:22:24 +0900
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [5a23c74b6] 2018-08-05 05:31:18 +0900
+Branch: REL_11_STABLE [58673b4a5] 2018-08-05 05:31:56 +0900
+Branch: REL_10_STABLE [7124e6452] 2018-08-05 05:32:12 +0900
+Branch: REL9_6_STABLE [f5b4bb881] 2018-08-05 05:32:27 +0900
+Branch: REL9_5_STABLE [afd5fde85] 2018-08-05 05:32:37 +0900
+Branch: REL9_4_STABLE [e69a3ac4a] 2018-08-05 05:32:44 +0900
+Branch: REL9_3_STABLE [69599cc49] 2018-08-05 05:32:54 +0900
Author: Magnus Hagander <magnus@hagander.net>
Branch: master Release: REL_11_BR [cfb758b6d] 2018-05-18 17:54:18 +0200
Branch: REL_10_STABLE [29ce50091] 2018-05-18 17:53:12 +0200
<!-- doc/src/sgml/release-9.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-3-24">
+ <title>Release 9.3.24</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2018-08-09</para>
+ </formalpara>
+
+ <para>
+ This release contains a variety of fixes from 9.3.23.
+ For information about new features in the 9.3 major release, see
+ <xref linkend="release-9-3"/>.
+ </para>
+
+ <para>
+ The <productname>PostgreSQL</productname> community will stop releasing
+ updates for the 9.3.X release series shortly after September 2018.
+ Users are encouraged to update to a newer release branch soon.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.3.24</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.23,
+ see <xref linkend="release-9-3-23"/>.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Ensure that updates to the <structfield>relfrozenxid</structfield>
+ and <structfield>relminmxid</structfield> values
+ for <quote>nailed</quote> system catalogs are processed in a timely
+ fashion (Andres Freund)
+ </para>
+
+ <para>
+ Overoptimistic caching rules could prevent these updates from being
+ seen by other sessions, leading to spurious errors and/or data
+ corruption. The problem was significantly worse for shared catalogs,
+ such as <structname>pg_authid</structname>, because the stale cache
+ data could persist into new sessions as well as existing ones.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix case where a freshly-promoted standby crashes before having
+ completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
+ Horiguchi, Pavan Deolasee, Álvaro Herrera)
+ </para>
+
+ <para>
+ This led to a situation where the server did not think it had reached
+ a consistent database state during subsequent WAL replay, preventing
+ restart.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid emitting a bogus WAL record when recycling an all-zero btree
+ page (Amit Kapila)
+ </para>
+
+ <para>
+ This mistake has been seen to cause assertion failures, and
+ potentially it could result in unnecessary query cancellations on hot
+ standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of WAL replay for transactions that drop many
+ relations (Fujii Masao)
+ </para>
+
+ <para>
+ This change reduces the number of times that shared buffers are
+ scanned, so that it is of most benefit when that setting is large.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of lock releasing in standby server WAL replay
+ (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure a table's cached index list is correctly rebuilt after an index
+ creation fails partway through (Peter Geoghegan)
+ </para>
+
+ <para>
+ Previously, the failed index's OID could remain in the list, causing
+ problems later in the same session.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misoptimization of equivalence classes involving composite-type
+ columns (Tom Lane)
+ </para>
+
+ <para>
+ This resulted in failure to recognize that an index on a composite
+ column could provide the sort order needed for a mergejoin on that
+ column.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
+ parameters (<literal>$<replaceable>n</replaceable></literal>), as the
+ standard expects (Andrew Gierth)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix failure to schema-qualify some object names
+ in <function>getObjectDescription</function> output
+ (Kyotaro Horiguchi, Tom Lane)
+ </para>
+
+ <para>
+ Names of collations, conversions, and text search objects
+ were not schema-qualified when they should be.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Widen <command>COPY FROM</command>'s current-line-number counter
+ from 32 to 64 bits (David Rowley)
+ </para>
+
+ <para>
+ This avoids two problems with input exceeding 4G lines: <literal>COPY
+ FROM WITH HEADER</literal> would drop a line every 4G lines, not only
+ the first line, and error reports could show a wrong line number.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add a string freeing function
+ to <application>ecpg</application>'s <filename>pgtypes</filename>
+ library, so that cross-module memory management problems can be
+ avoided on Windows (Takayuki Tsunakawa)
+ </para>
+
+ <para>
+ On Windows, crashes can ensue if the <function>free</function> call
+ for a given chunk of memory is not made from the same DLL
+ that <function>malloc</function>'ed the memory.
+ The <filename>pgtypes</filename> library sometimes returns strings
+ that it expects the caller to free, making it impossible to follow
+ this rule. Add a <function>PGTYPESchar_free()</function> function
+ that just wraps <function>free</function>, allowing applications
+ to follow this rule.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</application>'s support for <type>long
+ long</type> variables on Windows, as well as other platforms that
+ declare <function>strtoll</function>/<function>strtoull</function>
+ nonstandardly or not at all (Dang Minh Huong, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misidentification of SQL statement type in PL/pgSQL, when a rule
+ change causes a change in the semantics of a statement intra-session
+ (Tom Lane)
+ </para>
+
+ <para>
+ This error led to assertion failures, or in rare cases, failure to
+ enforce the <literal>INTO STRICT</literal> option as expected.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix password prompting in client programs so that echo is properly
+ disabled on Windows when <literal>stdin</literal> is not the
+ terminal (Matthew Stickney)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Further fix mis-quoting of values for list-valued GUC variables in
+ dumps (Tom Lane)
+ </para>
+
+ <para>
+ The previous fix for quoting of <varname>search_path</varname> and
+ other list-valued variables in <application>pg_dump</application>
+ output turned out to misbehave for empty-string list elements, and it
+ risked truncation of long file paths.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>pg_upgrade</application> check that the old server
+ was shut down cleanly (Bruce Momjian)
+ </para>
+
+ <para>
+ The previous check could be fooled by an immediate-mode shutdown.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix crash in <filename>contrib/ltree</filename>'s
+ <function>lca()</function> function when the input array is empty
+ (Pierre Ducroquet)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix various error-handling code paths in which an incorrect error code
+ might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Rearrange makefiles to ensure that programs link to freshly-built
+ libraries (such as <filename>libpq.so</filename>) rather than ones
+ that might exist in the system library directories (Tom Lane)
+ </para>
+
+ <para>
+ This avoids problems when building on platforms that supply old copies
+ of <productname>PostgreSQL</productname> libraries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</application>
+ release 2018e for DST law changes in North Korea, plus historical
+ corrections for Czechoslovakia.
+ </para>
+
+ <para>
+ This update includes a redefinition of <quote>daylight savings</quote>
+ in Ireland, as well as for some past years in Namibia and
+ Czechoslovakia. In those jurisdictions, legally standard time is
+ observed in summer, and daylight savings time in winter, so that the
+ daylight savings offset is one hour behind standard time not one hour
+ ahead. This does not affect either the actual UTC offset or the
+ timezone abbreviations in use; the only known effect is that
+ the <structfield>is_dst</structfield> column in
+ the <structname>pg_timezone_names</structname> view will now be true
+ in winter and false in summer in these cases.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-3-23">
<title>Release 9.3.23</title>
<!-- doc/src/sgml/release-9.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-4-19">
+ <title>Release 9.4.19</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2018-08-09</para>
+ </formalpara>
+
+ <para>
+ This release contains a variety of fixes from 9.4.18.
+ 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.19</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.18,
+ see <xref linkend="release-9-4-18"/>.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Ensure that updates to the <structfield>relfrozenxid</structfield>
+ and <structfield>relminmxid</structfield> values
+ for <quote>nailed</quote> system catalogs are processed in a timely
+ fashion (Andres Freund)
+ </para>
+
+ <para>
+ Overoptimistic caching rules could prevent these updates from being
+ seen by other sessions, leading to spurious errors and/or data
+ corruption. The problem was significantly worse for shared catalogs,
+ such as <structname>pg_authid</structname>, because the stale cache
+ data could persist into new sessions as well as existing ones.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix case where a freshly-promoted standby crashes before having
+ completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
+ Horiguchi, Pavan Deolasee, Álvaro Herrera)
+ </para>
+
+ <para>
+ This led to a situation where the server did not think it had reached
+ a consistent database state during subsequent WAL replay, preventing
+ restart.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid emitting a bogus WAL record when recycling an all-zero btree
+ page (Amit Kapila)
+ </para>
+
+ <para>
+ This mistake has been seen to cause assertion failures, and
+ potentially it could result in unnecessary query cancellations on hot
+ standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of WAL replay for transactions that drop many
+ relations (Fujii Masao)
+ </para>
+
+ <para>
+ This change reduces the number of times that shared buffers are
+ scanned, so that it is of most benefit when that setting is large.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of lock releasing in standby server WAL replay
+ (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make logical WAL senders report streaming state correctly (Simon
+ Riggs, Sawada Masahiko)
+ </para>
+
+ <para>
+ The code previously mis-detected whether or not it had caught up with
+ the upstream server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bugs in snapshot handling during logical decoding, allowing wrong
+ decoding results in rare cases (Arseny Sher, Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure a table's cached index list is correctly rebuilt after an index
+ creation fails partway through (Peter Geoghegan)
+ </para>
+
+ <para>
+ Previously, the failed index's OID could remain in the list, causing
+ problems later in the same session.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix mishandling of empty uncompressed posting list pages in GIN
+ indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
+ </para>
+
+ <para>
+ This could result in an assertion failure after pg_upgrade of a
+ pre-9.4 GIN index (9.4 and later will not create such pages).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>VACUUM</command> will respond to signals
+ within btree page deletion loops (Andres Freund)
+ </para>
+
+ <para>
+ Corrupted btree indexes could result in an infinite loop here, and
+ that previously wasn't interruptible without forcing a crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misoptimization of equivalence classes involving composite-type
+ columns (Tom Lane)
+ </para>
+
+ <para>
+ This resulted in failure to recognize that an index on a composite
+ column could provide the sort order needed for a mergejoin on that
+ column.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
+ parameters (<literal>$<replaceable>n</replaceable></literal>), as the
+ standard expects (Andrew Gierth)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix failure to schema-qualify some object names
+ in <function>getObjectDescription</function> output
+ (Kyotaro Horiguchi, Tom Lane)
+ </para>
+
+ <para>
+ Names of collations, conversions, and text search objects
+ were not schema-qualified when they should be.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Widen <command>COPY FROM</command>'s current-line-number counter
+ from 32 to 64 bits (David Rowley)
+ </para>
+
+ <para>
+ This avoids two problems with input exceeding 4G lines: <literal>COPY
+ FROM WITH HEADER</literal> would drop a line every 4G lines, not only
+ the first line, and error reports could show a wrong line number.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add a string freeing function
+ to <application>ecpg</application>'s <filename>pgtypes</filename>
+ library, so that cross-module memory management problems can be
+ avoided on Windows (Takayuki Tsunakawa)
+ </para>
+
+ <para>
+ On Windows, crashes can ensue if the <function>free</function> call
+ for a given chunk of memory is not made from the same DLL
+ that <function>malloc</function>'ed the memory.
+ The <filename>pgtypes</filename> library sometimes returns strings
+ that it expects the caller to free, making it impossible to follow
+ this rule. Add a <function>PGTYPESchar_free()</function> function
+ that just wraps <function>free</function>, allowing applications
+ to follow this rule.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</application>'s support for <type>long
+ long</type> variables on Windows, as well as other platforms that
+ declare <function>strtoll</function>/<function>strtoull</function>
+ nonstandardly or not at all (Dang Minh Huong, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misidentification of SQL statement type in PL/pgSQL, when a rule
+ change causes a change in the semantics of a statement intra-session
+ (Tom Lane)
+ </para>
+
+ <para>
+ This error led to assertion failures, or in rare cases, failure to
+ enforce the <literal>INTO STRICT</literal> option as expected.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix password prompting in client programs so that echo is properly
+ disabled on Windows when <literal>stdin</literal> is not the
+ terminal (Matthew Stickney)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Further fix mis-quoting of values for list-valued GUC variables in
+ dumps (Tom Lane)
+ </para>
+
+ <para>
+ The previous fix for quoting of <varname>search_path</varname> and
+ other list-valued variables in <application>pg_dump</application>
+ output turned out to misbehave for empty-string list elements, and it
+ risked truncation of long file paths.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</application>'s failure to
+ dump <literal>REPLICA IDENTITY</literal> properties for constraint
+ indexes (Tom Lane)
+ </para>
+
+ <para>
+ Manually created unique indexes were properly marked, but not those
+ created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
+ KEY</literal> constraints.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>pg_upgrade</application> check that the old server
+ was shut down cleanly (Bruce Momjian)
+ </para>
+
+ <para>
+ The previous check could be fooled by an immediate-mode shutdown.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix crash in <filename>contrib/ltree</filename>'s
+ <function>lca()</function> function when the input array is empty
+ (Pierre Ducroquet)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix various error-handling code paths in which an incorrect error code
+ might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Rearrange makefiles to ensure that programs link to freshly-built
+ libraries (such as <filename>libpq.so</filename>) rather than ones
+ that might exist in the system library directories (Tom Lane)
+ </para>
+
+ <para>
+ This avoids problems when building on platforms that supply old copies
+ of <productname>PostgreSQL</productname> libraries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</application>
+ release 2018e for DST law changes in North Korea, plus historical
+ corrections for Czechoslovakia.
+ </para>
+
+ <para>
+ This update includes a redefinition of <quote>daylight savings</quote>
+ in Ireland, as well as for some past years in Namibia and
+ Czechoslovakia. In those jurisdictions, legally standard time is
+ observed in summer, and daylight savings time in winter, so that the
+ daylight savings offset is one hour behind standard time not one hour
+ ahead. This does not affect either the actual UTC offset or the
+ timezone abbreviations in use; the only known effect is that
+ the <structfield>is_dst</structfield> column in
+ the <structname>pg_timezone_names</structname> view will now be true
+ in winter and false in summer in these cases.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-4-18">
<title>Release 9.4.18</title>
<!-- doc/src/sgml/release-9.5.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-5-14">
+ <title>Release 9.5.14</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2018-08-09</para>
+ </formalpara>
+
+ <para>
+ This release contains a variety of fixes from 9.5.13.
+ 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.14</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.13,
+ see <xref linkend="release-9-5-13"/>.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Ensure that updates to the <structfield>relfrozenxid</structfield>
+ and <structfield>relminmxid</structfield> values
+ for <quote>nailed</quote> system catalogs are processed in a timely
+ fashion (Andres Freund)
+ </para>
+
+ <para>
+ Overoptimistic caching rules could prevent these updates from being
+ seen by other sessions, leading to spurious errors and/or data
+ corruption. The problem was significantly worse for shared catalogs,
+ such as <structname>pg_authid</structname>, because the stale cache
+ data could persist into new sessions as well as existing ones.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix case where a freshly-promoted standby crashes before having
+ completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
+ Horiguchi, Pavan Deolasee, Álvaro Herrera)
+ </para>
+
+ <para>
+ This led to a situation where the server did not think it had reached
+ a consistent database state during subsequent WAL replay, preventing
+ restart.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid emitting a bogus WAL record when recycling an all-zero btree
+ page (Amit Kapila)
+ </para>
+
+ <para>
+ This mistake has been seen to cause assertion failures, and
+ potentially it could result in unnecessary query cancellations on hot
+ standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ During WAL replay, guard against corrupted record lengths exceeding
+ 1GB (Michael Paquier)
+ </para>
+
+ <para>
+ Treat such a case as corrupt data. Previously, the code would try to
+ allocate space and get a hard error, making recovery impossible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When ending recovery, delay writing the timeline history file as long
+ as possible (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This avoids some situations where a failure during recovery cleanup
+ (such as a problem with a two-phase state file) led to inconsistent
+ timeline state on-disk.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of WAL replay for transactions that drop many
+ relations (Fujii Masao)
+ </para>
+
+ <para>
+ This change reduces the number of times that shared buffers are
+ scanned, so that it is of most benefit when that setting is large.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of lock releasing in standby server WAL replay
+ (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make logical WAL senders report streaming state correctly (Simon
+ Riggs, Sawada Masahiko)
+ </para>
+
+ <para>
+ The code previously mis-detected whether or not it had caught up with
+ the upstream server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bugs in snapshot handling during logical decoding, allowing wrong
+ decoding results in rare cases (Arseny Sher, Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
+ that isn't just <literal>SELECT * FROM ...</literal>
+ (Dean Rasheed, Amit Langote)
+ </para>
+
+ <para>
+ Erroneous expansion of an updatable view could lead to crashes
+ or <quote>attribute ... has the wrong type</quote> errors, if the
+ view's <literal>SELECT</literal> list doesn't match one-to-one with
+ the underlying table's columns.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure a table's cached index list is correctly rebuilt after an index
+ creation fails partway through (Peter Geoghegan)
+ </para>
+
+ <para>
+ Previously, the failed index's OID could remain in the list, causing
+ problems later in the same session.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix mishandling of empty uncompressed posting list pages in GIN
+ indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
+ </para>
+
+ <para>
+ This could result in an assertion failure after pg_upgrade of a
+ pre-9.4 GIN index (9.4 and later will not create such pages).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>VACUUM</command> will respond to signals
+ within btree page deletion loops (Andres Freund)
+ </para>
+
+ <para>
+ Corrupted btree indexes could result in an infinite loop here, and
+ that previously wasn't interruptible without forcing a crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misoptimization of equivalence classes involving composite-type
+ columns (Tom Lane)
+ </para>
+
+ <para>
+ This resulted in failure to recognize that an index on a composite
+ column could provide the sort order needed for a mergejoin on that
+ column.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
+ parameters (<literal>$<replaceable>n</replaceable></literal>), as the
+ standard expects (Andrew Gierth)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix failure to schema-qualify some object names
+ in <function>getObjectDescription</function> output
+ (Kyotaro Horiguchi, Tom Lane)
+ </para>
+
+ <para>
+ Names of collations, conversions, and text search objects
+ were not schema-qualified when they should be.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Widen <command>COPY FROM</command>'s current-line-number counter
+ from 32 to 64 bits (David Rowley)
+ </para>
+
+ <para>
+ This avoids two problems with input exceeding 4G lines: <literal>COPY
+ FROM WITH HEADER</literal> would drop a line every 4G lines, not only
+ the first line, and error reports could show a wrong line number.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add a string freeing function
+ to <application>ecpg</application>'s <filename>pgtypes</filename>
+ library, so that cross-module memory management problems can be
+ avoided on Windows (Takayuki Tsunakawa)
+ </para>
+
+ <para>
+ On Windows, crashes can ensue if the <function>free</function> call
+ for a given chunk of memory is not made from the same DLL
+ that <function>malloc</function>'ed the memory.
+ The <filename>pgtypes</filename> library sometimes returns strings
+ that it expects the caller to free, making it impossible to follow
+ this rule. Add a <function>PGTYPESchar_free()</function> function
+ that just wraps <function>free</function>, allowing applications
+ to follow this rule.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</application>'s support for <type>long
+ long</type> variables on Windows, as well as other platforms that
+ declare <function>strtoll</function>/<function>strtoull</function>
+ nonstandardly or not at all (Dang Minh Huong, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misidentification of SQL statement type in PL/pgSQL, when a rule
+ change causes a change in the semantics of a statement intra-session
+ (Tom Lane)
+ </para>
+
+ <para>
+ This error led to assertion failures, or in rare cases, failure to
+ enforce the <literal>INTO STRICT</literal> option as expected.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix password prompting in client programs so that echo is properly
+ disabled on Windows when <literal>stdin</literal> is not the
+ terminal (Matthew Stickney)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Further fix mis-quoting of values for list-valued GUC variables in
+ dumps (Tom Lane)
+ </para>
+
+ <para>
+ The previous fix for quoting of <varname>search_path</varname> and
+ other list-valued variables in <application>pg_dump</application>
+ output turned out to misbehave for empty-string list elements, and it
+ risked truncation of long file paths.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</application>'s failure to
+ dump <literal>REPLICA IDENTITY</literal> properties for constraint
+ indexes (Tom Lane)
+ </para>
+
+ <para>
+ Manually created unique indexes were properly marked, but not those
+ created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
+ KEY</literal> constraints.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>pg_upgrade</application> check that the old server
+ was shut down cleanly (Bruce Momjian)
+ </para>
+
+ <para>
+ The previous check could be fooled by an immediate-mode shutdown.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <filename>contrib/hstore_plperl</filename> to look through Perl
+ scalar references, and to not crash if it doesn't find a hash
+ reference where it expects one (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix crash in <filename>contrib/ltree</filename>'s
+ <function>lca()</function> function when the input array is empty
+ (Pierre Ducroquet)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix various error-handling code paths in which an incorrect error code
+ might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Rearrange makefiles to ensure that programs link to freshly-built
+ libraries (such as <filename>libpq.so</filename>) rather than ones
+ that might exist in the system library directories (Tom Lane)
+ </para>
+
+ <para>
+ This avoids problems when building on platforms that supply old copies
+ of <productname>PostgreSQL</productname> libraries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</application>
+ release 2018e for DST law changes in North Korea, plus historical
+ corrections for Czechoslovakia.
+ </para>
+
+ <para>
+ This update includes a redefinition of <quote>daylight savings</quote>
+ in Ireland, as well as for some past years in Namibia and
+ Czechoslovakia. In those jurisdictions, legally standard time is
+ observed in summer, and daylight savings time in winter, so that the
+ daylight savings offset is one hour behind standard time not one hour
+ ahead. This does not affect either the actual UTC offset or the
+ timezone abbreviations in use; the only known effect is that
+ the <structfield>is_dst</structfield> column in
+ the <structname>pg_timezone_names</structname> view will now be true
+ in winter and false in summer in these cases.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-5-13">
<title>Release 9.5.13</title>
<!-- doc/src/sgml/release-9.6.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-6-10">
+ <title>Release 9.6.10</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2018-08-09</para>
+ </formalpara>
+
+ <para>
+ This release contains a variety of fixes from 9.6.9.
+ For information about new features in the 9.6 major release, see
+ <xref linkend="release-9-6"/>.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.6.10</title>
+
+ <para>
+ A dump/restore is not required for those running 9.6.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.6.9,
+ see <xref linkend="release-9-6-9"/>.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Ensure that updates to the <structfield>relfrozenxid</structfield>
+ and <structfield>relminmxid</structfield> values
+ for <quote>nailed</quote> system catalogs are processed in a timely
+ fashion (Andres Freund)
+ </para>
+
+ <para>
+ Overoptimistic caching rules could prevent these updates from being
+ seen by other sessions, leading to spurious errors and/or data
+ corruption. The problem was significantly worse for shared catalogs,
+ such as <structname>pg_authid</structname>, because the stale cache
+ data could persist into new sessions as well as existing ones.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix case where a freshly-promoted standby crashes before having
+ completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
+ Horiguchi, Pavan Deolasee, Álvaro Herrera)
+ </para>
+
+ <para>
+ This led to a situation where the server did not think it had reached
+ a consistent database state during subsequent WAL replay, preventing
+ restart.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid emitting a bogus WAL record when recycling an all-zero btree
+ page (Amit Kapila)
+ </para>
+
+ <para>
+ This mistake has been seen to cause assertion failures, and
+ potentially it could result in unnecessary query cancellations on hot
+ standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ During WAL replay, guard against corrupted record lengths exceeding
+ 1GB (Michael Paquier)
+ </para>
+
+ <para>
+ Treat such a case as corrupt data. Previously, the code would try to
+ allocate space and get a hard error, making recovery impossible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When ending recovery, delay writing the timeline history file as long
+ as possible (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This avoids some situations where a failure during recovery cleanup
+ (such as a problem with a two-phase state file) led to inconsistent
+ timeline state on-disk.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of WAL replay for transactions that drop many
+ relations (Fujii Masao)
+ </para>
+
+ <para>
+ This change reduces the number of times that shared buffers are
+ scanned, so that it is of most benefit when that setting is large.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve performance of lock releasing in standby server WAL replay
+ (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make logical WAL senders report streaming state correctly (Simon
+ Riggs, Sawada Masahiko)
+ </para>
+
+ <para>
+ The code previously mis-detected whether or not it had caught up with
+ the upstream server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bugs in snapshot handling during logical decoding, allowing wrong
+ decoding results in rare cases (Arseny Sher, Álvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <literal>INSERT ... ON CONFLICT UPDATE</literal> through a view
+ that isn't just <literal>SELECT * FROM ...</literal>
+ (Dean Rasheed, Amit Langote)
+ </para>
+
+ <para>
+ Erroneous expansion of an updatable view could lead to crashes
+ or <quote>attribute ... has the wrong type</quote> errors, if the
+ view's <literal>SELECT</literal> list doesn't match one-to-one with
+ the underlying table's columns.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure a table's cached index list is correctly rebuilt after an index
+ creation fails partway through (Peter Geoghegan)
+ </para>
+
+ <para>
+ Previously, the failed index's OID could remain in the list, causing
+ problems later in the same session.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix mishandling of empty uncompressed posting list pages in GIN
+ indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
+ </para>
+
+ <para>
+ This could result in an assertion failure after pg_upgrade of a
+ pre-9.4 GIN index (9.4 and later will not create such pages).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>VACUUM</command> will respond to signals
+ within btree page deletion loops (Andres Freund)
+ </para>
+
+ <para>
+ Corrupted btree indexes could result in an infinite loop here, and
+ that previously wasn't interruptible without forcing a crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misoptimization of equivalence classes involving composite-type
+ columns (Tom Lane)
+ </para>
+
+ <para>
+ This resulted in failure to recognize that an index on a composite
+ column could provide the sort order needed for a mergejoin on that
+ column.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner to avoid <quote>ORDER/GROUP BY expression not found in
+ targetlist</quote> errors in some queries with set-returning functions
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
+ parameters (<literal>$<replaceable>n</replaceable></literal>), as the
+ standard expects (Andrew Gierth)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <command>EXPLAIN</command>'s accounting for resource usage,
+ particularly buffer accesses, in parallel workers
+ (Amit Kapila, Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix failure to schema-qualify some object names
+ in <function>getObjectDescription</function> output
+ (Kyotaro Horiguchi, Tom Lane)
+ </para>
+
+ <para>
+ Names of collations, conversions, and text search objects
+ were not schema-qualified when they should be.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <command>CREATE AGGREGATE</command> type checking so that
+ parallelism support functions can be attached to variadic aggregates
+ (Alexey Bashtanov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Widen <command>COPY FROM</command>'s current-line-number counter
+ from 32 to 64 bits (David Rowley)
+ </para>
+
+ <para>
+ This avoids two problems with input exceeding 4G lines: <literal>COPY
+ FROM WITH HEADER</literal> would drop a line every 4G lines, not only
+ the first line, and error reports could show a wrong line number.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add a string freeing function
+ to <application>ecpg</application>'s <filename>pgtypes</filename>
+ library, so that cross-module memory management problems can be
+ avoided on Windows (Takayuki Tsunakawa)
+ </para>
+
+ <para>
+ On Windows, crashes can ensue if the <function>free</function> call
+ for a given chunk of memory is not made from the same DLL
+ that <function>malloc</function>'ed the memory.
+ The <filename>pgtypes</filename> library sometimes returns strings
+ that it expects the caller to free, making it impossible to follow
+ this rule. Add a <function>PGTYPESchar_free()</function> function
+ that just wraps <function>free</function>, allowing applications
+ to follow this rule.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</application>'s support for <type>long
+ long</type> variables on Windows, as well as other platforms that
+ declare <function>strtoll</function>/<function>strtoull</function>
+ nonstandardly or not at all (Dang Minh Huong, Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misidentification of SQL statement type in PL/pgSQL, when a rule
+ change causes a change in the semantics of a statement intra-session
+ (Tom Lane)
+ </para>
+
+ <para>
+ This error led to assertion failures, or in rare cases, failure to
+ enforce the <literal>INTO STRICT</literal> option as expected.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix password prompting in client programs so that echo is properly
+ disabled on Windows when <literal>stdin</literal> is not the
+ terminal (Matthew Stickney)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Further fix mis-quoting of values for list-valued GUC variables in
+ dumps (Tom Lane)
+ </para>
+
+ <para>
+ The previous fix for quoting of <varname>search_path</varname> and
+ other list-valued variables in <application>pg_dump</application>
+ output turned out to misbehave for empty-string list elements, and it
+ risked truncation of long file paths.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</application>'s failure to
+ dump <literal>REPLICA IDENTITY</literal> properties for constraint
+ indexes (Tom Lane)
+ </para>
+
+ <para>
+ Manually created unique indexes were properly marked, but not those
+ created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
+ KEY</literal> constraints.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>pg_upgrade</application> check that the old server
+ was shut down cleanly (Bruce Momjian)
+ </para>
+
+ <para>
+ The previous check could be fooled by an immediate-mode shutdown.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <filename>contrib/hstore_plperl</filename> to look through Perl
+ scalar references, and to not crash if it doesn't find a hash
+ reference where it expects one (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix crash in <filename>contrib/ltree</filename>'s
+ <function>lca()</function> function when the input array is empty
+ (Pierre Ducroquet)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix various error-handling code paths in which an incorrect error code
+ might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Rearrange makefiles to ensure that programs link to freshly-built
+ libraries (such as <filename>libpq.so</filename>) rather than ones
+ that might exist in the system library directories (Tom Lane)
+ </para>
+
+ <para>
+ This avoids problems when building on platforms that supply old copies
+ of <productname>PostgreSQL</productname> libraries.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</application>
+ release 2018e for DST law changes in North Korea, plus historical
+ corrections for Czechoslovakia.
+ </para>
+
+ <para>
+ This update includes a redefinition of <quote>daylight savings</quote>
+ in Ireland, as well as for some past years in Namibia and
+ Czechoslovakia. In those jurisdictions, legally standard time is
+ observed in summer, and daylight savings time in winter, so that the
+ daylight savings offset is one hour behind standard time not one hour
+ ahead. This does not affect either the actual UTC offset or the
+ timezone abbreviations in use; the only known effect is that
+ the <structfield>is_dst</structfield> column in
+ the <structname>pg_timezone_names</structname> view will now be true
+ in winter and false in summer in these cases.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-6-9">
<title>Release 9.6.9</title>