</para>
<para>
- Fixing this required changing the WAL logging format for tuple freezing.
- While this is unimportant for standalone servers, in replication
- environments it means that <emphasis>standby servers must be upgraded
+ Fixing this required changing the WAL record format for tuple
+ freezing. While this is no issue for standalone servers, when using
+ replication it means that <emphasis>standby servers must be upgraded
to 9.3.3 or later before their masters are</>. An older standby will
- be unable to interpret freeze records generated by a newer master,
- and will fail with a PANIC message. (In such a case, upgrading the
+ be unable to interpret freeze records generated by a newer master, and
+ will fail with a PANIC message. (In such a case, upgrading the
standby should be sufficient to let it resume execution.)
</para>
</listitem>
<para>
If a row was locked by transaction A, and transaction B updated it,
the new version of the row created by B would be locked by A, yet
- visible only to B. This case is new in 9.3 since prior versions did
- not have any types of row locking that would permit another
- transaction to update the row at all. If transaction B then deleted
- or key-updated the row, A's lock wouldn't get checked, thus possibly
- allowing B to complete when it shouldn't.
+ visible only to B. If transaction B then again updated the row, A's
+ lock wouldn't get checked, thus possibly allowing B to complete when
+ it shouldn't. This case is new in 9.3 since prior versions did not
+ have any types of row locking that would permit another transaction
+ to update the row at all.
</para>
<para>
This oversight could allow referential integrity checks to give false
- positives (that is, allow deletes that should have been rejected).
+ positives (for instance, allow deletes that should have been rejected).
Applications using the new commands <literal>SELECT FOR KEY SHARE</>
and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
locking failures of this kind.
Prevent <quote>forgetting</> valid row locks when one of several
holders of a row lock aborts (Álvaro Herrera)
</para>
+
+ <para>
+ This was yet another mechanism by which a shared row lock could be
+ lost, thus possibly allowing updates that should have been prevented
+ by foreign-key constraints.
+ </para>
</listitem>
<!--
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
-Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
+Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
+Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
-->
<listitem>
<para>
- Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
- (Álvaro Herrera)
- </para>
-
- <para>
- As of 9.3, these names can be more than 4 digits, but the directory
- cleanup code ignored such files.
+ Handle wraparound correctly during extension or truncation
+ of <filename>pg_multixact/members</>
+ (Andres Freund, Álvaro Herrera)
</para>
</listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
-Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
+Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
+Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
-->
<listitem>
<para>
- Handle wraparound correctly during extension or truncation
- of <filename>pg_multixact/members</>
- (Andres Freund, Álvaro Herrera)
+ Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
+ (Álvaro Herrera)
+ </para>
+
+ <para>
+ As of 9.3, these names can be more than 4 digits, but the directory
+ cleanup code ignored such files.
</para>
</listitem>
</para>
<para>
- Previously, not-yet-archived segments could get ignored during replay.
- This reverts an undesirable behavioral change in 9.3.0 back to the
- way things worked pre-9.3.
+ Previously, not-yet-archived segments could get ignored during
+ recovery. This reverts an undesirable behavioral change in 9.3.0
+ back to the way things worked pre-9.3.
</para>
</listitem>
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 an actively-changing master.
+ base backup taken from a quickly-changing master.
</para>
</listitem>
<para>
In some cases WAL replay would mistakenly conclude that the database
was already consistent at the start of replay, thus possibly allowing
- queries before the database was really consistent. Other symptoms
- such as <quote>PANIC: WAL contains references to invalid pages</>
- were also possible.
+ 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,
+ a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
Heikki Linnakangas, Tom Lane)
</para>
<listitem>
<para>
- Ensure that insertions into non-leaf GIN index pages make a full-page
+ 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 data corruption in the event of a
- torn-page update.
+ The previous coding risked index corruption in the event of a
+ partial-page write during a system crash.
</para>
</listitem>
<listitem>
<para>
- Ensure walreceiver sends Hot Standby feedback messages on time even
+ Ensure walreceiver sends hot-standby feedback messages on time even
when there is a continuous stream of data (Andres Freund, Amit
Kapila)
</para>
<listitem>
<para>
- Fix unsafe references to <varname>errno</> within error messaging
+ Fix unsafe references to <varname>errno</> within error reporting
logic (Christian Kruse)
</para>
<listitem>
<para>
- Clear retry flags properly in replacement OpenSSL socket write
+ Clear retry flags properly in OpenSSL socket write
function (Alexander Kukushkin)
</para>
<para>
- This omission resulted in a server lockup after unexpected loss of an
- SSL-encrypted connection.
+ This omission could result in a server lockup after unexpected loss
+ of an SSL-encrypted connection.
</para>
</listitem>
<para>
<command>ANALYZE</> intentionally omits very wide values from its
- histogram and most-common-value calculations, but it neglected to do
+ 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>
</para>
<para>
- <literal>CREATE TABLE</> works this way, but <literal>ALTER TABLE</>
- didn't get the memo.
+ <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 CASE
- return a set and others don't (Tom Lane)
+ 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>
Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
- (Tatsuo Ishii)
+ purposes (Tatsuo Ishii)
</para>
</listitem>
<listitem>
<para>
- Improve error handling in <application>psql</> and <application>libpq</>
+ Improve error handling in <application>libpq</> and <application>psql</>
for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
</para>
</para>
</listitem>
-<!--
-Author: Magnus Hagander <magnus@hagander.net>
-Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
-Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
-Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
-Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
--->
-
- <listitem>
- <para>
- Avoid including tablespaces inside PGDATA twice in base backups
- (Dimitri Fontaine, Magnus Hagander)
- </para>
- </listitem>
-
<!--
Author: Magnus Hagander <magnus@hagander.net>
Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
</para>
</listitem>
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
+Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
+Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
+Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
+-->
+
+ <listitem>
+ <para>
+ Avoid including tablespaces inside PGDATA twice in base backups
+ (Dimitri Fontaine, Magnus Hagander)
+ </para>
+ </listitem>
+
<!--
Author: Michael Meskes <meskes@postgresql.org>
Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
<listitem>
<para>
Fix performance regression in <filename>contrib/dblink</> connection
- setup (Joe Conway)
+ startup (Joe Conway)
</para>
<para>
</para>
</listitem>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
-Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
-Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
-Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
-Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
--->
-
- <listitem>
- <para>
- Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
- (Marco Atzeri)
- </para>
- </listitem>
-
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
</para>
</listitem>
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
+Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
+Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
+Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
+Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
+-->
+
+ <listitem>
+ <para>
+ Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
+ (Marco Atzeri)
+ </para>
+ </listitem>
+
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
<para>
These text files duplicated the main HTML and PDF documentation
formats. The trouble involved in maintaining them greatly outweighs
- the likely audience for this format. Distribution tarballs will
- still contain files by these names, but they'll just be stubs
+ 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 an audience for that.
+ there is arguably a use-case for that.
</para>
</listitem>
</para>
<para>
- In addition, the zones Asia/Riyadh87, Asia/Riyadh88, and
- Asia/Riyadh89 have been removed, as they are no longer maintained by
- IANA, and never represented actual civil timekeeping practice.
+ 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>