From 5996cfc4665735a7e6e8d473bd66e8b11e320bbb Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 8 Feb 2019 20:17:14 -0500 Subject: [PATCH] First-draft release notes for 11.2. As usual, the release notes for other branches will be made by cutting these down, but put them up for community review first. --- doc/src/sgml/release-11.sgml | 1389 ++++++++++++++++++++++++++++++++++ 1 file changed, 1389 insertions(+) diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml index 09b80b8af5c..7fd3404282f 100644 --- a/doc/src/sgml/release-11.sgml +++ b/doc/src/sgml/release-11.sgml @@ -1,6 +1,1395 @@ + + Release 11.2 + + + Release date: + 2019-02-14 + + + + This release contains a variety of fixes from 11.1. + For information about new features in major release 11, see + . + + + + Migration to Version 11.2 + + + A dump/restore is not required for those running 11.X. + + + + + Changes + + + + + + + By default, panic instead of retrying + after fsync() failure, to avoid possible data + corruption (Craig Ringer, Thomas Munro) + + + + Some popular operating systems discard kernel data buffers when + unable to write them out, reporting this + as fsync() failure. If we reissue + the fsync() request it will succeed, but in + fact the data has been lost, so continuing risks database + corruption. By raising a panic condition instead, we can replay + from WAL, which may contain the only remaining copy of the data in + such a situation. While this is surely ugly and inefficient, there + are few alternatives, and fortunately the case happens very rarely. + + + + A new server parameter + has been added to control this; if you are certain that your + kernel does not discard dirty data buffers in such scenarios, + you can set data_sync_retry + to on to restore the old behavior. + + + + + + + Include each major release branch's release notes in the + documentation for only that branch, rather than that branch and all + later ones (Tom Lane) + + + + The duplication induced by the previous policy was getting out of + hand. Our plan is to provide a full archive of release notes on + the project's web site, but not duplicate it within each release. + + + + + + + Fix handling of unique indexes with INCLUDE + columns on partitioned tables (Álvaro Herrera) + + + + The uniqueness condition was not checked properly in such cases. + + + + + + + Ensure that NOT NULL constraints of a partitioned + table are honored within its partitions + (Álvaro Herrera, Amit Langote) + + + + + + + Update catalog state correctly for partition table constraints when + detaching their partition (Amit Langote, Álvaro Herrera) + + + + Previously, the pg_constraint.conislocal + field for such a constraint might improperly be left + as false, rendering it undroppable. + A dump/restore or pg_upgrade would cure the problem, but + if necessary, the catalog field can be adjusted manually. + + + + + + + Create or delete foreign key enforcement triggers correctly when + attaching or detaching a partition in a a partitioned table that + has a foreign-key constraint (Amit Langote, Álvaro Herrera) + + + + + + + Avoid useless creation of duplicate foreign key constraints + in partitioned tables (Álvaro Herrera) + + + + + + + When an index is created on a partitioned table + using ONLY, and there are no partitions yet, mark + it valid immediately (Álvaro Herrera) + + + + Otherwise there is no way to make it become valid. + + + + + + + Use a safe table lock level when detaching a partition + (Álvaro Herrera) + + + + The previous locking level was too weak and might allow + concurrent DDL on the table, with bad results. + + + + + + + Fix problems with applying ON COMMIT DROP + and ON COMMIT DELETE ROWS to partitioned tables + and tables with inheritance children (Michael Paquier) + + + + + + + Disallow COPY FREEZE on partitioned tables + (David Rowley) + + + + This should eventually be made to work, but it may require a patch + that's too complicated to risk back-patching. + + + + + + + Fix possible index corruption when the indexed column has + a fast default (that is, it was added + by ALTER TABLE ADD COLUMN with a constant + default value specified, after the table already contained rows) + (Andres Freund) + + + + + + + Correctly adjust fast default values + during ALTER TABLE ... ALTER COLUMN TYPE + (Andrew Dunstan) + + + + + + + Avoid possible deadlock when acquiring multiple buffer locks + (Nishant Fnu) + + + + + + + Avoid deadlock between GIN vacuuming and concurrent index insertions + (Alexander Korotkov, Andrey Borodin and Peter Geoghegan) + + + + + + + Avoid deadlock between hot-standby queries and replay of GIN index + page deletion (Alexander Korotkov) + + + + + + + Fix possible crashes in logical replication when index expressions + or predicates are in use (Peter Eisentraut) + + + + + + + Avoid useless and expensive logical decoding of TOAST data during a + table rewrite (Tomas Vondra) + + + + + + + Fix logic for stopping a subset of WAL senders when synchronous + replication is enabled (Paul Guo, Michael Paquier) + + + + + + + Avoid possibly including garbage in the replica identity field of a + tuple deletion WAL record (Stas Kelvish) + + + + + + + Prevent incorrect use of WAL-skipping optimization + during COPY to a view or foreign table + (Amit Langote, Michael Paquier) + + + + + + + Make the archiver prioritize WAL history files over WAL data files + while choosing which file to archive next (David Steele) + + + + + + + Fix possible crash in UPDATE with a + multiple SET clause using a + sub-SELECT as source (Tom Lane) + + + + + + + Fix crash when zero rows are fed + to json[b]_populate_recordset() + or json[b]_to_recordset() (Tom Lane) + + + + + + + Avoid crash if libxml2 returns a null + error message (Sergio Conde Gómez) + + + + + + + Fix incorrect JIT tuple deforming code for tables with + many columns (more than approximately 800) (Andres Freund) + + + + + + + Fix spurious grouping-related parser errors caused by inconsistent + handling of collation assignment (Andrew Gierth) + + + + In some cases, expressions that should be considered to match + were not seen as matching, if they included operations on collatable + data types. + + + + + + + Fix parsing of collation-sensitive expressions in the arguments of + a CALL statement (Peter Eisentraut) + + + + + + + Ensure proper cleanup after detecting an error in the argument list + of a CALL statement (Tom Lane) + + + + + + + Check whether the comparison function + underlying LEAST() + or GREATEST() is leakproof, rather than just + assuming it is (Tom Lane) + + + + Actual information leaks from btree comparison functions are + typically hard to provoke, but in principle they could happen. + + + + + + + Fix incorrect planning of queries involving nested loops both above + and below a Gather plan node (Tom Lane) + + + + If both levels of nestloop needed to pass the same variable into + their right-hand sides, an incorrect plan would be generated. + + + + + + + Fix incorrect planning of queries in which a lateral reference must + be evaluated at a foreign table scan (Tom Lane) + + + + + + + Fix corner-case underestimation of the cost of a merge join (Tom Lane) + + + + The planner could prefer a merge join when the outer key range is + much smaller than the inner key range, even if there are so many + duplicate keys on the inner side that this is a poor choice. + + + + + + + Avoid O(N^2) planning time growth when a query contains many + thousands of indexable clauses (Tom Lane) + + + + + + + Improve planning speed for large inheritance or partitioning table + groups (Amit Langote, Etsuro Fujita) + + + + + + + Improve ANALYZE's handling of + concurrently-updated rows (Jeff Janes, Tom Lane) + + + + Previously, rows deleted by an in-progress transaction were omitted + from ANALYZE's sample, but this has been found to + lead to more inconsistency than including them would do. In effect, + the sample now corresponds to an MVCC snapshot as + of ANALYZE's start time. + + + + + + + Make TRUNCATE ignore inheritance child tables + that are temporary tables of other sessions (Amit Langote, Michael + Paquier) + + + + This brings TRUNCATE into line with the behavior + of other commands. + + + + + + + Fix TRUNCATE to update the statistics counters + for the right table (Tom Lane) + + + + If the truncated table had a TOAST table, that table's counters were + reset instead. + + + + + + + Process ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS + correctly (Greg Stark) + + + + + + + Allow UNLISTEN in hot-standby mode + (Shay Rojansky) + + + + This is necessarily a no-op, because LISTEN + isn't allowed in hot-standby mode; but allowing the dummy operation + simplifies session-state-reset logic in clients. + + + + + + + Fix missing role dependencies in some schema and data type + permissions lists (Tom Lane) + + + + In some cases it was possible to drop a role to which permissions + had been granted. This caused no immediate problem, but a + subsequent dump/reload or upgrade would fail, with symptoms + involving attempts to grant privileges to all-numeric role names. + + + + + + + Prevent use of a session's temporary schema within a two-phase + transaction (Michael Paquier) + + + + Accessing a temporary table within such a transaction has been + forbidden for a long time, but it was still possible to cause + problems with other operations on temporary objects. + + + + + + + Ensure relation caches are updated properly after adding or removing + foreign key constraints (Álvaro Herrera) + + + + This oversight could result in existing sessions failing to enforce + a newly-created constraint, or continuing to enforce a dropped one. + + + + + + + Ensure relation caches are updated properly after renaming + constraints (Amit Langote) + + + + + + + Make autovacuum more aggressive about removing leftover temporary + tables, and also remove leftover temporary tables + during DISCARD TEMP (Álvaro Herrera) + + + + This helps ensure that remnants from a crashed session are cleaned + up more promptly. + + + + + + + Fix replay of GiST index micro-vacuum operations so that concurrent + hot-standby queries do not see inconsistent state (Alexander + Korotkov) + + + + + + + Prevent empty GIN index pages from being reclaimed too quickly, + causing failures of concurrent searches + (Andrey Borodin, Alexander Korotkov) + + + + + + + Fix edge-case failures in float-to-integer coercions (Andrew + Gierth, Tom Lane) + + + + Values very slightly above the maximum valid integer value might not + be rejected, and then would overflow, producing the minimum valid + integer instead. Also, values that should round to the minimum or + maximum integer value might be incorrectly rejected. + + + + + + + Fix parsing of space-separated lists of host names in + the ldapserver parameter + of pg_hba.conf LDAP authentication entries + (Thomas Munro) + + + + + + + When making a PAM authentication request, don't set + the PAM_RHOST variable if the connection is over + a Unix socket (Thomas Munro) + + + + Previously that variable would be set to [local], + which is at best unhelpful, since it's supposed to be a host name. + + + + + + + Disallow setting client_min_messages higher + than ERROR (Jonah Harris, Tom Lane) + + + + Previously, it was possible to set this variable + to FATAL or PANIC, which had + the effect of suppressing transmission of ordinary error messages to + the client. However, that's contrary to guarantees that are given + in the PostgreSQL wire protocol + specification, and it caused some clients to become very confused. + In released branches, fix this by silently treating such settings as + meaning ERROR instead. Release 12 and later will + reject those alternatives altogether. + + + + + + + Fix ecpglib to + use uselocale() + or _configthreadlocale() in preference + to setlocale() (Michael Meskes, Tom Lane) + + + + Since setlocale() is not thread-local, and + might not even be thread-safe, the previous coding caused problems + in multi-threaded ecpg applications. + + + + + + + Fix incorrect results for numeric data passed through + an ecpg SQLDA + (SQL Descriptor Area) (Daisuke Higuchi) + + + + Values with leading zeroes were not copied correctly. + + + + + + + Fix psql's \g + target meta-command to work + with COPY TO STDOUT + (Daniel Vérité) + + + + Previously, the target option was + ignored, so that the copy data always went to the current query + output target. + + + + + + + Make psql's LaTeX output formats render + special characters properly (Tom Lane) + + + + Backslash and some other ASCII punctuation characters were not + rendered correctly, leading to document syntax errors or unexpected + output. + + + + + + + Make pgbench's random number generation + fully deterministic and platform-independent + when is + specified (Fabien Coelho, Tom Lane) + + + + On any specific platform, the sequence obtained with a particular + value of N will probably be different + from what it was before this patch. + + + + + + + Fix pg_basebackup + and pg_verify_checksums to ignore + temporary files appropriately (Michael Banck, Michael Paquier) + + + + + + + Fix pg_dump's handling of materialized + views with indirect dependencies on primary keys (Tom Lane) + + + + This led to mis-labeling of such views' dump archive entries, + causing harmless warnings about archive items not in correct + section order; less harmlessly, selective-restore options + depending on those labels, such as , might + misbehave. + + + + + + + Make pg_dump include ALTER INDEX + SET STATISTICS commands (Michael Paquier) + + + + When the ability to attach statistics targets to index expressions + was added, we forgot to teach pg_dump + about it, so that such settings were lost in dump/reload. + + + + + + + Fix pg_dump's dumping of tables that have + OIDs (Peter Eisentraut) + + + + The WITH OIDS clause was omitted if it needed to + be applied to the first table to be dumped. + + + + + + + Prevent false index-corruption reports + from contrib/amcheck caused by + inline-compressed data (Peter Geoghegan) + + + + + + + Properly disregard EPIPE errors if COPY + FROM PROGRAM stops reading the program's output early + (Tom Lane) + + + + This case isn't actually reachable directly + with COPY, but it can happen when + using contrib/file_fdw. + + + + + + + Fix contrib/hstore to calculate correct hash + values for empty hstore values that were created in + version 8.4 or before (Andrew Gierth) + + + + The previous coding did not give the same result as for an + empty hstore value created by a newer version, thus + potentially causing wrong results in hash joins or hash + aggregation. It might be advisable to reindex any hash indexes + built on hstore columns. + + + + + + + Avoid crashes and excessive runtime with large inputs + to contrib/intarray's gist__int_ops + index support (Andrew Gierth) + + + + + + + In configure, look + for python3 and then python2 + if python isn't found (Peter Eisentraut) + + + + This allows PL/Python to be configured without explicitly + specifying PYTHON on platforms that no longer + provide an unversioned python executable. + + + + + + + Adjust configure's selection of + threading-related compiler flags and libraries to match what + later PostgreSQL releases do (Tom Lane) + + + + The coding previously used in the 9.4 and 9.5 branches fails + outright on some newer platforms, so sync it with what 9.6 and later + have been doing. + + + + + + + Include JIT-related headers in the installed set of header files + (Donald Dong) + + + + + + + Support new Makefile + variables PG_CFLAGS, PG_CXXFLAGS, + and PG_LDFLAGS in pgxs + builds (Christoph Berg) + + + + This simplifies customization of extension build processes. + + + + + + + Fix Perl-coded build scripts to not + assume . is in the search path, as + recent Perl versions don't include that (Andrew Dunstan) + + + + + + + Fix server command-line option parsing problems on OpenBSD (Tom Lane) + + + + + + + Rename red-black tree support functions to use rbt + prefix not rb prefix (Tom Lane) + + + + This avoids name collisions with Ruby functions, which broke + PL/Ruby. It's hoped that there are no other affected extensions. + + + + + + + Update time zone data files to tzdata + release 2018i for DST law changes in Kazakhstan, Metlakatla, and Sao + Tome and Principe. Kazakhstan's Qyzylorda zone is split in two, + creating a new zone Asia/Qostanay, as some areas did not change UTC + offset. Historical corrections for Hong Kong and numerous Pacific + islands. + + + + + + + + Release 11.1 -- 2.39.5