diff --git a/doc/src/sgml/release-13.sgml b/doc/src/sgml/release-13.sgml
index 418397bda1f..235d39ab6cb 100644
--- a/doc/src/sgml/release-13.sgml
+++ b/doc/src/sgml/release-13.sgml
@@ -1,6 +1,1377 @@
+
+ Release 13.1
+
+
+ Release date:
+ 2020-11-12
+
+
+
+ This release contains a variety of fixes from 13.0.
+ For information about new features in major release 13, see
+ .
+
+
+
+ Migration to Version 13.1
+
+
+ A dump/restore is not required for those running 13.X.
+
+
+
+
+ Changes
+
+
+
+
+
+
+ Fix unintended breakage of the replication protocol
+ (Álvaro Herrera)
+
+
+
+ A walsender reports two command-completion events
+ for START_REPLICATION. This was undocumented and
+ apparently unintentional; so we failed to notice that a late 13.0
+ change removed the duplicate event. However it turns out that
+ walreceivers require the extra event in some code paths. The most
+ practical fix is to decree that the extra event is part of the
+ protocol and resume generating it.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Disallow ALTER TABLE ONLY ... DROP EXPRESSION when
+ there are child tables (Peter Eisentraut)
+
+
+
+ The current implementation cannot handle this case correctly, so just
+ forbid it for now.
+
+
+
+
+
+
+ Ensure that ALTER TABLE ONLY ... ENABLE/DISABLE
+ TRIGGER does not recurse to child tables
+ (Álvaro Herrera)
+
+
+
+ Previously the ONLY flag was ignored.
+
+
+
+
+
+
+ Avoid unnecessary recursion to partitions in ALTER TABLE
+ SET NOT NULL, when the target column is already
+ marked NOT NULL (Tom Lane)
+
+
+
+ This avoids a potential deadlock in
+ parallel pg_restore.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Disallow DROP INDEX CONCURRENTLY on a partitioned
+ table (Álvaro Herrera, Michael Paquier)
+
+
+
+ This case failed anyway, but with a confusing error message.
+
+
+
+
+
+
+ Allow LOCK TABLE to succeed on a self-referential
+ view (Tom Lane)
+
+
+
+ It previously threw an error complaining about infinite recursion,
+ but there seems no need to disallow the case.
+
+
+
+
+
+
+ Retain statistics about an index across REINDEX
+ CONCURRENTLY (Michael Paquier, Fabrízio de Royes Mello)
+
+
+
+ Non-concurrent reindexing has always preserved such statistics.
+
+
+
+
+
+
+ Fix incorrect progress reporting from REINDEX
+ CONCURRENTLY (Matthias van de Meent, Michael Paquier)
+
+
+
+
+
+
+ Ensure that GENERATED columns are updated when
+ the column(s) they depend on are updated via a rule or an updatable
+ view (Tom Lane)
+
+
+
+ This fix also takes care of possible failure to fire a
+ column-specific trigger in such cases.
+
+
+
+
+
+
+ Recheck default partition constraints while routing an inserted or
+ updated tuple to the correct partition (Amit Langote,
+ Álvaro Herrera)
+
+
+
+ This fixes race conditions when partitions are added concurrently
+ with the insertion.
+
+
+
+
+
+
+ Fix failures with collation-dependent partition bound expressions
+ (Tom Lane)
+
+
+
+
+
+
+ Support hashing of text arrays (Peter Eisentraut)
+
+
+
+ Array hashing failed if the array element type is collatable.
+ Notably, this prevented using hash partitioning with a text array
+ column as partition key.
+
+
+
+
+
+
+ Prevent internal overflows in cross-type datetime
+ comparisons (Alexander Korotkov, Tom Lane)
+
+
+
+ Previously, comparing a date to a timestamp would fail if the date
+ is past the valid range for timestamps. There were also corner
+ cases involving overflow of close-to-the-limit timestamp values
+ during timezone rotation.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Allow the jsonpath.datetime()
+ method to accept ISO 8601-format timestamps (Nikita Glukhov)
+
+
+
+ This is not required by SQL, but it seems appropriate since
+ our to_json() functions generate that timestamp
+ format for Javascript compatibility.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Fix cache lookup failed for relation 0
+ failures in logical replication workers (Tom Lane)
+
+
+
+ The real-world impact is small, since the failure is unlikely, and
+ if it does happen the worker would just exit and be restarted.
+
+
+
+
+
+
+ Prevent logical replication workers from sending redundant ping
+ requests (Tom Lane)
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Fix edge cases in detecting premature death of the postmaster on
+ platforms that use kqueue() (Thomas Munro)
+
+
+
+
+
+
+ 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 generating an incorrect incremental-sort plan when the sort key
+ is a volatile expression (James Coleman)
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Fix possible crash when considering partition-wise joins
+ during GEQO planning (Tom Lane)
+
+
+
+
+
+
+ Avoid failure when SQL function inlining changes the shape of a
+ potentially-hashable subplan comparison expression (Tom Lane)
+
+
+
+
+
+
+ Fix possible infinite loop or corrupted output data in TOAST
+ decompression (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.
+
+
+
+
+
+
+ Fix counting of the number of entries in B-tree indexes during
+ cleanup-only VACUUMs (Peter Geoghegan)
+
+
+
+
+
+
+ Fix failure of parallel B-tree index scans when the index condition
+ is unsatisfiable (James Hunter)
+
+
+
+
+
+
+ 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 buffered GiST index builds to work when the index has included
+ columns (Pavel Borisov)
+
+
+
+
+
+
+ Fix unportable use of getnameinfo()
+ in pg_hba_file_rules view (Tom Lane)
+
+
+
+ On FreeBSD 11, and possibly other platforms, the
+ view's address
+ and netmask columns were always null due
+ to this error.
+
+
+
+
+
+
+ Avoid crash if debug_query_string is NULL
+ when starting a parallel worker (Noah Misch)
+
+
+
+
+
+
+ Fix use-after-free hazard when an event trigger monitors
+ an ALTER TABLE operation (Jehan-Guillaume de
+ Rorthais)
+
+
+
+
+
+
+ Avoid failures when a BEFORE ROW UPDATE trigger
+ returns the old row of a table
+ having missing attributes (Amit Langote)
+
+
+
+ This method of suppressing an update could result in unexpected
+ CHECK constraint failures or
+ incorrect RETURNING output, because
+ the missing columns would read as NULLs for those
+ purposes. (A column is missing for this purpose if
+ it was added by ALTER TABLE ADD COLUMN with a
+ non-NULL, but constant, default value.)
+
+
+
+
+
+
+ Fix EXPLAIN's output for incremental sort plans
+ to have correct tag nesting in XML output mode (Daniel Gustafsson)
+
+
+
+
+
+
+ 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 omission of result data type coercion in some cases in
+ SQL-language functions (Tom Lane)
+
+
+
+ This could lead to wrong results or crashes, depending on the data
+ types involved.
+
+
+
+
+
+
+ Fix incorrect handling of template function attributes in JIT code
+ generation (Andres Freund)
+
+
+
+ This has been shown to cause crashes on s390x,
+ and very possibly there are other cases on other platforms.
+
+
+
+
+
+
+ Improve code generated for compare_exchange and fetch_add operations
+ on PPC (Noah Misch)
+
+
+
+
+
+
+ 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)
+
+
+
+
+
+
+ Fix memory leaks
+ in PL/pgsql's CALL
+ processing (Pavel Stehule, 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.
+
+
+
+
+
+
+ Ensure that parallel pg_restore processes
+ foreign keys referencing partitioned tables in the correct order
+ (Álvaro Herrera)
+
+
+
+ Previously, it might try to restore a foreign key constraint before
+ the required indexes were all in place, leading to an error.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Fix recently-added timetz test case so it works when
+ the USA is not observing daylight savings time (Tom Lane)
+
+
+
+
+
+
+ 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 13