diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml
index 2f51d677db8..95939ee3036 100644
--- a/doc/src/sgml/release-9.3.sgml
+++ b/doc/src/sgml/release-9.3.sgml
@@ -1,6 +1,1259 @@
+
+ Release 9.3.3
+
+
+ Release Date
+ 2014-02-20
+
+
+
+ This release contains a variety of fixes from 9.3.2.
+ For information about new features in the 9.3 major release, see
+ .
+
+
+
+ Migration to Version 9.3.3
+
+
+ A dump/restore is not required for those running 9.3.X.
+
+
+
+ However, several of the issues corrected in this release could have
+ resulted in corruption of foreign-key constraints; that is, there
+ might now be referencing rows for which there is no matching row in
+ the referenced table. It may be worthwhile to recheck such
+ constraints after installing this update. The simplest way to do that
+ is to drop and recreate each suspect constraint; however, that will
+ require taking an exclusive lock on both tables, so it is unlikely to
+ be acceptable in production databases. Alternatively, you can do a
+ manual join query between the two tables to look for unmatched rows.
+
+
+
+ Note also the requirement for replication standby servers to be
+ upgraded before their master server is upgraded.
+
+
+
+ Also, if you are upgrading from a version earlier than 9.3.2,
+ see .
+
+
+
+
+
+ Changes
+
+
+
+
+
+
+
+ Rework tuple freezing protocol
+ (Álvaro Herrera, Andres Freund)
+
+
+
+ The method for tuple freezing was unable to handle some cases
+ involving freezing of multixact> IDs, with the practical
+ effect that shared row-level locks might be forgotten once old enough.
+
+
+
+ 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
+ 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
+ standby should be sufficient to let it resume execution.)
+
+
+
+
+
+
+
+ Create separate GUC parameters to control multixact freezing
+ (Álvaro Herrera)
+
+
+
+ 9.3 requires multixact tuple labels to be frozen before
+ they grow too old, in the same fashion as plain transaction ID labels
+ have been frozen for some time. Previously, the transaction ID
+ freezing parameters were used for multixact IDs too; but since
+ the consumption rates of transaction IDs and multixact IDs can be
+ quite different, this did not work very well. Introduce new settings
+ ,
+ , and
+
+ to control when to freeze multixacts.
+
+
+
+
+
+
+
+ Fix multixact freezing of tuples that predate
+ a pg_upgrade> to 9.3
+ (Álvaro Herrera)
+
+
+
+ This oversight would result in complaints such as ERROR:
+ MultiXactId 11415437 does no longer exist -- apparent wraparound>.
+
+
+
+
+
+
+
+ Account for remote row locks propagated by local updates
+ (Álvaro Herrera)
+
+
+
+ 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.
+
+
+
+ This oversight could allow referential integrity checks to give false
+ positives (that is, 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)
+
+
+
+
+
+
+
+ Fix incorrect logic during update chain locking
+ (Álvaro Herrera)
+
+
+
+ This mistake could result in spurious could not serialize access
+ due to concurrent update> errors in REPEATABLE READ>
+ and SERIALIZABLE> transaction isolation modes.
+
+
+
+
+
+
+
+ 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)
+
+
+
+
+
+
+
+ Improve performance of multixact cache code
+ (Álvaro Herrera)
+
+
+
+
+
+
+
+ Optimize updating a row that's already locked by the same transaction
+ (Andres Freund, Álvaro Herrera)
+
+
+
+ This fixes a performance regression from pre-9.3 versions when doing
+ SELECT FOR UPDATE> followed by UPDATE/DELETE>.
+
+
+
+
+
+
+
+ During archive recovery, prefer highest timeline number when WAL
+ segments with the same ID are present in both the archive
+ and pg_xlog/> (Kyotaro Horiguchi)
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Fix possible mis-replay of WAL records when some segments of a
+ relation aren't full size (Greg Stark, Tom Lane)
+
+
+
+ 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 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 an actively-changing master.
+
+
+
+
+
+
+
+ Fix bug in determining when recovery has reached consistency
+ (Tomonari Katsumata, Heikki Linnakangas)
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Fix WAL logging of visibility map changes (Heikki Linnakangas)
+
+
+
+
+
+
+
+ Fix improper locking of btree index pages while replaying
+ a VACUUM> operation in Hot Standby mode (Andres Freund,
+ Heikki Linnakangas, Tom Lane)
+
+
+
+ This error could result in PANIC: WAL contains references to
+ invalid pages> failures.
+
+
+
+
+
+
+
+ Ensure that insertions into non-leaf GIN index pages make a full-page
+ WAL record when appropriate (Heikki Linnakangas)
+
+
+
+ The previous coding risked data corruption in the event of a
+ torn-page update.
+
+
+
+
+
+
+
+ When pause_at_recovery_target>
+ and recovery_target_inclusive> are both set, ensure the
+ target record is applied before pausing, not after (Heikki
+ Linnakangas)
+
+
+
+
+
+
+
+ Ensure walreceiver sends Hot Standby feedback messages on time even
+ when there is a continuous stream of data (Andres Freund, Amit
+ Kapila)
+
+
+
+
+
+
+
+ Fix race conditions in walsender shutdown logic and walreceiver
+ SIGHUP signal handler (Tom Lane)
+
+
+
+
+
+
+
+ Fix race conditions during server process exit (Robert Haas)
+
+
+
+ Ensure that signal handlers don't attempt to use
+ the process's MyProc> pointer after it's no longer valid.
+
+
+
+
+
+
+
+ Fix unsafe references to errno> within error messaging
+ logic (Christian Kruse)
+
+
+
+ This would typically lead to odd behaviors such as missing or
+ inappropriate HINT> fields.
+
+
+
+
+
+
+
+ Fix possible crashes from using ereport()> too early
+ during server startup (Tom Lane)
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Prevent timeout interrupts from taking control away from mainline
+ code unless ImmediateInterruptOK> is set
+ (Andres Freund, Tom Lane)
+
+
+
+ This was initially reported as a stuck spinlock> failure,
+ but many other misbehaviors are possible after a statement timeout.
+
+
+
+
+
+
+
+ Clear retry flags properly in replacement OpenSSL socket write
+ function (Alexander Kukushkin)
+
+
+
+ This omission resulted in a server lockup after unexpected loss of an
+ SSL-encrypted connection.
+
+
+
+
+
+
+
+ Fix length checking for Unicode identifiers (U&"...">
+ syntax) containing escapes (Tom Lane)
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Fix parsing of Unicode literals and identifiers just before the end
+ of a command string or function body (Tom Lane)
+
+
+
+
+
+
+
+ Allow keywords that are type names to be used in lists of roles
+ (Stephen Frost)
+
+
+
+ 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 DROP ROLE>.
+
+
+
+
+
+
+
+ Fix parser crash for EXISTS(SELECT * FROM
+ zero_column_table) (Tom Lane)
+
+
+
+
+
+
+
+ Fix possible crash due to invalid plan for nested sub-selects, such
+ as WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)>
+ (Tom Lane)
+
+
+
+
+
+
+
+ Fix mishandling of WHERE> conditions pulled up from
+ a LATERAL> subquery (Tom Lane)
+
+
+
+ The typical symptom of this bug was a JOIN qualification
+ cannot refer to other relations> error, though subtle logic
+ errors in created plans seem possible as well.
+
+
+
+
+
+
+
+ Disallow LATERAL> references to the target table of
+ an UPDATE/DELETE> (Tom Lane)
+
+
+
+ While this might be allowed in some future release, it was
+ unintentional in 9.3, and didn't work quite right anyway.
+
+
+
+
+
+
+
+ Fix UPDATE/DELETE> of an inherited target table
+ that has UNION ALL> subqueries (Tom Lane)
+
+
+
+ Without this fix, 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).
+
+
+
+
+
+
+
+ Fix ANALYZE> to not fail on a column that's a domain over
+ a range type (Tom Lane)
+
+
+
+
+
+
+
+ Ensure that ANALYZE> creates statistics for a table column
+ even when all the values in it are too wide> (Tom Lane)
+
+
+
+ ANALYZE> intentionally omits very wide values from its
+ histogram and most-common-value calculations, but it neglected to do
+ something sane in the case that all the sampled entries are too wide.
+
+
+
+
+
+
+
+ In ALTER TABLE ... SET TABLESPACE>, allow the database's
+ default tablespace to be used without a permissions check
+ (Stephen Frost)
+
+
+
+ CREATE TABLE> works this way, but ALTER TABLE>
+ didn't get the memo.
+
+
+
+
+
+
+
+ Fix support for extensions containing event triggers (Tom Lane)
+
+
+
+
+
+
+
+ Fix cannot accept a set> error when some arms of a CASE
+ return a set and others don't (Tom Lane)
+
+
+
+
+
+
+
+ Fix memory leakage in JSON functions (Craig Ringer)
+
+
+
+
+
+
+
+ Properly distinguish numbers from non-numbers when generating JSON
+ output (Andrew Dunstan)
+
+
+
+
+
+
+
+ Fix checks for all-zero client addresses in pgstat functions (Kevin
+ Grittner)
+
+
+
+
+
+
+
+ Fix possible misclassification of multibyte characters by the text
+ search parser (Tom Lane)
+
+
+
+ Non-ASCII characters could be misclassified when using C locale with
+ a multibyte encoding. On Cygwin, non-C locales could fail as well.
+
+
+
+
+
+
+
+ Fix possible misbehavior in plainto_tsquery()>
+ (Heikki Linnakangas)
+
+
+
+ Use memmove()> not memcpy()> for copying
+ overlapping memory regions. There have been no field reports of
+ this actually causing trouble, but it's certainly risky.
+
+
+
+
+
+
+
+ Fix placement of permissions checks in pg_start_backup()>
+ and pg_stop_backup()> (Andres Freund, Magnus Hagander)
+
+
+
+ The previous coding might attempt to do catalog access when it
+ shouldn't.
+
+
+
+
+
+
+
+ Accept SHIFT_JIS> as an encoding name for locale checking
+ (Tatsuo Ishii)
+
+
+
+
+
+
+
+ Fix *>-qualification of named parameters in SQL-language
+ functions (Tom Lane)
+
+
+
+ Given a composite-type parameter
+ named foo>, $1.*> worked fine,
+ but foo.*> not so much.
+
+
+
+
+
+
+
+ Fix misbehavior of PQhost()> on Windows (Fujii Masao)
+
+
+
+ It should return localhost> if no host has been specified.
+
+
+
+
+
+
+
+ Improve error handling in psql> and libpq>
+ for failures during COPY TO STDOUT/FROM STDIN> (Tom Lane)
+
+
+
+ In particular this fixes an infinite loop that could occur in 9.2 and
+ up if the server connection was lost during COPY FROM
+ STDIN>. Variants of that scenario might be possible in older
+ versions, or with other client applications.
+
+
+
+
+
+
+
+ Fix incorrect translation handling in
+ some psql> \d> commands
+ (Peter Eisentraut, Tom Lane)
+
+
+
+
+
+
+
+
+
+
+ Avoid including tablespaces inside PGDATA twice in base backups
+ (Dimitri Fontaine, Magnus Hagander)
+
+
+
+
+
+
+
+ Ensure pg_basebackup>'s background process is killed
+ when exiting its foreground process (Magnus Hagander)
+
+
+
+
+
+
+
+ Fix possible incorrect printing of filenames
+ in pg_basebackup>'s verbose mode (Magnus Hagander)
+
+
+
+
+
+
+
+ Fix misaligned descriptors in ecpg> (MauMau)
+
+
+
+
+
+
+
+ In ecpg>, handle lack of a hostname in the connection
+ parameters properly (Michael Meskes)
+
+
+
+
+
+
+
+ Fix performance regression in contrib/dblink> connection
+ setup (Joe Conway)
+
+
+
+ Avoid an unnecessary round trip when client and server encodings match.
+
+
+
+
+
+
+
+ In contrib/isn>, fix incorrect calculation of the check
+ digit for ISMN values (Fabien Coelho)
+
+
+
+
+
+
+
+ Fix contrib/pgbench>'s progress logging to avoid overflow
+ when the scale factor is large (Tatsuo Ishii)
+
+
+
+
+
+
+
+ Fix contrib/pg_stat_statement>'s handling
+ of CURRENT_DATE> and related constructs (Kyotaro
+ Horiguchi)
+
+
+
+
+
+
+
+ Improve lost-connection error handling
+ in contrib/postgres_fdw> (Tom Lane)
+
+
+
+
+
+
+
+ Ensure client-code-only installation procedure works as documented
+ (Peter Eisentraut)
+
+
+
+
+
+
+
+ Avoid using the deprecated dllwrap> tool in Cygwin builds
+ (Marco Atzeri)
+
+
+
+
+
+
+
+ In Mingw and Cygwin builds, install the libpq> DLL
+ in the bin> directory (Andrew Dunstan)
+
+
+
+ This duplicates what the MSVC build has long done. It should fix
+ problems with programs like psql> failing to start
+ because they can't find the DLL.
+
+
+
+
+
+
+
+ Enable building with Visual Studio 2013 (Brar Piening)
+
+
+
+
+
+
+
+ Don't generate plain-text HISTORY>
+ and src/test/regress/README> files anymore (Tom Lane)
+
+
+
+ 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
+ directing the reader to consult the main documentation.
+ The plain-text INSTALL> file will still be maintained, as
+ there is arguably an audience for that.
+
+
+
+
+
+
+
+ Update time zone data files to tzdata> release 2013i
+ for DST law changes in Jordan and historical changes in Cuba.
+
+
+
+ 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.
+
+
+
+
+
+
+
+
Release 9.3.2