diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml
index a122afad9ea..bd471d08bf9 100644
--- a/doc/src/sgml/release-9.6.sgml
+++ b/doc/src/sgml/release-9.6.sgml
@@ -1,6 +1,664 @@
+
+ Release 9.6.19
+
+
+ Release date:
+ 2020-08-13
+
+
+
+ This release contains a variety of fixes from 9.6.18.
+ For information about new features in the 9.6 major release, see
+ .
+
+
+
+ Migration to Version 9.6.19
+
+
+ A dump/restore is not required for those running 9.6.X.
+
+
+
+ However, if you are upgrading from a version earlier than 9.6.16,
+ see .
+
+
+
+
+ Changes
+
+
+
+
+
+
+ In logical replication walsender, fix failure to send feedback
+ messages after sending a keepalive message (Álvaro Herrera)
+
+
+
+ This is a relatively minor problem when using built-in logical
+ replication, because the built-in walreceiver will send a feedback
+ reply (which clears the incorrect state) fairly frequently anyway.
+ But with some other replication systems, such
+ as pglogical, it causes significant
+ performance issues.
+
+
+
+
+
+
+ Fix slow execution of ts_headline() (Tom Lane)
+
+
+
+ The phrase-search fix added in our previous set of minor releases
+ could cause ts_headline() to take unreasonable
+ amounts of time for long documents; to make matters worse, the query
+ was not cancellable within the troublesome loop.
+
+
+
+
+
+
+ Ensure the repeat() function can be interrupted
+ by query cancel (Joe Conway)
+
+
+
+
+
+
+ Fix mis-handling of NaN inputs during parallel
+ aggregation on numeric-type columns (Tom Lane)
+
+
+
+ If some partial aggregation workers found only NaNs
+ while others found only non-NaNs, the results
+ were combined incorrectly, possibly leading to the wrong overall
+ result (i.e., not NaN when it should be).
+
+
+
+
+
+
+ Undo double-quoting of index names in EXPLAIN's
+ non-text output formats (Tom Lane, Euler Taveira)
+
+
+
+
+
+
+ Fix timing of constraint revalidation in ALTER
+ TABLE (David Rowley)
+
+
+
+ If ALTER TABLE needs to fully rewrite the table's
+ contents (for example, due to change of a column's data type) and
+ also needs to scan the table to re-validate foreign keys
+ or CHECK constraints, it sometimes did things in
+ the wrong order, leading to odd errors such as could not read
+ block 0 in file "base/nnnnn/nnnnn": read only 0 of 8192 bytes
.
+
+
+
+
+
+
+ Cope with LATERAL references in restriction
+ clauses attached to an un-flattened sub-SELECT in
+ the FROM clause (Tom Lane)
+
+
+
+ This oversight could result in assertion failures or crashes at
+ query execution.
+
+
+
+
+
+
+ Avoid believing that a never-analyzed foreign table has zero tuples
+ (Tom Lane)
+
+
+
+ This primarily affected the planner's estimate of the number of
+ groups that would be obtained by GROUP BY.
+
+
+
+
+
+
+ Improve error handling in the server's buffile
+ module (Thomas Munro)
+
+
+
+ Fix some cases where I/O errors were indistinguishable from reaching
+ EOF, or were not reported at all. Also add details such as block
+ numbers and byte counts where appropriate.
+
+
+
+
+
+
+ Fix conflict-checking anomalies in SERIALIZABLE
+ isolation mode (Peter Geoghegan)
+
+
+
+ If a concurrently-inserted tuple was updated by a different
+ concurrent transaction, and neither tuple version was visible to the
+ current transaction's snapshot, serialization conflict checking
+ could draw the wrong conclusions about whether the tuple was relevant
+ to the results of the current transaction. This could allow a
+ serializable transaction to commit when it should have failed with a
+ serialization error.
+
+
+
+
+
+
+ Avoid repeated marking of dead btree index entries as dead (Masahiko
+ Sawada)
+
+
+
+ While functionally harmless, this led to useless WAL traffic when
+ checksums are enabled or wal_log_hints is on.
+
+
+
+
+
+
+ Fix failure of some code paths to acquire the correct lock before
+ modifying pg_control (Nathan Bossart, Fujii
+ Masao)
+
+
+
+ This oversight could allow pg_control to be
+ written out with an inconsistent checksum, possibly causing trouble
+ later, including inability to restart the database if it crashed
+ before the next pg_control update.
+
+
+
+
+
+
+ Fix errors in currtid()
+ and currtid2() (Michael Paquier)
+
+
+
+ These functions (which are undocumented and used only by ancient
+ versions of the ODBC driver) contained coding errors that could
+ result in crashes, or in confusing error messages such as could
+ not open file
when applied to a relation having no storage.
+
+
+
+
+
+
+ Avoid calling elog()
+ or palloc() while holding a spinlock (Michael
+ Paquier, Tom Lane)
+
+
+
+ Logic associated with replication slots had several violations of
+ this coding rule. While the odds of trouble are quite low, an error
+ in the called function would lead to a stuck spinlock.
+
+
+
+
+
+
+ Report out-of-disk-space errors properly
+ in pg_dump
+ and pg_basebackup (Justin Pryzby, Tom
+ Lane, Álvaro Herrera)
+
+
+
+ Some code paths could produce silly reports like could not
+ write file: Success
.
+
+
+
+
+
+
+ Fix parallel restore of tables having both table-level privileges
+ and per-column privileges (Tom Lane)
+
+
+
+ The table-level privilege grants have to be applied first, but a
+ parallel restore did not reliably order them that way; this could
+ lead to tuple concurrently updated
errors, or to
+ disappearance of some per-column privilege grants. The fix for this
+ is to include dependency links between such entries in the archive
+ file, meaning that a new dump has to be taken with a
+ corrected pg_dump to ensure that the
+ problem will not recur.
+
+
+
+
+
+
+ Ensure that pg_upgrade runs
+ with vacuum_defer_cleanup_age set to zero in the
+ target cluster (Bruce Momjian)
+
+
+
+ If the target cluster's configuration has been modified to
+ set vacuum_defer_cleanup_age to a nonzero value,
+ that prevented freezing of the system catalogs from working properly,
+ which caused the upgrade to fail in confusing ways. Ensure that any
+ such setting is overridden for the duration of the upgrade.
+
+
+
+
+
+
+ Fix pg_recvlogical to drain pending
+ messages before exiting (Noah Misch)
+
+
+
+ Without this, the replication sender might detect a send failure and
+ exit without making the expected final update to the replication
+ slot's LSN position. That led to re-transmitting data after the
+ next connection. It was also possible to miss error messages sent
+ after the last data that pg_recvlogical
+ wants to consume.
+
+
+
+
+
+
+ Fix pg_rewind's handling of just-deleted
+ files in the source data directory (Justin Pryzby, Michael Paquier)
+
+
+
+ When working with an on-line source database, concurrent file
+ deletions are possible, but pg_rewind
+ would get confused if deletion happened between seeing a file's
+ directory entry and examining it with stat().
+
+
+
+
+
+
+ Make pg_test_fsync use binary I/O mode on
+ Windows (Michael Paquier)
+
+
+
+ Previously it wrote the test file in text mode, which is not an
+ accurate reflection of PostgreSQL's
+ actual usage.
+
+
+
+
+
+
+ Fix failure to initialize local state correctly
+ in contrib/dblink (Joe Conway)
+
+
+
+ With the right combination of circumstances, this could lead to
+ dblink_close() issuing an unexpected
+ remote COMMIT.
+
+
+
+
+
+
+ Fix contrib/pgcrypto's misuse
+ of deflate() (Tom Lane)
+
+
+
+ The pgp_sym_encrypt functions could produce
+ incorrect compressed data due to mishandling
+ of zlib's API requirements. We have no
+ reports of this error manifesting with
+ stock zlib, but it can be seen when using
+ IBM's zlibNX implementation.
+
+
+
+
+
+
+ Fix corner case in decompression logic
+ in contrib/pgcrypto's
+ pgp_sym_decrypt functions (Kyotaro Horiguchi,
+ Michael Paquier)
+
+
+
+ A compressed stream can validly end with an empty packet, but the
+ decompressor failed to handle this and would complain about corrupt
+ data.
+
+
+
+
+
+
+ Use POSIX-standard strsignal() in place of the
+ BSD-ish sys_siglist[] (Tom Lane)
+
+
+
+ This avoids build failures with very recent versions
+ of glibc.
+
+
+
+
+
+
+ Support building our NLS code with Microsoft Visual Studio 2015 or
+ later (Juan José Santamaría Flecha, Davinder Singh,
+ Amit Kapila)
+
+
+
+
+
+
+ Avoid possible failure of our MSVC install script when there is a
+ file named configure several levels above the
+ source code tree (Arnold Müller)
+
+
+
+ This could confuse some logic that looked
+ for configure to identify the top level of the
+ source tree.
+
+
+
+
+
+
+
+
Release 9.6.18