<!-- doc/src/sgml/release-8.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-8-4-19">
+ <title>Release 8.4.19</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2013-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 8.4.18.
+ For information about new features in the 8.4 major release, see
+ <xref linkend="release-8-4">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 8.4.19</title>
+
+ <para>
+ A dump/restore is not required for those running 8.4.X.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 8.4.17,
+ see the release notes for 8.4.17.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix <command>VACUUM</>'s tests to see whether it can
+ update <structfield>relfrozenxid</> (Andres Freund)
+ </para>
+
+ <para>
+ In some cases <command>VACUUM</> (either manual or autovacuum) could
+ incorrectly advance a table's <structfield>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.
+ </para>
+
+ <para>
+ The issue can be ameliorated by, after upgrading, vacuuming all tables
+ in all databases while having <link
+ linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+ 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
+ <literal>SELECT txid_current() < 2^31</>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition in GIN index posting tree page deletion (Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ This could lead to transient wrong answers or query failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid flattening a subquery whose <literal>SELECT</> list contains a
+ volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
+ </para>
+
+ <para>
+ This avoids unexpected results due to extra evaluations of the
+ volatile function.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner's processing of non-simple-variable subquery outputs
+ nested within outer joins (Tom Lane)
+ </para>
+
+ <para>
+ This error could lead to incorrect plans for queries involving
+ multiple levels of subqueries within <literal>JOIN</> syntax.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix premature deletion of temporary files (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible read past end of memory in rule printing (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix array slicing of <type>int2vector</> and <type>oidvector</> values
+ (Tom Lane)
+ </para>
+
+ <para>
+ Expressions of this kind are now implicitly promoted to
+ regular <type>int2</> or <type>oid</> arrays.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect behaviors when using a SQL-standard, simple GMT offset
+ timezone (Tom Lane)
+ </para>
+
+ <para>
+ 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 <function>timeofday</> function to honor the simple GMT offset
+ zone.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent possible misbehavior when logging translations of Windows
+ error codes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Properly quote generated command lines in <application>pg_ctl</>
+ (Naoya Anzai and Tom Lane)
+ </para>
+
+ <para>
+ This fix applies only to Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dumpall</> to work when a source database
+ sets <link
+ linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
+ via <command>ALTER DATABASE SET</> (Kevin Grittner)
+ </para>
+
+ <para>
+ Previously, the generated script would fail during restore.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</>'s processing of lists of variables
+ declared <type>varchar</> (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <filename>contrib/lo</> defend against incorrect trigger definitions
+ (Marc Cousin)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>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.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-8-4-18">
<title>Release 8.4.18</title>
</para>
<para>
- 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.
</para>
</sect2>
<listitem>
<para>
- 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)
</para>
<para>
- The previous behavior was wrong and confusing.
+ <productname>PostgreSQL</> case-folds non-ASCII characters only
+ when using a single-byte server encoding.
</para>
</listitem>
<listitem>
<para>
- Fix libpq SSL deadlock bug (Stephen Frost)
+ Fix deadlock bug in libpq when using SSL (Stephen Frost)
</para>
</listitem>
</para>
<para>
- Previously such push downs could generate errors.
+ Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
+ contain set-returning functions or volatile functions in their
+ <literal>SELECT</> lists could be improperly optimized, leading to
+ run-time errors or incorrect query results.
</para>
</listitem>
<listitem>
<para>
- Fix rare <literal>GROUP BY</> query error caused by improperly
- processed data type modifiers (Tom Lane)
+ Fix rare case of <quote>failed to locate grouping columns</>
+ planner failure (Tom Lane)
</para>
</listitem>
<listitem>
<para>
- 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)
</para>
</listitem>
<listitem>
<para>
- Allow various spellings of infinity on all platforms (Tom Lane)
+ Ensure that floating-point data input accepts standard spellings
+ of <quote>infinity</> on all platforms (Tom Lane)
</para>
<para>
- Supported infinity values are "inf", "+inf", "-inf", "infinity",
- "+infinity", and "-infinity".
+ The C99 standard says that allowable spellings are <literal>inf</>,
+ <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
+ <literal>+infinity</>, and <literal>-infinity</>. Make sure we
+ recognize these even if the platform's <function>strtod</> function
+ doesn't.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>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.
</para>
</listitem>
<!-- doc/src/sgml/release-9.0.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-0-15">
+ <title>Release 9.0.15</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2013-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.0.14.
+ 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.15</title>
+
+ <para>
+ A dump/restore is not required for those running 9.0.X.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 9.0.13,
+ see the release notes for 9.0.13.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix <command>VACUUM</>'s tests to see whether it can
+ update <structfield>relfrozenxid</> (Andres Freund)
+ </para>
+
+ <para>
+ In some cases <command>VACUUM</> (either manual or autovacuum) could
+ incorrectly advance a table's <structfield>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.
+ </para>
+
+ <para>
+ The issue can be ameliorated by, after upgrading, vacuuming all tables
+ in all databases while having <link
+ linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+ 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
+ <literal>SELECT txid_current() < 2^31</>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
+ during hot standby startup (Andres Freund, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Truncate <filename>pg_multixact</> contents during WAL replay
+ (Andres Freund)
+ </para>
+
+ <para>
+ This avoids ever-increasing disk space consumption in standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition in GIN index posting tree page deletion (Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ This could lead to transient wrong answers or query failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid flattening a subquery whose <literal>SELECT</> list contains a
+ volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
+ </para>
+
+ <para>
+ This avoids unexpected results due to extra evaluations of the
+ volatile function.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner's processing of non-simple-variable subquery outputs
+ nested within outer joins (Tom Lane)
+ </para>
+
+ <para>
+ This error could lead to incorrect plans for queries involving
+ multiple levels of subqueries within <literal>JOIN</> syntax.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix premature deletion of temporary files (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible read past end of memory in rule printing (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix array slicing of <type>int2vector</> and <type>oidvector</> values
+ (Tom Lane)
+ </para>
+
+ <para>
+ Expressions of this kind are now implicitly promoted to
+ regular <type>int2</> or <type>oid</> arrays.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect behaviors when using a SQL-standard, simple GMT offset
+ timezone (Tom Lane)
+ </para>
+
+ <para>
+ 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 <function>timeofday</> function to honor the simple GMT offset
+ zone.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent possible misbehavior when logging translations of Windows
+ error codes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Properly quote generated command lines in <application>pg_ctl</>
+ (Naoya Anzai and Tom Lane)
+ </para>
+
+ <para>
+ This fix applies only to Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dumpall</> to work when a source database
+ sets <link
+ linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
+ via <command>ALTER DATABASE SET</> (Kevin Grittner)
+ </para>
+
+ <para>
+ Previously, the generated script would fail during restore.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</>'s processing of lists of variables
+ declared <type>varchar</> (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <filename>contrib/lo</> defend against incorrect trigger definitions
+ (Marc Cousin)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>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.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-0-14">
<title>Release 9.0.14</title>
</para>
<para>
- 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.
</para>
</sect2>
<listitem>
<para>
- 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)
</para>
<para>
- The previous behavior was wrong and confusing.
+ <productname>PostgreSQL</> case-folds non-ASCII characters only
+ when using a single-byte server encoding.
</para>
</listitem>
<listitem>
<para>
- Fix libpq SSL deadlock bug (Stephen Frost)
+ Fix deadlock bug in libpq when using SSL (Stephen Frost)
</para>
</listitem>
<listitem>
<para>
- Fix possible SSL network stack corruption in threaded libpq applications
+ Fix possible SSL state corruption in threaded libpq applications
(Nick Phillips, Stephen Frost)
</para>
</listitem>
</para>
<para>
- Previously such push downs could generate errors.
+ Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
+ contain set-returning functions or volatile functions in their
+ <literal>SELECT</> lists could be improperly optimized, leading to
+ run-time errors or incorrect query results.
</para>
</listitem>
<listitem>
<para>
- Fix rare <literal>GROUP BY</> query error caused by improperly
- processed data type modifiers (Tom Lane)
+ Fix rare case of <quote>failed to locate grouping columns</>
+ planner failure (Tom Lane)
</para>
</listitem>
<listitem>
<para>
- 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)
</para>
</listitem>
<para>
Specifically, lessen keyword restrictions for role names, language
names, <command>EXPLAIN</> and <command>COPY</> options, and
- <command>SET</> values. This allows <literal>COPY ... (FORMAT
- BINARY)</> previously <literal>BINARY</> required single-quotes.
+ <command>SET</> values. This allows <literal>COPY ... (FORMAT
+ BINARY)</> to work as expected; previously <literal>BINARY</> needed
+ to be quoted.
</para>
</listitem>
<listitem>
<para>
- Improve analyze statistics generation after a cancelled file truncate
- request (Kevin Grittner)
+ Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
+ if its attempt to truncate the file is cancelled due to lock conflicts
+ (Kevin Grittner)
</para>
</listitem>
<listitem>
<para>
- Allow various spellings of infinity on all platforms (Tom Lane)
+ Ensure that floating-point data input accepts standard spellings
+ of <quote>infinity</> on all platforms (Tom Lane)
</para>
<para>
- Supported infinity values are "inf", "+inf", "-inf", "infinity",
- "+infinity", and "-infinity".
+ The C99 standard says that allowable spellings are <literal>inf</>,
+ <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
+ <literal>+infinity</>, and <literal>-infinity</>. Make sure we
+ recognize these even if the platform's <function>strtod</> function
+ doesn't.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>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.
</para>
</listitem>
<!-- doc/src/sgml/release-9.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-1-11">
+ <title>Release 9.1.11</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2013-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.1.10.
+ 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.11</title>
+
+ <para>
+ A dump/restore is not required for those running 9.1.X.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 9.1.9,
+ see the release notes for 9.1.9.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix <command>VACUUM</>'s tests to see whether it can
+ update <structfield>relfrozenxid</> (Andres Freund)
+ </para>
+
+ <para>
+ In some cases <command>VACUUM</> (either manual or autovacuum) could
+ incorrectly advance a table's <structfield>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.
+ </para>
+
+ <para>
+ The issue can be ameliorated by, after upgrading, vacuuming all tables
+ in all databases while having <link
+ linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+ 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
+ <literal>SELECT txid_current() < 2^31</>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
+ during hot standby startup (Andres Freund, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Truncate <filename>pg_multixact</> contents during WAL replay
+ (Andres Freund)
+ </para>
+
+ <para>
+ This avoids ever-increasing disk space consumption in standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition in GIN index posting tree page deletion (Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ This could lead to transient wrong answers or query failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid flattening a subquery whose <literal>SELECT</> list contains a
+ volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
+ </para>
+
+ <para>
+ This avoids unexpected results due to extra evaluations of the
+ volatile function.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner's processing of non-simple-variable subquery outputs
+ nested within outer joins (Tom Lane)
+ </para>
+
+ <para>
+ This error could lead to incorrect plans for queries involving
+ multiple levels of subqueries within <literal>JOIN</> syntax.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect generation of optimized MIN()/MAX() plans for
+ inheritance trees (Tom Lane)
+ </para>
+
+ <para>
+ The planner could fail in cases where the MIN()/MAX() argument was an
+ expression rather than a simple variable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix premature deletion of temporary files (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible read past end of memory in rule printing (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix array slicing of <type>int2vector</> and <type>oidvector</> values
+ (Tom Lane)
+ </para>
+
+ <para>
+ Expressions of this kind are now implicitly promoted to
+ regular <type>int2</> or <type>oid</> arrays.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect behaviors when using a SQL-standard, simple GMT offset
+ timezone (Tom Lane)
+ </para>
+
+ <para>
+ 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 <function>timeofday</> function to honor the simple GMT offset
+ zone.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent possible misbehavior when logging translations of Windows
+ error codes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Properly quote generated command lines in <application>pg_ctl</>
+ (Naoya Anzai and Tom Lane)
+ </para>
+
+ <para>
+ This fix applies only to Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dumpall</> to work when a source database
+ sets <link
+ linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
+ via <command>ALTER DATABASE SET</> (Kevin Grittner)
+ </para>
+
+ <para>
+ Previously, the generated script would fail during restore.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>ecpg</> search for quoted cursor names
+ case-sensitively (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</>'s processing of lists of variables
+ declared <type>varchar</> (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <filename>contrib/lo</> defend against incorrect trigger definitions
+ (Marc Cousin)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>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.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-1-10">
<title>Release 9.1.10</title>
</para>
<para>
- 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.
</para>
</sect2>
<listitem>
<para>
- 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)
</para>
<para>
- The previous behavior was wrong and confusing.
+ <productname>PostgreSQL</> case-folds non-ASCII characters only
+ when using a single-byte server encoding.
</para>
</listitem>
<listitem>
<para>
- Fix libpq SSL deadlock bug (Stephen Frost)
+ Fix deadlock bug in libpq when using SSL (Stephen Frost)
</para>
</listitem>
<listitem>
<para>
- Fix possible SSL network stack corruption in threaded libpq applications
+ Fix possible SSL state corruption in threaded libpq applications
(Nick Phillips, Stephen Frost)
</para>
</listitem>
</para>
<para>
- Previously such push downs could generate errors.
+ Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
+ contain set-returning functions or volatile functions in their
+ <literal>SELECT</> lists could be improperly optimized, leading to
+ run-time errors or incorrect query results.
</para>
</listitem>
<listitem>
<para>
- Fix rare <literal>GROUP BY</> query error caused by improperly
- processed data type modifiers (Tom Lane)
+ Fix rare case of <quote>failed to locate grouping columns</>
+ planner failure (Tom Lane)
</para>
</listitem>
<listitem>
<para>
- 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)
</para>
</listitem>
<para>
Specifically, lessen keyword restrictions for role names, language
names, <command>EXPLAIN</> and <command>COPY</> options, and
- <command>SET</> values. This allows <literal>COPY ... (FORMAT
- BINARY)</> previously <literal>BINARY</> required single-quotes.
+ <command>SET</> values. This allows <literal>COPY ... (FORMAT
+ BINARY)</> to work as expected; previously <literal>BINARY</> needed
+ to be quoted.
</para>
</listitem>
<listitem>
<para>
- Have <application>pg_upgrade</> use <command>pg_dump
+ Make <application>pg_upgrade</> use <literal>pg_dump
--quote-all-identifiers</> to avoid problems with keyword changes
between releases (Tom Lane)
</para>
<listitem>
<para>
- Improve analyze statistics generation after a cancelled file truncate
- request (Kevin Grittner)
+ Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
+ if its attempt to truncate the file is cancelled due to lock conflicts
+ (Kevin Grittner)
</para>
</listitem>
<listitem>
<para>
- Allow various spellings of infinity on all platforms (Tom Lane)
+ Ensure that floating-point data input accepts standard spellings
+ of <quote>infinity</> on all platforms (Tom Lane)
</para>
<para>
- Supported infinity values are "inf", "+inf", "-inf", "infinity",
- "+infinity", and "-infinity".
+ The C99 standard says that allowable spellings are <literal>inf</>,
+ <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
+ <literal>+infinity</>, and <literal>-infinity</>. Make sure we
+ recognize these even if the platform's <function>strtod</> function
+ doesn't.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>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.
</para>
</listitem>
<!-- doc/src/sgml/release-9.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-2-6">
+ <title>Release 9.2.6</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2013-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.2.5.
+ 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.6</title>
+
+ <para>
+ A dump/restore is not required for those running 9.2.X.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 9.2.4,
+ see the release notes for 9.2.4.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix <command>VACUUM</>'s tests to see whether it can
+ update <structfield>relfrozenxid</> (Andres Freund)
+ </para>
+
+ <para>
+ In some cases <command>VACUUM</> (either manual or autovacuum) could
+ incorrectly advance a table's <structfield>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 <quote>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.
+ </para>
+
+ <para>
+ The issue can be ameliorated by, after upgrading, vacuuming all tables
+ in all databases while having <link
+ linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+ 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
+ <literal>SELECT txid_current() < 2^31</>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
+ during hot standby startup (Andres Freund, Heikki Linnakangas)
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix dangling-pointer problem in fast-path locking (Tom Lane)
+ </para>
+
+ <para>
+ This could lead to corruption of the lock data structures in shared
+ memory, causing <quote>lock already held</> and other odd errors.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Truncate <filename>pg_multixact</> contents during WAL replay
+ (Andres Freund)
+ </para>
+
+ <para>
+ This avoids ever-increasing disk space consumption in standby servers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
+ when it's only verified that no tuples need freezing (Sergey
+ Burladyan, Jeff Janes)
+ </para>
+
+ <para>
+ This bug could result in failing to
+ advance <structfield>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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition in GIN index posting tree page deletion (Heikki
+ Linnakangas)
+ </para>
+
+ <para>
+ This could lead to transient wrong answers or query failures.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
+ index creation (Teodor Sigaev)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid flattening a subquery whose <literal>SELECT</> list contains a
+ volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
+ </para>
+
+ <para>
+ This avoids unexpected results due to extra evaluations of the
+ volatile function.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner's processing of non-simple-variable subquery outputs
+ nested within outer joins (Tom Lane)
+ </para>
+
+ <para>
+ This error could lead to incorrect plans for queries involving
+ multiple levels of subqueries within <literal>JOIN</> syntax.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect planning in cases where the same non-strict expression
+ appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
+ equality clauses (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix planner crash with whole-row reference to a subquery (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect generation of optimized MIN()/MAX() plans for
+ inheritance trees (Tom Lane)
+ </para>
+
+ <para>
+ The planner could fail in cases where the MIN()/MAX() argument was an
+ expression rather than a simple variable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix premature deletion of temporary files (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent intra-transaction memory leak when printing range values
+ (Tom Lane)
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent incorrect display of dropped columns in NOT NULL and CHECK
+ constraint violation messages (Michael Paquier and Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow default arguments and named-argument notation for window
+ functions (Tom Lane)
+ </para>
+
+ <para>
+ Previously, these cases were likely to crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible read past end of memory in rule printing (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix array slicing of <type>int2vector</> and <type>oidvector</> values
+ (Tom Lane)
+ </para>
+
+ <para>
+ Expressions of this kind are now implicitly promoted to
+ regular <type>int2</> or <type>oid</> arrays.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect behaviors when using a SQL-standard, simple GMT offset
+ timezone (Tom Lane)
+ </para>
+
+ <para>
+ 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 <function>timeofday</> function to honor the simple GMT offset
+ zone.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent possible misbehavior when logging translations of Windows
+ error codes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Properly quote generated command lines in <application>pg_ctl</>
+ (Naoya Anzai and Tom Lane)
+ </para>
+
+ <para>
+ This fix applies only to Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dumpall</> to work when a source database
+ sets <link
+ linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
+ via <command>ALTER DATABASE SET</> (Kevin Grittner)
+ </para>
+
+ <para>
+ Previously, the generated script would fail during restore.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <application>ecpg</> search for quoted cursor names
+ case-sensitively (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>ecpg</>'s processing of lists of variables
+ declared <type>varchar</> (Zoltán Böszörményi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <filename>contrib/lo</> defend against incorrect trigger definitions
+ (Marc Cousin)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>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.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-2-5">
<title>Release 9.2.5</title>
</para>
<para>
- 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.
</para>
</sect2>
<listitem>
<para>
- 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)
</para>
<para>
- The previous behavior was wrong and confusing.
+ <productname>PostgreSQL</> case-folds non-ASCII characters only
+ when using a single-byte server encoding.
</para>
</listitem>
<listitem>
<para>
- Fix memory leak when creating range indexes (Heikki Linnakangas)
+ Fix memory leak when creating B-tree indexes on range columns
+ (Heikki Linnakangas)
</para>
</listitem>
<listitem>
<para>
- Fix libpq SSL deadlock bug (Stephen Frost)
+ Fix deadlock bug in libpq when using SSL (Stephen Frost)
</para>
</listitem>
<listitem>
<para>
- Fix possible SSL network stack corruption in threaded libpq applications
+ Fix possible SSL state corruption in threaded libpq applications
(Nick Phillips, Stephen Frost)
</para>
</listitem>
<listitem>
<para>
- Fix <literal>UNION ALL</> and inheritance queries to properly
- recheck parameterized paths (Tom Lane)
+ Fix accounting for qualifier evaluation costs in <literal>UNION ALL</>
+ and inheritance queries (Tom Lane)
</para>
<para>
- This fixes cases where suboptimal query plans could potentially be
- chosen.
+ This fixes cases where suboptimal query plans could be chosen if
+ some <literal>WHERE</> clauses are expensive to calculate.
</para>
</listitem>
</para>
<para>
- Previously such push downs could generate errors.
+ Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
+ contain set-returning functions or volatile functions in their
+ <literal>SELECT</> lists could be improperly optimized, leading to
+ run-time errors or incorrect query results.
</para>
</listitem>
<listitem>
<para>
- Fix rare <literal>GROUP BY</> query error caused by improperly
- processed data type modifiers (Tom Lane)
+ Fix rare case of <quote>failed to locate grouping columns</>
+ planner failure (Tom Lane)
</para>
</listitem>
<listitem>
<para>
- 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)
</para>
</listitem>
<para>
Specifically, lessen keyword restrictions for role names, language
names, <command>EXPLAIN</> and <command>COPY</> options, and
- <command>SET</> values. This allows <literal>COPY ... (FORMAT
- BINARY)</> previously <literal>BINARY</> required single-quotes.
+ <command>SET</> values. This allows <literal>COPY ... (FORMAT
+ BINARY)</> to work as expected; previously <literal>BINARY</> needed
+ to be quoted.
</para>
</listitem>
<listitem>
<para>
- Have <application>pg_upgrade</> use <command>>pg_dump
+ Make <application>pg_upgrade</> use <literal>pg_dump
--quote-all-identifiers</> to avoid problems with keyword changes
between releases (Tom Lane)
</para>
<listitem>
<para>
- Improve analyze statistics generation after a cancelled file truncate
- request (Kevin Grittner)
+ Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
+ if its attempt to truncate the file is cancelled due to lock conflicts
+ (Kevin Grittner)
</para>
</listitem>
<listitem>
<para>
- Allow various spellings of infinity on all platforms (Tom Lane)
+ Ensure that floating-point data input accepts standard spellings
+ of <quote>infinity</> on all platforms (Tom Lane)
</para>
<para>
- Supported infinity values are "inf", "+inf", "-inf", "infinity",
- "+infinity", and "-infinity".
+ The C99 standard says that allowable spellings are <literal>inf</>,
+ <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
+ <literal>+infinity</>, and <literal>-infinity</>. Make sure we
+ recognize these even if the platform's <function>strtod</> function
+ doesn't.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>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.
</para>
</listitem>