diff options
Diffstat (limited to 'doc/src/sgml/release-9.3.sgml')
-rw-r--r-- | doc/src/sgml/release-9.3.sgml | 506 |
1 files changed, 501 insertions, 5 deletions
diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml index 4a7cac5ceef..68e8eb7fbf4 100644 --- a/doc/src/sgml/release-9.3.sgml +++ b/doc/src/sgml/release-9.3.sgml @@ -1,6 +1,485 @@ <!-- doc/src/sgml/release-9.3.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-9-3-2"> + <title>Release 9.3.2</title> + + <note> + <title>Release Date</title> + <simpara>2013-12-05</simpara> + </note> + + <para> + This release contains a variety of fixes from 9.3.1. + For information about new features in the 9.3 major release, see + <xref linkend="release-9-3">. + </para> + + <sect2> + <title>Migration to Version 9.3.2</title> + + <para> + A dump/restore is not required for those running 9.3.X. + </para> + + <para> + However, this release corrects a number of potential data corruption + issues. See the first three changelog entries below to find out whether + your installation has been affected and what steps you can take if so. + </para> + + <para> + Also, if you are upgrading from a version earlier than 9.3.1, + see the release notes for 9.3.1. + </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 multiple bugs in MultiXactId freezing (Andres Freund, + Álvaro Herrera) + </para> + + <para> + These bugs could lead to <quote>could not access status of + transaction</> errors, or to duplicate or vanishing rows. + Users upgrading from releases prior to 9.3.0 are not affected. + </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 latent corruption but will not be able to + fix all pre-existing data errors. + </para> + + <para> + As a separate issue, these bugs can also cause standby servers to get + out of sync with the primary, thus exhibiting data errors that are not + in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1 + standby servers be re-cloned from the primary (e.g., with a new base + backup) after upgrading. + </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 multiple bugs in update chain traversal (Andres Freund, + Álvaro Herrera) + </para> + + <para> + These bugs could result in incorrect behavior, such as locking or even + updating the wrong row, in the presence of concurrent updates. + Spurious <quote>unable to fetch updated version of tuple</> errors + were also possible. + </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> + Fix assorted race conditions in timeout management (Tom Lane) + </para> + + <para> + These errors could result in a server process becoming unresponsive + because it had blocked SIGALRM and/or SIGINT. + </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 full-table-vacuum request mechanism for MultiXactIds (Andres Freund) + </para> + + <para> + This bug could result in large amounts of useless autovacuum activity. + </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> + Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund) + </para> + </listitem> + + <listitem> + <para> + Re-allow duplicate table aliases if they're within aliased JOINs + (Tom Lane) + </para> + + <para> + Historically <productname>PostgreSQL</> has accepted queries like +<programlisting> +SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z +</programlisting> + although a strict reading of the SQL standard would forbid the + duplicate usage of table alias <literal>x</>. A misguided change in + 9.3.0 caused it to reject some such cases that were formerly accepted. + Restore the previous behavior. + </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> + Fix memory leaks when reloading configuration files (Heikki + Linnakangas, Hari Babu) + </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> + Suppress trailing whitespace on each line when pretty-printing rules + and views (Tom Lane) + </para> + + <para> + 9.3.0 generated such whitespace in many more cases than previous + versions did. To reduce unexpected behavioral changes, suppress + unnecessary whitespace in all cases. + </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> + Return a valid JSON value when converting an empty <type>hstore</> value + to <type>json</> + (Oskari Saarenmaa) + </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>pg_isready</> to handle its <option>-d</> option + properly (Fabrízio de Royes Mello and Fujii Masao) + </para> + </listitem> + + <listitem> + <para> + Fix parsing of WAL file names in <application>pg_receivexlog</> + (Heikki Linnakangas) + </para> + + <para> + This error made <application>pg_receivexlog</> unable to restart + streaming after stopping, once at least 4 GB of WAL had been written. + </para> + </listitem> + + <listitem> + <para> + Report out-of-disk-space failures properly + in <application>pg_upgrade</> (Peter Eisentraut) + </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-3-1"> <title>Release 9.3.1</title> @@ -22,6 +501,11 @@ A dump/restore is not required for those running 9.3.X. </para> + <para> + However, if you use the <literal>hstore</> extension, see the + first changelog entry. + </para> + </sect2> <sect2> @@ -31,21 +515,33 @@ <listitem> <para> - Update hstore extension with JSON functionality (Andrew Dunstan) + Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</> + extension during an update (Andrew Dunstan) </para> <para> - Users who installed hstore prior to 9.3.1 must execute: + Users who upgraded a pre-9.3 database containing <literal>hstore</> + should execute <programlisting> ALTER EXTENSION hstore UPDATE; </programlisting> - to add two new JSON functions and a cast. + after installing 9.3.1, to add two new JSON functions and a cast. + (If <literal>hstore</> is already up to date, this command does + nothing.) </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 memory leak caused by <function>lo_open()</function> failure + (Heikki Linnakangas) </para> </listitem> @@ -57,7 +553,7 @@ ALTER EXTENSION hstore UPDATE; <listitem> <para> - Fix libpq SSL deadlock bug (Stephen Frost) + Fix deadlock bug in libpq when using SSL (Stephen Frost) </para> </listitem> |