+
+
Release 11.2
+
+
+
Release date:
+
+
+ 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.
+
+
+
+
+
+ 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
+ (SQL Descriptor Area) (Daisuke Higuchi)
+
+
+ Values with leading zeroes were not copied correctly.
+
+
+
+
+
+ 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.
+
+
+
+
+
+ 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)
+
+
+
+
+
+ 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,
+ 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