diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-05-06 15:30:44 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-05-06 15:30:44 -0400 |
commit | 5c4049472db9088e9325e94fcac6d994ea3f0089 (patch) | |
tree | 2bbee5078237cf035b3dbabf8ba2191136135f71 | |
parent | 289bafdbc469fd0ed2a4485eca22005dbe668db5 (diff) | |
download | postgresql-5c4049472db9088e9325e94fcac6d994ea3f0089.tar.gz postgresql-5c4049472db9088e9325e94fcac6d994ea3f0089.zip |
Release notes for 10.4, 9.6.9, 9.5.13, 9.4.18, 9.3.23.
-rw-r--r-- | doc/src/sgml/release-9.3.sgml | 367 | ||||
-rw-r--r-- | doc/src/sgml/release-9.4.sgml | 411 | ||||
-rw-r--r-- | doc/src/sgml/release-9.5.sgml | 470 | ||||
-rw-r--r-- | doc/src/sgml/release-9.6.sgml | 532 |
4 files changed, 1780 insertions, 0 deletions
diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml index cd4eaf6e27e..2bab3894448 100644 --- a/doc/src/sgml/release-9.3.sgml +++ b/doc/src/sgml/release-9.3.sgml @@ -1,6 +1,373 @@ <!-- doc/src/sgml/release-9.3.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-9-3-23"> + <title>Release 9.3.23</title> + + <formalpara> + <title>Release date:</title> + <para>2018-05-10</para> + </formalpara> + + <para> + This release contains a variety of fixes from 9.3.22. + 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.23</title> + + <para> + A dump/restore is not required for those running 9.3.X. + </para> + + <para> + However, if the function marking mistakes mentioned in the first + changelog entry below affect you, you will want to take steps to + correct your database catalogs. + </para> + + <para> + Also, if you are upgrading from a version earlier than 9.3.22, + see <xref linkend="release-9-3-22">. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix incorrect volatility markings on a few built-in functions + (Thomas Munro, Tom Lane) + </para> + + <para> + The functions + <function>query_to_xml</function>, + <function>cursor_to_xml</function>, + <function>cursor_to_xmlschema</function>, + <function>query_to_xmlschema</function>, and + <function>query_to_xml_and_xmlschema</function> + should be marked volatile because they execute user-supplied queries + that might contain volatile operations. They were not, leading to a + risk of incorrect query optimization. This has been repaired for new + installations by correcting the initial catalog data, but existing + installations will continue to contain the incorrect markings. + Practical use of these functions seems to pose little hazard, but in + case of trouble, it can be fixed by manually updating these + functions' <structname>pg_proc</structname> entries. (Note that that + will need to be done in each database of the installation.) Another + option is to <application>pg_upgrade</application> the database to a + version containing the corrected initial data. + </para> + </listitem> + + <listitem> + <para> + Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed + TOAST entries (Pavan Deolasee) + </para> + + <para> + Once the OID counter has wrapped around, it's possible to assign a + TOAST value whose OID matches a previously deleted entry in the same + TOAST table. If that entry were not yet vacuumed away, this resulted + in <quote>unexpected chunk number 0 (expected 1) for toast + value <replaceable>nnnnn</replaceable></quote> errors, which would + persist until the dead entry was removed + by <command>VACUUM</command>. Fix by not selecting such OIDs when + creating a new TOAST entry. + </para> + </listitem> + + <listitem> + <para> + Change <command>ANALYZE</command>'s algorithm for updating + <structname>pg_class</structname>.<structfield>reltuples</structfield> + (David Gould) + </para> + + <para> + Previously, pages not actually scanned by <command>ANALYZE</command> + were assumed to retain their old tuple density. In a large table + where <command>ANALYZE</command> samples only a small fraction of the + pages, this meant that the overall tuple density estimate could not + change very much, so that <structfield>reltuples</structfield> would + change nearly proportionally to changes in the table's physical size + (<structfield>relpages</structfield>) regardless of what was actually + happening in the table. This has been observed to result + in <structfield>reltuples</structfield> becoming so much larger than + reality as to effectively shut off autovacuuming. To fix, assume + that <command>ANALYZE</command>'s sample is a statistically unbiased + sample of the table (as it should be), and just extrapolate the + density observed within those pages to the whole table. + </para> + </listitem> + + <listitem> + <para> + Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail + when the referenced cursor uses an index-only-scan plan (Yugo Nagata, + Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect planning of join clauses pushed into parameterized + paths (Andrew Gierth, Tom Lane) + </para> + + <para> + This error could result in misclassifying a condition as + a <quote>join filter</quote> for an outer join when it should be a + plain <quote>filter</quote> condition, leading to incorrect join + output. + </para> + </listitem> + + <listitem> + <para> + Fix misoptimization of <literal>CHECK</literal> constraints having + provably-NULL subclauses of + top-level <literal>AND</literal>/<literal>OR</literal> conditions + (Tom Lane, Dean Rasheed) + </para> + + <para> + This could, for example, allow constraint exclusion to exclude a + child table that should not be excluded from a query. + </para> + </listitem> + + <listitem> + <para> + Avoid failure if a query-cancel or session-termination interrupt + occurs while committing a prepared transaction (Stas Kelvich) + </para> + </listitem> + + <listitem> + <para> + Fix query-lifespan memory leakage in repeatedly executed hash joins + (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix overly strict sanity check + in <function>heap_prepare_freeze_tuple</function> + (Álvaro Herrera) + </para> + + <para> + This could result in incorrect <quote>cannot freeze committed + xmax</quote> failures in databases that have + been <application>pg_upgrade</application>'d from 9.2 or earlier. + </para> + </listitem> + + <listitem> + <para> + Prevent dangling-pointer dereference when a C-coded before-update row + trigger returns the <quote>old</quote> tuple (Rushabh Lathia) + </para> + </listitem> + + <listitem> + <para> + Reduce locking during autovacuum worker scheduling (Jeff Janes) + </para> + + <para> + The previous behavior caused drastic loss of potential worker + concurrency in databases with many tables. + </para> + </listitem> + + <listitem> + <para> + Ensure client hostname is copied while copying + <structname>pg_stat_activity</structname> data to local memory + (Edmund Horner) + </para> + + <para> + Previously the supposedly-local snapshot contained a pointer into + shared memory, allowing the client hostname column to change + unexpectedly if any existing session disconnected. + </para> + </listitem> + + <listitem> + <para> + Fix incorrect processing of multiple compound affixes + in <literal>ispell</literal> dictionaries (Arthur Zakirov) + </para> + </listitem> + + <listitem> + <para> + Fix collation-aware searches (that is, indexscans using inequality + operators) in SP-GiST indexes on text columns (Tom Lane) + </para> + + <para> + Such searches would return the wrong set of rows in most non-C + locales. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during initial build of an + SP-GiST index (Tomas Vondra) + </para> + + <para> + Previously, the tuple count was reported to be the same as that of + the underlying table, which is wrong if the index is partial. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during vacuuming of a + GiST index (Andrey Borodin) + </para> + + <para> + Previously it reported the estimated number of heap tuples, + which might be inaccurate, and is certainly wrong if the + index is partial. + </para> + </listitem> + + <listitem> + <para> + Allow <function>scalarltsel</function> + and <function>scalargtsel</function> to be used on non-core datatypes + (Tomas Vondra) + </para> + </listitem> + + <listitem> + <para> + Reduce <application>libpq</application>'s memory consumption when a + server error is reported after a large amount of query output has + been collected (Tom Lane) + </para> + + <para> + Discard the previous output before, not after, processing the error + message. On some platforms, notably Linux, this can make a + difference in the application's subsequent memory footprint. + </para> + </listitem> + + <listitem> + <para> + Fix double-free crashes in <application>ecpg</application> + (Patrick Krecker, Jeevan Ladhe) + </para> + </listitem> + + <listitem> + <para> + Fix <application>ecpg</application> to handle <type>long long + int</type> variables correctly in MSVC builds (Michael Meskes, + Andrew Gierth) + </para> + </listitem> + + <listitem> + <para> + Fix mis-quoting of values for list-valued GUC variables in dumps + (Michael Paquier, Tom Lane) + </para> + + <para> + The <varname>local_preload_libraries</varname>, + <varname>session_preload_libraries</varname>, + <varname>shared_preload_libraries</varname>, + and <varname>temp_tablespaces</varname> variables were not correctly + quoted in <application>pg_dump</application> output. This would + cause problems if settings for these variables appeared in + <command>CREATE FUNCTION ... SET</command> or <command>ALTER + DATABASE/ROLE ... SET</command> clauses. + </para> + </listitem> + + <listitem> + <para> + Fix overflow handling in <application>PL/pgSQL</application> + integer <command>FOR</command> loops (Tom Lane) + </para> + + <para> + The previous coding failed to detect overflow of the loop variable + on some non-gcc compilers, leading to an infinite loop. + </para> + </listitem> + + <listitem> + <para> + Adjust <application>PL/Python</application> regression tests to pass + under Python 3.7 (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Support testing <application>PL/Python</application> and related + modules when building with Python 3 and MSVC (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Rename internal <function>b64_encode</function> + and <function>b64_decode</function> functions to avoid conflict with + Solaris 11.4 built-in functions (Rainer Orth) + </para> + </listitem> + + <listitem> + <para> + Sync our copy of the timezone library with IANA tzcode release 2018e + (Tom Lane) + </para> + + <para> + This fixes the <application>zic</application> timezone data compiler + to cope with negative daylight-savings offsets. While + the <productname>PostgreSQL</productname> project will not + immediately ship such timezone data, <application>zic</application> + might be used with timezone data obtained directly from IANA, so it + seems prudent to update <application>zic</application> now. + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</application> + release 2018d for DST law changes in Palestine and Antarctica (Casey + Station), plus historical corrections for Portugal and its colonies, + as well as Enderbury, Jamaica, Turks & Caicos Islands, and + Uruguay. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-9-3-22"> <title>Release 9.3.22</title> diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml index 298ad0d80c5..67d3f2e3a37 100644 --- a/doc/src/sgml/release-9.4.sgml +++ b/doc/src/sgml/release-9.4.sgml @@ -1,6 +1,417 @@ <!-- doc/src/sgml/release-9.4.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-9-4-18"> + <title>Release 9.4.18</title> + + <formalpara> + <title>Release date:</title> + <para>2018-05-10</para> + </formalpara> + + <para> + This release contains a variety of fixes from 9.4.17. + 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.18</title> + + <para> + A dump/restore is not required for those running 9.4.X. + </para> + + <para> + However, if the function marking mistakes mentioned in the first + changelog entry below affect you, you will want to take steps to + correct your database catalogs. + </para> + + <para> + Also, if you are upgrading from a version earlier than 9.4.17, + see <xref linkend="release-9-4-17">. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix incorrect volatility markings on a few built-in functions + (Thomas Munro, Tom Lane) + </para> + + <para> + The functions + <function>query_to_xml</function>, + <function>cursor_to_xml</function>, + <function>cursor_to_xmlschema</function>, + <function>query_to_xmlschema</function>, and + <function>query_to_xml_and_xmlschema</function> + should be marked volatile because they execute user-supplied queries + that might contain volatile operations. They were not, leading to a + risk of incorrect query optimization. This has been repaired for new + installations by correcting the initial catalog data, but existing + installations will continue to contain the incorrect markings. + Practical use of these functions seems to pose little hazard, but in + case of trouble, it can be fixed by manually updating these + functions' <structname>pg_proc</structname> entries. (Note that that + will need to be done in each database of the installation.) Another + option is to <application>pg_upgrade</application> the database to a + version containing the corrected initial data. + </para> + </listitem> + + <listitem> + <para> + Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed + TOAST entries (Pavan Deolasee) + </para> + + <para> + Once the OID counter has wrapped around, it's possible to assign a + TOAST value whose OID matches a previously deleted entry in the same + TOAST table. If that entry were not yet vacuumed away, this resulted + in <quote>unexpected chunk number 0 (expected 1) for toast + value <replaceable>nnnnn</replaceable></quote> errors, which would + persist until the dead entry was removed + by <command>VACUUM</command>. Fix by not selecting such OIDs when + creating a new TOAST entry. + </para> + </listitem> + + <listitem> + <para> + Change <command>ANALYZE</command>'s algorithm for updating + <structname>pg_class</structname>.<structfield>reltuples</structfield> + (David Gould) + </para> + + <para> + Previously, pages not actually scanned by <command>ANALYZE</command> + were assumed to retain their old tuple density. In a large table + where <command>ANALYZE</command> samples only a small fraction of the + pages, this meant that the overall tuple density estimate could not + change very much, so that <structfield>reltuples</structfield> would + change nearly proportionally to changes in the table's physical size + (<structfield>relpages</structfield>) regardless of what was actually + happening in the table. This has been observed to result + in <structfield>reltuples</structfield> becoming so much larger than + reality as to effectively shut off autovacuuming. To fix, assume + that <command>ANALYZE</command>'s sample is a statistically unbiased + sample of the table (as it should be), and just extrapolate the + density observed within those pages to the whole table. + </para> + </listitem> + + <listitem> + <para> + Avoid deadlocks in concurrent <command>CREATE INDEX + CONCURRENTLY</command> commands that are run + under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE + READ</literal> transaction isolation (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW + CONCURRENTLY</command> (Thomas Munro) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail + when the referenced cursor uses an index-only-scan plan (Yugo Nagata, + Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect planning of join clauses pushed into parameterized + paths (Andrew Gierth, Tom Lane) + </para> + + <para> + This error could result in misclassifying a condition as + a <quote>join filter</quote> for an outer join when it should be a + plain <quote>filter</quote> condition, leading to incorrect join + output. + </para> + </listitem> + + <listitem> + <para> + Fix misoptimization of <literal>CHECK</literal> constraints having + provably-NULL subclauses of + top-level <literal>AND</literal>/<literal>OR</literal> conditions + (Tom Lane, Dean Rasheed) + </para> + + <para> + This could, for example, allow constraint exclusion to exclude a + child table that should not be excluded from a query. + </para> + </listitem> + + <listitem> + <para> + Avoid failure if a query-cancel or session-termination interrupt + occurs while committing a prepared transaction (Stas Kelvich) + </para> + </listitem> + + <listitem> + <para> + Fix query-lifespan memory leakage in repeatedly executed hash joins + (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix overly strict sanity check + in <function>heap_prepare_freeze_tuple</function> + (Álvaro Herrera) + </para> + + <para> + This could result in incorrect <quote>cannot freeze committed + xmax</quote> failures in databases that have + been <application>pg_upgrade</application>'d from 9.2 or earlier. + </para> + </listitem> + + <listitem> + <para> + Prevent dangling-pointer dereference when a C-coded before-update row + trigger returns the <quote>old</quote> tuple (Rushabh Lathia) + </para> + </listitem> + + <listitem> + <para> + Reduce locking during autovacuum worker scheduling (Jeff Janes) + </para> + + <para> + The previous behavior caused drastic loss of potential worker + concurrency in databases with many tables. + </para> + </listitem> + + <listitem> + <para> + Ensure client hostname is copied while copying + <structname>pg_stat_activity</structname> data to local memory + (Edmund Horner) + </para> + + <para> + Previously the supposedly-local snapshot contained a pointer into + shared memory, allowing the client hostname column to change + unexpectedly if any existing session disconnected. + </para> + </listitem> + + <listitem> + <para> + Fix incorrect processing of multiple compound affixes + in <literal>ispell</literal> dictionaries (Arthur Zakirov) + </para> + </listitem> + + <listitem> + <para> + Fix collation-aware searches (that is, indexscans using inequality + operators) in SP-GiST indexes on text columns (Tom Lane) + </para> + + <para> + Such searches would return the wrong set of rows in most non-C + locales. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during initial build of an + SP-GiST index (Tomas Vondra) + </para> + + <para> + Previously, the tuple count was reported to be the same as that of + the underlying table, which is wrong if the index is partial. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during vacuuming of a + GiST index (Andrey Borodin) + </para> + + <para> + Previously it reported the estimated number of heap tuples, + which might be inaccurate, and is certainly wrong if the + index is partial. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case where a streaming standby gets stuck at a WAL + continuation record (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + In logical decoding, avoid possible double processing of WAL data + when a walsender restarts (Craig Ringer) + </para> + </listitem> + + <listitem> + <para> + Allow <function>scalarltsel</function> + and <function>scalargtsel</function> to be used on non-core datatypes + (Tomas Vondra) + </para> + </listitem> + + <listitem> + <para> + Reduce <application>libpq</application>'s memory consumption when a + server error is reported after a large amount of query output has + been collected (Tom Lane) + </para> + + <para> + Discard the previous output before, not after, processing the error + message. On some platforms, notably Linux, this can make a + difference in the application's subsequent memory footprint. + </para> + </listitem> + + <listitem> + <para> + Fix double-free crashes in <application>ecpg</application> + (Patrick Krecker, Jeevan Ladhe) + </para> + </listitem> + + <listitem> + <para> + Fix <application>ecpg</application> to handle <type>long long + int</type> variables correctly in MSVC builds (Michael Meskes, + Andrew Gierth) + </para> + </listitem> + + <listitem> + <para> + Fix mis-quoting of values for list-valued GUC variables in dumps + (Michael Paquier, Tom Lane) + </para> + + <para> + The <varname>local_preload_libraries</varname>, + <varname>session_preload_libraries</varname>, + <varname>shared_preload_libraries</varname>, + and <varname>temp_tablespaces</varname> variables were not correctly + quoted in <application>pg_dump</application> output. This would + cause problems if settings for these variables appeared in + <command>CREATE FUNCTION ... SET</command> or <command>ALTER + DATABASE/ROLE ... SET</command> clauses. + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_recvlogical</application> to not fail against + pre-v10 <productname>PostgreSQL</productname> servers + (Michael Paquier) + </para> + + <para> + A previous fix caused <application>pg_recvlogical</application> to + issue a command regardless of server version, but it should only be + issued to v10 and later servers. + </para> + </listitem> + + <listitem> + <para> + Fix overflow handling in <application>PL/pgSQL</application> + integer <command>FOR</command> loops (Tom Lane) + </para> + + <para> + The previous coding failed to detect overflow of the loop variable + on some non-gcc compilers, leading to an infinite loop. + </para> + </listitem> + + <listitem> + <para> + Adjust <application>PL/Python</application> regression tests to pass + under Python 3.7 (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Support testing <application>PL/Python</application> and related + modules when building with Python 3 and MSVC (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Rename internal <function>b64_encode</function> + and <function>b64_decode</function> functions to avoid conflict with + Solaris 11.4 built-in functions (Rainer Orth) + </para> + </listitem> + + <listitem> + <para> + Sync our copy of the timezone library with IANA tzcode release 2018e + (Tom Lane) + </para> + + <para> + This fixes the <application>zic</application> timezone data compiler + to cope with negative daylight-savings offsets. While + the <productname>PostgreSQL</productname> project will not + immediately ship such timezone data, <application>zic</application> + might be used with timezone data obtained directly from IANA, so it + seems prudent to update <application>zic</application> now. + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</application> + release 2018d for DST law changes in Palestine and Antarctica (Casey + Station), plus historical corrections for Portugal and its colonies, + as well as Enderbury, Jamaica, Turks & Caicos Islands, and + Uruguay. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-9-4-17"> <title>Release 9.4.17</title> diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml index 931332abf7f..99fc9645a4b 100644 --- a/doc/src/sgml/release-9.5.sgml +++ b/doc/src/sgml/release-9.5.sgml @@ -1,6 +1,476 @@ <!-- doc/src/sgml/release-9.5.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-9-5-13"> + <title>Release 9.5.13</title> + + <formalpara> + <title>Release date:</title> + <para>2018-05-10</para> + </formalpara> + + <para> + This release contains a variety of fixes from 9.5.12. + 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.13</title> + + <para> + A dump/restore is not required for those running 9.5.X. + </para> + + <para> + However, if the function marking mistakes mentioned in the first + changelog entry below affect you, you will want to take steps to + correct your database catalogs. + </para> + + <para> + Also, if you are upgrading from a version earlier than 9.5.12, + see <xref linkend="release-9-5-12">. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix incorrect volatility markings on a few built-in functions + (Thomas Munro, Tom Lane) + </para> + + <para> + The functions + <function>query_to_xml</function>, + <function>cursor_to_xml</function>, + <function>cursor_to_xmlschema</function>, + <function>query_to_xmlschema</function>, and + <function>query_to_xml_and_xmlschema</function> + should be marked volatile because they execute user-supplied queries + that might contain volatile operations. They were not, leading to a + risk of incorrect query optimization. This has been repaired for new + installations by correcting the initial catalog data, but existing + installations will continue to contain the incorrect markings. + Practical use of these functions seems to pose little hazard, but in + case of trouble, it can be fixed by manually updating these + functions' <structname>pg_proc</structname> entries. (Note that that + will need to be done in each database of the installation.) Another + option is to <application>pg_upgrade</application> the database to a + version containing the corrected initial data. + </para> + </listitem> + + <listitem> + <para> + Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed + TOAST entries (Pavan Deolasee) + </para> + + <para> + Once the OID counter has wrapped around, it's possible to assign a + TOAST value whose OID matches a previously deleted entry in the same + TOAST table. If that entry were not yet vacuumed away, this resulted + in <quote>unexpected chunk number 0 (expected 1) for toast + value <replaceable>nnnnn</replaceable></quote> errors, which would + persist until the dead entry was removed + by <command>VACUUM</command>. Fix by not selecting such OIDs when + creating a new TOAST entry. + </para> + </listitem> + + <listitem> + <para> + Change <command>ANALYZE</command>'s algorithm for updating + <structname>pg_class</structname>.<structfield>reltuples</structfield> + (David Gould) + </para> + + <para> + Previously, pages not actually scanned by <command>ANALYZE</command> + were assumed to retain their old tuple density. In a large table + where <command>ANALYZE</command> samples only a small fraction of the + pages, this meant that the overall tuple density estimate could not + change very much, so that <structfield>reltuples</structfield> would + change nearly proportionally to changes in the table's physical size + (<structfield>relpages</structfield>) regardless of what was actually + happening in the table. This has been observed to result + in <structfield>reltuples</structfield> becoming so much larger than + reality as to effectively shut off autovacuuming. To fix, assume + that <command>ANALYZE</command>'s sample is a statistically unbiased + sample of the table (as it should be), and just extrapolate the + density observed within those pages to the whole table. + </para> + </listitem> + + <listitem> + <para> + Avoid deadlocks in concurrent <command>CREATE INDEX + CONCURRENTLY</command> commands that are run + under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE + READ</literal> transaction isolation (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW + CONCURRENTLY</command> (Thomas Munro) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail + when the referenced cursor uses an index-only-scan plan (Yugo Nagata, + Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect planning of join clauses pushed into parameterized + paths (Andrew Gierth, Tom Lane) + </para> + + <para> + This error could result in misclassifying a condition as + a <quote>join filter</quote> for an outer join when it should be a + plain <quote>filter</quote> condition, leading to incorrect join + output. + </para> + </listitem> + + <listitem> + <para> + Fix possibly incorrect generation of an index-only-scan plan when the + same table column appears in multiple index columns, and only some of + those index columns use operator classes that can return the column + value (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + Fix misoptimization of <literal>CHECK</literal> constraints having + provably-NULL subclauses of + top-level <literal>AND</literal>/<literal>OR</literal> conditions + (Tom Lane, Dean Rasheed) + </para> + + <para> + This could, for example, allow constraint exclusion to exclude a + child table that should not be excluded from a query. + </para> + </listitem> + + <listitem> + <para> + Fix executor crash due to double free in some <literal>GROUPING + SET</literal> usages (Peter Geoghegan) + </para> + </listitem> + + <listitem> + <para> + Avoid crash if a table rewrite event trigger is added concurrently + with a command that could call such a trigger (Álvaro Herrera, + Andrew Gierth, Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Avoid failure if a query-cancel or session-termination interrupt + occurs while committing a prepared transaction (Stas Kelvich) + </para> + </listitem> + + <listitem> + <para> + Fix query-lifespan memory leakage in repeatedly executed hash joins + (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix overly strict sanity check + in <function>heap_prepare_freeze_tuple</function> + (Álvaro Herrera) + </para> + + <para> + This could result in incorrect <quote>cannot freeze committed + xmax</quote> failures in databases that have + been <application>pg_upgrade</application>'d from 9.2 or earlier. + </para> + </listitem> + + <listitem> + <para> + Prevent dangling-pointer dereference when a C-coded before-update row + trigger returns the <quote>old</quote> tuple (Rushabh Lathia) + </para> + </listitem> + + <listitem> + <para> + Reduce locking during autovacuum worker scheduling (Jeff Janes) + </para> + + <para> + The previous behavior caused drastic loss of potential worker + concurrency in databases with many tables. + </para> + </listitem> + + <listitem> + <para> + Ensure client hostname is copied while copying + <structname>pg_stat_activity</structname> data to local memory + (Edmund Horner) + </para> + + <para> + Previously the supposedly-local snapshot contained a pointer into + shared memory, allowing the client hostname column to change + unexpectedly if any existing session disconnected. + </para> + </listitem> + + <listitem> + <para> + Fix incorrect processing of multiple compound affixes + in <literal>ispell</literal> dictionaries (Arthur Zakirov) + </para> + </listitem> + + <listitem> + <para> + Fix collation-aware searches (that is, indexscans using inequality + operators) in SP-GiST indexes on text columns (Tom Lane) + </para> + + <para> + Such searches would return the wrong set of rows in most non-C + locales. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during initial build of an + SP-GiST index (Tomas Vondra) + </para> + + <para> + Previously, the tuple count was reported to be the same as that of + the underlying table, which is wrong if the index is partial. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during vacuuming of a + GiST index (Andrey Borodin) + </para> + + <para> + Previously it reported the estimated number of heap tuples, + which might be inaccurate, and is certainly wrong if the + index is partial. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case where a streaming standby gets stuck at a WAL + continuation record (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + In logical decoding, avoid possible double processing of WAL data + when a walsender restarts (Craig Ringer) + </para> + </listitem> + + <listitem> + <para> + Allow <function>scalarltsel</function> + and <function>scalargtsel</function> to be used on non-core datatypes + (Tomas Vondra) + </para> + </listitem> + + <listitem> + <para> + Reduce <application>libpq</application>'s memory consumption when a + server error is reported after a large amount of query output has + been collected (Tom Lane) + </para> + + <para> + Discard the previous output before, not after, processing the error + message. On some platforms, notably Linux, this can make a + difference in the application's subsequent memory footprint. + </para> + </listitem> + + <listitem> + <para> + Fix double-free crashes in <application>ecpg</application> + (Patrick Krecker, Jeevan Ladhe) + </para> + </listitem> + + <listitem> + <para> + Fix <application>ecpg</application> to handle <type>long long + int</type> variables correctly in MSVC builds (Michael Meskes, + Andrew Gierth) + </para> + </listitem> + + <listitem> + <para> + Fix mis-quoting of values for list-valued GUC variables in dumps + (Michael Paquier, Tom Lane) + </para> + + <para> + The <varname>local_preload_libraries</varname>, + <varname>session_preload_libraries</varname>, + <varname>shared_preload_libraries</varname>, + and <varname>temp_tablespaces</varname> variables were not correctly + quoted in <application>pg_dump</application> output. This would + cause problems if settings for these variables appeared in + <command>CREATE FUNCTION ... SET</command> or <command>ALTER + DATABASE/ROLE ... SET</command> clauses. + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_recvlogical</application> to not fail against + pre-v10 <productname>PostgreSQL</productname> servers + (Michael Paquier) + </para> + + <para> + A previous fix caused <application>pg_recvlogical</application> to + issue a command regardless of server version, but it should only be + issued to v10 and later servers. + </para> + </listitem> + + <listitem> + <para> + Ensure that <application>pg_rewind</application> deletes files on the + target server if they are deleted from the source server during the + run (Takayuki Tsunakawa) + </para> + + <para> + Failure to do this could result in data inconsistency on the target, + particularly if the file in question is a WAL segment. + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_rewind</application> to handle tables in + non-default tablespaces correctly (Takayuki Tsunakawa) + </para> + </listitem> + + <listitem> + <para> + Fix overflow handling in <application>PL/pgSQL</application> + integer <command>FOR</command> loops (Tom Lane) + </para> + + <para> + The previous coding failed to detect overflow of the loop variable + on some non-gcc compilers, leading to an infinite loop. + </para> + </listitem> + + <listitem> + <para> + Adjust <application>PL/Python</application> regression tests to pass + under Python 3.7 (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Support testing <application>PL/Python</application> and related + modules when building with Python 3 and MSVC (Andrew Dunstan) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: REL9_5_STABLE [3c0e07a46] 2018-05-01 12:02:41 -0400 +--> + <para> + Support building with Microsoft Visual Studio 2015 (Michael Paquier) + </para> + + <para> + Various fixes needed for VS2015 compatibility were previously + back-patched into the 9.5 branch, but this one was missed. + </para> + </listitem> + + <listitem> + <para> + Rename internal <function>b64_encode</function> + and <function>b64_decode</function> functions to avoid conflict with + Solaris 11.4 built-in functions (Rainer Orth) + </para> + </listitem> + + <listitem> + <para> + Sync our copy of the timezone library with IANA tzcode release 2018e + (Tom Lane) + </para> + + <para> + This fixes the <application>zic</application> timezone data compiler + to cope with negative daylight-savings offsets. While + the <productname>PostgreSQL</productname> project will not + immediately ship such timezone data, <application>zic</application> + might be used with timezone data obtained directly from IANA, so it + seems prudent to update <application>zic</application> now. + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</application> + release 2018d for DST law changes in Palestine and Antarctica (Casey + Station), plus historical corrections for Portugal and its colonies, + as well as Enderbury, Jamaica, Turks & Caicos Islands, and + Uruguay. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-9-5-12"> <title>Release 9.5.12</title> diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml index fde8d3b1178..e626b19f379 100644 --- a/doc/src/sgml/release-9.6.sgml +++ b/doc/src/sgml/release-9.6.sgml @@ -1,6 +1,538 @@ <!-- doc/src/sgml/release-9.6.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-9-6-9"> + <title>Release 9.6.9</title> + + <formalpara> + <title>Release date:</title> + <para>2018-05-10</para> + </formalpara> + + <para> + This release contains a variety of fixes from 9.6.8. + 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.9</title> + + <para> + A dump/restore is not required for those running 9.6.X. + </para> + + <para> + However, if the function marking mistakes mentioned in the first two + changelog entries below affect you, you will want to take steps to + correct your database catalogs. + </para> + + <para> + Also, if you are upgrading from a version earlier than 9.6.8, + see <xref linkend="release-9-6-8">. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix incorrect volatility markings on a few built-in functions + (Thomas Munro, Tom Lane) + </para> + + <para> + The functions + <function>query_to_xml</function>, + <function>cursor_to_xml</function>, + <function>cursor_to_xmlschema</function>, + <function>query_to_xmlschema</function>, and + <function>query_to_xml_and_xmlschema</function> + should be marked volatile because they execute user-supplied queries + that might contain volatile operations. They were not, leading to a + risk of incorrect query optimization. This has been repaired for new + installations by correcting the initial catalog data, but existing + installations will continue to contain the incorrect markings. + Practical use of these functions seems to pose little hazard, but in + case of trouble, it can be fixed by manually updating these + functions' <structname>pg_proc</structname> entries. (Note that that + will need to be done in each database of the installation.) Another + option is to <application>pg_upgrade</application> the database to a + version containing the corrected initial data. + </para> + </listitem> + + <listitem> + <para> + Fix incorrect parallel-safety markings on a few built-in functions + (Thomas Munro, Tom Lane) + </para> + + <para> + The functions + <function>brin_summarize_new_values</function>, + <function>brin_summarize_range</function>, + <function>brin_desummarize_range</function>, + <function>gin_clean_pending_list</function>, + <function>cursor_to_xml</function>, + <function>cursor_to_xmlschema</function>, + <function>ts_rewrite</function>, + <function>ts_stat</function>, + <function>binary_upgrade_create_empty_extension</function>, and + <function>pg_import_system_collations</function> + should be marked parallel-unsafe; some because they perform database + modifications directly, and others because they execute user-supplied + queries that might do so. They were marked parallel-restricted + instead, leading to a risk of unexpected query errors. This has been + repaired for new installations by correcting the initial catalog + data, but existing installations will continue to contain the + incorrect markings. Practical use of these functions seems to pose + little hazard unless <varname>force_parallel_mode</varname> is turned + on. In case of trouble, it can be fixed by manually updating these + functions' <structname>pg_proc</structname> entries. (Note that that + will need to be done in each database of the installation.) Another + option is to <application>pg_upgrade</application> the database to a + version containing the corrected initial data. + </para> + </listitem> + + <listitem> + <para> + Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed + TOAST entries (Pavan Deolasee) + </para> + + <para> + Once the OID counter has wrapped around, it's possible to assign a + TOAST value whose OID matches a previously deleted entry in the same + TOAST table. If that entry were not yet vacuumed away, this resulted + in <quote>unexpected chunk number 0 (expected 1) for toast + value <replaceable>nnnnn</replaceable></quote> errors, which would + persist until the dead entry was removed + by <command>VACUUM</command>. Fix by not selecting such OIDs when + creating a new TOAST entry. + </para> + </listitem> + + <listitem> + <para> + Change <command>ANALYZE</command>'s algorithm for updating + <structname>pg_class</structname>.<structfield>reltuples</structfield> + (David Gould) + </para> + + <para> + Previously, pages not actually scanned by <command>ANALYZE</command> + were assumed to retain their old tuple density. In a large table + where <command>ANALYZE</command> samples only a small fraction of the + pages, this meant that the overall tuple density estimate could not + change very much, so that <structfield>reltuples</structfield> would + change nearly proportionally to changes in the table's physical size + (<structfield>relpages</structfield>) regardless of what was actually + happening in the table. This has been observed to result + in <structfield>reltuples</structfield> becoming so much larger than + reality as to effectively shut off autovacuuming. To fix, assume + that <command>ANALYZE</command>'s sample is a statistically unbiased + sample of the table (as it should be), and just extrapolate the + density observed within those pages to the whole table. + </para> + </listitem> + + <listitem> + <para> + Avoid deadlocks in concurrent <command>CREATE INDEX + CONCURRENTLY</command> commands that are run + under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE + READ</literal> transaction isolation (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW + CONCURRENTLY</command> (Thomas Munro) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail + when the referenced cursor uses an index-only-scan plan (Yugo Nagata, + Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect planning of join clauses pushed into parameterized + paths (Andrew Gierth, Tom Lane) + </para> + + <para> + This error could result in misclassifying a condition as + a <quote>join filter</quote> for an outer join when it should be a + plain <quote>filter</quote> condition, leading to incorrect join + output. + </para> + </listitem> + + <listitem> + <para> + Fix possibly incorrect generation of an index-only-scan plan when the + same table column appears in multiple index columns, and only some of + those index columns use operator classes that can return the column + value (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + Fix misoptimization of <literal>CHECK</literal> constraints having + provably-NULL subclauses of + top-level <literal>AND</literal>/<literal>OR</literal> conditions + (Tom Lane, Dean Rasheed) + </para> + + <para> + This could, for example, allow constraint exclusion to exclude a + child table that should not be excluded from a query. + </para> + </listitem> + + <listitem> + <para> + Fix executor crash due to double free in some <literal>GROUPING + SET</literal> usages (Peter Geoghegan) + </para> + </listitem> + + <listitem> + <para> + Avoid crash if a table rewrite event trigger is added concurrently + with a command that could call such a trigger (Álvaro Herrera, + Andrew Gierth, Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Avoid failure if a query-cancel or session-termination interrupt + occurs while committing a prepared transaction (Stas Kelvich) + </para> + </listitem> + + <listitem> + <para> + Fix query-lifespan memory leakage in repeatedly executed hash joins + (Tom Lane) + </para> + </listitem> + + <listitem> + <para> + Fix possible leak or double free of visibility map buffer pins + (Amit Kapila) + </para> + </listitem> + + <listitem> + <para> + Avoid spuriously marking pages as all-visible (Dan Wood, + Pavan Deolasee, Álvaro Herrera) + </para> + + <para> + This could happen if some tuples were locked (but not deleted). While + queries would still function correctly, vacuum would normally ignore + such pages, with the long-term effect that the tuples were never + frozen. In recent releases this would eventually result in errors + such as <quote>found multixact <replaceable>nnnnn</replaceable> from + before relminmxid <replaceable>nnnnn</replaceable></quote>. + </para> + </listitem> + + <listitem> + <para> + Fix overly strict sanity check + in <function>heap_prepare_freeze_tuple</function> + (Álvaro Herrera) + </para> + + <para> + This could result in incorrect <quote>cannot freeze committed + xmax</quote> failures in databases that have + been <application>pg_upgrade</application>'d from 9.2 or earlier. + </para> + </listitem> + + <listitem> + <para> + Prevent dangling-pointer dereference when a C-coded before-update row + trigger returns the <quote>old</quote> tuple (Rushabh Lathia) + </para> + </listitem> + + <listitem> + <para> + Reduce locking during autovacuum worker scheduling (Jeff Janes) + </para> + + <para> + The previous behavior caused drastic loss of potential worker + concurrency in databases with many tables. + </para> + </listitem> + + <listitem> + <para> + Ensure client hostname is copied while copying + <structname>pg_stat_activity</structname> data to local memory + (Edmund Horner) + </para> + + <para> + Previously the supposedly-local snapshot contained a pointer into + shared memory, allowing the client hostname column to change + unexpectedly if any existing session disconnected. + </para> + </listitem> + + <listitem> + <para> + Fix incorrect processing of multiple compound affixes + in <literal>ispell</literal> dictionaries (Arthur Zakirov) + </para> + </listitem> + + <listitem> + <para> + Fix collation-aware searches (that is, indexscans using inequality + operators) in SP-GiST indexes on text columns (Tom Lane) + </para> + + <para> + Such searches would return the wrong set of rows in most non-C + locales. + </para> + </listitem> + + <listitem> + <para> + Prevent query-lifespan memory leakage with SP-GiST operator classes + that use traversal values (Anton Dignös) + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during initial build of an + SP-GiST index (Tomas Vondra) + </para> + + <para> + Previously, the tuple count was reported to be the same as that of + the underlying table, which is wrong if the index is partial. + </para> + </listitem> + + <listitem> + <para> + Count the number of index tuples correctly during vacuuming of a + GiST index (Andrey Borodin) + </para> + + <para> + Previously it reported the estimated number of heap tuples, + which might be inaccurate, and is certainly wrong if the + index is partial. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case where a streaming standby gets stuck at a WAL + continuation record (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> + <para> + In logical decoding, avoid possible double processing of WAL data + when a walsender restarts (Craig Ringer) + </para> + </listitem> + + <listitem> + <para> + Allow <function>scalarltsel</function> + and <function>scalargtsel</function> to be used on non-core datatypes + (Tomas Vondra) + </para> + </listitem> + + <listitem> + <para> + Reduce <application>libpq</application>'s memory consumption when a + server error is reported after a large amount of query output has + been collected (Tom Lane) + </para> + + <para> + Discard the previous output before, not after, processing the error + message. On some platforms, notably Linux, this can make a + difference in the application's subsequent memory footprint. + </para> + </listitem> + + <listitem> + <para> + Fix double-free crashes in <application>ecpg</application> + (Patrick Krecker, Jeevan Ladhe) + </para> + </listitem> + + <listitem> + <para> + Fix <application>ecpg</application> to handle <type>long long + int</type> variables correctly in MSVC builds (Michael Meskes, + Andrew Gierth) + </para> + </listitem> + + <listitem> + <para> + Fix mis-quoting of values for list-valued GUC variables in dumps + (Michael Paquier, Tom Lane) + </para> + + <para> + The <varname>local_preload_libraries</varname>, + <varname>session_preload_libraries</varname>, + <varname>shared_preload_libraries</varname>, + and <varname>temp_tablespaces</varname> variables were not correctly + quoted in <application>pg_dump</application> output. This would + cause problems if settings for these variables appeared in + <command>CREATE FUNCTION ... SET</command> or <command>ALTER + DATABASE/ROLE ... SET</command> clauses. + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_recvlogical</application> to not fail against + pre-v10 <productname>PostgreSQL</productname> servers + (Michael Paquier) + </para> + + <para> + A previous fix caused <application>pg_recvlogical</application> to + issue a command regardless of server version, but it should only be + issued to v10 and later servers. + </para> + </listitem> + + <listitem> + <para> + Ensure that <application>pg_rewind</application> deletes files on the + target server if they are deleted from the source server during the + run (Takayuki Tsunakawa) + </para> + + <para> + Failure to do this could result in data inconsistency on the target, + particularly if the file in question is a WAL segment. + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_rewind</application> to handle tables in + non-default tablespaces correctly (Takayuki Tsunakawa) + </para> + </listitem> + + <listitem> + <para> + Fix overflow handling in <application>PL/pgSQL</application> + integer <command>FOR</command> loops (Tom Lane) + </para> + + <para> + The previous coding failed to detect overflow of the loop variable + on some non-gcc compilers, leading to an infinite loop. + </para> + </listitem> + + <listitem> + <para> + Adjust <application>PL/Python</application> regression tests to pass + under Python 3.7 (Peter Eisentraut) + </para> + </listitem> + + <listitem> + <para> + Support testing <application>PL/Python</application> and related + modules when building with Python 3 and MSVC (Andrew Dunstan) + </para> + </listitem> + + <listitem> + <para> + Fix errors in initial build of <filename>contrib/bloom</filename> + indexes (Tomas Vondra, Tom Lane) + </para> + + <para> + Fix possible omission of the table's last tuple from the index. + Count the number of index tuples correctly, in case it is a partial + index. + </para> + </listitem> + + <listitem> + <para> + Rename internal <function>b64_encode</function> + and <function>b64_decode</function> functions to avoid conflict with + Solaris 11.4 built-in functions (Rainer Orth) + </para> + </listitem> + + <listitem> + <para> + Sync our copy of the timezone library with IANA tzcode release 2018e + (Tom Lane) + </para> + + <para> + This fixes the <application>zic</application> timezone data compiler + to cope with negative daylight-savings offsets. While + the <productname>PostgreSQL</productname> project will not + immediately ship such timezone data, <application>zic</application> + might be used with timezone data obtained directly from IANA, so it + seems prudent to update <application>zic</application> now. + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</application> + release 2018d for DST law changes in Palestine and Antarctica (Casey + Station), plus historical corrections for Portugal and its colonies, + as well as Enderbury, Jamaica, Turks & Caicos Islands, and + Uruguay. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-9-6-8"> <title>Release 9.6.8</title> |