diff --git a/doc/src/sgml/release-12.sgml b/doc/src/sgml/release-12.sgml index cadbbfd3de3..3ee0fb92d26 100644 --- a/doc/src/sgml/release-12.sgml +++ b/doc/src/sgml/release-12.sgml @@ -1,6 +1,1493 @@ + + Release 12.3 + + + Release date: + 2020-05-14 + + + + This release contains a variety of fixes from 12.2. + For information about new features in major release 12, see + . + + + + Migration to Version 12.3 + + + A dump/restore is not required for those running 12.X. + + + + However, if you are upgrading from a version earlier than 12.2, + see . + + + + + Changes + + + + + + + Fix possible failure with GENERATED columns + (David Rowley) + + + + If a GENERATED column's value is an exact copy of + another column of the table (and it is a pass-by-reference data + type), it was possible to crash or insert corrupted data into the + table. While it would be rather pointless for + a GENERATED expression to just duplicate another + column, an expression using a function that sometimes returns its + input unchanged could create the situation. + + + + + + + Handle inheritance of generated columns better (Peter Eisentraut) + + + + When a table column is inherited during CREATE TABLE + ... INHERITS, disallow changing any generation properties + when the parent column is already + marked GENERATED; but allow a child column to be + marked GENERATED when its parent is not. + + + + + + + Fix cross-column references in CREATE TABLE LIKE INCLUDING + GENERATED (Peter Eisentraut) + + + + CREATE TABLE ... LIKE failed when trying to copy + a GENERATED expression that references a + physically-later column. + + + + + + + Propagate ALTER TABLE ... SET STORAGE to indexes + (Peter Eisentraut) + + + + Non-expression index columns have always copied + the attstorage property of their table + column at creation. Update them when ALTER TABLE ... SET + STORAGE is done, to maintain consistency. + + + + + + + Preserve the indisclustered setting of + indexes rewritten by ALTER TABLE (Amit Langote, + Justin Pryzby) + + + + Previously, ALTER TABLE lost track of which index + had been used for CLUSTER. + + + + + + + Preserve the replica identity properties of indexes rewritten + by ALTER TABLE (Quan Zongliang, Peter Eisentraut) + + + + + + + Preserve the indisclustered setting of + indexes rebuilt by REINDEX CONCURRENTLY + (Justin Pryzby) + + + + + + + Lock objects sooner during DROP OWNED BY + (Álvaro Herrera) + + + + This avoids failures in race-condition cases where another session is + deleting some of the same objects. + + + + + + + Fix error-case processing for CREATE ROLE ... IN + ROLE (Andrew Gierth) + + + + Some error cases would be reported as unexpected node + type or the like, instead of the intended message. + + + + + + + Ensure that when a partition is detached, any triggers cloned from + its formerly-parent table are removed (Justin Pryzby) + + + + + + + Fix crash when COLLATE is applied to a + non-collatable type in a partition bound expression (Dmitry Dolgov) + + + + + + + Ensure that unique indexes over partitioned tables match the + equality semantics of the partitioning key (Guancheng Luo) + + + + This would only be an issue with index opclasses that have unusual + notions of equality, but it's wrong in theory, so check. + + + + + + + Ensure that members of the pg_read_all_stats role + can read all statistics views, as expected (Magnus Hagander) + + + + The functions underlying + the pg_stat_progress_* views had not gotten + this memo. + + + + + + + Repair performance regression in + information_schema.triggers + view (Tom Lane) + + + + This patch redefines that view so that an + outer WHERE clause constraining the table name + can be pushed down into the view, allowing its calculations to be + done only for triggers belonging to the table of interest rather + than all triggers in the database. In a database with many triggers + this would make a significant speed difference for queries of that + form. Since things worked that way before v11, this is a potential + performance regression. Users who find this to be a problem can fix + it by replacing the view definition (or, perhaps, just deleting and + reinstalling the whole information_schema + schema). + + + + + + + Repair performance regression in floating point overflow/underflow + detection (Emre Hasegeli) + + + + Previous refactoring had resulted in isinf() + being called extra times in some hot code paths. + + + + + + + Fix full text search to handle NOT above a phrase search correctly + (Tom Lane) + + + + Queries such as !(foo<->bar) failed to find + matching rows when implemented as a GiST or GIN index search. + + + + + + + Fix full text search for cases where a phrase search includes an + item with both prefix matching and a weight restriction (Tom Lane) + + + + + + + Fix ts_headline() to make better headline + selections when working with phrase queries (Tom Lane) + + + + + + + Fix bugs in gin_fuzzy_search_limit processing + (Adé Heyward, Tom Lane) + + + + A small value of gin_fuzzy_search_limit could + result in unexpected slowness due to unintentionally rescanning the + same index page many times. Another code path failed to apply the + intended filtering at all, possibly returning too many values. + + + + + + + Allow input of type circle to accept the format + (x,y),r + as the documentation says it does (David Zhang) + + + + + + + Make the get_bit() + and set_bit() functions cope + with bytea strings longer than 256MB (Movead Li) + + + + Since the bit number argument is only int4, it's + impossible to use these functions to access bits beyond the first + 256MB of a long bytea. We'll widen the argument + to int8 in v13, but in the meantime, allow these + functions to work on the initial substring of a + long bytea. + + + + + + + Ignore file-not-found errors in pg_ls_waldir() + and allied functions (Tom Lane) + + + + This prevents a race condition failure if a file is removed between + when we see its directory entry and when we attempt + to stat() it. + + + + + + + Avoid possibly leaking an open-file descriptor for a directory + in pg_ls_dir(), + pg_timezone_names(), + pg_tablespace_databases(), and allied functions + (Justin Pryzby) + + + + + + + Fix polymorphic-function type resolution to correctly infer the + actual type of an anyarray output when given only + an anyrange input (Tom Lane) + + + + + + + Fix server's connection-startup logic for case where a GSSAPI + connection is rejected because support is not compiled in, and the + client then tries SSL instead (Andrew Gierth) + + + + This led to a bogus unsupported frontend protocol + failure. + + + + + + + Fix memory leakage during GSSAPI encryption (Tom Lane) + + + + Both the backend and libpq would leak memory equivalent to the total + amount of data sent during the session, if GSSAPI encryption is in use. + + + + + + + Fix query-lifespan memory leak for a set-returning function used in + a query's FROM clause (Andres Freund) + + + + + + + Avoid leakage of a hashed subplan's hash tables across multiple + executions (Andreas Karlsson, Tom Lane) + + + + This mistake could result in severe memory bloat if a query + re-executed a hashed subplan enough times. + + + + + + + Improve planner's handling of no-op domain coercions (Tom Lane) + + + + Fix some cases where a domain coercion that does nothing was not + completely removed from expressions. + + + + + + + Avoid unlikely crash when REINDEX is terminated + by a session-shutdown signal (Tom Lane) + + + + + + + Fix low-probability crash after constraint violation errors in + partitioned tables (Andres Freund) + + + + + + + Prevent printout of possibly-incorrect hash join table statistics + in EXPLAIN (Konstantin Knizhnik, Tom Lane, Thomas + Munro) + + + + + + + Fix reporting of elapsed time for heap truncation steps + in VACUUM VERBOSE (Tatsuhito Kasahara) + + + + + + + Fix possible undercounting of deleted B-tree index pages + in VACUUM VERBOSE output (Peter Geoghegan) + + + + + + + + + + Fix wrong bookkeeping for oldest deleted page in a B-tree index + (Peter Geoghegan) + + + + This could cause subtly wrong decisions about + when VACUUM can skip an index cleanup scan; + although it appears there may be no significant user-visible effects + from that. + + + + + + + Ensure that TimelineHistoryRead and TimelineHistoryWrite wait states + are reported in all code paths that read or write timeline history + files (Masahiro Ikeda) + + + + + + + Avoid possibly showing waiting twice in a process's + PS status (Masahiko Sawada) + + + + + + + Avoid race condition when ANALYZE replaces the + catalog tuple for extended statistics data (Dean Rasheed) + + + + + + + Remove ill-considered skip of redundant + anti-wraparound vacuums (Michael Paquier) + + + + This avoids a corner case where autovacuum could get into a loop of + repeatedly trying and then skipping the same vacuum job. + + + + + + + Ensure INCLUDE'd columns are always removed from B-tree pivot tuples + (Peter Geoghegan) + + + + This mistake wasted space in some rare cases, but was otherwise + harmless. + + + + + + + Cope with invalid TOAST indexes that could be left over after a + failed REINDEX CONCURRENTLY (Julien Rouhaud) + + + + + + + Ensure that valid index dependencies are left behind after a + failed REINDEX CONCURRENTLY (Michael Paquier) + + + + Previously the old index could be left with + no pg_depend links at all, so that for + example it would not get dropped if the parent table is dropped. + + + + + + + Avoid failure if autovacuum tries to access a just-dropped temporary + schema (Tom Lane) + + + + This hazard only arises if a superuser manually drops a temporary + schema; which isn't normal practice, but should work. + + + + + + + Avoid premature recycling of WAL segments during crash recovery + (Jehan-Guillaume de Rorthais) + + + + WAL segments that become ready to be archived during crash recovery + were potentially recycled without being archived. + + + + + + + Remove bogus subtransaction logged without previous top-level + txn record error check in logical decoding (Arseny Sher, + Amit Kapila) + + + + This condition is legitimately reachable in various scenarios, so + remove the check. + + + + + + + Avoid possible failure after a replication slot copy, due to + premature removal of WAL data (Masahiko Sawada, Arseny Sher) + + + + + + + Ensure that a replication + slot's io_in_progress_lock is released in failure + code paths (Pavan Deolasee) + + + + This could result in a walsender later becoming stuck waiting for + the lock. + + + + + + + Ensure that generated columns are correctly handled during updates + issued by logical replication (Peter Eisentraut) + + + + + + + Fix race conditions in synchronous standby management (Tom Lane) + + + + During a change in the synchronous_standby_names + setting, there was a window in which wrong decisions could be made + about whether it is OK to release transactions that are waiting for + synchronous commit. Another hazard for similarly wrong decisions + existed if a walsender process exited and was immediately replaced + by another. + + + + + + + Ensure nextXid can't go backwards on a standby + server (Eka Palamadai) + + + + This race condition could allow incorrect hot standby feedback + messages to be sent back to the primary server, potentially allowing + VACUUM to run too soon on the primary. + + + + + + + Add missing SQLSTATE values to a few error reports (Sawada Masahiko) + + + + + + + Fix PL/pgSQL to reliably refuse to execute an event trigger function + as a plain function (Tom Lane) + + + + + + + Fix memory leak in libpq when + using sslmode=verify-full (Roman Peshkurov) + + + + Certificate verification during connection startup could leak some + memory. This would become an issue if a client process opened many + database connections during its lifetime. + + + + + + + Fix ecpg to treat an argument of + just - as meaning read + from stdin on all platforms (Tom Lane) + + + + + + + Fix crash in psql when attempting to + re-establish a failed connection (Michael Paquier) + + + + + + + Allow tab-completion of the filename argument + to psql's \gx command + (Vik Fearing) + + + + + + + Add pg_dump support for ALTER + ... DEPENDS ON EXTENSION (Álvaro Herrera) + + + + pg_dump previously ignored dependencies added + this way, causing them to be forgotten during dump/restore or + pg_upgrade. + + + + + + + Fix pg_dump to dump comments on RLS + policy objects (Tom Lane) + + + + + + + In pg_dump, postpone restore of event + triggers till the end (Fabrízio de Royes Mello, Hamid Akhtar, + Tom Lane) + + + + This minimizes the risk that an event trigger could interfere with + the restoration of other objects. + + + + + + + Ensure that pg_basebackup generates valid + tar files (Robert Haas) + + + + In some cases a partial block of zeroes would be added to the end of + the file. While this seems to be harmless with common versions of + tar, it's not OK per the POSIX file format spec. + + + + + + + Make pg_checksums skip tablespace + subdirectories that belong to a + different PostgreSQL major version + (Michael Banck, Bernd Helmle) + + + + Such subdirectories don't really belong to our database cluster, and + so must not be processed. + + + + + + + Ignore temporary copies of pg_internal.init + in pg_checksums and related + programs (Michael Paquier) + + + + + + + Fix quoting of , + and values + in createdb utility (Michael Paquier) + + + + + + + contrib/lo's lo_manage() + function crashed if called directly rather than as a trigger (Tom + Lane) + + + + + + + In contrib/ltree, + protect against overflow of ltree + and lquery length fields (Nikita Glukhov) + + + + + + + Work around failure in contrib/pageinspect's + bt_metap() function when an oldest_xact value + exceeds 2^31-1 (Peter Geoghegan) + + + + Such XIDs will now be reported as negative integers, which isn't + great but it beats throwing an error. v13 will widen the output + argument to int8 to provide saner reporting. + + + + + + + Fix cache reference leak in contrib/sepgsql + (Michael Luo) + + + + + + + On Windows, avoid premature creation of postmaster's log file + during pg_ctl start (Alexander Lakhin) + + + + The previous coding could allow the file to be created with + permissions that wouldn't allow the postmaster to write on it. + + + + + + + Avoid failures when dealing with Unix-style locale names on + Windows (Juan José Santamaría Flecha) + + + + + + + On Windows, set console VT100 compatibility mode in + programs that support PG_COLOR colorization + (Juan José Santamaría Flecha) + + + + Without this, the colorization option doesn't actually work. + + + + + + + Stop requiring extra parentheses in ereport() + calls (Andres Freund, Tom Lane) + + + + + + + Use pkg-config, if available, to + locate libxml2 + during configure (Hugh McMaster, Tom + Lane, Peter Eisentraut) + + + + If pkg-config is not present or lacks + knowledge of libxml2, we still + query xml2-config as before. + + + + This change could break build processes that try to + make PostgreSQL use a non-default version + of libxml2 by putting that + version's xml2-config into + the PATH. Instead, + set XML2_CONFIG to point to the + non-default xml2-config. That method + will work with either older or + newer PostgreSQL releases. + + + + + + + Fix Makefile dependencies for libpq + and ecpg (Dagfinn Ilmari MannsÃ¥ker) + + + + + + + Include CFLAGS_SL in CXXFLAGS + when building a shared library (Oleksii Kliukin) + + + + This ensures that C++ source files are compiled correctly, for + example by adding -fPIC when needed. + + + + + + + In MSVC builds, cope with spaces in the path name for Python + (Victor Wagner) + + + + + + + In MSVC builds, fix detection of Visual Studio version to work with + more language settings (Andrew Dunstan) + + + + + + + In MSVC builds, use -Wno-deprecated with bison + versions newer than 3.0, as non-Windows builds already do (Andrew + Dunstan) + + + + + + + Update time zone data files to tzdata + release 2020a for DST law changes in Morocco and the Canadian Yukon, + plus historical corrections for Shanghai. + + + + The America/Godthab zone has been renamed to America/Nuuk to reflect + current English usage; however, the old name remains available as a + compatibility link. + + + + Also, update initdb's list of known + Windows time zone names to include recent additions, improving the + odds that it will correctly translate the system time zone setting + on that platform. + + + + + + + + Release 12.2