From d5904d65080d3fd2c35b6aa74fa6c5762e32f87b Mon Sep 17 00:00:00 2001
From: Tom Lane
Date: Sun, 8 Aug 2021 14:35:20 -0400
Subject: Release notes for 13.4, 12.8, 11.13, 10.18, 9.6.23.
---
doc/src/sgml/release-9.6.sgml | 1167 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 1167 insertions(+)
diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml
index 45f421311c3..93d57f90f86 100644
--- a/doc/src/sgml/release-9.6.sgml
+++ b/doc/src/sgml/release-9.6.sgml
@@ -1,6 +1,1173 @@
+
+ Release 9.6.23
+
+
+ Release date:
+ 2021-08-12
+
+
+
+ This release contains a variety of fixes from 9.6.22.
+ For information about new features in the 9.6 major release, see
+ .
+
+
+
+ The PostgreSQL community will stop
+ releasing updates for the 9.6.X release series in November 2021.
+ Users are encouraged to update to a newer release branch soon.
+
+
+
+ Migration to Version 9.6.23
+
+
+ A dump/restore is not required for those running 9.6.X.
+
+
+
+ However, if you are upgrading from a version earlier than 9.6.21,
+ see .
+
+
+
+
+ Changes
+
+
+
+
+
+
+ Disallow SSL renegotiation more completely (Michael Paquier)
+
+
+
+ SSL renegotiation has been disabled for some time, but the server
+ would still cooperate with a client-initiated renegotiation request.
+ A maliciously crafted renegotiation request could result in a server
+ crash (see OpenSSL issue CVE-2021-3449). Disable the feature
+ altogether on OpenSSL versions that permit doing so, which are
+ 1.1.0h and newer.
+
+
+
+
+
+
+ Reject SELECT ... GROUP BY GROUPING SETS (()) FOR
+ UPDATE (Tom Lane)
+
+
+
+ This should be disallowed, just as FOR UPDATE
+ with a plain GROUP BY is disallowed, but the test
+ for that failed to handle empty grouping sets correctly.
+ The end result would be a null-pointer dereference in the executor.
+
+
+
+
+
+
+ Reject cases where a query in WITH
+ rewrites to just NOTIFY (Tom Lane)
+
+
+
+ Such cases previously crashed.
+
+
+
+
+
+
+ In numeric multiplication, round the result rather than
+ failing if it would have more than 16383 digits after the decimal
+ point (Dean Rasheed)
+
+
+
+
+
+
+ Fix corner-case errors and loss of precision when
+ raising numeric values to very large powers
+ (Dean Rasheed)
+
+
+
+
+
+
+ Fix division-by-zero failure in to_char()
+ with EEEE format and a numeric input
+ value less than 10^(-1001) (Dean Rasheed)
+
+
+
+
+
+
+ Fix pg_size_pretty(bigint) to round negative
+ values consistently with the way it rounds positive ones (and
+ consistently with the numeric version) (Dean Rasheed,
+ David Rowley)
+
+
+
+
+
+
+ Make pg_filenode_relation(0, 0) return NULL
+ rather than failing (Justin Pryzby)
+
+
+
+
+
+
+ Make ALTER EXTENSION lock the extension when
+ adding or removing a member object (Tom Lane)
+
+
+
+ The previous coding allowed ALTER EXTENSION
+ ADD/DROP to occur concurrently with DROP
+ EXTENSION, leading to a crash or corrupt catalog entries.
+
+
+
+
+
+
+ Avoid alias conflicts in queries generated
+ for REFRESH MATERIALIZED VIEW CONCURRENTLY
+ (Tom Lane, Bharath Rupireddy)
+
+
+
+ This command failed on materialized views containing columns with
+ certain names, notably mv
+ and newdata.
+
+
+
+
+
+
+ Fix PREPARE TRANSACTION to check correctly
+ for conflicting session-lifespan and transaction-lifespan locks
+ (Tom Lane)
+
+
+
+ A transaction cannot be prepared if it has both session-lifespan and
+ transaction-lifespan locks on the same advisory-lock ID value. This
+ restriction was not fully checked, which could lead to a PANIC
+ during PREPARE TRANSACTION.
+
+
+
+
+
+
+ Fix misbehavior of DROP OWNED BY when the target
+ role is listed more than once in an RLS policy (Tom Lane)
+
+
+
+
+
+
+ Skip unnecessary error tests when removing a role from an RLS policy
+ during DROP OWNED BY (Tom Lane)
+
+
+
+ Notably, this fixes some cases where it was necessary to be a
+ superuser to use DROP OWNED BY.
+
+
+
+
+
+
+ Allow index state flags to be updated transactionally
+ (Michael Paquier, Andrey Lepikhov)
+
+
+
+ This avoids failures when dealing with index predicates that aren't
+ really immutable. While that's not considered a supported case, the
+ original reason for using a non-transactional update here is long
+ gone, so we may as well change it.
+
+
+
+
+
+
+ Avoid corrupting the plan cache entry when CREATE
+ DOMAIN or ALTER DOMAIN appears
+ in a cached plan (Tom Lane)
+
+
+
+
+
+
+ Make
+ pg_settings.pending_restart
+ show as true when the pertinent entry
+ in postgresql.conf has been removed
+ (Álvaro Herrera)
+
+
+
+ pending_restart correctly showed the case
+ where an entry that cannot be changed without a postmaster restart
+ has been modified, but not where the entry had been removed
+ altogether.
+
+
+
+
+
+
+ Fix corner-case failure of a new standby to follow a new primary
+ (Dilip Kumar, Robert Haas)
+
+
+
+ Under a narrow combination of conditions, the standby could wind up
+ trying to follow the wrong WAL timeline.
+
+
+
+
+
+
+ Update minimum recovery point when WAL replay of a transaction abort
+ record causes file truncation (Fujii Masao)
+
+
+
+ File truncation is irreversible, so it's no longer safe to stop
+ recovery at a point earlier than that record. The corresponding
+ case for transaction commit was fixed years ago, but this one was
+ overlooked.
+
+
+
+
+
+
+ Ensure that a standby server's startup process will respond to a
+ shutdown signal promptly while waiting for WAL to arrive (Fujii
+ Masao, Soumyadeep Chakraborty)
+
+
+
+
+
+
+ Add locking to avoid reading incorrect relmapper data in the face of
+ a concurrent write from another process (Heikki Linnakangas)
+
+
+
+
+
+
+ Fix error cases and memory leaks in logical decoding of speculative
+ insertions (Dilip Kumar)
+
+
+
+
+
+
+ Fix plan cache reference leaks in some error cases in
+ CREATE TABLE ... AS EXECUTE (Tom Lane)
+
+
+
+
+
+
+ Fix possible race condition when releasing BackgroundWorkerSlots
+ (Tom Lane)
+
+
+
+ It's likely that this doesn't fix any observable bug on Intel
+ hardware, but machines with weaker memory ordering rules could
+ have problems.
+
+
+
+
+
+
+ Fix latent crash in sorting code (Ronan Dunklau)
+
+
+
+ One code path could attempt to free a null pointer. The case
+ appears unreachable in the core server's use of sorting, but perhaps
+ it could be triggered by extensions.
+
+
+
+
+
+
+ Prevent infinite loops in SP-GiST index insertion (Tom Lane)
+
+
+
+ In the event that INCLUDE columns take up enough space to prevent a
+ leaf index tuple from ever fitting on a page, the text_ops operator
+ class would get into an infinite loop vainly trying to make the
+ tuple fit.
+ While pre-v11 versions don't have INCLUDE columns, back-patch this
+ anti-looping fix to them anyway, as it seems like a good defense
+ against bugs in operator classes.
+
+
+
+
+
+
+ Ensure that SP-GiST index insertion can be terminated by a query
+ cancel request (Tom Lane, Álvaro Herrera)
+
+
+
+
+
+
+ Fix uninitialized-variable bug that could
+ cause PL/pgSQL to act as though
+ an INTO clause
+ specified STRICT, even though it didn't
+ (Tom Lane)
+
+
+
+
+
+
+ Don't abort the process for an out-of-memory failure in libpq's
+ printing functions (Tom Lane)
+
+
+
+
+
+
+ In ecpg, allow the numeric
+ value INT_MIN (usually -2147483648) to be
+ converted to integer (John Naylor)
+
+
+
+
+
+
+ In psql and other client programs, avoid
+ overrunning the ends of strings when dealing with invalidly-encoded
+ data (Tom Lane)
+
+
+
+ An incorrectly-encoded multibyte character near the end of a string
+ could cause various processing loops to run past the string's
+ terminating NUL, with results ranging from no detectable issue to
+ a program crash, depending on what happens to be in the following
+ memory. This is reminiscent of CVE-2006-2313, although these
+ particular cases do not appear to have interesting security
+ consequences.
+
+
+
+
+
+
+ Avoid invalid creation date in header warnings
+ observed when running pg_restore on an
+ archive file created in a different time zone (Tom Lane)
+
+
+
+
+
+
+ Make pg_upgrade carry forward the old
+ installation's oldestXID value (Bertrand Drouvot)
+
+
+
+ Previously, the new installation's oldestXID was
+ set to a value old enough to (usually) force immediate
+ anti-wraparound autovacuuming. That's not desirable from a
+ performance standpoint; what's worse, installations using large
+ values of autovacuum_freeze_max_age could suffer
+ unwanted forced shutdowns soon after an upgrade.
+
+
+
+
+
+
+ Extend pg_upgrade to detect and warn
+ about extensions that should be upgraded (Bruce Momjian)
+
+
+
+ A script file is now produced containing the ALTER
+ EXTENSION UPDATE commands needed to bring extensions up to
+ the versions that are considered default in the new installation.
+
+
+
+
+
+
+ In contrib/postgres_fdw, avoid attempting
+ catalog lookups after an error (Tom Lane)
+
+
+
+ While this usually worked, it's not very safe since the error might
+ have been one that made catalog access nonfunctional. A side effect
+ of the fix is that messages about data conversion errors will now
+ mention the query's table and column aliases (if used) rather than
+ the true underlying name of a foreign table or column.
+
+
+
+
+
+
+ In contrib/pgcrypto, avoid symbol name
+ conflicts with OpenSSL (Tom Lane)
+
+
+
+ Operations using SHA224 hashing could show failures under valgrind
+ checking. It appears that this is only a stomp of alignment-padding
+ bytes and so has no real consequences, but let's fix it to be sure.
+
+
+
+
+
+
+ Improve the isolation-test infrastructure (Tom Lane, Michael Paquier)
+
+
+
+ Allow isolation test steps to be annotated to show the expected
+ completion order. This allows getting stable results from
+ otherwise-racy test cases, without the long delays that we
+ previously used (not entirely successfully) to fend off race
+ conditions.
+ Allow non-quoted identifiers as isolation test session/step names
+ (formerly, all such names had to be double-quoted).
+ Detect and warn about unused steps in isolation tests.
+ Improve display of query results in isolation tests.
+ Remove isolationtester's dry-run mode.
+ Remove memory leaks in isolationtester itself.
+
+
+
+
+
+
+ Reduce overhead of cache-clobber testing (Tom Lane)
+
+
+
+
+
+
+ Fix PL/Python's regression tests to pass
+ with Python 3.10 (Honza Horak)
+
+
+
+
+
+
+ Make printf("%s", NULL)
+ print (null) instead of crashing (Tom Lane)
+
+
+
+ This should improve server robustness in corner cases, and it syncs
+ our printf implementation with common libraries.
+
+
+
+
+
+
+ Fix incorrect log message when point-in-time recovery stops at
+ a ROLLBACK PREPARED record (Simon Riggs)
+
+
+
+
+
+
+ Clarify error messages referring to non-negative
+ values (Bharath Rupireddy)
+
+
+
+
+
+
+ Fix configure to work with OpenLDAP 2.5,
+ which no longer has a separate libldap_r
+ library (Adrian Ho, Tom Lane)
+
+
+
+ If there is no libldap_r library, we now
+ silently assume that libldap is thread-safe.
+
+
+
+
+
+
+ Add new make targets world-bin
+ and install-world-bin (Andrew Dunstan)
+
+
+
+ These are the same as world
+ and install-world respectively, except that they
+ do not build or install the documentation.
+
+
+
+
+
+
+ Fix make rule for TAP tests (prove_installcheck)
+ to work in PGXS usage (Andrew Dunstan)
+
+
+
+
+
+
+ Avoid assuming that strings returned by GSSAPI libraries are
+ null-terminated (Tom Lane)
+
+
+
+ The GSSAPI spec provides for a string pointer and length. It seems
+ that in practice the next byte after the string is usually zero,
+ so that our previous coding didn't actually fail; but we do have
+ a report of AddressSanitizer complaints.
+
+
+
+
+
+
+ Enable building with GSSAPI on MSVC (Michael Paquier)
+
+
+
+ Fix various incompatibilities with modern Kerberos builds.
+
+
+
+
+
+
+ In MSVC builds, include in the set of
+ configure options reported by pg_config,
+ if it had been specified (Andrew Dunstan)
+
+
+
+
+
+
+
+
Release 9.6.22
--
cgit v1.2.3