First-draft release notes for 12.3.
authorTom Lane
Fri, 8 May 2020 20:40:14 +0000 (16:40 -0400)
committerTom Lane
Fri, 8 May 2020 20:40:14 +0000 (16:40 -0400)
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-12.sgml

index cadbbfd3de3fcafd76f6bcdafd4c85657270323f..3ee0fb92d26566e8e0f484b2d033be4e31cb192d 100644 (file)
 
 
 
+  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