From 8cf280f6db75f046ca7de71f3ad0f0adcf63cd41 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 10 Nov 2019 18:31:13 -0500 Subject: [PATCH] Release notes for 12.1, 11.6, 10.11, 9.6.16, 9.5.20, 9.4.25. --- doc/src/sgml/release-11.sgml | 1460 ++++++++++++++++++++++++++++++++++ 1 file changed, 1460 insertions(+) diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml index 9b5f47f1c4..9bd67460d3 100644 --- a/doc/src/sgml/release-11.sgml +++ b/doc/src/sgml/release-11.sgml @@ -1,6 +1,1466 @@ + + Release 11.6 + + + Release date: + 2019-11-14 + + + + This release contains a variety of fixes from 11.5. + For information about new features in major release 11, see + . + + + + Migration to Version 11.6 + + + A dump/restore is not required for those running 11.X. + + + + However, if you use the contrib/intarray + extension with a GiST index, and you rely on indexed searches + for the <@ operator, see the entry below + about that. + + + + Also, if you are upgrading from a version earlier than 11.1, + see . + + + + + Changes + + + + + + + Fix failure of ALTER TABLE SET with a custom + relation option (Michael Paquier) + + + + + + + Disallow changing a multiply-inherited column's type if not all + parent tables were changed (Tom Lane) + + + + Previously, this was allowed, whereupon queries on the + now-out-of-sync parent would fail. + + + + + + + Avoid failure if the same target table is specified twice in + an ANALYZE command inside a transaction block + (Tom Lane) + + + + + + + Prevent VACUUM from trying to freeze + an old multixact ID involving a still-running transaction + (Nathan Bossart, Jeremy Schneider) + + + + This case would lead to VACUUM failing until the + old transaction terminates. + + + + + + + SET CONSTRAINTS ... DEFERRED failed on + partitioned tables, incorrectly complaining about lack of triggers + (Álvaro Herrera) + + + + + + + Fix failure when creating indexes for a partition, if the parent + partitioned table contains any dropped columns (Michael Paquier) + + + + + + + Fix planner's test for case-foldable characters + in ILIKE with an ICU collation (Tom Lane) + + + + This mistake caused the planner to treat too much of the pattern as + being a fixed prefix, so that indexscans derived from + an ILIKE clause might miss entries that they + should find. + + + + + + + Ensure that offset expressions in WINDOW clauses + are processed when a query's expressions are manipulated (Andrew Gierth) + + + + This oversight could result in assorted failures when the offsets + are nontrivial expressions. One example is that a function + parameter reference in such an expression would fail if the function + was inlined. + + + + + + + Fix handling of whole-row variables in WITH CHECK + OPTION expressions and row-level-security policy expressions + (Andres Freund) + + + + Previously, such usage might result in bogus errors about row type + mismatches. + + + + + + + Avoid postmaster failure if a parallel query requests a background + worker when no postmaster child process array slots remain free + (Tom Lane) + + + + + + + Prevent possible double-free if a BEFORE UPDATE + trigger returns the old tuple as-is, and it is not the last such + trigger (Thomas Munro) + + + + + + + Fix crash if x = ANY + (array), or related operations, + contains a constant-null array (Tom Lane) + + + + + + + Fix unexpected relkind error when a query tries to + access a TOAST table (John Hsu, Michael Paquier, Tom Lane) + + + + The error should say that permission is denied, but this case got + broken during code refactoring. + + + + + + + Provide a relevant error context line when an error occurs while + setting GUC parameters during parallel worker startup (Thomas Munro) + + + + + + + In serializable mode, ensure that row-level predicate locks are + acquired on the correct version of the row (Thomas Munro, Heikki + Linnakangas) + + + + If the visible version of the row is HOT-updated, the lock might be + taken on its now-dead predecessor, resulting in subtle failures to + guarantee serialization. + + + + + + + Ensure that fsync() is applied only to files + that are opened read/write (Andres Freund, Michael Paquier) + + + + Some code paths tried to do this after opening a file read-only, + but on some platforms that causes bad file descriptor + or similar errors. + + + + + + + Allow encoding conversion to succeed on longer strings than before + (Álvaro Herrera, Tom Lane) + + + + Previously, there was a hard limit of 0.25GB on the input string, + but now it will work as long as the converted output is not over 1GB. + + + + + + + Avoid an unnecessary catalog lookup during heap page pruning + (Thomas Munro) + + + + It's no longer necessary to check for unlogged indexes here, and the + check caused significant performance problems in some workloads. + There was also at least a theoretical possibility of deadlock. + + + + + + + Avoid creating unnecessarily-bulky tuple stores for window functions + (Andrew Gierth) + + + + In some cases the tuple storage would include all columns of the + source table(s), not just the ones that are needed by the query. + + + + + + + Fix failure to JIT-compile equality comparisons for grouping hash + tables, leading to performance loss (Andres Freund) + + + + + + + Allow repalloc() to give back space when a + large chunk is reduced in size (Tom Lane) + + + + + + + Ensure that temporary WAL and history files are removed at the end + of archive recovery (Sawada Masahiko) + + + + + + + Avoid failure in archive recovery + if recovery_min_apply_delay is enabled + (Fujii Masao) + + + + recovery_min_apply_delay is not typically used in + this configuration, but it should work. + + + + + + + Fix logical replication failure when publisher and subscriber have + different ideas about a table's replica identity columns + (Jehan-Guillaume de Rorthais, Peter Eisentraut) + + + + Declaring a column as part of the replica identity on the + subscriber, when it does not exist at all on the publisher, led + to negative bitmapset member not allowed errors. + + + + + + + Avoid unwanted delay during shutdown of a logical replication + walsender (Craig Ringer, Álvaro Herrera) + + + + + + + Fix timeout handling in logical replication walreceiver processes + (Julien Rouhaud) + + + + Erroneous logic prevented wal_receiver_timeout + from working in logical replication deployments. + + + + + + + Correctly time-stamp replication messages for logical + decoding (Jeff Janes) + + + + This oversight resulted, for example, + in pg_stat_subscription.last_msg_send_time + usually reading as NULL. + + + + + + + In logical decoding, ensure that sub-transactions are correctly + accounted for when reconstructing a snapshot (Masahiko Sawada) + + + + This error leads to assertion failures; it's unclear whether any + bad effects exist in production builds. + + + + + + + Fix race condition during backend exit, when the backend process has + previously waited for synchronous replication to occur (Dongming Liu) + + + + + + + Fix ALTER SYSTEM to cope with duplicate entries + in postgresql.auto.conf (Ian Barwick) + + + + ALTER SYSTEM itself will not generate such a state, + but external tools that modify postgresql.auto.conf + could do so. Duplicate entries for the target variable will now be + removed, and then the new setting (if any) will be appended at the end. + + + + + + + Reject include directives with empty file names in configuration + files, and report include-file recursion more clearly + (Ian Barwick, Tom Lane) + + + + + + + Avoid logging complaints about abandoned connections when using PAM + authentication (Tom Lane) + + + + libpq-based clients will typically make two connection attempts when + a password is required, since they don't prompt their user for a + password until their first connection attempt fails. Therefore the + server is coded not to generate useless log spam when a client + closes the connection upon being asked for a password. However, + the PAM authentication code hadn't gotten that memo, and would + generate several messages about a phantom authentication failure. + + + + + + + Fix some cases where an incomplete date specification is not + detected in time with time zone input (Alexander Lakhin) + + + + If a time zone with a time-varying UTC offset is specified, then a + date must be as well, so that the offset can be resolved. Depending + on the syntax used, this check was not enforced in some cases, + allowing bogus output to be produced. + + + + + + + Fix misbehavior of bitshiftright() (Tom Lane) + + + + The bitstring right shift operator failed to zero out padding space + that exists in the last byte of the result when the bitstring length + is not a multiple of 8. While invisible to most operations, any + nonzero bits there would result in unexpected comparison behavior, + since bitstring comparisons don't bother to ignore the extra bits, + expecting them to always be zero. + + + + If you have inconsistent data as a result of saving the output + of bitshiftright() in a table, it's possible to + fix it with something like + +UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol); + + + + + + + + Restore the ability to take type information from + an AS clause + in json[b]_populate_record() + and json[b]_populate_recordset() + (Tom Lane) + + + + If the record argument is NULL and has no declared composite type, + try to use the AS clause instead. This isn't + recommended usage, but it used to work, and now does again. + + + + + + + Avoid crash when selecting a namespace node + in XMLTABLE (Chapman Flack) + + + + + + + Fix detection of edge-case integer overflow in interval + multiplication (Yuya Watari) + + + + + + + Fix memory leaks + in lower(), upper(), + and initcap() functions when using ICU + collations (Konstantin Knizhnik) + + + + + + + Avoid crashes if ispell text search dictionaries + contain wrong affix data (Arthur Zakirov) + + + + + + + Fix incorrect compression logic for GIN posting lists + (Heikki Linnakangas) + + + + A GIN posting list item can require 7 bytes if the distance between + adjacent indexed TIDs exceeds 16TB. One step in the logic was out + of sync with that, and might try to write the value into a 6-byte + buffer. In principle this could cause a stack overrun, but on most + architectures it's likely that the next byte would be unused + alignment padding, making the bug harmless. In any case the bug + would be very difficult to hit. + + + + + + + Fix handling of infinity, NaN, and NULL values in KNN-GiST + (Alexander Korotkov) + + + + The query's output order could be wrong (different from a plain + sort's result) if some distances computed for non-null column values + are infinity or NaN. + + + + + + + Fix handling of searches for NULL in KNN-SP-GiST (Nikita Glukhov) + + + + + + + On Windows, recognize additional spellings of the Norwegian + (Bokmål) locale name (Tom Lane) + + + + + + + Avoid compile failure if an ECPG client + includes ecpglib.h while + having ENABLE_NLS defined (Tom Lane) + + + + This risk was created by a misplaced + declaration: ecpg_gettext() should not be + visible to client code. + + + + + + + In psql, resynchronize internal state + about the server after an unexpected connection loss and successful + reconnection (Peter Billen, Tom Lane) + + + + Ordinarily this is unnecessary since the state would be the same + anyway. But it can matter in corner cases, such as where the + connection might lead to one of several servers. This change + causes psql to re-issue any interactive + messages that it would have issued at startup, for example about + whether SSL is in use. + + + + + + + Avoid platform-specific null pointer dereference + in psql (Quentin Rameau) + + + + + + + In pg_dump, ensure stable output order + for similarly-named triggers and row-level-security policy objects + (Benjie Gillam) + + + + Previously, if two triggers on different tables had the same names, + they would be sorted in OID-based order, which is less desirable + than sorting them by table name. Likewise for RLS policies. + + + + + + + Fix pg_dump to work again with pre-8.3 + source servers (Tom Lane) + + + + A previous fix caused pg_dump to always + try to query pg_opfamily, but that catalog + doesn't exist before version 8.3. + + + + + + + In pg_restore, treat + as meaning output to stdout + (Álvaro Herrera) + + + + This synchronizes pg_restore's behavior + with some other applications, and in particular makes pre-v12 branches + act similarly to version 12's pg_restore, + simplifying creation of dump/restore scripts that work across + multiple PostgreSQL versions. Before this + change, pg_restore interpreted such a + switch as meaning output to a file + named -, but few people would want that. + + + + + + + Improve pg_upgrade's checks for the use + of a data type that has changed representation, such + as line (Tomas Vondra) + + + + The previous coding could be fooled by cases where the data type of + interest underlies a stored column of a domain or composite type. + + + + + + + Detect file read errors + during pg_basebackup (Jeevan Chalke) + + + + + + + In pg_basebackup, don't fsync output files + until the end of backup (Michael Paquier) + + + + The previous coding could result in timeout failures if fsync was slow. + + + + + + + In pg_rewind with an online source + cluster, disable timeouts, much + as pg_dump does (Alexander Kukushkin) + + + + + + + Fix failure in pg_waldump with + the option, when a continuation WAL record ends + exactly at a page boundary (Andrey Lepikhov) + + + + + + + In pg_waldump, + include the newitemoff field in btree page split + records (Peter Geoghegan) + + + + + + + In pg_waldump with + the option, avoid emitting extra + newlines for WAL records involving full-page writes (Andres Freund) + + + + + + + Fix small memory leak in pg_waldump + (Andres Freund) + + + + + + + Fix vacuumdb with a + high option to handle running out of file + descriptors better (Michael Paquier) + + + + + + + Fix PL/pgSQL to handle replacements of composite types better + (Tom Lane) + + + + Cover the case where a composite type is dropped entirely, and + then a new type of the same name is created, between executions + of a PL/pgSQL function. Variables of the composite type will now + update to match the new definition. + + + + + + + Fix contrib/amcheck to skip unlogged indexes + during hot standby (Andrey Borodin, Peter Geoghegan) + + + + An unlogged index won't necessarily contain valid data in this + context, so don't try to check it. + + + + + + + Fix contrib/intarray's GiST opclasses to not + fail for empty arrays with <@ (Tom Lane) + + + + A clause like array_column + <@ constant_array is + considered indexable, but the index search may not find empty array + values; of course, such entries should trivially match the search. + + + + The only practical back-patchable fix for this requires + making <@ index searches scan the whole index, + which is what this patch does. This is unfortunate: it means that + the query performance is likely worse than a plain sequential scan + would be. + + + + Applications whose performance is adversely impacted by this change + have a couple of options. They could switch to a GIN index, which + doesn't have this bug, or they could replace + array_column + <@ constant_array + with array_column + <@ constant_array + AND array_column + && constant_array. + That will provide about the same performance as before, and it will + find all non-empty subsets of the given constant array, which is all + that could reliably be expected of the query before. + + + + + + + Fix configure's test for presence of + libperl so that it works on recent Red Hat releases (Tom Lane) + + + + Previously, it could fail if the user sets CFLAGS + to -O0. + + + + + + + Ensure correct code generation for spinlocks on PowerPC (Noah Misch) + + + + The previous spinlock coding allowed the compiler to select register + zero for use with an assembly instruction that does not accept that + register, causing a build failure. We have seen only one long-ago + report that matches this bug, but it could cause problems for people + trying to build modified PostgreSQL code + or use atypical compiler options. + + + + + + + On PowerPC, avoid depending on the xlc + compiler's __fetch_and_add() function + (Noah Misch) + + + + xlc 13 and newer interpret this function in a way incompatible with + our usage, resulting in an unusable build + of PostgreSQL. Fix by using custom + assembly code instead. + + + + + + + On AIX, don't use the compiler option + (Noah Misch) + + + + This avoids an internal compiler error with xlc v16.1.0, with little + consequence other than changing the format of compiler error messages. + + + + + + + Fix MSVC build process to cope with spaces in the file path of + OpenSSL (Andrew Dunstan) + + + + + + + Update time zone data files to tzdata + release 2019c for DST law changes in Fiji and Norfolk Island, plus + historical corrections for Alberta, Austria, Belgium, British + Columbia, Cambodia, Hong Kong, Indiana (Perry County), Kaliningrad, + Kentucky, Michigan, Norfolk Island, South Korea, and Turkey. + + + + + + + + Release 11.5