diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml
index 487101144f6..6e1a54fc4f1 100644
--- a/doc/src/sgml/release-9.6.sgml
+++ b/doc/src/sgml/release-9.6.sgml
@@ -1,6 +1,849 @@
+
+ Release 9.6.20
+
+
+ Release date:
+ 2020-11-12
+
+
+
+ This release contains a variety of fixes from 9.6.19.
+ For information about new features in the 9.6 major release, see
+ .
+
+
+
+ Migration to Version 9.6.20
+
+
+ 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
+
+
+
+
+
+
+ Prevent possible data loss from concurrent truncations of SLRU logs
+ (Noah Misch)
+
+
+
+ This rare problem would manifest in later apparent
+ wraparound or could not access status of
+ transaction errors.
+
+
+
+
+
+
+ Ensure that SLRU directories are properly fsync'd during checkpoints
+ (Thomas Munro)
+
+
+
+ This prevents possible data loss in a subsequent operating system
+ crash.
+
+
+
+
+
+
+ Fix ALTER ROLE for users with
+ the BYPASSRLS attribute (Tom Lane, Stephen Frost)
+
+
+
+ The BYPASSRLS attribute is only allowed to be
+ changed by superusers, but other ALTER ROLE
+ operations, such as password changes, should be allowed with only
+ ordinary permission checks. The previous coding erroneously
+ restricted all changes on such a role to superusers.
+
+
+
+
+
+
+ Fix handling of expressions in CREATE TABLE LIKE
+ with inheritance (Tom Lane)
+
+
+
+ If a CREATE TABLE command uses
+ both LIKE and traditional inheritance, column
+ references in CHECK constraints and expression
+ indexes that came from a LIKE parent table tended
+ to get mis-numbered, resulting in wrong answers and/or bizarre error
+ messages. The same could happen in GENERATED
+ expressions, in branches that have that feature.
+
+
+
+
+
+
+ Fix off-by-one conversion of negative years to BC dates
+ in to_date()
+ and to_timestamp() (Dar Alathar-Yemen, Tom Lane)
+
+
+
+ Also, arrange for the combination of a negative year and an
+ explicit BC marker to cancel out and produce AD.
+
+
+
+
+
+
+ Ensure that standby servers will archive WAL timeline history files
+ when archive_mode is set
+ to always (Grigory Smolkin, Fujii Masao)
+
+
+
+ This oversight could lead to failure of subsequent PITR recovery
+ attempts.
+
+
+
+
+
+
+ During smart shutdown, don't terminate background
+ processes until all client (foreground) sessions are done (Tom Lane)
+
+
+
+ The previous behavior broke parallel query processing, since the
+ postmaster would terminate parallel workers and refuse to launch any
+ new ones. It also caused autovacuum to cease functioning, which
+ could have dire long-term effects if the surviving client sessions
+ make a lot of data changes.
+
+
+
+
+
+
+ Avoid recursive consumption of stack space while processing signals
+ in the postmaster (Tom Lane)
+
+
+
+ Heavy use of parallel processing has been observed to cause
+ postmaster crashes due to too many concurrent signals requesting
+ creation of a parallel worker process.
+
+
+
+
+
+
+ Avoid running atexit handlers when exiting
+ due to SIGQUIT (Kyotaro Horiguchi, Tom Lane)
+
+
+
+ Most server processes followed this practice already, but the
+ archiver process was overlooked. Backends that were still waiting
+ for a client startup packet got it wrong, too.
+
+
+
+
+
+
+ Avoid misoptimization of subquery qualifications that reference
+ apparently-constant grouping columns (Tom Lane)
+
+
+
+ A constant subquery output column isn't really
+ constant if it is a grouping column that appears in only some of the
+ grouping sets.
+
+
+
+
+
+
+ Avoid failure when SQL function inlining changes the shape of a
+ potentially-hashable subplan comparison expression (Tom Lane)
+
+
+
+
+
+
+ While building or re-building an index, tolerate the appearance of
+ new HOT chains due to concurrent updates
+ (Anastasia Lubennikova, Álvaro Herrera)
+
+
+
+ This oversight could lead to failed to find parent tuple for
+ heap-only tuple errors.
+
+
+
+
+
+
+ Ensure that data is detoasted before being inserted into a BRIN
+ index (Tomas Vondra)
+
+
+
+ Index entries are not supposed to contain out-of-line TOAST
+ pointers, but BRIN didn't get that memo. This could lead to errors
+ like missing chunk number 0 for toast value NNN.
+ (If you are faced with such an error from an existing
+ index, REINDEX should be enough to fix it.)
+
+
+
+
+
+
+ Handle concurrent desummarization correctly during BRIN index scans
+ (Alexander Lakhin, Álvaro Herrera)
+
+
+
+ Previously, if a page range was desummarized at just the wrong time,
+ an index scan might falsely raise an error indicating index
+ corruption.
+
+
+
+
+
+
+ Fix rare lost saved point in index errors in scans of
+ multicolumn GIN indexes (Tom Lane)
+
+
+
+
+
+
+ Fix use-after-free hazard when an event trigger monitors
+ an ALTER TABLE operation (Jehan-Guillaume de
+ Rorthais)
+
+
+
+
+
+
+ Fix incorrect error message about inconsistent moving-aggregate
+ data types (Jeff Janes)
+
+
+
+
+
+
+ Avoid lockup when a parallel worker reports a very long error
+ message (Vignesh C)
+
+
+
+
+
+
+ Avoid unnecessary failure when transferring very large payloads
+ through shared memory queues (Markus Wanner)
+
+
+
+
+
+
+ Fix relation cache memory leaks with RLS policies (Tom Lane)
+
+
+
+
+
+
+ Fix small memory leak when SIGHUP processing decides that a new GUC
+ variable value cannot be applied without a restart (Tom Lane)
+
+
+
+
+
+
+ Make libpq support arbitrary-length lines
+ in .pgpass files (Tom Lane)
+
+
+
+ This is mostly useful to allow using very long security tokens as
+ passwords.
+
+
+
+
+
+
+ In libpq for Windows,
+ call WSAStartup() once per process
+ and WSACleanup() not at all (Tom Lane,
+ Alexander Lakhin)
+
+
+
+ Previously, libpq
+ invoked WSAStartup() at connection start
+ and WSACleanup() at connection cleanup.
+ However, it appears that calling WSACleanup()
+ can interfere with other program operations; notably, we have
+ observed rare failures to emit expected output to stdout. There
+ appear to be no ill effects from omitting the call, so do that.
+ (This also eliminates a performance issue from repeated DLL loads and
+ unloads when a program performs a series of database connections.)
+
+
+
+
+
+
+ Fix ecpg library's per-thread
+ initialization logic for Windows (Tom Lane, Alexander Lakhin)
+
+
+
+ Multi-threaded ecpg applications could
+ suffer rare misbehavior due to incorrect locking.
+
+
+
+
+
+
+ On Windows, make psql read the output of
+ a backtick command in text mode, not binary mode (Tom Lane)
+
+
+
+ This ensures proper handling of newlines.
+
+
+
+
+
+
+ Fix usage of complex connection-string parameters
+ in pg_dump,
+ pg_restore,
+ clusterdb,
+ reindexdb,
+ and vacuumdb (Tom Lane)
+
+
+
+ The parameter
+ of pg_dump
+ and pg_restore, or
+ the parameter of the other
+ programs mentioned, can be a connection string
+ containing multiple connection parameters rather than just a
+ database name. In cases where these programs need to initiate
+ additional connections, such as parallel processing or processing of
+ multiple databases, the connection string was forgotten and just the
+ basic connection parameters (database name, host, port, and
+ username) were used for the additional connections. This could lead
+ to connection failures if the connection string included any other
+ essential information, such as non-default SSL or GSS parameters.
+
+
+
+
+
+
+ When psql's \connect
+ command re-uses connection parameters, ensure that all
+ non-overridden parameters from a previous connection string are
+ re-used (Tom Lane)
+
+
+
+ This avoids cases where reconnection might fail due to omission of
+ relevant parameters, such as non-default SSL or GSS options. This
+ is largely the same problem as just cited
+ for pg_dump et al,
+ although psql's behavior is more complex
+ since the user may intentionally override some connection
+ parameters.
+
+
+
+
+
+
+ Ensure that pg_dump collects per-column
+ information about extension configuration tables (Fabrízio de
+ Royes Mello, Tom Lane)
+
+
+
+ Failure to do this led to crashes when
+ specifying , or underspecified (though
+ usually correct) COPY commands when
+ using COPY to reload the tables' data.
+
+
+
+
+
+
+ Make pg_upgrade check for pre-existence
+ of tablespace directories in the target cluster (Bruce Momjian)
+
+
+
+
+
+
+ Fix potential memory leak in contrib/pgcrypto
+ (Michael Paquier)
+
+
+
+
+
+
+ Add check for an unlikely failure case
+ in contrib/pgcrypto (Daniel Gustafsson)
+
+
+
+
+
+
+ Use return not exit() in
+ configure's
+ test programs (Peter Eisentraut)
+
+
+
+ This avoids failures with pickier compilers.
+
+
+
+
+
+
+ Update time zone data files to tzdata
+ release 2020d for DST law changes in Fiji, Morocco, Palestine, the
+ Canadian Yukon, Macquarie Island, and Casey Station (Antarctica);
+ plus historical corrections for France, Hungary, Monaco, and
+ Palestine.
+
+
+
+
+
+
+ Sync our copy of the timezone library with IANA tzcode release 2020d
+ (Tom Lane)
+
+
+
+ This absorbs upstream's change of zic's
+ default output option from fat
+ to slim. That's just cosmetic for our purposes, as
+ we continue to select the fat mode in pre-v13
+ branches. This change also ensures
+ that strftime() does not
+ change errno unless it fails.
+
+
+
+
+
+
+
+
Release 9.6.19