From 0a8793333b9b8d21fc62ba0779234d6dc499d610 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 16 Feb 2014 22:08:30 -0500 Subject: [PATCH] Release notes for 9.3.3, 9.2.7, 9.1.12, 9.0.16, 8.4.20. --- doc/src/sgml/release-8.4.sgml | 320 +++++++++ doc/src/sgml/release-9.0.sgml | 362 ++++++++++ doc/src/sgml/release-9.1.sgml | 411 +++++++++++ doc/src/sgml/release-9.2.sgml | 471 +++++++++++++ doc/src/sgml/release-9.3.sgml | 1244 +++++++++++++++++++++++++++++++++ 5 files changed, 2808 insertions(+) diff --git a/doc/src/sgml/release-8.4.sgml b/doc/src/sgml/release-8.4.sgml index 57fd7670c4f..f6accba6cd7 100644 --- a/doc/src/sgml/release-8.4.sgml +++ b/doc/src/sgml/release-8.4.sgml @@ -1,6 +1,326 @@ + + Release 8.4.20 + + + Release Date + 2014-02-20 + + + + This release contains a variety of fixes from 8.4.19. + For information about new features in the 8.4 major release, see + . + + + + The PostgreSQL community will stop releasing updates + for the 8.4.X release series in July 2014. + Users are encouraged to update to a newer release branch soon. + + + + Migration to Version 8.4.20 + + + A dump/restore is not required for those running 8.4.X. + + + + However, if you are upgrading from a version earlier than 8.4.19, + see . + + + + + + Changes + + + + + + Fix possible mis-replay of WAL records when some segments of a + relation aren't full size (Greg Stark, Tom Lane) + + + + The WAL update could be applied to the wrong page, potentially many + pages past where it should have been. Aside from corrupting data, + this error has been observed to result in significant bloat + of standby servers compared to their masters, due to updates being + applied far beyond where the end-of-file should have been. This + failure mode does not appear to be a significant risk during crash + recovery, only when initially synchronizing a standby created from a + base backup taken from a quickly-changing master. + + + + + + Ensure that insertions into non-leaf GIN index pages write a full-page + WAL record when appropriate (Heikki Linnakangas) + + + + The previous coding risked index corruption in the event of a + partial-page write during a system crash. + + + + + + Fix race conditions during server process exit (Robert Haas) + + + + Ensure that signal handlers don't attempt to use the + process's MyProc pointer after it's no longer valid. + + + + + + Fix unsafe references to errno within error reporting + logic (Christian Kruse) + + + + This would typically lead to odd behaviors such as missing or + inappropriate HINT fields. + + + + + + Fix possible crashes from using ereport() too early + during server startup (Tom Lane) + + + + The principal case we've seen in the field is a crash if the server + is started in a directory it doesn't have permission to read. + + + + + + Clear retry flags properly in OpenSSL socket write + function (Alexander Kukushkin) + + + + This omission could result in a server lockup after unexpected loss + of an SSL-encrypted connection. + + + + + + Fix length checking for Unicode identifiers (U&"..." + syntax) containing escapes (Tom Lane) + + + + A spurious truncation warning would be printed for such identifiers + if the escaped form of the identifier was too long, but the + identifier actually didn't need truncation after de-escaping. + + + + + + Fix possible crash due to invalid plan for nested sub-selects, such + as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) + (Tom Lane) + + + + + + Ensure that ANALYZE creates statistics for a table column + even when all the values in it are too wide (Tom Lane) + + + + ANALYZE intentionally omits very wide values from its + histogram and most-common-values calculations, but it neglected to do + something sane in the case that all the sampled entries are too wide. + + + + + + In ALTER TABLE ... SET TABLESPACE, allow the database's + default tablespace to be used without a permissions check + (Stephen Frost) + + + + CREATE TABLE has always allowed such usage, + but ALTER TABLE didn't get the memo. + + + + + + Fix cannot accept a set error when some arms of + a CASE return a set and others don't (Tom Lane) + + + + + + Fix checks for all-zero client addresses in pgstat functions (Kevin + Grittner) + + + + + + Fix possible misclassification of multibyte characters by the text + search parser (Tom Lane) + + + + Non-ASCII characters could be misclassified when using C locale with + a multibyte encoding. On Cygwin, non-C locales could fail as well. + + + + + + Fix possible misbehavior in plainto_tsquery() + (Heikki Linnakangas) + + + + Use memmove() not memcpy() for copying + overlapping memory regions. There have been no field reports of + this actually causing trouble, but it's certainly risky. + + + + + + Accept SHIFT_JIS as an encoding name for locale checking + purposes (Tatsuo Ishii) + + + + + + Fix misbehavior of PQhost() on Windows (Fujii Masao) + + + + It should return localhost if no host has been specified. + + + + + + Improve error handling in libpq and psql + for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) + + + + In particular this fixes an infinite loop that could occur in 9.2 and + up if the server connection was lost during COPY FROM + STDIN. Variants of that scenario might be possible in older + versions, or with other client applications. + + + + + + Fix misaligned descriptors in ecpg (MauMau) + + + + + + In ecpg, handle lack of a hostname in the connection + parameters properly (Michael Meskes) + + + + + + Fix performance regression in contrib/dblink connection + startup (Joe Conway) + + + + Avoid an unnecessary round trip when client and server encodings match. + + + + + + In contrib/isn, fix incorrect calculation of the check + digit for ISMN values (Fabien Coelho) + + + + + + Ensure client-code-only installation procedure works as documented + (Peter Eisentraut) + + + + + + In Mingw and Cygwin builds, install the libpq DLL + in the bin directory (Andrew Dunstan) + + + + This duplicates what the MSVC build has long done. It should fix + problems with programs like psql failing to start + because they can't find the DLL. + + + + + + Don't generate plain-text HISTORY + and src/test/regress/README files anymore (Tom Lane) + + + + These text files duplicated the main HTML and PDF documentation + formats. The trouble involved in maintaining them greatly outweighs + the likely audience for plain-text format. Distribution tarballs + will still contain files by these names, but they'll just be stubs + directing the reader to consult the main documentation. + The plain-text INSTALL file will still be maintained, as + there is arguably a use-case for that. + + + + + + Update time zone data files to tzdata release 2013i + for DST law changes in Jordan and historical changes in Cuba. + + + + In addition, the zones Asia/Riyadh87, + Asia/Riyadh88, and Asia/Riyadh89 have been + removed, as they are no longer maintained by IANA, and never + represented actual civil timekeeping practice. + + + + + + + + Release 8.4.19 diff --git a/doc/src/sgml/release-9.0.sgml b/doc/src/sgml/release-9.0.sgml index aab82fc44e0..8d75f8b16a8 100644 --- a/doc/src/sgml/release-9.0.sgml +++ b/doc/src/sgml/release-9.0.sgml @@ -1,6 +1,368 @@ + + Release 9.0.16 + + + Release Date + 2014-02-20 + + + + This release contains a variety of fixes from 9.0.15. + For information about new features in the 9.0 major release, see + . + + + + Migration to Version 9.0.16 + + + A dump/restore is not required for those running 9.0.X. + + + + However, if you are upgrading from a version earlier than 9.0.15, + see . + + + + + + Changes + + + + + + Fix possible mis-replay of WAL records when some segments of a + relation aren't full size (Greg Stark, Tom Lane) + + + + The WAL update could be applied to the wrong page, potentially many + pages past where it should have been. Aside from corrupting data, + this error has been observed to result in significant bloat + of standby servers compared to their masters, due to updates being + applied far beyond where the end-of-file should have been. This + failure mode does not appear to be a significant risk during crash + recovery, only when initially synchronizing a standby created from a + base backup taken from a quickly-changing master. + + + + + + Fix bug in determining when recovery has reached consistency + (Tomonari Katsumata, Heikki Linnakangas) + + + + In some cases WAL replay would mistakenly conclude that the database + was already consistent at the start of replay, thus possibly allowing + hot-standby queries before the database was really consistent. Other + symptoms such as PANIC: WAL contains references to invalid + pages were also possible. + + + + + + Fix improper locking of btree index pages while replaying + a VACUUM operation in hot-standby mode (Andres Freund, + Heikki Linnakangas, Tom Lane) + + + + This error could result in PANIC: WAL contains references to + invalid pages failures. + + + + + + Ensure that insertions into non-leaf GIN index pages write a full-page + WAL record when appropriate (Heikki Linnakangas) + + + + The previous coding risked index corruption in the event of a + partial-page write during a system crash. + + + + + + Fix race conditions during server process exit (Robert Haas) + + + + Ensure that signal handlers don't attempt to use the + process's MyProc pointer after it's no longer valid. + + + + + + Fix unsafe references to errno within error reporting + logic (Christian Kruse) + + + + This would typically lead to odd behaviors such as missing or + inappropriate HINT fields. + + + + + + Fix possible crashes from using ereport() too early + during server startup (Tom Lane) + + + + The principal case we've seen in the field is a crash if the server + is started in a directory it doesn't have permission to read. + + + + + + Clear retry flags properly in OpenSSL socket write + function (Alexander Kukushkin) + + + + This omission could result in a server lockup after unexpected loss + of an SSL-encrypted connection. + + + + + + Fix length checking for Unicode identifiers (U&"..." + syntax) containing escapes (Tom Lane) + + + + A spurious truncation warning would be printed for such identifiers + if the escaped form of the identifier was too long, but the + identifier actually didn't need truncation after de-escaping. + + + + + + Allow keywords that are type names to be used in lists of roles + (Stephen Frost) + + + + A previous patch allowed such keywords to be used without quoting + in places such as role identifiers; but it missed cases where a + list of role identifiers was permitted, such as DROP ROLE. + + + + + + Fix possible crash due to invalid plan for nested sub-selects, such + as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) + (Tom Lane) + + + + + + Ensure that ANALYZE creates statistics for a table column + even when all the values in it are too wide (Tom Lane) + + + + ANALYZE intentionally omits very wide values from its + histogram and most-common-values calculations, but it neglected to do + something sane in the case that all the sampled entries are too wide. + + + + + + In ALTER TABLE ... SET TABLESPACE, allow the database's + default tablespace to be used without a permissions check + (Stephen Frost) + + + + CREATE TABLE has always allowed such usage, + but ALTER TABLE didn't get the memo. + + + + + + Fix cannot accept a set error when some arms of + a CASE return a set and others don't (Tom Lane) + + + + + + Fix checks for all-zero client addresses in pgstat functions (Kevin + Grittner) + + + + + + Fix possible misclassification of multibyte characters by the text + search parser (Tom Lane) + + + + Non-ASCII characters could be misclassified when using C locale with + a multibyte encoding. On Cygwin, non-C locales could fail as well. + + + + + + Fix possible misbehavior in plainto_tsquery() + (Heikki Linnakangas) + + + + Use memmove() not memcpy() for copying + overlapping memory regions. There have been no field reports of + this actually causing trouble, but it's certainly risky. + + + + + + Accept SHIFT_JIS as an encoding name for locale checking + purposes (Tatsuo Ishii) + + + + + + Fix misbehavior of PQhost() on Windows (Fujii Masao) + + + + It should return localhost if no host has been specified. + + + + + + Improve error handling in libpq and psql + for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) + + + + In particular this fixes an infinite loop that could occur in 9.2 and + up if the server connection was lost during COPY FROM + STDIN. Variants of that scenario might be possible in older + versions, or with other client applications. + + + + + + Fix misaligned descriptors in ecpg (MauMau) + + + + + + In ecpg, handle lack of a hostname in the connection + parameters properly (Michael Meskes) + + + + + + Fix performance regression in contrib/dblink connection + startup (Joe Conway) + + + + Avoid an unnecessary round trip when client and server encodings match. + + + + + + In contrib/isn, fix incorrect calculation of the check + digit for ISMN values (Fabien Coelho) + + + + + + Ensure client-code-only installation procedure works as documented + (Peter Eisentraut) + + + + + + In Mingw and Cygwin builds, install the libpq DLL + in the bin directory (Andrew Dunstan) + + + + This duplicates what the MSVC build has long done. It should fix + problems with programs like psql failing to start + because they can't find the DLL. + + + + + + Avoid using the deprecated dllwrap tool in Cygwin builds + (Marco Atzeri) + + + + + + Don't generate plain-text HISTORY + and src/test/regress/README files anymore (Tom Lane) + + + + These text files duplicated the main HTML and PDF documentation + formats. The trouble involved in maintaining them greatly outweighs + the likely audience for plain-text format. Distribution tarballs + will still contain files by these names, but they'll just be stubs + directing the reader to consult the main documentation. + The plain-text INSTALL file will still be maintained, as + there is arguably a use-case for that. + + + + + + Update time zone data files to tzdata release 2013i + for DST law changes in Jordan and historical changes in Cuba. + + + + In addition, the zones Asia/Riyadh87, + Asia/Riyadh88, and Asia/Riyadh89 have been + removed, as they are no longer maintained by IANA, and never + represented actual civil timekeeping practice. + + + + + + + + Release 9.0.15 diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml index b94486fd08f..310e7e28589 100644 --- a/doc/src/sgml/release-9.1.sgml +++ b/doc/src/sgml/release-9.1.sgml @@ -1,6 +1,417 @@ + + Release 9.1.12 + + + Release Date + 2014-02-20 + + + + This release contains a variety of fixes from 9.1.11. + For information about new features in the 9.1 major release, see + . + + + + Migration to Version 9.1.12 + + + A dump/restore is not required for those running 9.1.X. + + + + However, if you are upgrading from a version earlier than 9.1.11, + see . + + + + + + Changes + + + + + + Fix possible mis-replay of WAL records when some segments of a + relation aren't full size (Greg Stark, Tom Lane) + + + + The WAL update could be applied to the wrong page, potentially many + pages past where it should have been. Aside from corrupting data, + this error has been observed to result in significant bloat + of standby servers compared to their masters, due to updates being + applied far beyond where the end-of-file should have been. This + failure mode does not appear to be a significant risk during crash + recovery, only when initially synchronizing a standby created from a + base backup taken from a quickly-changing master. + + + + + + Fix bug in determining when recovery has reached consistency + (Tomonari Katsumata, Heikki Linnakangas) + + + + In some cases WAL replay would mistakenly conclude that the database + was already consistent at the start of replay, thus possibly allowing + hot-standby queries before the database was really consistent. Other + symptoms such as PANIC: WAL contains references to invalid + pages were also possible. + + + + + + Fix improper locking of btree index pages while replaying + a VACUUM operation in hot-standby mode (Andres Freund, + Heikki Linnakangas, Tom Lane) + + + + This error could result in PANIC: WAL contains references to + invalid pages failures. + + + + + + Ensure that insertions into non-leaf GIN index pages write a full-page + WAL record when appropriate (Heikki Linnakangas) + + + + The previous coding risked index corruption in the event of a + partial-page write during a system crash. + + + + + + When pause_at_recovery_target + and recovery_target_inclusive are both set, ensure the + target record is applied before pausing, not after (Heikki + Linnakangas) + + + + + + Fix race conditions during server process exit (Robert Haas) + + + + Ensure that signal handlers don't attempt to use the + process's MyProc pointer after it's no longer valid. + + + + + + Fix race conditions in walsender shutdown logic and walreceiver + SIGHUP signal handler (Tom Lane) + + + + + + Fix unsafe references to errno within error reporting + logic (Christian Kruse) + + + + This would typically lead to odd behaviors such as missing or + inappropriate HINT fields. + + + + + + Fix possible crashes from using ereport() too early + during server startup (Tom Lane) + + + + The principal case we've seen in the field is a crash if the server + is started in a directory it doesn't have permission to read. + + + + + + Clear retry flags properly in OpenSSL socket write + function (Alexander Kukushkin) + + + + This omission could result in a server lockup after unexpected loss + of an SSL-encrypted connection. + + + + + + Fix length checking for Unicode identifiers (U&"..." + syntax) containing escapes (Tom Lane) + + + + A spurious truncation warning would be printed for such identifiers + if the escaped form of the identifier was too long, but the + identifier actually didn't need truncation after de-escaping. + + + + + + Allow keywords that are type names to be used in lists of roles + (Stephen Frost) + + + + A previous patch allowed such keywords to be used without quoting + in places such as role identifiers; but it missed cases where a + list of role identifiers was permitted, such as DROP ROLE. + + + + + + Fix parser crash for EXISTS(SELECT * FROM + zero_column_table) (Tom Lane) + + + + + + Fix possible crash due to invalid plan for nested sub-selects, such + as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) + (Tom Lane) + + + + + + Ensure that ANALYZE creates statistics for a table column + even when all the values in it are too wide (Tom Lane) + + + + ANALYZE intentionally omits very wide values from its + histogram and most-common-values calculations, but it neglected to do + something sane in the case that all the sampled entries are too wide. + + + + + + In ALTER TABLE ... SET TABLESPACE, allow the database's + default tablespace to be used without a permissions check + (Stephen Frost) + + + + CREATE TABLE has always allowed such usage, + but ALTER TABLE didn't get the memo. + + + + + + Fix cannot accept a set error when some arms of + a CASE return a set and others don't (Tom Lane) + + + + + + Fix checks for all-zero client addresses in pgstat functions (Kevin + Grittner) + + + + + + Fix possible misclassification of multibyte characters by the text + search parser (Tom Lane) + + + + Non-ASCII characters could be misclassified when using C locale with + a multibyte encoding. On Cygwin, non-C locales could fail as well. + + + + + + Fix possible misbehavior in plainto_tsquery() + (Heikki Linnakangas) + + + + Use memmove() not memcpy() for copying + overlapping memory regions. There have been no field reports of + this actually causing trouble, but it's certainly risky. + + + + + + Fix placement of permissions checks in pg_start_backup() + and pg_stop_backup() (Andres Freund, Magnus Hagander) + + + + The previous coding might attempt to do catalog access when it + shouldn't. + + + + + + Accept SHIFT_JIS as an encoding name for locale checking + purposes (Tatsuo Ishii) + + + + + + Fix misbehavior of PQhost() on Windows (Fujii Masao) + + + + It should return localhost if no host has been specified. + + + + + + Improve error handling in libpq and psql + for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) + + + + In particular this fixes an infinite loop that could occur in 9.2 and + up if the server connection was lost during COPY FROM + STDIN. Variants of that scenario might be possible in older + versions, or with other client applications. + + + + + + Fix possible incorrect printing of filenames + in pg_basebackup's verbose mode (Magnus Hagander) + + + + + + Avoid including tablespaces inside PGDATA twice in base backups + (Dimitri Fontaine, Magnus Hagander) + + + + + + Fix misaligned descriptors in ecpg (MauMau) + + + + + + In ecpg, handle lack of a hostname in the connection + parameters properly (Michael Meskes) + + + + + + Fix performance regression in contrib/dblink connection + startup (Joe Conway) + + + + Avoid an unnecessary round trip when client and server encodings match. + + + + + + In contrib/isn, fix incorrect calculation of the check + digit for ISMN values (Fabien Coelho) + + + + + + Ensure client-code-only installation procedure works as documented + (Peter Eisentraut) + + + + + + In Mingw and Cygwin builds, install the libpq DLL + in the bin directory (Andrew Dunstan) + + + + This duplicates what the MSVC build has long done. It should fix + problems with programs like psql failing to start + because they can't find the DLL. + + + + + + Avoid using the deprecated dllwrap tool in Cygwin builds + (Marco Atzeri) + + + + + + Don't generate plain-text HISTORY + and src/test/regress/README files anymore (Tom Lane) + + + + These text files duplicated the main HTML and PDF documentation + formats. The trouble involved in maintaining them greatly outweighs + the likely audience for plain-text format. Distribution tarballs + will still contain files by these names, but they'll just be stubs + directing the reader to consult the main documentation. + The plain-text INSTALL file will still be maintained, as + there is arguably a use-case for that. + + + + + + Update time zone data files to tzdata release 2013i + for DST law changes in Jordan and historical changes in Cuba. + + + + In addition, the zones Asia/Riyadh87, + Asia/Riyadh88, and Asia/Riyadh89 have been + removed, as they are no longer maintained by IANA, and never + represented actual civil timekeeping practice. + + + + + + + + Release 9.1.11 diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml index 68fcc585bc2..33e2a4e8105 100644 --- a/doc/src/sgml/release-9.2.sgml +++ b/doc/src/sgml/release-9.2.sgml @@ -1,6 +1,477 @@ + + Release 9.2.7 + + + Release Date + 2014-02-20 + + + + This release contains a variety of fixes from 9.2.6. + For information about new features in the 9.2 major release, see + . + + + + Migration to Version 9.2.7 + + + A dump/restore is not required for those running 9.2.X. + + + + However, if you are upgrading from a version earlier than 9.2.6, + see . + + + + + + Changes + + + + + + Fix possible mis-replay of WAL records when some segments of a + relation aren't full size (Greg Stark, Tom Lane) + + + + The WAL update could be applied to the wrong page, potentially many + pages past where it should have been. Aside from corrupting data, + this error has been observed to result in significant bloat + of standby servers compared to their masters, due to updates being + applied far beyond where the end-of-file should have been. This + failure mode does not appear to be a significant risk during crash + recovery, only when initially synchronizing a standby created from a + base backup taken from a quickly-changing master. + + + + + + Fix bug in determining when recovery has reached consistency + (Tomonari Katsumata, Heikki Linnakangas) + + + + In some cases WAL replay would mistakenly conclude that the database + was already consistent at the start of replay, thus possibly allowing + hot-standby queries before the database was really consistent. Other + symptoms such as PANIC: WAL contains references to invalid + pages were also possible. + + + + + + Fix improper locking of btree index pages while replaying + a VACUUM operation in hot-standby mode (Andres Freund, + Heikki Linnakangas, Tom Lane) + + + + This error could result in PANIC: WAL contains references to + invalid pages failures. + + + + + + Ensure that insertions into non-leaf GIN index pages write a full-page + WAL record when appropriate (Heikki Linnakangas) + + + + The previous coding risked index corruption in the event of a + partial-page write during a system crash. + + + + + + When pause_at_recovery_target + and recovery_target_inclusive are both set, ensure the + target record is applied before pausing, not after (Heikki + Linnakangas) + + + + + + Fix race conditions during server process exit (Robert Haas) + + + + Ensure that signal handlers don't attempt to use the + process's MyProc pointer after it's no longer valid. + + + + + + Fix race conditions in walsender shutdown logic and walreceiver + SIGHUP signal handler (Tom Lane) + + + + + + Fix unsafe references to errno within error reporting + logic (Christian Kruse) + + + + This would typically lead to odd behaviors such as missing or + inappropriate HINT fields. + + + + + + Fix possible crashes from using ereport() too early + during server startup (Tom Lane) + + + + The principal case we've seen in the field is a crash if the server + is started in a directory it doesn't have permission to read. + + + + + + Clear retry flags properly in OpenSSL socket write + function (Alexander Kukushkin) + + + + This omission could result in a server lockup after unexpected loss + of an SSL-encrypted connection. + + + + + + Fix length checking for Unicode identifiers (U&"..." + syntax) containing escapes (Tom Lane) + + + + A spurious truncation warning would be printed for such identifiers + if the escaped form of the identifier was too long, but the + identifier actually didn't need truncation after de-escaping. + + + + + + Allow keywords that are type names to be used in lists of roles + (Stephen Frost) + + + + A previous patch allowed such keywords to be used without quoting + in places such as role identifiers; but it missed cases where a + list of role identifiers was permitted, such as DROP ROLE. + + + + + + Fix parser crash for EXISTS(SELECT * FROM + zero_column_table) (Tom Lane) + + + + + + Fix possible crash due to invalid plan for nested sub-selects, such + as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) + (Tom Lane) + + + + + + Fix UPDATE/DELETE of an inherited target table + that has UNION ALL subqueries (Tom Lane) + + + + Without this fix, UNION ALL subqueries aren't correctly + inserted into the update plans for inheritance child tables after the + first one, typically resulting in no update happening for those child + table(s). + + + + + + Ensure that ANALYZE creates statistics for a table column + even when all the values in it are too wide (Tom Lane) + + + + ANALYZE intentionally omits very wide values from its + histogram and most-common-values calculations, but it neglected to do + something sane in the case that all the sampled entries are too wide. + + + + + + In ALTER TABLE ... SET TABLESPACE, allow the database's + default tablespace to be used without a permissions check + (Stephen Frost) + + + + CREATE TABLE has always allowed such usage, + but ALTER TABLE didn't get the memo. + + + + + + Fix cannot accept a set error when some arms of + a CASE return a set and others don't (Tom Lane) + + + + + + Properly distinguish numbers from non-numbers when generating JSON + output (Andrew Dunstan) + + + + + + Fix checks for all-zero client addresses in pgstat functions (Kevin + Grittner) + + + + + + Fix possible misclassification of multibyte characters by the text + search parser (Tom Lane) + + + + Non-ASCII characters could be misclassified when using C locale with + a multibyte encoding. On Cygwin, non-C locales could fail as well. + + + + + + Fix possible misbehavior in plainto_tsquery() + (Heikki Linnakangas) + + + + Use memmove() not memcpy() for copying + overlapping memory regions. There have been no field reports of + this actually causing trouble, but it's certainly risky. + + + + + + Fix placement of permissions checks in pg_start_backup() + and pg_stop_backup() (Andres Freund, Magnus Hagander) + + + + The previous coding might attempt to do catalog access when it + shouldn't. + + + + + + Accept SHIFT_JIS as an encoding name for locale checking + purposes (Tatsuo Ishii) + + + + + + Fix *-qualification of named parameters in SQL-language + functions (Tom Lane) + + + + Given a composite-type parameter + named foo, $1.* worked fine, + but foo.* not so much. + + + + + + Fix misbehavior of PQhost() on Windows (Fujii Masao) + + + + It should return localhost if no host has been specified. + + + + + + Improve error handling in libpq and psql + for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) + + + + In particular this fixes an infinite loop that could occur in 9.2 and + up if the server connection was lost during COPY FROM + STDIN. Variants of that scenario might be possible in older + versions, or with other client applications. + + + + + + Fix incorrect translation handling in + some psql \d commands + (Peter Eisentraut, Tom Lane) + + + + + + + + + Ensure pg_basebackup's background process is killed + when exiting its foreground process (Magnus Hagander) + + + + + + Fix possible incorrect printing of filenames + in pg_basebackup's verbose mode (Magnus Hagander) + + + + + + Avoid including tablespaces inside PGDATA twice in base backups + (Dimitri Fontaine, Magnus Hagander) + + + + + + Fix misaligned descriptors in ecpg (MauMau) + + + + + + In ecpg, handle lack of a hostname in the connection + parameters properly (Michael Meskes) + + + + + + Fix performance regression in contrib/dblink connection + startup (Joe Conway) + + + + Avoid an unnecessary round trip when client and server encodings match. + + + + + + In contrib/isn, fix incorrect calculation of the check + digit for ISMN values (Fabien Coelho) + + + + + + Fix contrib/pg_stat_statement's handling + of CURRENT_DATE and related constructs (Kyotaro + Horiguchi) + + + + + + Ensure client-code-only installation procedure works as documented + (Peter Eisentraut) + + + + + + In Mingw and Cygwin builds, install the libpq DLL + in the bin directory (Andrew Dunstan) + + + + This duplicates what the MSVC build has long done. It should fix + problems with programs like psql failing to start + because they can't find the DLL. + + + + + + Avoid using the deprecated dllwrap tool in Cygwin builds + (Marco Atzeri) + + + + + + Don't generate plain-text HISTORY + and src/test/regress/README files anymore (Tom Lane) + + + + These text files duplicated the main HTML and PDF documentation + formats. The trouble involved in maintaining them greatly outweighs + the likely audience for plain-text format. Distribution tarballs + will still contain files by these names, but they'll just be stubs + directing the reader to consult the main documentation. + The plain-text INSTALL file will still be maintained, as + there is arguably a use-case for that. + + + + + + Update time zone data files to tzdata release 2013i + for DST law changes in Jordan and historical changes in Cuba. + + + + In addition, the zones Asia/Riyadh87, + Asia/Riyadh88, and Asia/Riyadh89 have been + removed, as they are no longer maintained by IANA, and never + represented actual civil timekeeping practice. + + + + + + + + Release 9.2.6 diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml index 2f51d677db8..acc0b9d2024 100644 --- a/doc/src/sgml/release-9.3.sgml +++ b/doc/src/sgml/release-9.3.sgml @@ -1,6 +1,1250 @@ + + Release 9.3.3 + + + Release Date + 2014-02-20 + + + + This release contains a variety of fixes from 9.3.2. + For information about new features in the 9.3 major release, see + . + + + + Migration to Version 9.3.3 + + + A dump/restore is not required for those running 9.3.X. + + + + However, several of the issues corrected in this release could have + resulted in corruption of foreign-key constraints; that is, there + might now be referencing rows for which there is no matching row in + the referenced table. It may be worthwhile to recheck such + constraints after installing this update. The simplest way to do that + is to drop and recreate each suspect constraint; however, that will + require taking an exclusive lock on both tables, so it is unlikely to + be acceptable in production databases. Alternatively, you can do a + manual join query between the two tables to look for unmatched rows. + + + + Note also the requirement for replication standby servers to be + upgraded before their master server is upgraded. + + + + Also, if you are upgrading from a version earlier than 9.3.2, + see . + + + + + + Changes + + + + + + + + Rework tuple freezing protocol + (Álvaro Herrera, Andres Freund) + + + + The method for tuple freezing was unable to handle some cases + involving freezing of multixact IDs, with the practical + effect that shared row-level locks might be forgotten once old enough. + + + + Fixing this required changing the WAL record format for tuple + freezing. While this is no issue for standalone servers, when using + replication it means that standby servers must be upgraded + to 9.3.3 or later before their masters are. An older standby will + be unable to interpret freeze records generated by a newer master, and + will fail with a PANIC message. (In such a case, upgrading the + standby should be sufficient to let it resume execution.) + + + + + + + + Create separate GUC parameters to control multixact freezing + (Álvaro Herrera) + + + + 9.3 requires multixact tuple labels to be frozen before + they grow too old, in the same fashion as plain transaction ID labels + have been frozen for some time. Previously, the transaction ID + freezing parameters were used for multixact IDs too; but since + the consumption rates of transaction IDs and multixact IDs can be + quite different, this did not work very well. Introduce new settings + , + , and + + to control when to freeze multixacts. + + + + + + + + Account for remote row locks propagated by local updates + (Álvaro Herrera) + + + + If a row was locked by transaction A, and transaction B updated it, + the new version of the row created by B would be locked by A, yet + visible only to B. If transaction B then again updated the row, A's + lock wouldn't get checked, thus possibly allowing B to complete when + it shouldn't. This case is new in 9.3 since prior versions did not + have any types of row locking that would permit another transaction + to update the row at all. + + + + This oversight could allow referential integrity checks to give false + positives (for instance, allow deletes that should have been rejected). + Applications using the new commands SELECT FOR KEY SHARE + and SELECT FOR NO KEY UPDATE might also have suffered + locking failures of this kind. + + + + + + + + Prevent forgetting valid row locks when one of several + holders of a row lock aborts (Álvaro Herrera) + + + + This was yet another mechanism by which a shared row lock could be + lost, thus possibly allowing updates that should have been prevented + by foreign-key constraints. + + + + + + + + Fix incorrect logic during update chain locking + (Álvaro Herrera) + + + + This mistake could result in spurious could not serialize access + due to concurrent update errors in REPEATABLE READ + and SERIALIZABLE transaction isolation modes. + + + + + + + + Handle wraparound correctly during extension or truncation + of pg_multixact/members + (Andres Freund, Álvaro Herrera) + + + + + + + + Fix handling of 5-digit filenames in pg_multixact/members + (Álvaro Herrera) + + + + As of 9.3, these names can be more than 4 digits, but the directory + cleanup code ignored such files. + + + + + + + + Improve performance of multixact cache code + (Álvaro Herrera) + + + + + + + + Optimize updating a row that's already locked by the same transaction + (Andres Freund, Álvaro Herrera) + + + + This fixes a performance regression from pre-9.3 versions when doing + SELECT FOR UPDATE followed by UPDATE/DELETE. + + + + + + + + During archive recovery, prefer highest timeline number when WAL + segments with the same ID are present in both the archive + and pg_xlog/ (Kyotaro Horiguchi) + + + + Previously, not-yet-archived segments could get ignored during + recovery. This reverts an undesirable behavioral change in 9.3.0 + back to the way things worked pre-9.3. + + + + + + + + Fix possible mis-replay of WAL records when some segments of a + relation aren't full size (Greg Stark, Tom Lane) + + + + The WAL update could be applied to the wrong page, potentially many + pages past where it should have been. Aside from corrupting data, + this error has been observed to result in significant bloat + of standby servers compared to their masters, due to updates being + applied far beyond where the end-of-file should have been. This + failure mode does not appear to be a significant risk during crash + recovery, only when initially synchronizing a standby created from a + base backup taken from a quickly-changing master. + + + + + + + + Fix bug in determining when recovery has reached consistency + (Tomonari Katsumata, Heikki Linnakangas) + + + + In some cases WAL replay would mistakenly conclude that the database + was already consistent at the start of replay, thus possibly allowing + hot-standby queries before the database was really consistent. Other + symptoms such as PANIC: WAL contains references to invalid + pages were also possible. + + + + + + + + Fix WAL logging of visibility map changes (Heikki Linnakangas) + + + + + + + + Fix improper locking of btree index pages while replaying + a VACUUM operation in hot-standby mode (Andres Freund, + Heikki Linnakangas, Tom Lane) + + + + This error could result in PANIC: WAL contains references to + invalid pages failures. + + + + + + + + Ensure that insertions into non-leaf GIN index pages write a full-page + WAL record when appropriate (Heikki Linnakangas) + + + + The previous coding risked index corruption in the event of a + partial-page write during a system crash. + + + + + + + + When pause_at_recovery_target + and recovery_target_inclusive are both set, ensure the + target record is applied before pausing, not after (Heikki + Linnakangas) + + + + + + + + Ensure walreceiver sends hot-standby feedback messages on time even + when there is a continuous stream of data (Andres Freund, Amit + Kapila) + + + + + + + + Prevent timeout interrupts from taking control away from mainline + code unless ImmediateInterruptOK is set + (Andres Freund, Tom Lane) + + + + This is a serious issue for any application making use of statement + timeouts, as it could cause all manner of strange failures after a + timeout occurred. We have seen reports of stuck spinlocks, + ERRORs being unexpectedly promoted to PANICs, unkillable backends, + and other misbehaviors. + + + + + + + + Fix race conditions during server process exit (Robert Haas) + + + + Ensure that signal handlers don't attempt to use the + process's MyProc pointer after it's no longer valid. + + + + + + + + Fix race conditions in walsender shutdown logic and walreceiver + SIGHUP signal handler (Tom Lane) + + + + + + + + Fix unsafe references to errno within error reporting + logic (Christian Kruse) + + + + This would typically lead to odd behaviors such as missing or + inappropriate HINT fields. + + + + + + + + Fix possible crashes from using ereport() too early + during server startup (Tom Lane) + + + + The principal case we've seen in the field is a crash if the server + is started in a directory it doesn't have permission to read. + + + + + + + + Clear retry flags properly in OpenSSL socket write + function (Alexander Kukushkin) + + + + This omission could result in a server lockup after unexpected loss + of an SSL-encrypted connection. + + + + + + + + Fix length checking for Unicode identifiers (U&"..." + syntax) containing escapes (Tom Lane) + + + + A spurious truncation warning would be printed for such identifiers + if the escaped form of the identifier was too long, but the + identifier actually didn't need truncation after de-escaping. + + + + + + + + Fix parsing of Unicode literals and identifiers just before the end + of a command string or function body (Tom Lane) + + + + + + + + Allow keywords that are type names to be used in lists of roles + (Stephen Frost) + + + + A previous patch allowed such keywords to be used without quoting + in places such as role identifiers; but it missed cases where a + list of role identifiers was permitted, such as DROP ROLE. + + + + + + + + Fix parser crash for EXISTS(SELECT * FROM + zero_column_table) (Tom Lane) + + + + + + + + Fix possible crash due to invalid plan for nested sub-selects, such + as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...) + (Tom Lane) + + + + + + + + Fix mishandling of WHERE conditions pulled up from + a LATERAL subquery (Tom Lane) + + + + The typical symptom of this bug was a JOIN qualification + cannot refer to other relations error, though subtle logic + errors in created plans seem possible as well. + + + + + + + + Disallow LATERAL references to the target table of + an UPDATE/DELETE (Tom Lane) + + + + While this might be allowed in some future release, it was + unintentional in 9.3, and didn't work quite right anyway. + + + + + + + + Fix UPDATE/DELETE of an inherited target table + that has UNION ALL subqueries (Tom Lane) + + + + Without this fix, UNION ALL subqueries aren't correctly + inserted into the update plans for inheritance child tables after the + first one, typically resulting in no update happening for those child + table(s). + + + + + + + + Fix ANALYZE to not fail on a column that's a domain over + a range type (Tom Lane) + + + + + + + + Ensure that ANALYZE creates statistics for a table column + even when all the values in it are too wide (Tom Lane) + + + + ANALYZE intentionally omits very wide values from its + histogram and most-common-values calculations, but it neglected to do + something sane in the case that all the sampled entries are too wide. + + + + + + + + In ALTER TABLE ... SET TABLESPACE, allow the database's + default tablespace to be used without a permissions check + (Stephen Frost) + + + + CREATE TABLE has always allowed such usage, + but ALTER TABLE didn't get the memo. + + + + + + + + Fix support for extensions containing event triggers (Tom Lane) + + + + + + + + Fix cannot accept a set error when some arms of + a CASE return a set and others don't (Tom Lane) + + + + + + + + Fix memory leakage in JSON functions (Craig Ringer) + + + + + + + + Properly distinguish numbers from non-numbers when generating JSON + output (Andrew Dunstan) + + + + + + + + Fix checks for all-zero client addresses in pgstat functions (Kevin + Grittner) + + + + + + + + Fix possible misclassification of multibyte characters by the text + search parser (Tom Lane) + + + + Non-ASCII characters could be misclassified when using C locale with + a multibyte encoding. On Cygwin, non-C locales could fail as well. + + + + + + + + Fix possible misbehavior in plainto_tsquery() + (Heikki Linnakangas) + + + + Use memmove() not memcpy() for copying + overlapping memory regions. There have been no field reports of + this actually causing trouble, but it's certainly risky. + + + + + + + + Fix placement of permissions checks in pg_start_backup() + and pg_stop_backup() (Andres Freund, Magnus Hagander) + + + + The previous coding might attempt to do catalog access when it + shouldn't. + + + + + + + + Accept SHIFT_JIS as an encoding name for locale checking + purposes (Tatsuo Ishii) + + + + + + + + Fix *-qualification of named parameters in SQL-language + functions (Tom Lane) + + + + Given a composite-type parameter + named foo, $1.* worked fine, + but foo.* not so much. + + + + + + + + Fix misbehavior of PQhost() on Windows (Fujii Masao) + + + + It should return localhost if no host has been specified. + + + + + + + + Improve error handling in libpq and psql + for failures during COPY TO STDOUT/FROM STDIN (Tom Lane) + + + + In particular this fixes an infinite loop that could occur in 9.2 and + up if the server connection was lost during COPY FROM + STDIN. Variants of that scenario might be possible in older + versions, or with other client applications. + + + + + + + + Fix incorrect translation handling in + some psql \d commands + (Peter Eisentraut, Tom Lane) + + + + + + + + + + + Ensure pg_basebackup's background process is killed + when exiting its foreground process (Magnus Hagander) + + + + + + + + Fix possible incorrect printing of filenames + in pg_basebackup's verbose mode (Magnus Hagander) + + + + + + + + Avoid including tablespaces inside PGDATA twice in base backups + (Dimitri Fontaine, Magnus Hagander) + + + + + + + + Fix misaligned descriptors in ecpg (MauMau) + + + + + + + + In ecpg, handle lack of a hostname in the connection + parameters properly (Michael Meskes) + + + + + + + + Fix performance regression in contrib/dblink connection + startup (Joe Conway) + + + + Avoid an unnecessary round trip when client and server encodings match. + + + + + + + + In contrib/isn, fix incorrect calculation of the check + digit for ISMN values (Fabien Coelho) + + + + + + + + Fix contrib/pgbench's progress logging to avoid overflow + when the scale factor is large (Tatsuo Ishii) + + + + + + + + Fix contrib/pg_stat_statement's handling + of CURRENT_DATE and related constructs (Kyotaro + Horiguchi) + + + + + + + + Improve lost-connection error handling + in contrib/postgres_fdw (Tom Lane) + + + + + + + + Ensure client-code-only installation procedure works as documented + (Peter Eisentraut) + + + + + + + + In Mingw and Cygwin builds, install the libpq DLL + in the bin directory (Andrew Dunstan) + + + + This duplicates what the MSVC build has long done. It should fix + problems with programs like psql failing to start + because they can't find the DLL. + + + + + + + + Avoid using the deprecated dllwrap tool in Cygwin builds + (Marco Atzeri) + + + + + + + + Enable building with Visual Studio 2013 (Brar Piening) + + + + + + + + Don't generate plain-text HISTORY + and src/test/regress/README files anymore (Tom Lane) + + + + These text files duplicated the main HTML and PDF documentation + formats. The trouble involved in maintaining them greatly outweighs + the likely audience for plain-text format. Distribution tarballs + will still contain files by these names, but they'll just be stubs + directing the reader to consult the main documentation. + The plain-text INSTALL file will still be maintained, as + there is arguably a use-case for that. + + + + + + + + Update time zone data files to tzdata release 2013i + for DST law changes in Jordan and historical changes in Cuba. + + + + In addition, the zones Asia/Riyadh87, + Asia/Riyadh88, and Asia/Riyadh89 have been + removed, as they are no longer maintained by IANA, and never + represented actual civil timekeeping practice. + + + + + + + + Release 9.3.2 -- 2.30.2