From 1c91af9b26a0252f43dc581cb0e607206fbebe4a Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 7 Feb 2021 15:46:38 -0500 Subject: [PATCH] Release notes for 13.2, 12.6, 11.11, 10.16, 9.6.21, 9.5.25. --- doc/src/sgml/release-11.sgml | 1270 ++++++++++++++++++++++++++++++++++ 1 file changed, 1270 insertions(+) diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml index a599ab3c81..2f8bb5a5c0 100644 --- a/doc/src/sgml/release-11.sgml +++ b/doc/src/sgml/release-11.sgml @@ -1,6 +1,1276 @@ + + Release 11.11 + + + Release date: + 2021-02-11 + + + + This release contains a variety of fixes from 11.10. + For information about new features in major release 11, see + . + + + + Migration to Version 11.11 + + + A dump/restore is not required for those running 11.X. + + + + However, see the first changelog item below, + which describes cases in which reindexing indexes after the upgrade + may be advisable. + + + + Also, if you are upgrading from a version earlier than 11.6, + see . + + + + + Changes + + + + + + + Fix CREATE INDEX CONCURRENTLY to wait for + concurrent prepared transactions (Andrey Borodin) + + + + At the point where CREATE INDEX CONCURRENTLY + waits for all concurrent transactions to complete so that it can see + rows they inserted, it must also wait for all prepared transactions + to complete, for the same reason. Its failure to do so meant that + rows inserted by prepared transactions might be omitted from the new + index, causing queries relying on the index to miss such rows. + In installations that have enabled prepared transactions + (max_prepared_transactions > 0), + it's recommended to reindex any concurrently-built indexes in + case this problem occurred when they were built. + + + + + + + Avoid crash when a CALL or DO + statement that performs a transaction rollback is executed via + extended query protocol (Thomas Munro, Tom Lane) + + + + In PostgreSQL 13, this case reliably + caused a null-pointer dereference. In earlier versions the bug + seems to have no visible symptoms, but it's not quite clear that + it could never cause a problem. + + + + + + + Fix partition pruning logic to handle asymmetric hash partition sets + (Tom Lane) + + + + If a hash-partitioned table has unequally-sized partitions (that is, + varying modulus values), or it lacks partitions for some remainder + values, then the planner's pruning logic could mistakenly conclude + that some partitions don't need to be scanned, leading to failure to + find rows that the query should find. + + + + + + + Avoid incorrect results when WHERE CURRENT OF is + applied to a cursor whose plan contains a MergeAppend node (Tom + Lane) + + + + This case is unsupported (in general, a cursor using ORDER + BY is not guaranteed to be simply updatable); but the code + previously did not reject it, and could silently give false matches. + + + + + + + Fix crash when WHERE CURRENT OF is applied to a + cursor whose plan contains a custom scan node (David Geier) + + + + + + + Fix planner's handling of a placeholder that is computed at some + join level and used only at that same level (Tom Lane) + + + + This oversight could lead to failed to build + any N-way joins planner errors. + + + + + + + Be more careful about whether index AMs support mark/restore + (Andrew Gierth) + + + + This prevents errors about missing support functions in rare edge + cases. + + + + + + + Adjust settings to make it more difficult to run out of DSM slots + during heavy usage of parallel queries (Thomas Munro) + + + + + + + Fix overestimate of the amount of shared memory needed for parallel + queries (Takayuki Tsunakawa) + + + + + + + Fix ALTER DEFAULT PRIVILEGES to handle duplicated + arguments safely (Michael Paquier) + + + + Duplicate role or schema names within the same command could lead + to tuple already updated by self errors or + unique-constraint violations. + + + + + + + Flush ACL-related caches when pg_authid + changes (Noah Misch) + + + + This change ensures that permissions-related decisions will promptly + reflect the results of ALTER ROLE ... [NO] INHERIT. + + + + + + + Prevent misprocessing of ambiguous CREATE TABLE + LIKE clauses (Tom Lane) + + + + A LIKE clause is re-examined after initial + creation of the new table, to handle importation of indexes and + such. It was possible for this re-examination to find a different + table of the same name, causing unexpected behavior; one example is + where the new table is a temporary table of the same name as + the LIKE target. + + + + + + + Rearrange order of operations in CREATE TABLE + LIKE so that indexes are cloned before building foreign + key constraints (Tom Lane) + + + + This fixes the case where a self-referential foreign key constraint + declared in the outer CREATE TABLE depends on an + index that's coming from the LIKE clause. + + + + + + + Disallow CREATE STATISTICS on system catalogs + (Tomas Vondra) + + + + + + + Disallow converting an inheritance child table to a view + (Tom Lane) + + + + + + + Ensure that disk space allocated for a dropped relation is released + promptly at commit (Thomas Munro) + + + + Previously, if the dropped relation spanned multiple 1GB segments, + only the first segment was truncated immediately. Other segments + were simply unlinked, which doesn't authorize the kernel to release + the storage so long as any other backends still have the files open. + + + + + + + Prevent dropping a tablespace that is referenced by a partitioned + relation, but is not used for any actual storage (Álvaro + Herrera) + + + + Previously this was allowed, but subsequent operations on the + partitioned relation would fail. + + + + + + + Fix handling of backslash-escaped multibyte characters + in COPY FROM (Heikki Linnakangas) + + + + A backslash followed by a multibyte character was not handled + correctly. In some client character encodings, this could lead to + misinterpreting part of a multibyte character as a field separator + or end-of-copy-data marker. + + + + + + + Avoid preallocating executor hash tables + in EXPLAIN without ANALYZE + (Alexey Bashtanov) + + + + + + + Fix recently-introduced race conditions + in LISTEN/NOTIFY queue + handling (Tom Lane) + + + + A newly-listening backend could attempt to read SLRU pages that + were in process of being truncated, possibly causing an error. + + + + The queue tail pointer could become + set to a value that's not equal to the queue position of any + backend, resulting in effective disabling of the queue truncation + logic. Continued use of NOTIFY then led to + queue-fill warnings, and eventually to inability to send any more + notifies until the server is restarted. + + + + + + + Allow the jsonb concatenation operator to handle all + combinations of JSON data types (Tom Lane) + + + + We can concatenate two JSON objects or two JSON arrays. Handle + other cases by wrapping non-array inputs in one-element arrays, + then performing an array concatenation. Previously, some + combinations of inputs followed this rule but others arbitrarily + threw an error. + + + + + + + Fix use of uninitialized value while parsing a * + quantifier in a BRE-mode regular expression (Tom Lane) + + + + This error could cause the quantifier to act non-greedy, that is + behave like a *? quantifier would do in full + regular expressions. + + + + + + + Fix numeric power() for the case where the + exponent is exactly INT_MIN (-2147483648) + (Dean Rasheed) + + + + Previously, a result with no significant digits was produced. + + + + + + + Fix integer-overflow cases in substring() + functions (Tom Lane, Pavel Stehule) + + + + If the specified starting index and length overflow an integer when + added together, substring() misbehaved, either + throwing a bogus negative substring length error for + a case that should succeed, or failing to complain that a negative + length is negative (and instead returning the whole string, in most + cases). + + + + + + + Prevent possible data loss from incorrect detection of the + wraparound point of an SLRU log + (Noah Misch) + + + + The wraparound point typically falls in the middle of a page, which + must be rounded off to a page boundary, and that was not done + correctly. No issue could arise unless an installation had gotten + to within one page of SLRU overflow, which is unlikely in a + properly-functioning system. If this did happen, it would manifest + in later apparent wraparound or could not + access status of transaction errors. + + + + + + + Fix memory leak in walsender processes while sending new snapshots + for logical decoding (Amit Kapila) + + + + + + + Fix walsender to accept additional commands after + terminating replication (Jeff Davis) + + + + + + + Ensure detection of deadlocks between hot standby backends and the + startup (WAL-application) process (Fujii Masao) + + + + The startup process did not run the deadlock detection code, so that + in situations where the startup process is last to join a circular + wait situation, the deadlock might never be recognized. + + + + + + + Ensure that unserviced requests for background workers are cleaned + up when the postmaster begins a smart + or fast shutdown sequence (Tom Lane) + + + + Previously, there was a race condition whereby a child process that + had requested a background worker just before shutdown could wait + indefinitely, preventing shutdown from completing. + + + + + + + Fix portability problem in parsing + of recovery_target_xid values (Michael Paquier) + + + + The target XID is potentially 64 bits wide, but it was parsed + with strtoul(), causing misbehavior on + platforms where long is 32 bits (such as Windows). + + + + + + + Avoid trying to use parallel index build in a standalone backend + (Yulin Pei) + + + + + + + Allow index AMs to support included columns without necessarily + supporting multiple key columns (Tom Lane) + + + + + + + Avoid assertion failure during parallel aggregation of an + aggregate with a non-strict deserialization function (Andrew Gierth) + + + + No such aggregate functions exist in + core PostgreSQL, but some extensions + such as PostGIS provide some. The mistake is harmless anyway in a + non-assert build. + + + + + + + Avoid assertion failure in pg_get_functiondef() + when examining a function with a TRANSFORM option + (Tom Lane) + + + + + + + Fix data structure misallocation in + PL/pgSQL's CALL statement (Tom Lane) + + + + A CALL in a PL/pgSQL procedure, to another + procedure that has OUT parameters, would fail if the called + procedure did a COMMIT + or ROLLBACK. + + + + + + + In psql, re-allow including a password + in a connection_string argument of a + \connect command (Tom Lane) + + + + This used to work, but a recent bug fix caused the password to be + ignored (resulting in prompting for a password). + + + + + + + Fix assorted bugs + in psql's \help + command (Kyotaro Horiguchi, Tom Lane) + + + + \help with two argument words failed to find a + command description using only the first word, for + example \help reset all should show the help + for RESET but did not. + Also, \help often failed to invoke the pager when + it should. It also leaked memory. + + + + + + + In pg_dump, ensure that the restore + script runs ALTER PUBLICATION ADD TABLE commands + as the owner of the publication, and similarly runs ALTER + INDEX ATTACH PARTITION commands as the owner of the + partitioned index (Tom Lane) + + + + Previously, these commands would be run by the role that started the + restore script; which will usually work, but in corner cases that + role might not have adequate permissions. + + + + + + + Fix pg_dump to handle WITH + GRANT OPTION in an extension's initial privileges + (Noah Misch) + + + + If an extension's script creates an object and grants privileges + on it with grant option, then later the user revokes such + privileges, pg_dump would generate + incorrect SQL for reproducing the situation. (Few if any extensions + do this today.) + + + + + + + In pg_rewind, ensure that all WAL is + accounted for when rewinding a standby server + (Ian Barwick, Heikki Linnakangas) + + + + + + + In pgbench, disallow a digit as the first + character of a variable name (Fabien Coelho) + + + + This prevents trying to substitute variables into timestamp literal + values, which may contain strings like 12:34. + + + + + + + Report the correct database name in connection failure error + messages from some client programs (Álvaro Herrera) + + + + If the database name was defaulted rather than given on the command + line, pg_dumpall, + pgbench, oid2name, + and vacuumlo would produce misleading + error messages after a connection failure. + + + + + + + Fix memory leak in contrib/auto_explain + (Japin Li) + + + + Memory consumed while producing the EXPLAIN + output was not freed until the end of the current transaction (for a + top-level statement) or the end of the surrounding statement (for a + nested statement). This was particularly a problem + with log_nested_statements enabled. + + + + + + + In contrib/postgres_fdw, avoid leaking open + connections to remote servers when a user mapping or foreign server + object is dropped (Bharath Rupireddy) + + + + Open connections that depend on a dropped user mapping or foreign + server can no longer be referenced, but formerly they were kept + around anyway for the duration of the local session. + + + + + + + In contrib/pgcrypto, check for error returns + from OpenSSL's EVP functions (Michael Paquier) + + + + We do not really expect errors here, but this change silences + warnings from static analysis tools. + + + + + + + Make contrib/pg_prewarm more robust when the + cluster is shut down before prewarming is complete (Tom Lane) + + + + Previously, autoprewarm would rewrite its status file with only the + block numbers that it had managed to load so far, thus perhaps + largely disabling the prewarm functionality in the next startup. + Instead, suppress status file updates until the initial loading pass + is complete. + + + + + + + In contrib/pg_trgm's GiST index support, avoid + crash in the rare case that picksplit is called on exactly two index + items (Andrew Gierth, Alexander Korotkov) + + + + + + + Fix miscalculation of timeouts + in contrib/pg_prewarm + and contrib/postgres_fdw + (Alexey Kondratov, Tom Lane) + + + + The main loop in contrib/pg_prewarm's + autoprewarm parent process underestimated its desired sleep time by + a factor of 1000, causing it to consume much more CPU than intended. + When waiting for a result from a remote + server, contrib/postgres_fdw overestimated the + desired timeout by a factor of 1000 (though this error had been + mitigated by imposing a clamp to 60 seconds). + + + + Both of these errors stemmed from incorrectly converting + seconds-and-microseconds to milliseconds. Introduce a new + API TimestampDifferenceMilliseconds() + to make it easier to get this right in the future. + + + + + + + Improve configure's heuristics for + selecting PG_SYSROOT on macOS (Tom Lane) + + + + The new method is more likely to produce desirable results when + Xcode is newer than the underlying operating system. Choosing + a sysroot that does not match the OS version may result in + nonfunctional executables. + + + + + + + While building on macOS, specify in + link steps as well as compile steps (James Hilliard) + + + + This likewise improves the results when Xcode is out of sync with + the operating system. + + + + + + + Fix JIT compilation to be compatible with LLVM 11 and LLVM 12 + (Andres Freund) + + + + + + + Fix potential mishandling of references to boolean variables in + JIT expression compilation (Andres Freund) + + + + No field reports attributable to this have been seen, but it seems + likely that it could cause problems on some architectures. + + + + + + + Fix compile failure with ICU 68 and later (Tom Lane) + + + + + + + Avoid memcpy() with a NULL source pointer and + zero count during partitioned index creation (Álvaro Herrera) + + + + While such a call is not known to cause problems in itself, some + compilers assume that the arguments of memcpy() + are never NULL, which could result in incorrect optimization of + nearby code. + + + + + + + Update time zone data files to tzdata + release 2021a for DST law changes in Russia (Volgograd zone) and + South Sudan, plus historical corrections for Australia, Bahamas, + Belize, Bermuda, Ghana, Israel, Kenya, Nigeria, Palestine, + Seychelles, and Vanuatu. + + + + Notably, the Australia/Currie zone has been corrected to the point + where it is identical to Australia/Hobart. + + + + + + + + Release 11.10