From c66a3225e07b5098a796f24588a6b81bfdedd2fd Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 6 Nov 2020 17:05:43 -0500 Subject: [PATCH] First-draft release notes for 13.1. As usual, the release notes for other branches will be made by cutting these down, but put them up for community review first. Also as usual for a .1 release, there are some entries here that are not really relevant for v13 because they already appeared in 13.0. Those'll be removed later. --- doc/src/sgml/release-13.sgml | 1371 ++++++++++++++++++++++++++++++++++ 1 file changed, 1371 insertions(+) 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