<!-- doc/src/sgml/release-8.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-8-4-20">
+ <title>Release 8.4.20</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2014-02-20</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 8.4.19.
+ For information about new features in the 8.4 major release, see
+ <xref linkend="release-8-4">.
+ </para>
+
+ <para>
+ The <productname>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.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 8.4.20</title>
+
+ <para>
+ A dump/restore is not required for those running 8.4.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 8.4.19,
+ see <xref linkend="release-8-4-19">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix possible mis-replay of WAL records when some segments of a
+ relation aren't full size (Greg Stark, Tom Lane)
+ </para>
+
+ <para>
+ 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 <quote>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that insertions into non-leaf GIN index pages write a full-page
+ WAL record when appropriate (Heikki Linnakangas)
+ </para>
+
+ <para>
+ The previous coding risked index corruption in the event of a
+ partial-page write during a system crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions during server process exit (Robert Haas)
+ </para>
+
+ <para>
+ Ensure that signal handlers don't attempt to use the
+ process's <varname>MyProc</> pointer after it's no longer valid.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix unsafe references to <varname>errno</> within error reporting
+ logic (Christian Kruse)
+ </para>
+
+ <para>
+ This would typically lead to odd behaviors such as missing or
+ inappropriate <literal>HINT</> fields.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crashes from using <function>ereport()</> too early
+ during server startup (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Clear retry flags properly in OpenSSL socket write
+ function (Alexander Kukushkin)
+ </para>
+
+ <para>
+ This omission could result in a server lockup after unexpected loss
+ of an SSL-encrypted connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix length checking for Unicode identifiers (<literal>U&"..."</>
+ syntax) containing escapes (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash due to invalid plan for nested sub-selects, such
+ as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>ANALYZE</> creates statistics for a table column
+ even when all the values in it are <quote>too wide</> (Tom Lane)
+ </para>
+
+ <para>
+ <command>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
+ default tablespace to be used without a permissions check
+ (Stephen Frost)
+ </para>
+
+ <para>
+ <literal>CREATE TABLE</> has always allowed such usage,
+ but <literal>ALTER TABLE</> didn't get the memo.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>cannot accept a set</> error when some arms of
+ a <literal>CASE</> return a set and others don't (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix checks for all-zero client addresses in pgstat functions (Kevin
+ Grittner)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misclassification of multibyte characters by the text
+ search parser (Tom Lane)
+ </para>
+
+ <para>
+ Non-ASCII characters could be misclassified when using C locale with
+ a multibyte encoding. On Cygwin, non-C locales could fail as well.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misbehavior in <function>plainto_tsquery()</>
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Use <function>memmove()</> not <function>memcpy()</> for copying
+ overlapping memory regions. There have been no field reports of
+ this actually causing trouble, but it's certainly risky.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
+ purposes (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
+ </para>
+
+ <para>
+ It should return <literal>localhost</> if no host has been specified.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve error handling in <application>libpq</> and <application>psql</>
+ for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
+ </para>
+
+ <para>
+ In particular this fixes an infinite loop that could occur in 9.2 and
+ up if the server connection was lost during <literal>COPY FROM
+ STDIN</>. Variants of that scenario might be possible in older
+ versions, or with other client applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misaligned descriptors in <application>ecpg</> (MauMau)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <application>ecpg</>, handle lack of a hostname in the connection
+ parameters properly (Michael Meskes)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix performance regression in <filename>contrib/dblink</> connection
+ startup (Joe Conway)
+ </para>
+
+ <para>
+ Avoid an unnecessary round trip when client and server encodings match.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <filename>contrib/isn</>, fix incorrect calculation of the check
+ digit for ISMN values (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure client-code-only installation procedure works as documented
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In Mingw and Cygwin builds, install the <application>libpq</> DLL
+ in the <filename>bin</> directory (Andrew Dunstan)
+ </para>
+
+ <para>
+ This duplicates what the MSVC build has long done. It should fix
+ problems with programs like <application>psql</> failing to start
+ because they can't find the DLL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't generate plain-text <filename>HISTORY</>
+ and <filename>src/test/regress/README</> files anymore (Tom Lane)
+ </para>
+
+ <para>
+ 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 <filename>INSTALL</> file will still be maintained, as
+ there is arguably a use-case for that.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2013i
+ for DST law changes in Jordan and historical changes in Cuba.
+ </para>
+
+ <para>
+ In addition, the zones <literal>Asia/Riyadh87</>,
+ <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
+ removed, as they are no longer maintained by IANA, and never
+ represented actual civil timekeeping practice.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-8-4-19">
<title>Release 8.4.19</title>
<!-- doc/src/sgml/release-9.0.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-0-16">
+ <title>Release 9.0.16</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2014-02-20</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.0.15.
+ For information about new features in the 9.0 major release, see
+ <xref linkend="release-9-0">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.0.16</title>
+
+ <para>
+ A dump/restore is not required for those running 9.0.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.0.15,
+ see <xref linkend="release-9-0-15">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix possible mis-replay of WAL records when some segments of a
+ relation aren't full size (Greg Stark, Tom Lane)
+ </para>
+
+ <para>
+ 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 <quote>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bug in determining when recovery has reached consistency
+ (Tomonari Katsumata, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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 <quote>PANIC: WAL contains references to invalid
+ pages</> were also possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix improper locking of btree index pages while replaying
+ a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
+ Heikki Linnakangas, Tom Lane)
+ </para>
+
+ <para>
+ This error could result in <quote>PANIC: WAL contains references to
+ invalid pages</> failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that insertions into non-leaf GIN index pages write a full-page
+ WAL record when appropriate (Heikki Linnakangas)
+ </para>
+
+ <para>
+ The previous coding risked index corruption in the event of a
+ partial-page write during a system crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions during server process exit (Robert Haas)
+ </para>
+
+ <para>
+ Ensure that signal handlers don't attempt to use the
+ process's <varname>MyProc</> pointer after it's no longer valid.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix unsafe references to <varname>errno</> within error reporting
+ logic (Christian Kruse)
+ </para>
+
+ <para>
+ This would typically lead to odd behaviors such as missing or
+ inappropriate <literal>HINT</> fields.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crashes from using <function>ereport()</> too early
+ during server startup (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Clear retry flags properly in OpenSSL socket write
+ function (Alexander Kukushkin)
+ </para>
+
+ <para>
+ This omission could result in a server lockup after unexpected loss
+ of an SSL-encrypted connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix length checking for Unicode identifiers (<literal>U&"..."</>
+ syntax) containing escapes (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow keywords that are type names to be used in lists of roles
+ (Stephen Frost)
+ </para>
+
+ <para>
+ 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 <literal>DROP ROLE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash due to invalid plan for nested sub-selects, such
+ as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>ANALYZE</> creates statistics for a table column
+ even when all the values in it are <quote>too wide</> (Tom Lane)
+ </para>
+
+ <para>
+ <command>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
+ default tablespace to be used without a permissions check
+ (Stephen Frost)
+ </para>
+
+ <para>
+ <literal>CREATE TABLE</> has always allowed such usage,
+ but <literal>ALTER TABLE</> didn't get the memo.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>cannot accept a set</> error when some arms of
+ a <literal>CASE</> return a set and others don't (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix checks for all-zero client addresses in pgstat functions (Kevin
+ Grittner)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misclassification of multibyte characters by the text
+ search parser (Tom Lane)
+ </para>
+
+ <para>
+ Non-ASCII characters could be misclassified when using C locale with
+ a multibyte encoding. On Cygwin, non-C locales could fail as well.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misbehavior in <function>plainto_tsquery()</>
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Use <function>memmove()</> not <function>memcpy()</> for copying
+ overlapping memory regions. There have been no field reports of
+ this actually causing trouble, but it's certainly risky.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
+ purposes (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
+ </para>
+
+ <para>
+ It should return <literal>localhost</> if no host has been specified.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve error handling in <application>libpq</> and <application>psql</>
+ for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
+ </para>
+
+ <para>
+ In particular this fixes an infinite loop that could occur in 9.2 and
+ up if the server connection was lost during <literal>COPY FROM
+ STDIN</>. Variants of that scenario might be possible in older
+ versions, or with other client applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misaligned descriptors in <application>ecpg</> (MauMau)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <application>ecpg</>, handle lack of a hostname in the connection
+ parameters properly (Michael Meskes)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix performance regression in <filename>contrib/dblink</> connection
+ startup (Joe Conway)
+ </para>
+
+ <para>
+ Avoid an unnecessary round trip when client and server encodings match.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <filename>contrib/isn</>, fix incorrect calculation of the check
+ digit for ISMN values (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure client-code-only installation procedure works as documented
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In Mingw and Cygwin builds, install the <application>libpq</> DLL
+ in the <filename>bin</> directory (Andrew Dunstan)
+ </para>
+
+ <para>
+ This duplicates what the MSVC build has long done. It should fix
+ problems with programs like <application>psql</> failing to start
+ because they can't find the DLL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
+ (Marco Atzeri)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't generate plain-text <filename>HISTORY</>
+ and <filename>src/test/regress/README</> files anymore (Tom Lane)
+ </para>
+
+ <para>
+ 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 <filename>INSTALL</> file will still be maintained, as
+ there is arguably a use-case for that.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2013i
+ for DST law changes in Jordan and historical changes in Cuba.
+ </para>
+
+ <para>
+ In addition, the zones <literal>Asia/Riyadh87</>,
+ <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
+ removed, as they are no longer maintained by IANA, and never
+ represented actual civil timekeeping practice.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-0-15">
<title>Release 9.0.15</title>
<!-- doc/src/sgml/release-9.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-1-12">
+ <title>Release 9.1.12</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2014-02-20</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.1.11.
+ For information about new features in the 9.1 major release, see
+ <xref linkend="release-9-1">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.1.12</title>
+
+ <para>
+ A dump/restore is not required for those running 9.1.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.1.11,
+ see <xref linkend="release-9-1-11">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix possible mis-replay of WAL records when some segments of a
+ relation aren't full size (Greg Stark, Tom Lane)
+ </para>
+
+ <para>
+ 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 <quote>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bug in determining when recovery has reached consistency
+ (Tomonari Katsumata, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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 <quote>PANIC: WAL contains references to invalid
+ pages</> were also possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix improper locking of btree index pages while replaying
+ a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
+ Heikki Linnakangas, Tom Lane)
+ </para>
+
+ <para>
+ This error could result in <quote>PANIC: WAL contains references to
+ invalid pages</> failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that insertions into non-leaf GIN index pages write a full-page
+ WAL record when appropriate (Heikki Linnakangas)
+ </para>
+
+ <para>
+ The previous coding risked index corruption in the event of a
+ partial-page write during a system crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When <literal>pause_at_recovery_target</>
+ and <literal>recovery_target_inclusive</> are both set, ensure the
+ target record is applied before pausing, not after (Heikki
+ Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions during server process exit (Robert Haas)
+ </para>
+
+ <para>
+ Ensure that signal handlers don't attempt to use the
+ process's <varname>MyProc</> pointer after it's no longer valid.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions in walsender shutdown logic and walreceiver
+ SIGHUP signal handler (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix unsafe references to <varname>errno</> within error reporting
+ logic (Christian Kruse)
+ </para>
+
+ <para>
+ This would typically lead to odd behaviors such as missing or
+ inappropriate <literal>HINT</> fields.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crashes from using <function>ereport()</> too early
+ during server startup (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Clear retry flags properly in OpenSSL socket write
+ function (Alexander Kukushkin)
+ </para>
+
+ <para>
+ This omission could result in a server lockup after unexpected loss
+ of an SSL-encrypted connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix length checking for Unicode identifiers (<literal>U&"..."</>
+ syntax) containing escapes (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow keywords that are type names to be used in lists of roles
+ (Stephen Frost)
+ </para>
+
+ <para>
+ 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 <literal>DROP ROLE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix parser crash for <literal>EXISTS(SELECT * FROM
+ zero_column_table)</literal> (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash due to invalid plan for nested sub-selects, such
+ as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>ANALYZE</> creates statistics for a table column
+ even when all the values in it are <quote>too wide</> (Tom Lane)
+ </para>
+
+ <para>
+ <command>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
+ default tablespace to be used without a permissions check
+ (Stephen Frost)
+ </para>
+
+ <para>
+ <literal>CREATE TABLE</> has always allowed such usage,
+ but <literal>ALTER TABLE</> didn't get the memo.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>cannot accept a set</> error when some arms of
+ a <literal>CASE</> return a set and others don't (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix checks for all-zero client addresses in pgstat functions (Kevin
+ Grittner)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misclassification of multibyte characters by the text
+ search parser (Tom Lane)
+ </para>
+
+ <para>
+ Non-ASCII characters could be misclassified when using C locale with
+ a multibyte encoding. On Cygwin, non-C locales could fail as well.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misbehavior in <function>plainto_tsquery()</>
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Use <function>memmove()</> not <function>memcpy()</> for copying
+ overlapping memory regions. There have been no field reports of
+ this actually causing trouble, but it's certainly risky.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix placement of permissions checks in <function>pg_start_backup()</>
+ and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
+ </para>
+
+ <para>
+ The previous coding might attempt to do catalog access when it
+ shouldn't.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
+ purposes (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
+ </para>
+
+ <para>
+ It should return <literal>localhost</> if no host has been specified.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve error handling in <application>libpq</> and <application>psql</>
+ for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
+ </para>
+
+ <para>
+ In particular this fixes an infinite loop that could occur in 9.2 and
+ up if the server connection was lost during <literal>COPY FROM
+ STDIN</>. Variants of that scenario might be possible in older
+ versions, or with other client applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible incorrect printing of filenames
+ in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid including tablespaces inside PGDATA twice in base backups
+ (Dimitri Fontaine, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misaligned descriptors in <application>ecpg</> (MauMau)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <application>ecpg</>, handle lack of a hostname in the connection
+ parameters properly (Michael Meskes)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix performance regression in <filename>contrib/dblink</> connection
+ startup (Joe Conway)
+ </para>
+
+ <para>
+ Avoid an unnecessary round trip when client and server encodings match.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <filename>contrib/isn</>, fix incorrect calculation of the check
+ digit for ISMN values (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure client-code-only installation procedure works as documented
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In Mingw and Cygwin builds, install the <application>libpq</> DLL
+ in the <filename>bin</> directory (Andrew Dunstan)
+ </para>
+
+ <para>
+ This duplicates what the MSVC build has long done. It should fix
+ problems with programs like <application>psql</> failing to start
+ because they can't find the DLL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
+ (Marco Atzeri)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't generate plain-text <filename>HISTORY</>
+ and <filename>src/test/regress/README</> files anymore (Tom Lane)
+ </para>
+
+ <para>
+ 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 <filename>INSTALL</> file will still be maintained, as
+ there is arguably a use-case for that.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2013i
+ for DST law changes in Jordan and historical changes in Cuba.
+ </para>
+
+ <para>
+ In addition, the zones <literal>Asia/Riyadh87</>,
+ <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
+ removed, as they are no longer maintained by IANA, and never
+ represented actual civil timekeeping practice.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-1-11">
<title>Release 9.1.11</title>
<!-- doc/src/sgml/release-9.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-2-7">
+ <title>Release 9.2.7</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2014-02-20</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.2.6.
+ For information about new features in the 9.2 major release, see
+ <xref linkend="release-9-2">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.2.7</title>
+
+ <para>
+ A dump/restore is not required for those running 9.2.X.
+ </para>
+
+ <para>
+ However, if you are upgrading from a version earlier than 9.2.6,
+ see <xref linkend="release-9-2-6">.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix possible mis-replay of WAL records when some segments of a
+ relation aren't full size (Greg Stark, Tom Lane)
+ </para>
+
+ <para>
+ 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 <quote>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix bug in determining when recovery has reached consistency
+ (Tomonari Katsumata, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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 <quote>PANIC: WAL contains references to invalid
+ pages</> were also possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix improper locking of btree index pages while replaying
+ a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
+ Heikki Linnakangas, Tom Lane)
+ </para>
+
+ <para>
+ This error could result in <quote>PANIC: WAL contains references to
+ invalid pages</> failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that insertions into non-leaf GIN index pages write a full-page
+ WAL record when appropriate (Heikki Linnakangas)
+ </para>
+
+ <para>
+ The previous coding risked index corruption in the event of a
+ partial-page write during a system crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When <literal>pause_at_recovery_target</>
+ and <literal>recovery_target_inclusive</> are both set, ensure the
+ target record is applied before pausing, not after (Heikki
+ Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions during server process exit (Robert Haas)
+ </para>
+
+ <para>
+ Ensure that signal handlers don't attempt to use the
+ process's <varname>MyProc</> pointer after it's no longer valid.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race conditions in walsender shutdown logic and walreceiver
+ SIGHUP signal handler (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix unsafe references to <varname>errno</> within error reporting
+ logic (Christian Kruse)
+ </para>
+
+ <para>
+ This would typically lead to odd behaviors such as missing or
+ inappropriate <literal>HINT</> fields.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crashes from using <function>ereport()</> too early
+ during server startup (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Clear retry flags properly in OpenSSL socket write
+ function (Alexander Kukushkin)
+ </para>
+
+ <para>
+ This omission could result in a server lockup after unexpected loss
+ of an SSL-encrypted connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix length checking for Unicode identifiers (<literal>U&"..."</>
+ syntax) containing escapes (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow keywords that are type names to be used in lists of roles
+ (Stephen Frost)
+ </para>
+
+ <para>
+ 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 <literal>DROP ROLE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix parser crash for <literal>EXISTS(SELECT * FROM
+ zero_column_table)</literal> (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash due to invalid plan for nested sub-selects, such
+ as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <literal>UPDATE/DELETE</> of an inherited target table
+ that has <literal>UNION ALL</> subqueries (Tom Lane)
+ </para>
+
+ <para>
+ Without this fix, <literal>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).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that <command>ANALYZE</> creates statistics for a table column
+ even when all the values in it are <quote>too wide</> (Tom Lane)
+ </para>
+
+ <para>
+ <command>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
+ default tablespace to be used without a permissions check
+ (Stephen Frost)
+ </para>
+
+ <para>
+ <literal>CREATE TABLE</> has always allowed such usage,
+ but <literal>ALTER TABLE</> didn't get the memo.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>cannot accept a set</> error when some arms of
+ a <literal>CASE</> return a set and others don't (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Properly distinguish numbers from non-numbers when generating JSON
+ output (Andrew Dunstan)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix checks for all-zero client addresses in pgstat functions (Kevin
+ Grittner)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misclassification of multibyte characters by the text
+ search parser (Tom Lane)
+ </para>
+
+ <para>
+ Non-ASCII characters could be misclassified when using C locale with
+ a multibyte encoding. On Cygwin, non-C locales could fail as well.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible misbehavior in <function>plainto_tsquery()</>
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ Use <function>memmove()</> not <function>memcpy()</> for copying
+ overlapping memory regions. There have been no field reports of
+ this actually causing trouble, but it's certainly risky.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix placement of permissions checks in <function>pg_start_backup()</>
+ and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
+ </para>
+
+ <para>
+ The previous coding might attempt to do catalog access when it
+ shouldn't.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
+ purposes (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <literal>*</>-qualification of named parameters in SQL-language
+ functions (Tom Lane)
+ </para>
+
+ <para>
+ Given a composite-type parameter
+ named <literal>foo</>, <literal>$1.*</> worked fine,
+ but <literal>foo.*</> not so much.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
+ </para>
+
+ <para>
+ It should return <literal>localhost</> if no host has been specified.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve error handling in <application>libpq</> and <application>psql</>
+ for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
+ </para>
+
+ <para>
+ In particular this fixes an infinite loop that could occur in 9.2 and
+ up if the server connection was lost during <literal>COPY FROM
+ STDIN</>. Variants of that scenario might be possible in older
+ versions, or with other client applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect translation handling in
+ some <application>psql</> <literal>\d</> commands
+ (Peter Eisentraut, Tom Lane)
+ </para>
+
+ <para>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure <application>pg_basebackup</>'s background process is killed
+ when exiting its foreground process (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible incorrect printing of filenames
+ in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid including tablespaces inside PGDATA twice in base backups
+ (Dimitri Fontaine, Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix misaligned descriptors in <application>ecpg</> (MauMau)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <application>ecpg</>, handle lack of a hostname in the connection
+ parameters properly (Michael Meskes)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix performance regression in <filename>contrib/dblink</> connection
+ startup (Joe Conway)
+ </para>
+
+ <para>
+ Avoid an unnecessary round trip when client and server encodings match.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In <filename>contrib/isn</>, fix incorrect calculation of the check
+ digit for ISMN values (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <filename>contrib/pg_stat_statement</>'s handling
+ of <literal>CURRENT_DATE</> and related constructs (Kyotaro
+ Horiguchi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure client-code-only installation procedure works as documented
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In Mingw and Cygwin builds, install the <application>libpq</> DLL
+ in the <filename>bin</> directory (Andrew Dunstan)
+ </para>
+
+ <para>
+ This duplicates what the MSVC build has long done. It should fix
+ problems with programs like <application>psql</> failing to start
+ because they can't find the DLL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
+ (Marco Atzeri)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't generate plain-text <filename>HISTORY</>
+ and <filename>src/test/regress/README</> files anymore (Tom Lane)
+ </para>
+
+ <para>
+ 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 <filename>INSTALL</> file will still be maintained, as
+ there is arguably a use-case for that.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2013i
+ for DST law changes in Jordan and historical changes in Cuba.
+ </para>
+
+ <para>
+ In addition, the zones <literal>Asia/Riyadh87</>,
+ <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
+ removed, as they are no longer maintained by IANA, and never
+ represented actual civil timekeeping practice.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-2-6">
<title>Release 9.2.6</title>