Release notes for 10.5, 9.6.10, 9.5.14, 9.4.19, 9.3.24.

This commit is contained in:
Tom Lane 2018-08-05 16:38:43 -04:00
parent 7171a60cf4
commit 637b3be527
4 changed files with 1429 additions and 0 deletions

View File

@ -1,6 +1,295 @@
<!-- 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, &Aacute;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>

View File

@ -1,6 +1,346 @@
<!-- 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, &Aacute;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, &Aacute;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>

View File

@ -1,6 +1,394 @@
<!-- 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, &Aacute;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, &Aacute;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>

View File

@ -1,6 +1,418 @@
<!-- 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, &Aacute;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, &Aacute;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>