From c9bb00fbd4de20ce959cefefaffe70acfffd89e4 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 7 Aug 2016 21:31:01 -0400 Subject: [PATCH] Release notes for 9.5.4, 9.4.9, 9.3.14, 9.2.18, 9.1.23. --- doc/src/sgml/release-9.1.sgml | 262 ++++++++++ doc/src/sgml/release-9.2.sgml | 261 ++++++++++ doc/src/sgml/release-9.3.sgml | 410 +++++++++++++++ doc/src/sgml/release-9.4.sgml | 442 ++++++++++++++++ doc/src/sgml/release-9.5.sgml | 928 ++++++++++++++++++++++++++++++++++ 5 files changed, 2303 insertions(+) diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml index cf87c520d6..b3a7aa16cc 100644 --- a/doc/src/sgml/release-9.1.sgml +++ b/doc/src/sgml/release-9.1.sgml @@ -1,6 +1,268 @@ + + Release 9.1.23 + + + Release Date + 2016-08-11 + + + + This release contains a variety of fixes from 9.1.22. + For information about new features in the 9.1 major release, see + . + + + + The PostgreSQL community will stop releasing updates + for the 9.1.X release series in September 2016. + Users are encouraged to update to a newer release branch soon. + + + + Migration to Version 9.1.23 + + + A dump/restore is not required for those running 9.1.X. + + + + However, if you are upgrading from a version earlier than 9.1.16, + see . + + + + + + Changes + + + + + + Fix corner-case misbehaviors for IS NULL/IS NOT + NULL applied to nested composite values (Andrew Gierth, Tom Lane) + + + + The SQL standard specifies that IS NULL should return + TRUE for a row of all null values (thus ROW(NULL,NULL) IS + NULL yields TRUE), but this is not meant to apply recursively + (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). + The core executor got this right, but certain planner optimizations + treated the test as recursive (thus producing TRUE in both cases), + and contrib/postgres_fdw could produce remote queries + that misbehaved similarly. + + + + + + Make the inet and cidr data types properly reject + IPv6 addresses with too many colon-separated fields (Tom Lane) + + + + + + Prevent crash in close_ps() + (the point ## lseg operator) + for NaN input coordinates (Tom Lane) + + + + Make it return NULL instead of crashing. + + + + + + Avoid unsafe intermediate state during expensive paths + through heap_update() (Masahiko Sawada, Andres Freund) + + + + Previously, these cases locked the target tuple (by setting its XMAX) + but did not WAL-log that action, thus risking data integrity problems + if the page were spilled to disk and then a database crash occurred + before the tuple update could be completed. + + + + + + Avoid consuming a transaction ID during VACUUM + (Alexander Korotkov) + + + + Some cases in VACUUM unnecessarily caused an XID to be + assigned to the current transaction. Normally this is negligible, + but if one is up against the XID wraparound limit, consuming more + XIDs during anti-wraparound vacuums is a very bad thing. + + + + + + Avoid canceling hot-standby queries during VACUUM FREEZE + (Simon Riggs, Álvaro Herrera) + + + + VACUUM FREEZE on an otherwise-idle master server could + result in unnecessary cancellations of queries on its standby + servers. + + + + + + When a manual ANALYZE specifies a column list, don't + reset the table's changes_since_analyze counter + (Tom Lane) + + + + If we're only analyzing some columns, we should not prevent routine + auto-analyze from happening for the other columns. + + + + + + Fix ANALYZE's overestimation of n_distinct + for a unique or nearly-unique column with many null entries (Tom + Lane) + + + + The nulls could get counted as though they were themselves distinct + values, leading to serious planner misestimates in some types of + queries. + + + + + + Prevent autovacuum from starting multiple workers for the same shared + catalog (Álvaro Herrera) + + + + Normally this isn't much of a problem because the vacuum doesn't take + long anyway; but in the case of a severely bloated catalog, it could + result in all but one worker uselessly waiting instead of doing + useful work on other tables. + + + + + + Fix contrib/btree_gin to handle the smallest + possible bigint value correctly (Peter Eisentraut) + + + + + + Teach libpq to correctly decode server version from future servers + (Peter Eisentraut) + + + + It's planned to switch to two-part instead of three-part server + version numbers for releases after 9.6. Make sure + that PQserverVersion() returns the correct value for + such cases. + + + + + + Fix ecpg's code for unsigned long long + array elements (Michael Meskes) + + + + + + Make pg_basebackup accept -Z 0 as + specifying no compression (Fujii Masao) + + + + + + + Revert to the old heuristic timeout for pg_ctl start -w + (Tom Lane) + + + + The new method adopted as of release 9.1.20 does not work + when silent_mode is enabled, so go back to the old way. + + + + + + Fix makefiles' rule for building AIX shared libraries to be safe for + parallel make (Noah Misch) + + + + + + Fix TAP tests and MSVC scripts to work when build directory's path + name contains spaces (Michael Paquier, Kyotaro Horiguchi) + + + + + + Make regression tests safe for Danish and Welsh locales (Jeff Janes, + Tom Lane) + + + + Change some test data that triggered the unusual sorting rules of + these locales. + + + + + + Update our copy of the timezone code to match + IANA's tzcode release 2016c (Tom Lane) + + + + This is needed to cope with anticipated future changes in the time + zone data files. It also fixes some corner-case bugs in coping with + unusual time zones. + + + + + + Update time zone data files to tzdata release 2016f + for DST law changes in Kemerovo and Novosibirsk, plus historical + corrections for Azerbaijan, Belarus, and Morocco. + + + + + + + + Release 9.1.22 diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml index cde1c4e7c7..22430cb501 100644 --- a/doc/src/sgml/release-9.2.sgml +++ b/doc/src/sgml/release-9.2.sgml @@ -1,6 +1,267 @@ + + Release 9.2.18 + + + Release Date + 2016-08-11 + + + + This release contains a variety of fixes from 9.2.17. + For information about new features in the 9.2 major release, see + . + + + + Migration to Version 9.2.18 + + + A dump/restore is not required for those running 9.2.X. + + + + However, if you are upgrading from a version earlier than 9.2.11, + see . + + + + + + Changes + + + + + + Fix corner-case misbehaviors for IS NULL/IS NOT + NULL applied to nested composite values (Andrew Gierth, Tom Lane) + + + + The SQL standard specifies that IS NULL should return + TRUE for a row of all null values (thus ROW(NULL,NULL) IS + NULL yields TRUE), but this is not meant to apply recursively + (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). + The core executor got this right, but certain planner optimizations + treated the test as recursive (thus producing TRUE in both cases), + and contrib/postgres_fdw could produce remote queries + that misbehaved similarly. + + + + + + Make the inet and cidr data types properly reject + IPv6 addresses with too many colon-separated fields (Tom Lane) + + + + + + Prevent crash in close_ps() + (the point ## lseg operator) + for NaN input coordinates (Tom Lane) + + + + Make it return NULL instead of crashing. + + + + + + Avoid unsafe intermediate state during expensive paths + through heap_update() (Masahiko Sawada, Andres Freund) + + + + Previously, these cases locked the target tuple (by setting its XMAX) + but did not WAL-log that action, thus risking data integrity problems + if the page were spilled to disk and then a database crash occurred + before the tuple update could be completed. + + + + + + Avoid crash in postgres -C when the specified variable + has a null string value (Michael Paquier) + + + + + + Avoid consuming a transaction ID during VACUUM + (Alexander Korotkov) + + + + Some cases in VACUUM unnecessarily caused an XID to be + assigned to the current transaction. Normally this is negligible, + but if one is up against the XID wraparound limit, consuming more + XIDs during anti-wraparound vacuums is a very bad thing. + + + + + + Avoid canceling hot-standby queries during VACUUM FREEZE + (Simon Riggs, Álvaro Herrera) + + + + VACUUM FREEZE on an otherwise-idle master server could + result in unnecessary cancellations of queries on its standby + servers. + + + + + + When a manual ANALYZE specifies a column list, don't + reset the table's changes_since_analyze counter + (Tom Lane) + + + + If we're only analyzing some columns, we should not prevent routine + auto-analyze from happening for the other columns. + + + + + + Fix ANALYZE's overestimation of n_distinct + for a unique or nearly-unique column with many null entries (Tom + Lane) + + + + The nulls could get counted as though they were themselves distinct + values, leading to serious planner misestimates in some types of + queries. + + + + + + Prevent autovacuum from starting multiple workers for the same shared + catalog (Álvaro Herrera) + + + + Normally this isn't much of a problem because the vacuum doesn't take + long anyway; but in the case of a severely bloated catalog, it could + result in all but one worker uselessly waiting instead of doing + useful work on other tables. + + + + + + Prevent infinite loop in GiST index build for geometric columns + containing NaN component values (Tom Lane) + + + + + + Fix contrib/btree_gin to handle the smallest + possible bigint value correctly (Peter Eisentraut) + + + + + + Teach libpq to correctly decode server version from future servers + (Peter Eisentraut) + + + + It's planned to switch to two-part instead of three-part server + version numbers for releases after 9.6. Make sure + that PQserverVersion() returns the correct value for + such cases. + + + + + + Fix ecpg's code for unsigned long long + array elements (Michael Meskes) + + + + + + In pg_dump with both + + + + + Make pg_basebackup accept -Z 0 as + specifying no compression (Fujii Masao) + + + + + + Fix makefiles' rule for building AIX shared libraries to be safe for + parallel make (Noah Misch) + + + + + + Fix TAP tests and MSVC scripts to work when build directory's path + name contains spaces (Michael Paquier, Kyotaro Horiguchi) + + + + + + Make regression tests safe for Danish and Welsh locales (Jeff Janes, + Tom Lane) + + + + Change some test data that triggered the unusual sorting rules of + these locales. + + + + + + Update our copy of the timezone code to match + IANA's tzcode release 2016c (Tom Lane) + + + + This is needed to cope with anticipated future changes in the time + zone data files. It also fixes some corner-case bugs in coping with + unusual time zones. + + + + + + Update time zone data files to tzdata release 2016f + for DST law changes in Kemerovo and Novosibirsk, plus historical + corrections for Azerbaijan, Belarus, and Morocco. + + + + + + + + Release 9.2.17 diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml index 77b5f80dcb..81feb3e442 100644 --- a/doc/src/sgml/release-9.3.sgml +++ b/doc/src/sgml/release-9.3.sgml @@ -1,6 +1,416 @@ + + Release 9.3.14 + + + Release Date + 2016-08-11 + + + + This release contains a variety of fixes from 9.3.13. + For information about new features in the 9.3 major release, see + . + + + + Migration to Version 9.3.14 + + + A dump/restore is not required for those running 9.3.X. + + + + However, if you are upgrading from a version earlier than 9.3.9, + see . + + + + + + Changes + + + + + + Fix corner-case misbehaviors for IS NULL/IS NOT + NULL applied to nested composite values (Andrew Gierth, Tom Lane) + + + + The SQL standard specifies that IS NULL should return + TRUE for a row of all null values (thus ROW(NULL,NULL) IS + NULL yields TRUE), but this is not meant to apply recursively + (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). + The core executor got this right, but certain planner optimizations + treated the test as recursive (thus producing TRUE in both cases), + and contrib/postgres_fdw could produce remote queries + that misbehaved similarly. + + + + + + Make the inet and cidr data types properly reject + IPv6 addresses with too many colon-separated fields (Tom Lane) + + + + + + Prevent crash in close_ps() + (the point ## lseg operator) + for NaN input coordinates (Tom Lane) + + + + Make it return NULL instead of crashing. + + + + + + Avoid possible crash in pg_get_expr() when inconsistent + values are passed to it (Michael Paquier, Thomas Munro) + + + + + + Do not run the planner on the query contained in CREATE + MATERIALIZED VIEW or CREATE TABLE AS + when WITH NO DATA is specified (Michael Paquier, + Tom Lane) + + + + This avoids some unnecessary failure conditions, for example if a + stable function invoked by the materialized view depends on a table + that doesn't exist yet. + + + + + + Avoid unsafe intermediate state during expensive paths + through heap_update() (Masahiko Sawada, Andres Freund) + + + + Previously, these cases locked the target tuple (by setting its XMAX) + but did not WAL-log that action, thus risking data integrity problems + if the page were spilled to disk and then a database crash occurred + before the tuple update could be completed. + + + + + + Fix hint bit update during WAL replay of row locking operations + (Andres Freund) + + + + The only known consequence of this problem is that row locks held by + a prepared, but uncommitted, transaction might fail to be enforced + after a crash and restart. + + + + + + Avoid unnecessary could not serialize access errors when + acquiring FOR KEY SHARE row locks in serializable mode + (Álvaro Herrera) + + + + + + Avoid crash in postgres -C when the specified variable + has a null string value (Michael Paquier) + + + + + + Ensure that backends see up-to-date statistics for shared catalogs + (Tom Lane) + + + + The statistics collector failed to update the statistics file for + shared catalogs after a request from a regular backend. This problem + was partially masked because the autovacuum launcher regularly makes + requests that did cause such updates; however, it became obvious with + autovacuum disabled. + + + + + + Avoid redundant writes of the statistics files when multiple + backends request updates close together (Tom Lane, Tomas Vondra) + + + + + + Avoid consuming a transaction ID during VACUUM + (Alexander Korotkov) + + + + Some cases in VACUUM unnecessarily caused an XID to be + assigned to the current transaction. Normally this is negligible, + but if one is up against the XID wraparound limit, consuming more + XIDs during anti-wraparound vacuums is a very bad thing. + + + + + + Avoid canceling hot-standby queries during VACUUM FREEZE + (Simon Riggs, Álvaro Herrera) + + + + VACUUM FREEZE on an otherwise-idle master server could + result in unnecessary cancellations of queries on its standby + servers. + + + + + + Prevent possible failure when vacuuming multixact IDs in an + installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, + Álvaro Herrera) + + + + The usual symptom of this bug is errors + like MultiXactId NNN has not been created + yet -- apparent wraparound. + + + + + + When a manual ANALYZE specifies a column list, don't + reset the table's changes_since_analyze counter + (Tom Lane) + + + + If we're only analyzing some columns, we should not prevent routine + auto-analyze from happening for the other columns. + + + + + + Fix ANALYZE's overestimation of n_distinct + for a unique or nearly-unique column with many null entries (Tom + Lane) + + + + The nulls could get counted as though they were themselves distinct + values, leading to serious planner misestimates in some types of + queries. + + + + + + Prevent autovacuum from starting multiple workers for the same shared + catalog (Álvaro Herrera) + + + + Normally this isn't much of a problem because the vacuum doesn't take + long anyway; but in the case of a severely bloated catalog, it could + result in all but one worker uselessly waiting instead of doing + useful work on other tables. + + + + + + Prevent infinite loop in GiST index build for geometric columns + containing NaN component values (Tom Lane) + + + + + + Fix contrib/btree_gin to handle the smallest + possible bigint value correctly (Peter Eisentraut) + + + + + + Teach libpq to correctly decode server version from future servers + (Peter Eisentraut) + + + + It's planned to switch to two-part instead of three-part server + version numbers for releases after 9.6. Make sure + that PQserverVersion() returns the correct value for + such cases. + + + + + + Fix ecpg's code for unsigned long long + array elements (Michael Meskes) + + + + + + In pg_dump with both + + + + + Improve handling of SIGTERM/control-C in + parallel pg_dump and pg_restore (Tom + Lane) + + + + Make sure that the worker processes will exit promptly, and also arrange + to send query-cancel requests to the connected backends, in case they + are doing something long-running such as a CREATE INDEX. + + + + + + Fix error reporting in parallel pg_dump + and pg_restore (Tom Lane) + + + + Previously, errors reported by pg_dump + or pg_restore worker processes might never make it to + the user's console, because the messages went through the master + process, and there were various deadlock scenarios that would prevent + the master process from passing on the messages. Instead, just print + everything to stderr. In some cases this will result in + duplicate messages (for instance, if all the workers report a server + shutdown), but that seems better than no message. + + + + + + Ensure that parallel pg_dump + or pg_restore on Windows will shut down properly + after an error (Kyotaro Horiguchi) + + + + Previously, it would report the error, but then just sit until + manually stopped by the user. + + + + + + Make pg_dump behave better when built without zlib + support (Kyotaro Horiguchi) + + + + It didn't work right for parallel dumps, and emitted some rather + pointless warnings in other cases. + + + + + + Make pg_basebackup accept -Z 0 as + specifying no compression (Fujii Masao) + + + + + + Fix makefiles' rule for building AIX shared libraries to be safe for + parallel make (Noah Misch) + + + + + + Fix TAP tests and MSVC scripts to work when build directory's path + name contains spaces (Michael Paquier, Kyotaro Horiguchi) + + + + + + Be more predictable about reporting statement timeout + versus lock timeout (Tom Lane) + + + + On heavily loaded machines, the regression tests sometimes failed due + to reporting lock timeout even though the statement timeout + should have occurred first. + + + + + + Make regression tests safe for Danish and Welsh locales (Jeff Janes, + Tom Lane) + + + + Change some test data that triggered the unusual sorting rules of + these locales. + + + + + + Update our copy of the timezone code to match + IANA's tzcode release 2016c (Tom Lane) + + + + This is needed to cope with anticipated future changes in the time + zone data files. It also fixes some corner-case bugs in coping with + unusual time zones. + + + + + + Update time zone data files to tzdata release 2016f + for DST law changes in Kemerovo and Novosibirsk, plus historical + corrections for Azerbaijan, Belarus, and Morocco. + + + + + + + + Release 9.3.13 diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml index 555a26c950..7849e02f0d 100644 --- a/doc/src/sgml/release-9.4.sgml +++ b/doc/src/sgml/release-9.4.sgml @@ -1,6 +1,448 @@ + + Release 9.4.9 + + + Release Date + 2016-08-11 + + + + This release contains a variety of fixes from 9.4.8. + For information about new features in the 9.4 major release, see + . + + + + Migration to Version 9.4.9 + + + A dump/restore is not required for those running 9.4.X. + + + + However, if you are upgrading from a version earlier than 9.4.6, + see . + + + + + Changes + + + + + + Fix corner-case misbehaviors for IS NULL/IS NOT + NULL applied to nested composite values (Andrew Gierth, Tom Lane) + + + + The SQL standard specifies that IS NULL should return + TRUE for a row of all null values (thus ROW(NULL,NULL) IS + NULL yields TRUE), but this is not meant to apply recursively + (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). + The core executor got this right, but certain planner optimizations + treated the test as recursive (thus producing TRUE in both cases), + and contrib/postgres_fdw could produce remote queries + that misbehaved similarly. + + + + + + Make the inet and cidr data types properly reject + IPv6 addresses with too many colon-separated fields (Tom Lane) + + + + + + Prevent crash in close_ps() + (the point ## lseg operator) + for NaN input coordinates (Tom Lane) + + + + Make it return NULL instead of crashing. + + + + + + Avoid possible crash in pg_get_expr() when inconsistent + values are passed to it (Michael Paquier, Thomas Munro) + + + + + + Do not run the planner on the query contained in CREATE + MATERIALIZED VIEW or CREATE TABLE AS + when WITH NO DATA is specified (Michael Paquier, + Tom Lane) + + + + This avoids some unnecessary failure conditions, for example if a + stable function invoked by the materialized view depends on a table + that doesn't exist yet. + + + + + + Avoid unsafe intermediate state during expensive paths + through heap_update() (Masahiko Sawada, Andres Freund) + + + + Previously, these cases locked the target tuple (by setting its XMAX) + but did not WAL-log that action, thus risking data integrity problems + if the page were spilled to disk and then a database crash occurred + before the tuple update could be completed. + + + + + + Fix hint bit update during WAL replay of row locking operations + (Andres Freund) + + + + The only known consequence of this problem is that row locks held by + a prepared, but uncommitted, transaction might fail to be enforced + after a crash and restart. + + + + + + Avoid unnecessary could not serialize access errors when + acquiring FOR KEY SHARE row locks in serializable mode + (Álvaro Herrera) + + + + + + Avoid crash in postgres -C when the specified variable + has a null string value (Michael Paquier) + + + + + + Fix possible loss of large subtransactions in logical decoding + (Petru-Florin Mihancea) + + + + + + Fix failure of logical decoding when a subtransaction contains no + actual changes (Marko Tiikkaja, Andrew Gierth) + + + + + + Ensure that backends see up-to-date statistics for shared catalogs + (Tom Lane) + + + + The statistics collector failed to update the statistics file for + shared catalogs after a request from a regular backend. This problem + was partially masked because the autovacuum launcher regularly makes + requests that did cause such updates; however, it became obvious with + autovacuum disabled. + + + + + + Avoid redundant writes of the statistics files when multiple + backends request updates close together (Tom Lane, Tomas Vondra) + + + + + + Avoid consuming a transaction ID during VACUUM + (Alexander Korotkov) + + + + Some cases in VACUUM unnecessarily caused an XID to be + assigned to the current transaction. Normally this is negligible, + but if one is up against the XID wraparound limit, consuming more + XIDs during anti-wraparound vacuums is a very bad thing. + + + + + + + Avoid canceling hot-standby queries during VACUUM FREEZE + (Simon Riggs, Álvaro Herrera) + + + + VACUUM FREEZE on an otherwise-idle master server could + result in unnecessary cancellations of queries on its standby + servers. + + + + + + Prevent possible failure when vacuuming multixact IDs in an + installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, + Álvaro Herrera) + + + + The usual symptom of this bug is errors + like MultiXactId NNN has not been created + yet -- apparent wraparound. + + + + + + When a manual ANALYZE specifies a column list, don't + reset the table's changes_since_analyze counter + (Tom Lane) + + + + If we're only analyzing some columns, we should not prevent routine + auto-analyze from happening for the other columns. + + + + + + Fix ANALYZE's overestimation of n_distinct + for a unique or nearly-unique column with many null entries (Tom + Lane) + + + + The nulls could get counted as though they were themselves distinct + values, leading to serious planner misestimates in some types of + queries. + + + + + + Prevent autovacuum from starting multiple workers for the same shared + catalog (Álvaro Herrera) + + + + Normally this isn't much of a problem because the vacuum doesn't take + long anyway; but in the case of a severely bloated catalog, it could + result in all but one worker uselessly waiting instead of doing + useful work on other tables. + + + + + + Avoid duplicate buffer lock release when abandoning a b-tree index + page deletion attempt (Tom Lane) + + + + This mistake prevented VACUUM from completing in some + cases involving corrupt b-tree indexes. + + + + + + Prevent infinite loop in GiST index build for geometric columns + containing NaN component values (Tom Lane) + + + + + + Fix contrib/btree_gin to handle the smallest + possible bigint value correctly (Peter Eisentraut) + + + + + + Teach libpq to correctly decode server version from future servers + (Peter Eisentraut) + + + + It's planned to switch to two-part instead of three-part server + version numbers for releases after 9.6. Make sure + that PQserverVersion() returns the correct value for + such cases. + + + + + + Fix ecpg's code for unsigned long long + array elements (Michael Meskes) + + + + + + In pg_dump with both + + + + + Improve handling of SIGTERM/control-C in + parallel pg_dump and pg_restore (Tom + Lane) + + + + Make sure that the worker processes will exit promptly, and also arrange + to send query-cancel requests to the connected backends, in case they + are doing something long-running such as a CREATE INDEX. + + + + + + Fix error reporting in parallel pg_dump + and pg_restore (Tom Lane) + + + + Previously, errors reported by pg_dump + or pg_restore worker processes might never make it to + the user's console, because the messages went through the master + process, and there were various deadlock scenarios that would prevent + the master process from passing on the messages. Instead, just print + everything to stderr. In some cases this will result in + duplicate messages (for instance, if all the workers report a server + shutdown), but that seems better than no message. + + + + + + Ensure that parallel pg_dump + or pg_restore on Windows will shut down properly + after an error (Kyotaro Horiguchi) + + + + Previously, it would report the error, but then just sit until + manually stopped by the user. + + + + + + Make pg_dump behave better when built without zlib + support (Kyotaro Horiguchi) + + + + It didn't work right for parallel dumps, and emitted some rather + pointless warnings in other cases. + + + + + + Make pg_basebackup accept -Z 0 as + specifying no compression (Fujii Masao) + + + + + + Fix makefiles' rule for building AIX shared libraries to be safe for + parallel make (Noah Misch) + + + + + + Fix TAP tests and MSVC scripts to work when build directory's path + name contains spaces (Michael Paquier, Kyotaro Horiguchi) + + + + + + Be more predictable about reporting statement timeout + versus lock timeout (Tom Lane) + + + + On heavily loaded machines, the regression tests sometimes failed due + to reporting lock timeout even though the statement timeout + should have occurred first. + + + + + + Make regression tests safe for Danish and Welsh locales (Jeff Janes, + Tom Lane) + + + + Change some test data that triggered the unusual sorting rules of + these locales. + + + + + + Update our copy of the timezone code to match + IANA's tzcode release 2016c (Tom Lane) + + + + This is needed to cope with anticipated future changes in the time + zone data files. It also fixes some corner-case bugs in coping with + unusual time zones. + + + + + + Update time zone data files to tzdata release 2016f + for DST law changes in Kemerovo and Novosibirsk, plus historical + corrections for Azerbaijan, Belarus, and Morocco. + + + + + + + + Release 9.4.8 diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml index a57bb53e5a..26f1d2847e 100644 --- a/doc/src/sgml/release-9.5.sgml +++ b/doc/src/sgml/release-9.5.sgml @@ -1,6 +1,934 @@ + + Release 9.5.4 + + + Release Date + 2016-08-11 + + + + This release contains a variety of fixes from 9.5.3. + For information about new features in the 9.5 major release, see + . + + + + Migration to Version 9.5.4 + + + A dump/restore is not required for those running 9.5.X. + + + + However, if you are upgrading from a version earlier than 9.5.2, + see . + + + + + Changes + + + + + + + Fix corner-case misbehaviors for IS NULL/IS NOT + NULL applied to nested composite values (Andrew Gierth, Tom Lane) + + + + The SQL standard specifies that IS NULL should return + TRUE for a row of all null values (thus ROW(NULL,NULL) IS + NULL yields TRUE), but this is not meant to apply recursively + (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). + The core executor got this right, but certain planner optimizations + treated the test as recursive (thus producing TRUE in both cases), + and contrib/postgres_fdw could produce remote queries + that misbehaved similarly. + + + + + + + Fix unrecognized node type error for INSERT ... ON + CONFLICT within a recursive CTE (a WITH item) (Peter + Geoghegan) + + + + + + + Fix INSERT ... ON CONFLICT to successfully match index + expressions or index predicates that are simplified during the + planner's expression preprocessing phase (Tom Lane) + + + + + + + Correctly handle violations of exclusion constraints that apply to + the target table of an INSERT ... ON CONFLICT command, + but are not one of the selected arbiter indexes (Tom Lane) + + + + Such a case should raise a normal constraint-violation error, but it + got into an infinite loop instead. + + + + + + + Fix INSERT ... ON CONFLICT to not fail if the target + table has a unique index on OID (Tom Lane) + + + + + + + Make the inet and cidr data types properly reject + IPv6 addresses with too many colon-separated fields (Tom Lane) + + + + + + + Prevent crash in close_ps() + (the point ## lseg operator) + for NaN input coordinates (Tom Lane) + + + + Make it return NULL instead of crashing. + + + + + + + Avoid possible crash in pg_get_expr() when inconsistent + values are passed to it (Michael Paquier, Thomas Munro) + + + + + + + Do not run the planner on the query contained in CREATE + MATERIALIZED VIEW or CREATE TABLE AS + when WITH NO DATA is specified (Michael Paquier, + Tom Lane) + + + + This avoids some unnecessary failure conditions, for example if a + stable function invoked by the materialized view depends on a table + that doesn't exist yet. + + + + + + + Avoid unsafe intermediate state during expensive paths + through heap_update() (Masahiko Sawada, Andres Freund) + + + + Previously, these cases locked the target tuple (by setting its XMAX) + but did not WAL-log that action, thus risking data integrity problems + if the page were spilled to disk and then a database crash occurred + before the tuple update could be completed. + + + + + + + Fix hint bit update during WAL replay of row locking operations + (Andres Freund) + + + + The only known consequence of this problem is that row locks held by + a prepared, but uncommitted, transaction might fail to be enforced + after a crash and restart. + + + + + + + Avoid unnecessary could not serialize access errors when + acquiring FOR KEY SHARE row locks in serializable mode + (Álvaro Herrera) + + + + + + + Make sure expanded datums returned by a plan node are + read-only (Tom Lane) + + + + This avoids failures in some cases where the result of a lower plan + node is referenced in multiple places in upper nodes. So far as + core PostgreSQL is concerned, only array values + returned by PL/pgSQL functions are at risk; but extensions might + use expanded datums for other things. + + + + + + + Avoid crash in postgres -C when the specified variable + has a null string value (Michael Paquier) + + + + + + + Prevent unintended waits for the receiver in WAL sender processes + (Kyotaro Horiguchi) + + + + + + + Fix possible loss of large subtransactions in logical decoding + (Petru-Florin Mihancea) + + + + + + + Fix failure of logical decoding when a subtransaction contains no + actual changes (Marko Tiikkaja, Andrew Gierth) + + + + + + + Ensure that backends see up-to-date statistics for shared catalogs + (Tom Lane) + + + + The statistics collector failed to update the statistics file for + shared catalogs after a request from a regular backend. This problem + was partially masked because the autovacuum launcher regularly makes + requests that did cause such updates; however, it became obvious with + autovacuum disabled. + + + + + + + Avoid redundant writes of the statistics files when multiple + backends request updates close together (Tom Lane, Tomas Vondra) + + + + + + + Avoid consuming a transaction ID during VACUUM + (Alexander Korotkov) + + + + Some cases in VACUUM unnecessarily caused an XID to be + assigned to the current transaction. Normally this is negligible, + but if one is up against the XID wraparound limit, consuming more + XIDs during anti-wraparound vacuums is a very bad thing. + + + + + + + Prevent possible failure when vacuuming multixact IDs in an + installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, + Álvaro Herrera) + + + + The usual symptom of this bug is errors + like MultiXactId NNN has not been created + yet -- apparent wraparound. + + + + + + + When a manual ANALYZE specifies a column list, don't + reset the table's changes_since_analyze counter + (Tom Lane) + + + + If we're only analyzing some columns, we should not prevent routine + auto-analyze from happening for the other columns. + + + + + + + Fix ANALYZE's overestimation of n_distinct + for a unique or nearly-unique column with many null entries (Tom + Lane) + + + + The nulls could get counted as though they were themselves distinct + values, leading to serious planner misestimates in some types of + queries. + + + + + + + Prevent autovacuum from starting multiple workers for the same shared + catalog (Álvaro Herrera) + + + + Normally this isn't much of a problem because the vacuum doesn't take + long anyway; but in the case of a severely bloated catalog, it could + result in all but one worker uselessly waiting instead of doing + useful work on other tables. + + + + + + + Fix bug in b-tree mark/restore processing (Kevin Grittner) + + + + This error could lead to incorrect join results or assertion failures + in a merge join whose inner source node is a b-tree indexscan. + + + + + + + Avoid duplicate buffer lock release when abandoning a b-tree index + page deletion attempt (Tom Lane) + + + + This mistake prevented VACUUM from completing in some + cases involving corrupt b-tree indexes. + + + + + + + Fix building of large (bigger than shared_buffers) + hash indexes (Tom Lane) + + + + The code path used for large indexes contained a bug causing + incorrect hash values to be inserted into the index, so that + subsequent index searches always failed, except for tuples inserted + into the index after the initial build. + + + + + + + Prevent infinite loop in GiST index build for geometric columns + containing NaN component values (Tom Lane) + + + + + + + Fix possible crash during a nearest-neighbor (ORDER BY + distance) indexscan on a contrib/btree_gist index on + an interval column (Peter Geoghegan) + + + + + + + Fix PANIC: failed to add BRIN tuple error when attempting + to update a BRIN index entry (Álvaro Herrera) + + + + + + + Fix possible crash during background worker shutdown (Dmitry Ivanov) + + + + + + + Fix PL/pgSQL's handling of the INTO clause + within IMPORT FOREIGN SCHEMA commands (Tom Lane) + + + + + + + Fix contrib/btree_gin to handle the smallest + possible bigint value correctly (Peter Eisentraut) + + + + + + + Teach libpq to correctly decode server version from future servers + (Peter Eisentraut) + + + + It's planned to switch to two-part instead of three-part server + version numbers for releases after 9.6. Make sure + that PQserverVersion() returns the correct value for + such cases. + + + + + + + Fix ecpg's code for unsigned long long + array elements (Michael Meskes) + + + + + + + In pg_dump with both + + + + + + Improve handling of SIGTERM/control-C in + parallel pg_dump and pg_restore (Tom + Lane) + + + + Make sure that the worker processes will exit promptly, and also arrange + to send query-cancel requests to the connected backends, in case they + are doing something long-running such as a CREATE INDEX. + + + + + + + Fix error reporting in parallel pg_dump + and pg_restore (Tom Lane) + + + + Previously, errors reported by pg_dump + or pg_restore worker processes might never make it to + the user's console, because the messages went through the master + process, and there were various deadlock scenarios that would prevent + the master process from passing on the messages. Instead, just print + everything to stderr. In some cases this will result in + duplicate messages (for instance, if all the workers report a server + shutdown), but that seems better than no message. + + + + + + + Ensure that parallel pg_dump + or pg_restore on Windows will shut down properly + after an error (Kyotaro Horiguchi) + + + + Previously, it would report the error, but then just sit until + manually stopped by the user. + + + + + + + Make parallel pg_dump fail cleanly when run against a + standby server (Magnus Hagander) + + + + This usage is not supported + unless + + + + + + Make pg_dump behave better when built without zlib + support (Kyotaro Horiguchi) + + + + It didn't work right for parallel dumps, and emitted some rather + pointless warnings in other cases. + + + + + + + Make pg_basebackup accept -Z 0 as + specifying no compression (Fujii Masao) + + + + + + + Fix makefiles' rule for building AIX shared libraries to be safe for + parallel make (Noah Misch) + + + + + + + Fix TAP tests and MSVC scripts to work when build directory's path + name contains spaces (Michael Paquier, Kyotaro Horiguchi) + + + + + + + Be more predictable about reporting statement timeout + versus lock timeout (Tom Lane) + + + + On heavily loaded machines, the regression tests sometimes failed due + to reporting lock timeout even though the statement timeout + should have occurred first. + + + + + + + Make regression tests safe for Danish and Welsh locales (Jeff Janes, + Tom Lane) + + + + Change some test data that triggered the unusual sorting rules of + these locales. + + + + + + + Update our copy of the timezone code to match + IANA's tzcode release 2016c (Tom Lane) + + + + This is needed to cope with anticipated future changes in the time + zone data files. It also fixes some corner-case bugs in coping with + unusual time zones. + + + + + + + Update time zone data files to tzdata release 2016f + for DST law changes in Kemerovo and Novosibirsk, plus historical + corrections for Azerbaijan, Belarus, and Morocco. + + + + + + + + Release 9.5.3