From 9cb631d98443b64a6ac8f5d14ffb95a45a9adad4 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 2 Dec 2013 15:53:58 -0500 Subject: [PATCH] Update release notes for 9.3.2, 9.2.6, 9.1.11, 9.0.15, 8.4.19. --- doc/src/sgml/release-8.4.sgml | 242 ++++++++++++++-- doc/src/sgml/release-9.0.sgml | 291 +++++++++++++++++-- doc/src/sgml/release-9.1.sgml | 312 +++++++++++++++++++-- doc/src/sgml/release-9.2.sgml | 403 +++++++++++++++++++++++++-- doc/src/sgml/release-9.3.sgml | 506 +++++++++++++++++++++++++++++++++- 5 files changed, 1659 insertions(+), 95 deletions(-) diff --git a/doc/src/sgml/release-8.4.sgml b/doc/src/sgml/release-8.4.sgml index 45972c2395..5762e01f62 100644 --- a/doc/src/sgml/release-8.4.sgml +++ b/doc/src/sgml/release-8.4.sgml @@ -1,6 +1,207 @@ + + Release 8.4.19 + + + Release Date + 2013-12-05 + + + + This release contains a variety of fixes from 8.4.18. + For information about new features in the 8.4 major release, see + . + + + + Migration to Version 8.4.19 + + + A dump/restore is not required for those running 8.4.X. + + + + However, this release corrects a potential data corruption + issue. See the first changelog entry below to find out whether + your installation has been affected and what steps you can take if so. + + + + Also, if you are upgrading from a version earlier than 8.4.17, + see the release notes for 8.4.17. + + + + + + Changes + + + + + + Fix VACUUM's tests to see whether it can + update relfrozenxid (Andres Freund) + + + + In some cases VACUUM (either manual or autovacuum) could + incorrectly advance a table's relfrozenxid value, + allowing tuples to escape freezing, causing those rows to become + invisible once 2^31 transactions have elapsed. The probability of + data loss is fairly low since multiple incorrect advancements would + need to happen before actual loss occurs, but it's not zero. Users + upgrading from release 8.4.8 or earlier are not affected, but all later + versions contain the bug. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix any latent corruption but will not be able + to fix all pre-existing data errors. However, an installation can be + presumed safe after performing this vacuuming if it has executed fewer + than 2^31 update transactions in its lifetime (check this with + SELECT txid_current() < 2^31). + + + + + + Fix race condition in GIN index posting tree page deletion (Heikki + Linnakangas) + + + + This could lead to transient wrong answers or query failures. + + + + + + Avoid flattening a subquery whose SELECT list contains a + volatile function wrapped inside a sub-SELECT (Tom Lane) + + + + This avoids unexpected results due to extra evaluations of the + volatile function. + + + + + + Fix planner's processing of non-simple-variable subquery outputs + nested within outer joins (Tom Lane) + + + + This error could lead to incorrect plans for queries involving + multiple levels of subqueries within JOIN syntax. + + + + + + Fix premature deletion of temporary files (Andres Freund) + + + + + + Fix possible read past end of memory in rule printing (Peter Eisentraut) + + + + + + Fix array slicing of int2vector and oidvector values + (Tom Lane) + + + + Expressions of this kind are now implicitly promoted to + regular int2 or oid arrays. + + + + + + Fix incorrect behaviors when using a SQL-standard, simple GMT offset + timezone (Tom Lane) + + + + In some cases, the system would use the simple GMT offset value when + it should have used the regular timezone setting that had prevailed + before the simple offset was selected. This change also causes + the timeofday function to honor the simple GMT offset + zone. + + + + + + Prevent possible misbehavior when logging translations of Windows + error codes (Tom Lane) + + + + + + Properly quote generated command lines in pg_ctl + (Naoya Anzai and Tom Lane) + + + + This fix applies only to Windows. + + + + + + Fix pg_dumpall to work when a source database + sets default_transaction_read_only + via ALTER DATABASE SET (Kevin Grittner) + + + + Previously, the generated script would fail during restore. + + + + + + Fix ecpg's processing of lists of variables + declared varchar (Zoltán Böszörményi) + + + + + + Make contrib/lo defend against incorrect trigger definitions + (Marc Cousin) + + + + + + Update time zone data files to tzdata release 2013h + for DST law changes in Argentina, Brazil, Jordan, Libya, + Liechtenstein, Morocco, and Palestine. Also, new timezone + abbreviations WIB, WIT, WITA for Indonesia. + + + + + + + + Release 8.4.18 @@ -23,8 +224,8 @@ - Also, if you are upgrading from a version earlier than 8.4.10, - see the release notes for 8.4.10. + However, if you are upgrading from a version earlier than 8.4.17, + see the release notes for 8.4.17. @@ -36,12 +237,13 @@ - Prevent downcasing of non-ASCII non-double-quoted identifiers in - multi-byte encodings (Andrew Dunstan) + Prevent corruption of multi-byte characters when attempting to + case-fold identifiers (Andrew Dunstan) - The previous behavior was wrong and confusing. + PostgreSQL case-folds non-ASCII characters only + when using a single-byte server encoding. @@ -61,7 +263,7 @@ - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost) @@ -85,21 +287,24 @@ - Previously such push downs could generate errors. + Subqueries of a UNION or INTERSECT that + contain set-returning functions or volatile functions in their + SELECT lists could be improperly optimized, leading to + run-time errors or incorrect query results. - Fix rare GROUP BY query error caused by improperly - processed data type modifiers (Tom Lane) + Fix rare case of failed to locate grouping columns + planner failure (Tom Lane) - Allow view dump code to better handle dropped columns on base tables - (Tom Lane) + Improve view dumping code's handling of dropped columns in referenced + tables (Tom Lane) @@ -164,12 +369,16 @@ - Allow various spellings of infinity on all platforms (Tom Lane) + Ensure that floating-point data input accepts standard spellings + of infinity on all platforms (Tom Lane) - Supported infinity values are "inf", "+inf", "-inf", "infinity", - "+infinity", and "-infinity". + The C99 standard says that allowable spellings are inf, + +inf, -inf, infinity, + +infinity, and -infinity. Make sure we + recognize these even if the platform's strtod function + doesn't. @@ -183,9 +392,8 @@ Update time zone data files to tzdata release 2013d - for DST law changes in DST law changes in Israel, Morocco, Palestine, - Paraguay. Also, historical zone data corrections for Macquarie Island - (Tom Lane) + for DST law changes in Israel, Morocco, Palestine, and Paraguay. + Also, historical zone data corrections for Macquarie Island. diff --git a/doc/src/sgml/release-9.0.sgml b/doc/src/sgml/release-9.0.sgml index fdd6baafb5..6dc1f6976d 100644 --- a/doc/src/sgml/release-9.0.sgml +++ b/doc/src/sgml/release-9.0.sgml @@ -1,6 +1,244 @@ + + Release 9.0.15 + + + Release Date + 2013-12-05 + + + + This release contains a variety of fixes from 9.0.14. + For information about new features in the 9.0 major release, see + . + + + + Migration to Version 9.0.15 + + + A dump/restore is not required for those running 9.0.X. + + + + However, this release corrects a number of potential data corruption + issues. See the first two changelog entries below to find out whether + your installation has been affected and what steps you can take if so. + + + + Also, if you are upgrading from a version earlier than 9.0.13, + see the release notes for 9.0.13. + + + + + + Changes + + + + + + Fix VACUUM's tests to see whether it can + update relfrozenxid (Andres Freund) + + + + In some cases VACUUM (either manual or autovacuum) could + incorrectly advance a table's relfrozenxid value, + allowing tuples to escape freezing, causing those rows to become + invisible once 2^31 transactions have elapsed. The probability of + data loss is fairly low since multiple incorrect advancements would + need to happen before actual loss occurs, but it's not zero. Users + upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but + all later versions contain the bug. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix any latent corruption but will not be able + to fix all pre-existing data errors. However, an installation can be + presumed safe after performing this vacuuming if it has executed fewer + than 2^31 update transactions in its lifetime (check this with + SELECT txid_current() < 2^31). + + + + + + Fix initialization of pg_clog and pg_subtrans + during hot standby startup (Andres Freund, Heikki Linnakangas) + + + + This bug can cause data loss on standby servers at the moment they + start to accept hot-standby queries, by marking committed transactions + as uncommitted. The likelihood of such corruption is small unless, at + the time of standby startup, the primary server has executed many + updating transactions since its last checkpoint. Symptoms include + missing rows, rows that should have been deleted being still visible, + and obsolete versions of updated rows being still visible alongside + their newer versions. + + + + This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. + Standby servers that have only been running earlier releases are not + at risk. It's recommended that standby servers that have ever run any + of the buggy releases be re-cloned from the primary (e.g., with a new + base backup) after upgrading. + + + + + + Truncate pg_multixact contents during WAL replay + (Andres Freund) + + + + This avoids ever-increasing disk space consumption in standby servers. + + + + + + Fix race condition in GIN index posting tree page deletion (Heikki + Linnakangas) + + + + This could lead to transient wrong answers or query failures. + + + + + + Avoid flattening a subquery whose SELECT list contains a + volatile function wrapped inside a sub-SELECT (Tom Lane) + + + + This avoids unexpected results due to extra evaluations of the + volatile function. + + + + + + Fix planner's processing of non-simple-variable subquery outputs + nested within outer joins (Tom Lane) + + + + This error could lead to incorrect plans for queries involving + multiple levels of subqueries within JOIN syntax. + + + + + + Fix premature deletion of temporary files (Andres Freund) + + + + + + Fix possible read past end of memory in rule printing (Peter Eisentraut) + + + + + + Fix array slicing of int2vector and oidvector values + (Tom Lane) + + + + Expressions of this kind are now implicitly promoted to + regular int2 or oid arrays. + + + + + + Fix incorrect behaviors when using a SQL-standard, simple GMT offset + timezone (Tom Lane) + + + + In some cases, the system would use the simple GMT offset value when + it should have used the regular timezone setting that had prevailed + before the simple offset was selected. This change also causes + the timeofday function to honor the simple GMT offset + zone. + + + + + + Prevent possible misbehavior when logging translations of Windows + error codes (Tom Lane) + + + + + + Properly quote generated command lines in pg_ctl + (Naoya Anzai and Tom Lane) + + + + This fix applies only to Windows. + + + + + + Fix pg_dumpall to work when a source database + sets default_transaction_read_only + via ALTER DATABASE SET (Kevin Grittner) + + + + Previously, the generated script would fail during restore. + + + + + + Fix ecpg's processing of lists of variables + declared varchar (Zoltán Böszörményi) + + + + + + Make contrib/lo defend against incorrect trigger definitions + (Marc Cousin) + + + + + + Update time zone data files to tzdata release 2013h + for DST law changes in Argentina, Brazil, Jordan, Libya, + Liechtenstein, Morocco, and Palestine. Also, new timezone + abbreviations WIB, WIT, WITA for Indonesia. + + + + + + + + Release 9.0.14 @@ -23,8 +261,8 @@ - Also, if you are upgrading from a version earlier than 9.0.6, - see the release notes for 9.0.6. + However, if you are upgrading from a version earlier than 9.0.13, + see the release notes for 9.0.13. @@ -36,12 +274,13 @@ - Prevent downcasing of non-ASCII non-double-quoted identifiers in - multi-byte encodings (Andrew Dunstan) + Prevent corruption of multi-byte characters when attempting to + case-fold identifiers (Andrew Dunstan) - The previous behavior was wrong and confusing. + PostgreSQL case-folds non-ASCII characters only + when using a single-byte server encoding. @@ -68,13 +307,13 @@ - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost) - Fix possible SSL network stack corruption in threaded libpq applications + Fix possible SSL state corruption in threaded libpq applications (Nick Phillips, Stephen Frost) @@ -99,21 +338,24 @@ - Previously such push downs could generate errors. + Subqueries of a UNION or INTERSECT that + contain set-returning functions or volatile functions in their + SELECT lists could be improperly optimized, leading to + run-time errors or incorrect query results. - Fix rare GROUP BY query error caused by improperly - processed data type modifiers (Tom Lane) + Fix rare case of failed to locate grouping columns + planner failure (Tom Lane) - Allow view dump code to better handle dropped columns on base tables - (Tom Lane) + Improve view dumping code's handling of dropped columns in referenced + tables (Tom Lane) @@ -193,8 +435,9 @@ Specifically, lessen keyword restrictions for role names, language names, EXPLAIN and COPY options, and - SET values. This allows COPY ... (FORMAT - BINARY) previously BINARY required single-quotes. + SET values. This allows COPY ... (FORMAT + BINARY) to work as expected; previously BINARY needed + to be quoted. @@ -214,8 +457,9 @@ - Improve analyze statistics generation after a cancelled file truncate - request (Kevin Grittner) + Ensure that VACUUM ANALYZE still runs the ANALYZE phase + if its attempt to truncate the file is cancelled due to lock conflicts + (Kevin Grittner) @@ -228,12 +472,16 @@ - Allow various spellings of infinity on all platforms (Tom Lane) + Ensure that floating-point data input accepts standard spellings + of infinity on all platforms (Tom Lane) - Supported infinity values are "inf", "+inf", "-inf", "infinity", - "+infinity", and "-infinity". + The C99 standard says that allowable spellings are inf, + +inf, -inf, infinity, + +infinity, and -infinity. Make sure we + recognize these even if the platform's strtod function + doesn't. @@ -247,9 +495,8 @@ Update time zone data files to tzdata release 2013d - for DST law changes in DST law changes in Israel, Morocco, Palestine, - Paraguay. Also, historical zone data corrections for Macquarie Island - (Tom Lane) + for DST law changes in Israel, Morocco, Palestine, and Paraguay. + Also, historical zone data corrections for Macquarie Island. diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml index 20eff0b292..b3f5c52272 100644 --- a/doc/src/sgml/release-9.1.sgml +++ b/doc/src/sgml/release-9.1.sgml @@ -1,6 +1,263 @@ + + Release 9.1.11 + + + Release Date + 2013-12-05 + + + + This release contains a variety of fixes from 9.1.10. + For information about new features in the 9.1 major release, see + . + + + + Migration to Version 9.1.11 + + + A dump/restore is not required for those running 9.1.X. + + + + However, this release corrects a number of potential data corruption + issues. See the first two changelog entries below to find out whether + your installation has been affected and what steps you can take if so. + + + + Also, if you are upgrading from a version earlier than 9.1.9, + see the release notes for 9.1.9. + + + + + + Changes + + + + + + Fix VACUUM's tests to see whether it can + update relfrozenxid (Andres Freund) + + + + In some cases VACUUM (either manual or autovacuum) could + incorrectly advance a table's relfrozenxid value, + allowing tuples to escape freezing, causing those rows to become + invisible once 2^31 transactions have elapsed. The probability of + data loss is fairly low since multiple incorrect advancements would + need to happen before actual loss occurs, but it's not zero. Users + upgrading from releases 9.0.4 or 8.4.8 or earlier are not affected, but + all later versions contain the bug. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix any latent corruption but will not be able + to fix all pre-existing data errors. However, an installation can be + presumed safe after performing this vacuuming if it has executed fewer + than 2^31 update transactions in its lifetime (check this with + SELECT txid_current() < 2^31). + + + + + + Fix initialization of pg_clog and pg_subtrans + during hot standby startup (Andres Freund, Heikki Linnakangas) + + + + This bug can cause data loss on standby servers at the moment they + start to accept hot-standby queries, by marking committed transactions + as uncommitted. The likelihood of such corruption is small unless, at + the time of standby startup, the primary server has executed many + updating transactions since its last checkpoint. Symptoms include + missing rows, rows that should have been deleted being still visible, + and obsolete versions of updated rows being still visible alongside + their newer versions. + + + + This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. + Standby servers that have only been running earlier releases are not + at risk. It's recommended that standby servers that have ever run any + of the buggy releases be re-cloned from the primary (e.g., with a new + base backup) after upgrading. + + + + + + Truncate pg_multixact contents during WAL replay + (Andres Freund) + + + + This avoids ever-increasing disk space consumption in standby servers. + + + + + + Fix race condition in GIN index posting tree page deletion (Heikki + Linnakangas) + + + + This could lead to transient wrong answers or query failures. + + + + + + Avoid flattening a subquery whose SELECT list contains a + volatile function wrapped inside a sub-SELECT (Tom Lane) + + + + This avoids unexpected results due to extra evaluations of the + volatile function. + + + + + + Fix planner's processing of non-simple-variable subquery outputs + nested within outer joins (Tom Lane) + + + + This error could lead to incorrect plans for queries involving + multiple levels of subqueries within JOIN syntax. + + + + + + Fix incorrect generation of optimized MIN()/MAX() plans for + inheritance trees (Tom Lane) + + + + The planner could fail in cases where the MIN()/MAX() argument was an + expression rather than a simple variable. + + + + + + Fix premature deletion of temporary files (Andres Freund) + + + + + + Fix possible read past end of memory in rule printing (Peter Eisentraut) + + + + + + Fix array slicing of int2vector and oidvector values + (Tom Lane) + + + + Expressions of this kind are now implicitly promoted to + regular int2 or oid arrays. + + + + + + Fix incorrect behaviors when using a SQL-standard, simple GMT offset + timezone (Tom Lane) + + + + In some cases, the system would use the simple GMT offset value when + it should have used the regular timezone setting that had prevailed + before the simple offset was selected. This change also causes + the timeofday function to honor the simple GMT offset + zone. + + + + + + Prevent possible misbehavior when logging translations of Windows + error codes (Tom Lane) + + + + + + Properly quote generated command lines in pg_ctl + (Naoya Anzai and Tom Lane) + + + + This fix applies only to Windows. + + + + + + Fix pg_dumpall to work when a source database + sets default_transaction_read_only + via ALTER DATABASE SET (Kevin Grittner) + + + + Previously, the generated script would fail during restore. + + + + + + Make ecpg search for quoted cursor names + case-sensitively (Zoltán Böszörményi) + + + + + + Fix ecpg's processing of lists of variables + declared varchar (Zoltán Böszörményi) + + + + + + Make contrib/lo defend against incorrect trigger definitions + (Marc Cousin) + + + + + + Update time zone data files to tzdata release 2013h + for DST law changes in Argentina, Brazil, Jordan, Libya, + Liechtenstein, Morocco, and Palestine. Also, new timezone + abbreviations WIB, WIT, WITA for Indonesia. + + + + + + + + Release 9.1.10 @@ -23,8 +280,8 @@ - Also, if you are upgrading from a version earlier than 9.1.6, - see the release notes for 9.1.6. + However, if you are upgrading from a version earlier than 9.1.9, + see the release notes for 9.1.9. @@ -36,12 +293,13 @@ - Prevent downcasing of non-ASCII non-double-quoted identifiers in - multi-byte encodings (Andrew Dunstan) + Prevent corruption of multi-byte characters when attempting to + case-fold identifiers (Andrew Dunstan) - The previous behavior was wrong and confusing. + PostgreSQL case-folds non-ASCII characters only + when using a single-byte server encoding. @@ -74,13 +332,13 @@ - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost) - Fix possible SSL network stack corruption in threaded libpq applications + Fix possible SSL state corruption in threaded libpq applications (Nick Phillips, Stephen Frost) @@ -105,14 +363,17 @@ - Previously such push downs could generate errors. + Subqueries of a UNION or INTERSECT that + contain set-returning functions or volatile functions in their + SELECT lists could be improperly optimized, leading to + run-time errors or incorrect query results. - Fix rare GROUP BY query error caused by improperly - processed data type modifiers (Tom Lane) + Fix rare case of failed to locate grouping columns + planner failure (Tom Lane) @@ -142,8 +403,8 @@ - Allow view dump code to better handle dropped columns on base tables - (Tom Lane) + Improve view dumping code's handling of dropped columns in referenced + tables (Tom Lane) @@ -254,8 +515,9 @@ Specifically, lessen keyword restrictions for role names, language names, EXPLAIN and COPY options, and - SET values. This allows COPY ... (FORMAT - BINARY) previously BINARY required single-quotes. + SET values. This allows COPY ... (FORMAT + BINARY) to work as expected; previously BINARY needed + to be quoted. @@ -268,7 +530,7 @@ - Have pg_upgrade use pg_dump + Make pg_upgrade use pg_dump --quote-all-identifiers to avoid problems with keyword changes between releases (Tom Lane) @@ -283,8 +545,9 @@ - Improve analyze statistics generation after a cancelled file truncate - request (Kevin Grittner) + Ensure that VACUUM ANALYZE still runs the ANALYZE phase + if its attempt to truncate the file is cancelled due to lock conflicts + (Kevin Grittner) @@ -297,12 +560,16 @@ - Allow various spellings of infinity on all platforms (Tom Lane) + Ensure that floating-point data input accepts standard spellings + of infinity on all platforms (Tom Lane) - Supported infinity values are "inf", "+inf", "-inf", "infinity", - "+infinity", and "-infinity". + The C99 standard says that allowable spellings are inf, + +inf, -inf, infinity, + +infinity, and -infinity. Make sure we + recognize these even if the platform's strtod function + doesn't. @@ -316,9 +583,8 @@ Update time zone data files to tzdata release 2013d - for DST law changes in DST law changes in Israel, Morocco, Palestine, - Paraguay. Also, historical zone data corrections for Macquarie Island - (Tom Lane) + for DST law changes in Israel, Morocco, Palestine, and Paraguay. + Also, historical zone data corrections for Macquarie Island. diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml index 07968f0d38..b373e33f1e 100644 --- a/doc/src/sgml/release-9.2.sgml +++ b/doc/src/sgml/release-9.2.sgml @@ -1,6 +1,343 @@ + + Release 9.2.6 + + + Release Date + 2013-12-05 + + + + This release contains a variety of fixes from 9.2.5. + For information about new features in the 9.2 major release, see + . + + + + Migration to Version 9.2.6 + + + A dump/restore is not required for those running 9.2.X. + + + + However, this release corrects a number of potential data corruption + issues. See the first two changelog entries below to find out whether + your installation has been affected and what steps you can take if so. + + + + Also, if you are upgrading from a version earlier than 9.2.4, + see the release notes for 9.2.4. + + + + + + Changes + + + + + + Fix VACUUM's tests to see whether it can + update relfrozenxid (Andres Freund) + + + + In some cases VACUUM (either manual or autovacuum) could + incorrectly advance a table's relfrozenxid value, + allowing tuples to escape freezing, causing those rows to become + invisible once 2^31 transactions have elapsed. The probability of + data loss is fairly low since multiple incorrect advancements would + need to happen before actual loss occurs, but it's not zero. In 9.2.0 + and later, the probability of loss is higher, and it's also possible + to get could not access status of transaction errors as a + consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8 + or earlier are not affected, but all later versions contain the bug. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix any latent corruption but will not be able + to fix all pre-existing data errors. However, an installation can be + presumed safe after performing this vacuuming if it has executed fewer + than 2^31 update transactions in its lifetime (check this with + SELECT txid_current() < 2^31). + + + + + + Fix initialization of pg_clog and pg_subtrans + during hot standby startup (Andres Freund, Heikki Linnakangas) + + + + This bug can cause data loss on standby servers at the moment they + start to accept hot-standby queries, by marking committed transactions + as uncommitted. The likelihood of such corruption is small unless, at + the time of standby startup, the primary server has executed many + updating transactions since its last checkpoint. Symptoms include + missing rows, rows that should have been deleted being still visible, + and obsolete versions of updated rows being still visible alongside + their newer versions. + + + + This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. + Standby servers that have only been running earlier releases are not + at risk. It's recommended that standby servers that have ever run any + of the buggy releases be re-cloned from the primary (e.g., with a new + base backup) after upgrading. + + + + + + Fix dangling-pointer problem in fast-path locking (Tom Lane) + + + + This could lead to corruption of the lock data structures in shared + memory, causing lock already held and other odd errors. + + + + + + Truncate pg_multixact contents during WAL replay + (Andres Freund) + + + + This avoids ever-increasing disk space consumption in standby servers. + + + + + + Ensure an anti-wraparound VACUUM counts a page as scanned + when it's only verified that no tuples need freezing (Sergey + Burladyan, Jeff Janes) + + + + This bug could result in failing to + advance relfrozenxid, so that the table would still be + thought to need another anti-wraparound vacuum. In the worst case the + database might even shut down to prevent wraparound. + + + + + + Fix race condition in GIN index posting tree page deletion (Heikki + Linnakangas) + + + + This could lead to transient wrong answers or query failures. + + + + + + Fix unexpected spgdoinsert() failure error during SP-GiST + index creation (Teodor Sigaev) + + + + + + Avoid flattening a subquery whose SELECT list contains a + volatile function wrapped inside a sub-SELECT (Tom Lane) + + + + This avoids unexpected results due to extra evaluations of the + volatile function. + + + + + + Fix planner's processing of non-simple-variable subquery outputs + nested within outer joins (Tom Lane) + + + + This error could lead to incorrect plans for queries involving + multiple levels of subqueries within JOIN syntax. + + + + + + Fix incorrect planning in cases where the same non-strict expression + appears in multiple WHERE and outer JOIN + equality clauses (Tom Lane) + + + + + + Fix planner crash with whole-row reference to a subquery (Tom Lane) + + + + + + Fix incorrect generation of optimized MIN()/MAX() plans for + inheritance trees (Tom Lane) + + + + The planner could fail in cases where the MIN()/MAX() argument was an + expression rather than a simple variable. + + + + + + Fix premature deletion of temporary files (Andres Freund) + + + + + + Prevent intra-transaction memory leak when printing range values + (Tom Lane) + + + + This fix actually cures transient memory leaks in any datatype output + function, but range types are the only ones known to have had a + significant problem. + + + + + + Prevent incorrect display of dropped columns in NOT NULL and CHECK + constraint violation messages (Michael Paquier and Tom Lane) + + + + + + Allow default arguments and named-argument notation for window + functions (Tom Lane) + + + + Previously, these cases were likely to crash. + + + + + + Fix possible read past end of memory in rule printing (Peter Eisentraut) + + + + + + Fix array slicing of int2vector and oidvector values + (Tom Lane) + + + + Expressions of this kind are now implicitly promoted to + regular int2 or oid arrays. + + + + + + Fix incorrect behaviors when using a SQL-standard, simple GMT offset + timezone (Tom Lane) + + + + In some cases, the system would use the simple GMT offset value when + it should have used the regular timezone setting that had prevailed + before the simple offset was selected. This change also causes + the timeofday function to honor the simple GMT offset + zone. + + + + + + Prevent possible misbehavior when logging translations of Windows + error codes (Tom Lane) + + + + + + Properly quote generated command lines in pg_ctl + (Naoya Anzai and Tom Lane) + + + + This fix applies only to Windows. + + + + + + Fix pg_dumpall to work when a source database + sets default_transaction_read_only + via ALTER DATABASE SET (Kevin Grittner) + + + + Previously, the generated script would fail during restore. + + + + + + Make ecpg search for quoted cursor names + case-sensitively (Zoltán Böszörményi) + + + + + + Fix ecpg's processing of lists of variables + declared varchar (Zoltán Böszörményi) + + + + + + Make contrib/lo defend against incorrect trigger definitions + (Marc Cousin) + + + + + + Update time zone data files to tzdata release 2013h + for DST law changes in Argentina, Brazil, Jordan, Libya, + Liechtenstein, Morocco, and Palestine. Also, new timezone + abbreviations WIB, WIT, WITA for Indonesia. + + + + + + + + Release 9.2.5 @@ -23,8 +360,8 @@ - Also, if you are upgrading from a version earlier than 9.2.2, - see the release notes for 9.2.2. + However, if you are upgrading from a version earlier than 9.2.4, + see the release notes for 9.2.4. @@ -36,18 +373,20 @@ - Prevent downcasing of non-ASCII non-double-quoted identifiers in - multi-byte encodings (Andrew Dunstan) + Prevent corruption of multi-byte characters when attempting to + case-fold identifiers (Andrew Dunstan) - The previous behavior was wrong and confusing. + PostgreSQL case-folds non-ASCII characters only + when using a single-byte server encoding. - Fix memory leak when creating range indexes (Heikki Linnakangas) + Fix memory leak when creating B-tree indexes on range columns + (Heikki Linnakangas) @@ -80,13 +419,13 @@ - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost) - Fix possible SSL network stack corruption in threaded libpq applications + Fix possible SSL state corruption in threaded libpq applications (Nick Phillips, Stephen Frost) @@ -117,13 +456,13 @@ - Fix UNION ALL and inheritance queries to properly - recheck parameterized paths (Tom Lane) + Fix accounting for qualifier evaluation costs in UNION ALL + and inheritance queries (Tom Lane) - This fixes cases where suboptimal query plans could potentially be - chosen. + This fixes cases where suboptimal query plans could be chosen if + some WHERE clauses are expensive to calculate. @@ -134,14 +473,17 @@ - Previously such push downs could generate errors. + Subqueries of a UNION or INTERSECT that + contain set-returning functions or volatile functions in their + SELECT lists could be improperly optimized, leading to + run-time errors or incorrect query results. - Fix rare GROUP BY query error caused by improperly - processed data type modifiers (Tom Lane) + Fix rare case of failed to locate grouping columns + planner failure (Tom Lane) @@ -171,8 +513,8 @@ - Allow view dump code to better handle dropped columns on base tables - (Tom Lane) + Improve view dumping code's handling of dropped columns in referenced + tables (Tom Lane) @@ -303,8 +645,9 @@ Specifically, lessen keyword restrictions for role names, language names, EXPLAIN and COPY options, and - SET values. This allows COPY ... (FORMAT - BINARY) previously BINARY required single-quotes. + SET values. This allows COPY ... (FORMAT + BINARY) to work as expected; previously BINARY needed + to be quoted. @@ -324,7 +667,7 @@ - Have pg_upgrade use >pg_dump + Make pg_upgrade use pg_dump --quote-all-identifiers to avoid problems with keyword changes between releases (Tom Lane) @@ -339,8 +682,9 @@ - Improve analyze statistics generation after a cancelled file truncate - request (Kevin Grittner) + Ensure that VACUUM ANALYZE still runs the ANALYZE phase + if its attempt to truncate the file is cancelled due to lock conflicts + (Kevin Grittner) @@ -353,12 +697,16 @@ - Allow various spellings of infinity on all platforms (Tom Lane) + Ensure that floating-point data input accepts standard spellings + of infinity on all platforms (Tom Lane) - Supported infinity values are "inf", "+inf", "-inf", "infinity", - "+infinity", and "-infinity". + The C99 standard says that allowable spellings are inf, + +inf, -inf, infinity, + +infinity, and -infinity. Make sure we + recognize these even if the platform's strtod function + doesn't. @@ -392,9 +740,8 @@ Update time zone data files to tzdata release 2013d - for DST law changes in DST law changes in Israel, Morocco, Palestine, - Paraguay. Also, historical zone data corrections for Macquarie Island - (Tom Lane) + for DST law changes in Israel, Morocco, Palestine, and Paraguay. + Also, historical zone data corrections for Macquarie Island. diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml index 4a7cac5cee..68e8eb7fbf 100644 --- a/doc/src/sgml/release-9.3.sgml +++ b/doc/src/sgml/release-9.3.sgml @@ -1,6 +1,485 @@ + + Release 9.3.2 + + + Release Date + 2013-12-05 + + + + This release contains a variety of fixes from 9.3.1. + For information about new features in the 9.3 major release, see + . + + + + Migration to Version 9.3.2 + + + A dump/restore is not required for those running 9.3.X. + + + + However, this release corrects a number of potential data corruption + issues. See the first three changelog entries below to find out whether + your installation has been affected and what steps you can take if so. + + + + Also, if you are upgrading from a version earlier than 9.3.1, + see the release notes for 9.3.1. + + + + + + Changes + + + + + + Fix VACUUM's tests to see whether it can + update relfrozenxid (Andres Freund) + + + + In some cases VACUUM (either manual or autovacuum) could + incorrectly advance a table's relfrozenxid value, + allowing tuples to escape freezing, causing those rows to become + invisible once 2^31 transactions have elapsed. The probability of + data loss is fairly low since multiple incorrect advancements would + need to happen before actual loss occurs, but it's not zero. In 9.2.0 + and later, the probability of loss is higher, and it's also possible + to get could not access status of transaction errors as a + consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8 + or earlier are not affected, but all later versions contain the bug. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix any latent corruption but will not be able + to fix all pre-existing data errors. However, an installation can be + presumed safe after performing this vacuuming if it has executed fewer + than 2^31 update transactions in its lifetime (check this with + SELECT txid_current() < 2^31). + + + + + + Fix multiple bugs in MultiXactId freezing (Andres Freund, + Álvaro Herrera) + + + + These bugs could lead to could not access status of + transaction errors, or to duplicate or vanishing rows. + Users upgrading from releases prior to 9.3.0 are not affected. + + + + The issue can be ameliorated by, after upgrading, vacuuming all tables + in all databases while having vacuum_freeze_table_age + set to zero. This will fix latent corruption but will not be able to + fix all pre-existing data errors. + + + + As a separate issue, these bugs can also cause standby servers to get + out of sync with the primary, thus exhibiting data errors that are not + in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1 + standby servers be re-cloned from the primary (e.g., with a new base + backup) after upgrading. + + + + + + Fix initialization of pg_clog and pg_subtrans + during hot standby startup (Andres Freund, Heikki Linnakangas) + + + + This bug can cause data loss on standby servers at the moment they + start to accept hot-standby queries, by marking committed transactions + as uncommitted. The likelihood of such corruption is small unless, at + the time of standby startup, the primary server has executed many + updating transactions since its last checkpoint. Symptoms include + missing rows, rows that should have been deleted being still visible, + and obsolete versions of updated rows being still visible alongside + their newer versions. + + + + This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14. + Standby servers that have only been running earlier releases are not + at risk. It's recommended that standby servers that have ever run any + of the buggy releases be re-cloned from the primary (e.g., with a new + base backup) after upgrading. + + + + + + Fix multiple bugs in update chain traversal (Andres Freund, + Álvaro Herrera) + + + + These bugs could result in incorrect behavior, such as locking or even + updating the wrong row, in the presence of concurrent updates. + Spurious unable to fetch updated version of tuple errors + were also possible. + + + + + + Fix dangling-pointer problem in fast-path locking (Tom Lane) + + + + This could lead to corruption of the lock data structures in shared + memory, causing lock already held and other odd errors. + + + + + + Fix assorted race conditions in timeout management (Tom Lane) + + + + These errors could result in a server process becoming unresponsive + because it had blocked SIGALRM and/or SIGINT. + + + + + + Truncate pg_multixact contents during WAL replay + (Andres Freund) + + + + This avoids ever-increasing disk space consumption in standby servers. + + + + + + Ensure an anti-wraparound VACUUM counts a page as scanned + when it's only verified that no tuples need freezing (Sergey + Burladyan, Jeff Janes) + + + + This bug could result in failing to + advance relfrozenxid, so that the table would still be + thought to need another anti-wraparound vacuum. In the worst case the + database might even shut down to prevent wraparound. + + + + + + Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund) + + + + This bug could result in large amounts of useless autovacuum activity. + + + + + + Fix race condition in GIN index posting tree page deletion (Heikki + Linnakangas) + + + + This could lead to transient wrong answers or query failures. + + + + + + Fix unexpected spgdoinsert() failure error during SP-GiST + index creation (Teodor Sigaev) + + + + + + Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund) + + + + + + Re-allow duplicate table aliases if they're within aliased JOINs + (Tom Lane) + + + + Historically PostgreSQL has accepted queries like + +SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z + + although a strict reading of the SQL standard would forbid the + duplicate usage of table alias x. A misguided change in + 9.3.0 caused it to reject some such cases that were formerly accepted. + Restore the previous behavior. + + + + + + Avoid flattening a subquery whose SELECT list contains a + volatile function wrapped inside a sub-SELECT (Tom Lane) + + + + This avoids unexpected results due to extra evaluations of the + volatile function. + + + + + + Fix planner's processing of non-simple-variable subquery outputs + nested within outer joins (Tom Lane) + + + + This error could lead to incorrect plans for queries involving + multiple levels of subqueries within JOIN syntax. + + + + + + Fix incorrect planning in cases where the same non-strict expression + appears in multiple WHERE and outer JOIN + equality clauses (Tom Lane) + + + + + + Fix planner crash with whole-row reference to a subquery (Tom Lane) + + + + + + Fix incorrect generation of optimized MIN()/MAX() plans for + inheritance trees (Tom Lane) + + + + The planner could fail in cases where the MIN()/MAX() argument was an + expression rather than a simple variable. + + + + + + Fix premature deletion of temporary files (Andres Freund) + + + + + + Prevent intra-transaction memory leak when printing range values + (Tom Lane) + + + + This fix actually cures transient memory leaks in any datatype output + function, but range types are the only ones known to have had a + significant problem. + + + + + + Fix memory leaks when reloading configuration files (Heikki + Linnakangas, Hari Babu) + + + + + + Prevent incorrect display of dropped columns in NOT NULL and CHECK + constraint violation messages (Michael Paquier and Tom Lane) + + + + + + Allow default arguments and named-argument notation for window + functions (Tom Lane) + + + + Previously, these cases were likely to crash. + + + + + + Suppress trailing whitespace on each line when pretty-printing rules + and views (Tom Lane) + + + + 9.3.0 generated such whitespace in many more cases than previous + versions did. To reduce unexpected behavioral changes, suppress + unnecessary whitespace in all cases. + + + + + + Fix possible read past end of memory in rule printing (Peter Eisentraut) + + + + + + Fix array slicing of int2vector and oidvector values + (Tom Lane) + + + + Expressions of this kind are now implicitly promoted to + regular int2 or oid arrays. + + + + + + Return a valid JSON value when converting an empty hstore value + to json + (Oskari Saarenmaa) + + + + + + Fix incorrect behaviors when using a SQL-standard, simple GMT offset + timezone (Tom Lane) + + + + In some cases, the system would use the simple GMT offset value when + it should have used the regular timezone setting that had prevailed + before the simple offset was selected. This change also causes + the timeofday function to honor the simple GMT offset + zone. + + + + + + Prevent possible misbehavior when logging translations of Windows + error codes (Tom Lane) + + + + + + Properly quote generated command lines in pg_ctl + (Naoya Anzai and Tom Lane) + + + + This fix applies only to Windows. + + + + + + Fix pg_dumpall to work when a source database + sets default_transaction_read_only + via ALTER DATABASE SET (Kevin Grittner) + + + + Previously, the generated script would fail during restore. + + + + + + Fix pg_isready to handle its + + + + + Fix parsing of WAL file names in pg_receivexlog + (Heikki Linnakangas) + + + + This error made pg_receivexlog unable to restart + streaming after stopping, once at least 4 GB of WAL had been written. + + + + + + Report out-of-disk-space failures properly + in pg_upgrade (Peter Eisentraut) + + + + + + Make ecpg search for quoted cursor names + case-sensitively (Zoltán Böszörményi) + + + + + + Fix ecpg's processing of lists of variables + declared varchar (Zoltán Böszörményi) + + + + + + Make contrib/lo defend against incorrect trigger definitions + (Marc Cousin) + + + + + + Update time zone data files to tzdata release 2013h + for DST law changes in Argentina, Brazil, Jordan, Libya, + Liechtenstein, Morocco, and Palestine. Also, new timezone + abbreviations WIB, WIT, WITA for Indonesia. + + + + + + + + Release 9.3.1 @@ -22,6 +501,11 @@ A dump/restore is not required for those running 9.3.X. + + However, if you use the hstore extension, see the + first changelog entry. + + @@ -31,21 +515,33 @@ - Update hstore extension with JSON functionality (Andrew Dunstan) + Ensure new-in-9.3 JSON functionality is added to the hstore + extension during an update (Andrew Dunstan) - Users who installed hstore prior to 9.3.1 must execute: + Users who upgraded a pre-9.3 database containing hstore + should execute ALTER EXTENSION hstore UPDATE; - to add two new JSON functions and a cast. + after installing 9.3.1, to add two new JSON functions and a cast. + (If hstore is already up to date, this command does + nothing.) - Fix memory leak when creating range indexes (Heikki Linnakangas) + Fix memory leak when creating B-tree indexes on range columns + (Heikki Linnakangas) + + + + + + Fix memory leak caused by lo_open() failure + (Heikki Linnakangas) @@ -57,7 +553,7 @@ ALTER EXTENSION hstore UPDATE; - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost)