diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml
index 764f812d60a..927f5d2c3d4 100644
--- a/doc/src/sgml/release-9.6.sgml
+++ b/doc/src/sgml/release-9.6.sgml
@@ -1,6 +1,1145 @@
+
+ Release 9.6.4
+
+
+ Release date:
+ 2017-08-10
+
+
+
+ This release contains a variety of fixes from 9.6.3.
+ For information about new features in the 9.6 major release, see
+ .
+
+
+
+ Migration to Version 9.6.4
+
+
+ A dump/restore is not required for those running 9.6.X.
+
+
+
+ However, if you are upgrading from a version earlier than 9.6.3,
+ see .
+
+
+
+
+ Changes
+
+
+
+
+
+
+ Correct the documentation about the process for upgrading standby
+ servers with pg_upgrade> (Bruce Momjian)
+
+
+
+ The previous documentation instructed users to start/stop the primary
+ server after running pg_upgrade> but before syncing
+ the standby servers. This sequence is unsafe.
+
+
+
+
+
+
+ Fix concurrent locking of tuple update chains (Álvaro Herrera)
+
+
+
+ If several sessions concurrently lock a tuple update chain with
+ nonconflicting lock modes using an old snapshot, and they all
+ succeed, it was possible for some of them to nonetheless fail (and
+ conclude there is no live tuple version) due to a race condition.
+ This had consequences such as foreign-key checks failing to see a
+ tuple that definitely exists but is being updated concurrently.
+
+
+
+
+
+
+ Fix potential data corruption when freezing a tuple whose XMAX is a
+ multixact with exactly one still-interesting member (Teodor Sigaev)
+
+
+
+
+
+
+ Avoid integer overflow and ensuing crash when sorting more than one
+ billion tuples in-memory (Sergey Koposov)
+
+
+
+
+
+
+ On Windows, retry process creation if we fail to reserve the address
+ range for our shared memory in the new process (Tom Lane, Amit
+ Kapila)
+
+
+
+ This is expected to fix infrequent child-process-launch failures that
+ are probably due to interference from antivirus products.
+
+
+
+
+
+
+ Fix low-probability corruption of shared predicate-lock hash table
+ in Windows builds (Thomas Munro, Tom Lane)
+
+
+
+
+
+
+ Avoid logging clean closure of an SSL connection as though
+ it were a connection reset (Michael Paquier)
+
+
+
+
+
+
+ Prevent sending SSL session tickets to clients (Tom Lane)
+
+
+
+ This fix prevents reconnection failures with ticket-aware client-side
+ SSL code.
+
+
+
+
+
+
+ Fix code for setting on
+ Solaris (Tom Lane)
+
+
+
+
+
+
+ Fix statistics collector to honor inquiry messages issued just after
+ a postmaster shutdown and immediate restart (Tom Lane)
+
+
+
+ Confusion between permanent and temporary statistics file timestamps
+ allowed the collector to think it had already written data satisfying
+ the request, when it had not. This only affected inquiries issued
+ within half a second of the previous postmaster shutdown.
+
+
+
+
+
+
+ Ensure that the statistics collector's receive buffer size is at
+ least 100KB (Tom Lane)
+
+
+
+ This reduces the risk of dropped statistics data on older platforms
+ whose default receive buffer size is less than that.
+
+
+
+
+
+
+ Fix possible creation of an invalid WAL segment when a standby is
+ promoted just after it processes an XLOG_SWITCH> WAL
+ record (Andres Freund)
+
+
+
+
+
+
+ Fix walsender> to exit promptly when client requests
+ shutdown (Tom Lane)
+
+
+
+
+
+
+ Fix SIGHUP> and SIGUSR1> handling in
+ walsender processes (Petr Jelinek, Andres Freund)
+
+
+
+
+
+
+ Prevent walsender-triggered panics during shutdown checkpoints
+ (Andres Freund, Michael Paquier)
+
+
+
+
+
+
+ Fix unnecessarily slow restarts of walreceiver>
+ processes due to race condition in postmaster (Tom Lane)
+
+
+
+
+
+
+ Fix leakage of small subtransactions spilled to disk during logical
+ decoding (Andres Freund)
+
+
+
+ This resulted in temporary files consuming excessive disk space.
+
+
+
+
+
+
+ Reduce the work needed to build snapshots during creation of
+ logical-decoding slots (Andres Freund, Petr Jelinek)
+
+
+
+ The previous algorithm was infeasibly expensive on a server with a
+ lot of open transactions.
+
+
+
+
+
+
+ Fix race condition that could indefinitely delay creation of
+ logical-decoding slots (Andres Freund, Petr Jelinek)
+
+
+
+
+
+
+ Reduce overhead in processing syscache invalidation events (Tom Lane)
+
+
+
+ This is particularly helpful for logical decoding, which triggers
+ frequent cache invalidation.
+
+
+
+
+
+
+ Remove incorrect heuristic used in some cases to estimate join
+ selectivity based on the presence of foreign-key constraints
+ (David Rowley)
+
+
+
+ In some cases where a multi-column foreign key constraint existed but
+ did not exactly match a query's join structure, the planner used an
+ estimation heuristic that turns out not to work well at all. Revert
+ such cases to the way they were estimated before 9.6.
+
+
+
+
+
+
+ Fix cases where an INSERT> or UPDATE> assigns
+ to more than one element of a column that is of domain-over-array
+ type (Tom Lane)
+
+
+
+
+
+
+ Allow window functions to be used in sub-SELECT>s that
+ are within the arguments of an aggregate function (Tom Lane)
+
+
+
+ This case is perfectly valid, but it was accidentally rejected by an
+ overly-aggressive error check.
+
+
+
+
+
+
+ Ensure that a view's CHECK OPTIONS> clause is enforced
+ properly when the underlying table is a foreign table (Etsuro Fujita)
+
+
+
+ Previously, the update might get pushed entirely to the foreign
+ server, but the need to verify the view conditions was missed if so.
+
+
+
+
+
+
+ Move autogenerated array types out of the way during
+ ALTER ... RENAME> (Vik Fearing)
+
+
+
+ Previously, we would rename a conflicting autogenerated array type
+ out of the way during CREATE>; this fix extends that
+ behavior to renaming operations.
+
+
+
+
+
+
+ Fix dangling pointer in ALTER TABLE> when there is a
+ comment on a constraint belonging to the table (David Rowley)
+
+
+
+ Re-applying the comment to the reconstructed constraint could fail
+ with a weird error message, or even crash.
+
+
+
+
+
+
+ Ensure that ALTER USER ... SET> accepts all the syntax
+ variants that ALTER ROLE ... SET> does (Peter Eisentraut)
+
+
+
+
+
+
+ Allow a foreign table's CHECK> constraints to be
+ initially NOT VALID> (Amit Langote)
+
+
+
+ CREATE TABLE> silently drops NOT VALID>
+ specifiers for CHECK> constraints, reasoning that the
+ table must be empty so the constraint can be validated immediately.
+ But this is wrong for CREATE FOREIGN TABLE>, where there's
+ no reason to suppose that the underlying table is empty, and even if
+ it is it's no business of ours to decide that the constraint can be
+ treated as valid going forward. Skip the optimization> in
+ that case.
+
+
+
+
+
+
+ Properly update dependency info when changing a datatype I/O
+ function's argument or return type from opaque> to the
+ correct type (Heikki Linnakangas)
+
+
+
+ CREATE TYPE> updates I/O functions declared in this
+ long-obsolete style, but it forgot to record a dependency on the
+ type, allowing a subsequent DROP TYPE> to leave broken
+ function definitions behind.
+
+
+
+
+
+
+ Allow parallelism in the query plan when COPY> copies from
+ a query's result (Andres Freund)
+
+
+
+
+
+
+ Reduce memory usage when ANALYZE> processes
+ a tsvector> column (Heikki Linnakangas)
+
+
+
+
+
+
+ Fix unnecessary precision loss and sloppy rounding when multiplying
+ or dividing money> values by integers or floats (Tom Lane)
+
+
+
+
+
+
+ Tighten checks for whitespace in functions that parse identifiers,
+ such as regprocedurein()> (Tom Lane)
+
+
+
+ Depending on the prevailing locale, these functions could
+ misinterpret fragments of multibyte characters as whitespace.
+
+
+
+
+
+
+ Use relevant #define> symbols from Perl while
+ compiling PL/Perl> (Ashutosh Sharma, Tom Lane)
+
+
+
+ This avoids portability problems, typically manifesting as
+ a handshake> mismatch during library load, when working with
+ recent Perl versions.
+
+
+
+
+
+
+ In libpq>, reset GSS/SASL and SSPI authentication
+ state properly after a failed connection attempt (Michael Paquier)
+
+
+
+ Failure to do this meant that when falling back from SSL to non-SSL
+ connections, a GSS/SASL failure in the SSL attempt would always cause
+ the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.
+
+
+
+
+
+
+ In psql>, fix failure when COPY FROM STDIN>
+ is ended with a keyboard EOF signal and then another COPY
+ FROM STDIN> is attempted (Thomas Munro)
+
+
+
+ This misbehavior is observed on BSD-derived platforms (including
+ macOS), but not on most others.
+
+
+
+
+
+
+ Fix pg_dump> and pg_restore> to
+ emit REFRESH MATERIALIZED VIEW> commands last (Tom Lane)
+
+
+
+ This prevents errors during dump/restore when a materialized view
+ refers to tables owned by a different user.
+
+
+
+
+
+
+ Improve pg_dump>/pg_restore>'s
+ reporting of error conditions originating in zlib>
+ (Vladimir Kunschikov, Álvaro Herrera)
+
+
+
+
+
+
+ Fix pg_dump> with the
+
+
+ It also now correctly assigns ownership of event triggers; before,
+ they were restored as being owned by the superuser running the
+ restore script.
+
+
+
+
+
+
+ Fix pg_dump> with the
+
+
+
+
+
+ Fix pg_dump> to not emit invalid SQL for an empty
+ operator class (Daniel Gustafsson)
+
+
+
+
+
+
+ Fix pg_dump> output to stdout on Windows (Kuntal Ghosh)
+
+
+
+ A compressed plain-text dump written to stdout would contain corrupt
+ data due to failure to put the file descriptor into binary mode.
+
+
+
+
+
+
+ Fix pg_get_ruledef()> to print correct output for
+ the ON SELECT> rule of a view whose columns have been
+ renamed (Tom Lane)
+
+
+
+ In some corner cases, pg_dump> relies
+ on pg_get_ruledef()> to dump views, so that this error
+ could result in dump/reload failures.
+
+
+
+
+
+
+ Fix dumping of outer joins with empty constraints, such as the result
+ of a NATURAL JOIN> with no common columns (Tom Lane)
+
+
+
+
+
+
+ Fix dumping of function expressions in the FROM> clause in
+ cases where the expression does not deparse into something that looks
+ like a function call (Tom Lane)
+
+
+
+
+
+
+ Fix pg_basebackup> output to stdout on Windows
+ (Haribabu Kommi)
+
+
+
+ A backup written to stdout would contain corrupt data due to failure
+ to put the file descriptor into binary mode.
+
+
+
+
+
+
+ Fix pg_rewind> to correctly handle files exceeding 2GB
+ (Kuntal Ghosh, Michael Paquier)
+
+
+
+ Ordinarily such files won't appear in PostgreSQL> data
+ directories, but they could be present in some cases.
+
+
+
+
+
+
+ Fix pg_upgrade> to ensure that the ending WAL record
+ does not have = minimum>
+ (Bruce Momjian)
+
+
+
+ This condition could prevent upgraded standby servers from
+ reconnecting.
+
+
+
+
+
+
+ Fix pg_xlogdump>'s computation of WAL record length
+ (Andres Freund)
+
+
+
+
+
+
+ In postgres_fdw>, re-establish connections to remote
+ servers after ALTER SERVER> or ALTER USER
+ MAPPING> commands (Kyotaro Horiguchi)
+
+
+
+ This ensures that option changes affecting connection parameters will
+ be applied promptly.
+
+
+
+
+
+
+ In postgres_fdw>, allow cancellation of transaction
+ control commands (Robert Haas, Rafia Sabih)
+
+
+
+ This change allows us to quickly escape a wait for an unresponsive
+ remote server in many more cases than previously.
+
+
+
+
+
+
+ Increase MAX_SYSCACHE_CALLBACKS> to provide more room for
+ extensions (Tom Lane)
+
+
+
+
+
+
+ Always use
+
+
+ This supports larger extension libraries on platforms where it makes
+ a difference.
+
+
+
+
+
+
+ Fix unescaped-braces issue in our build scripts for Microsoft MSVC,
+ to avoid a warning or error from recent Perl versions (Andrew
+ Dunstan)
+
+
+
+
+
+
+ In MSVC builds, handle the case where the openssl>
+ library is not within a VC> subdirectory (Andrew Dunstan)
+
+
+
+
+
+
+ In MSVC builds, add proper include path for libxml2>
+ header files (Andrew Dunstan)
+
+
+
+ This fixes a former need to move things around in standard Windows
+ installations of libxml2>.
+
+
+
+
+
+
+ In MSVC builds, recognize a Tcl library that is
+ named tcl86.lib> (Noah Misch)
+
+
+
+
+
+
+ In MSVC builds, honor PROVE_FLAGS> settings
+ on vcregress.pl>'s command line (Andrew Dunstan)
+
+
+
+
+
+
+
+
Release 9.6.3