- Fixing this required changing the WAL logging format for tuple freezing.
- While this is unimportant for standalone servers, in replication
- environments it means that 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 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.)
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.
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 SELECT FOR KEY SHARE>
and SELECT FOR NO KEY UPDATE> might also have suffered
locking failures of this kind.
Prevent forgetting> valid row locks when one of several
holders of a row lock aborts (Álvaro Herrera)
+
+ This was yet another mechanism by which a shared row lock could be
+ lost, thus possibly allowing updates that should have been prevented
+ by foreign-key constraints.
+
- Fix handling of 5-digit filenames in pg_multixact/members>
- (Álvaro Herrera)
-
-
- As of 9.3, these names can be more than 4 digits, but the directory
- cleanup code ignored such files.
+ Handle wraparound correctly during extension or truncation
+ of pg_multixact/members>
+ (Andres Freund, Álvaro Herrera)
- Handle wraparound correctly during extension or truncation
- of pg_multixact/members>
- (Andres Freund, Álvaro Herrera)
+ Fix handling of 5-digit filenames in pg_multixact/members>
+ (Álvaro Herrera)
+
+
+ As of 9.3, these names can be more than 4 digits, but the directory
+ cleanup code ignored such files.
- 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.
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.
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 PANIC: WAL contains references to invalid pages>
- were also possible.
+ hot-standby queries before the database was really consistent. Other
+ symptoms such as PANIC: WAL contains references to invalid
+ pages> were also possible.
Fix improper locking of btree index pages while replaying
- a VACUUM> operation in Hot Standby mode (Andres Freund,
+ a VACUUM> operation in hot-standby mode (Andres Freund,
Heikki Linnakangas, Tom Lane)
- 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)
- 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.
- 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)
- Fix unsafe references to errno> within error messaging
+ Fix unsafe references to errno> within error reporting
logic (Christian Kruse)
- Clear retry flags properly in replacement OpenSSL socket write
+ Clear retry flags properly in OpenSSL socket write
function (Alexander Kukushkin)
- 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.
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.
- CREATE TABLE> works this way, but ALTER TABLE>
- didn't get the memo.
+ CREATE TABLE> has always allowed such usage,
+ but ALTER TABLE> didn't get the memo.
- Fix cannot accept a set> error when some arms of a CASE
- return a set and others don't (Tom Lane)
+ Fix cannot accept a set> error when some arms of
+ a CASE> return a set and others don't (Tom Lane)
Accept SHIFT_JIS> as an encoding name for locale checking
- (Tatsuo Ishii)
+ purposes (Tatsuo Ishii)
- Improve error handling in
psql> and libpq>
+ Improve error handling in
libpq> and psql>
for failures during COPY TO STDOUT/FROM STDIN> (Tom Lane)
-
-
-
- Avoid including tablespaces inside PGDATA twice in base backups
- (Dimitri Fontaine, Magnus Hagander)
-
-
-
+
+
+ Avoid including tablespaces inside PGDATA twice in base backups
+ (Dimitri Fontaine, Magnus Hagander)
+
+
+
-
-
- Avoid using the deprecated dllwrap> tool in Cygwin builds
- (Marco Atzeri)
-
-
-
+
+
+ Avoid using the deprecated dllwrap> tool in Cygwin builds
+ (Marco Atzeri)
+
+
+