Release notes for 14.1, 13.5, 12.9, 11.14, 10.19, 9.6.24.
authorTom Lane
Sun, 7 Nov 2021 19:21:50 +0000 (14:21 -0500)
committerTom Lane
Sun, 7 Nov 2021 19:21:50 +0000 (14:21 -0500)
doc/src/sgml/release-14.sgml

index 0b5ed128179e4de11cedcae6106bc90ab3a9d89b..e2a70b5f8396161316e1b5cb620bd97401e4ff68 100644 (file)
@@ -177,48 +177,6 @@ Branch: REL9_6_STABLE [e428699cb] 2021-10-23 18:36:43 -0700
 
     
 
-     
-      Fix float4 and float8 hash functions to
-      produce uniform results for NaNs (Tom Lane)
-     
-
-     
-      Since PostgreSQL's floating-point types
-      deem all NaNs to be equal, it's important for the hash functions to
-      produce the same hash code for all bit-patterns that are NaNs
-      according to the IEEE 754 standard.  This failed to happen before,
-      meaning that hash indexes and hash-based query plans might produce
-      incorrect results for non-canonical NaN values.
-      ('-NaN'::float8 is one way to produce such a
-      value on most machines.)  It is advisable to reindex hash indexes
-      on floating-point columns, if there is any possibility that they
-      might contain such values.
-     
-    
-
-    
-
-     
-      Prevent data loss during crash recovery of CREATE
-      TABLESPACE, when wal_level
-      = minimal (Noah Misch)
-     
-
-     
-      If the server crashed between CREATE TABLESPACE
-      and the next checkpoint, replay would fully remove the contents of
-      the new tablespace's directory, relying on subsequent WAL replay
-      to restore everything within that directory.  This interacts badly
-      with optimizations that skip writing WAL (one example
-      is COPY into a just-created table).  Such
-      optimizations are applied only when wal_level
-      is minimal, which is not the default in v10 and
-      later.
-     
-    
-
-    
-
-     
-      Ensure that the relation cache is invalidated for all partitions
-      of a partitioned table that is being added to or removed from a
-      publication (Hou Zhijie, Vignesh C)
-     
-
-     
-      This oversight could lead to improper replication behavior until all
-      currently-existing sessions have exited.
-     
-    
-
-    
-
-     
-      Ensure that the relation cache is invalidated when creating or
-      dropping a FOR ALL TABLES publication
-      (Hou Zhijie, Vignesh C)
-     
-
-     
-      This oversight could lead to improper replication behavior until all
-      currently-existing sessions have exited.
-     
-    
-
-    
-
-     
-      Don't discard a cast to the same type with unspecified type modifier
-      (Tom Lane)
-     
-
-     
-      For example, if column f1 is of
-      type numeric(18,3), the parser used to simply
-      discard a cast like f1::numeric, on the grounds
-      that it would have no run-time effect.  That's true, but the exposed
-      type of the expression should still be considered to be
-      plain numeric,
-      not numeric(18,3).  This is important for
-      correctly resolving the type of larger constructs, such
-      as recursive UNIONs.
-     
-    
-
-    
-
-     
-      Disallow creating an ICU collation if the current database's
-      encoding won't support it (Tom Lane)
-     
-
-     
-      Previously this was allowed, but then the collation could not be
-      referenced because of the way collation lookup works; you could not
-      use the collation, nor even drop it.
-     
-    
-
-    
-
-     
-      Avoid regular expression errors with capturing parentheses
-      inside {0} (Tom Lane)
-     
-
-     
-      Regular expressions like (.){0}...\1 drew
-      invalid backreference number.  Other regexp engines
-      such as Perl don't complain, though, and for that matter ours
-      doesn't either in some closely related cases.  Worse, it could throw
-      an assertion failure instead.  Fix it so that no error is thrown and
-      instead the back-reference is silently deemed to never match.
-     
-    
-
-    
-
-     
-      Prevent regular expression back-references from sometimes matching
-      when they shouldn't (Tom Lane)
-     
-
-     
-      The regexp engine was careless about clearing match data
-      for capturing parentheses after rejecting a partial match.  This
-      could allow a later back-reference to match in places where it
-      should fail for lack of a defined referent.
-     
-    
-
-    
-
-     
-      Fix regular expression performance bug with back-references inside
-      iteration nodes (Tom Lane)
-     
-
-     
-      Incorrect back-tracking logic could result in exponential time spent
-      looking for a match.  Fortunately the problem is masked in most
-      cases by other optimizations.
-     
-    
-
-    
-
-     
-      Fix incorrect results from AT TIME ZONE applied
-      to a time with time zone value (Tom Lane)
-     
-
-     
-      The results were incorrect if the target time zone was specified by
-      a dynamic timezone abbreviation (that is, one that is defined as
-      equivalent to a full time zone name, rather than a fixed UTC offset).
-     
-    
-
-    
-
-     
-      Fix mistranslation of PlaceHolderVars to inheritance child relations
-      (Tom Lane)
-     
-
-     
-      This error could result in assertion failures, or in mis-planning of
-      queries having partitioned or inherited tables on the nullable side
-      of an outer join.
-     
-    
-
-    
-
+     
+      Prevent wraparound of overflowed-subtransaction tracking on standby
+      servers (Kyotaro Horiguchi, Alexander Korotkov)
+     
+
+     
+      This oversight could cause significant performance degradation
+      (manifesting as excessive SubtransSLRU traffic) on standby servers.
+     
+    
+
+    
+
-     
-      Disallow LISTEN in background workers (Tom Lane)
-     
-
-     
-      There's no infrastructure to support this, so if someone did
-      it, it would only result in preventing cleanup of
-      the NOTIFY queue.
-     
-    
-
-    
-
-     
-      Send NOTIFY signals to other backends during
-      transaction commit, not in the server's idle loop (Artur Zakirov,
-      Tom Lane)
-     
-
-     
-      This change allows notifications to be delivered immediately after
-      an intra-procedure COMMIT.  It also allows
-      logical replication workers to send notifications.
-     
-    
-
-    
-
@@ -786,261 +491,6 @@ Branch: REL_14_STABLE [2c25db32e] 2021-10-11 11:56:52 -0400
 
     
 
-     
-      Refuse to rewind a cursor marked NO SCROLL
-      if it has been held over from a previous transaction due
-      to the WITH HOLD option (Tom Lane)
-     
-
-     
-      We have long forbidden fetching backwards from a NO
-      SCROLL cursor, but for historical reasons the prohibition
-      didn't extend to cases in which we rewind the query altogether and
-      then re-fetch forwards.  That exception leads to inconsistencies,
-      particularly for held-over cursors which may not have stored all the
-      data necessary to rewind.  Disallow rewinding for non-scrollable
-      held-over cursors to block the worst inconsistencies.  (v15 will
-      remove the exception altogether.)
-     
-    
-
-    
-
-     
-      Fix possible failure while saving a WITH HOLD
-      cursor at transaction end, if it had already been read to completion
-      (Tom Lane)
-     
-    
-
-    
-
-     
-      Fix detection of a relation that has grown to the maximum allowed
-      length (Tom Lane)
-     
-
-     
-      An attempt to extend a table or index past the limit of 2^32-1
-      blocks was rejected, but not soon enough to prevent inconsistent
-      internal state from being created.
-     
-    
-
-    
-
-     
-      Correctly track the presence of data-modifying CTEs when expanding
-      a DO INSTEAD rule (Greg Nancarrow, Tom Lane)
-     
-
-     
-      The previous failure to do this could lead to problems such as
-      unsafely choosing a parallel plan.
-     
-    
-
-    
-
-     
-      Fix incorrect reporting of permissions failures on extended
-      statistics objects (Tomas Vondra)
-     
-
-     
-      The code typically produced cache lookup error rather
-      than the intended message.
-     
-    
-
-    
-
-     
-      Fix incorrect snapshot handling in parallel workers (Greg Nancarrow)
-     
-
-     
-      This oversight could lead to misbehavior in parallel queries if the
-      transaction isolation level is less than REPEATABLE
-      READ.
-     
-    
-
-    
-
-     
-      Fix logical decoding to correctly ignore toast-table changes for
-      transient tables (Bertrand Drouvot)
-     
-
-     
-      Logical decoding normally ignores changes in transient tables such
-      as those created during an ALTER TABLE heap
-      rewrite.  But that filtering wasn't applied to the associated toast
-      table if any, leading to possible errors when rewriting a table
-      that's being published.
-     
-    
-
-    
-
-     
-      Fix logical decoding's memory usage accounting to handle TOAST data
-      correctly (Bertrand Drouvot)
-     
-    
-
-    
-
-     
-      Ensure that walreceiver processes create all required archive
-      notification files before exiting (Fujii Masao)
-     
-
-     
-      If a walreceiver exited exactly at a WAL segment boundary, it failed
-      to make a notification file for the last-received segment, thus
-      delaying archiving of that segment on the standby.
-     
-    
-
-    
-
-     
-      Fix computation of the WAL range to include in a backup manifest
-      when a timeline change is involved (Kyotaro Horiguchi)
-     
-    
-
-    
-
-     
-      Avoid trying to lock the OLD
-      and NEW pseudo-relations in a rule
-      that uses SELECT FOR UPDATE
-      (Masahiko Sawada, Tom Lane)
-     
-    
-
-    
-
-     
-      Fix parser's processing of aggregate FILTER
-      clauses (Tom Lane)
-     
-
-     
-      If the FILTER expression is a plain boolean column,
-      the semantic level of the aggregate could be mis-determined, leading
-      to not-per-spec behavior.  If the FILTER
-      expression is itself a boolean-returning aggregate, an error should
-      be thrown but was not, likely resulting in a crash at execution.
-     
-    
-
-    
-
-     
-      Prevent ALTER TYPE/DOMAIN/OPERATOR ... SET
-      from changing extension membership (Tom Lane)
-     
-
-     
-      ALTER ... SET executed by an extension script
-      would cause the target object to become a member of the extension if
-      it was not already.  In itself this isn't too troubling, since
-      there's little reason for an extension script to touch an object not
-      belonging to the extension.  But ALTER TYPE SET
-      will recurse to dependent domains, thus causing them to also become
-      extension members.  This causes unwanted side-effects from
-      extension upgrade scripts that use that command to adjust the
-      properties of a base type belonging to the extension.  Fix by
-      redefining these ALTER cases to never change
-      extension membership.
-     
-    
-
-    
-
-     
-      Avoid trying to clean up LLVM state after an error within LLVM
-      (Andres Freund, Justin Pryzby)
-     
-
-     
-      This prevents a likely crash during backend exit after a fatal LLVM
-      error.
-     
-    
-
-    
-
-     
-      Ensure that scans of SP-GiST indexes are counted in the statistics
-      views (Tom Lane)
-     
-
-     
-      Incrementing the number-of-index-scans counter was overlooked in the
-      SP-GiST code, although per-tuple counters were advanced correctly.
-     
-    
-
-    
-
-     
-      Recalculate relevant wait intervals
-      if recovery_min_apply_delay is changed during
-      recovery (Soumyadeep Chakraborty, Ashwin Agrawal)
-     
-    
-
-    
-
-     
-      Fix infinite loop if a simplehash.h hash table
-      reaches 2^32 elements (Yura Sokolov)
-     
-
-     
-      It seems unlikely that this bug has been hit in practice, as it
-      would require work_mem settings of hundreds of
-      gigabytes for existing uses of simplehash.h.
-     
-    
-
-    
-
-     
-      Reduce memory consumption during calculation of extended statistics
-      (Justin Pryzby, Tomas Vondra)
-     
-    
-
-    
-
-     
-      Fix missing libpq functions on AIX
-      (Tony Reix)
-     
-
-     
-      Code reorganization led to the following documented functions not
-      being exported from libpq on AIX:
-      pg_encoding_to_char(),
-      pg_utf_mblen(),
-      pg_char_to_encoding(),
-      pg_valid_server_encoding(), and
-      pg_valid_server_encoding_id().
-      Restore them to visibility.
-     
-    
-
-    
-
-     
-      Fix ecpg to recover correctly
-      after malloc() failure while establishing a
-      connection (Michael Paquier)
-     
-    
-
-    
-
-     
-      Fix misevaluation of stable functions called in the arguments of a
-      PL/pgSQL CALL statement (Tom Lane)
-     
-
-     
-      They were being called with an out-of-date snapshot, so that they
-      would not see any database changes made since the start of the
-      session's top-level command.
-     
-    
-
-    
-
-     
-      Allow EXIT out of the outermost block in a
-      PL/pgSQL routine (Tom Lane)
-     
-
-     
-      If the routine does not require an explicit RETURN,
-      this usage should be valid, but it was rejected.
-     
-    
-
-    
-
-     
-      Remove pg_ctl's hard-coded limits on the
-      total length of generated commands (Phil Krylov)
-     
-
-     
-      For example, this removes a restriction on how many command-line
-      options can be passed through to the postmaster.  Individual path
-      names that pg_ctl deals with, such as the
-      postmaster executable's name or the data directory name, are still
-      limited to MAXPGPATH bytes in most cases.
-     
-    
-
-    
-
-     
-      Improve pg_dump's performance by avoiding
-      making per-table queries for RLS policies, and by avoiding repetitive
-      calls to format_type() (Tom Lane)
-     
-
-     
-      These changes provide only marginal improvement when dumping from a
-      local server, but a dump from a remote server can benefit
-      substantially due to fewer network round-trips.
-     
-    
-
-    
-
-     
-      Fix failure of contrib/btree_gin indexes
-      on "char"
-      (not char(n)) columns,
-      when an indexscan using the <
-      or <= operator is performed (Tom Lane)
-     
-
-     
-      Such an indexscan failed to return all the entries it should.
-     
-    
-
-    
-
-     
-      Add spinlock support for the RISC-V architecture (Marek Szuba)
-     
-
-     
-      This is essential for reasonable performance on that platform.
-     
-    
-
-    
-
-     
-      Support OpenSSL 3.0.0
-      (Peter Eisentraut, Daniel Gustafsson, Michael Paquier)
-     
-    
-
-    
-
-     
-      Set correct type identifier on OpenSSL BIO (I/O abstraction)
-      objects created by PostgreSQL
-      (Itamar Gafni)
-     
-
-     
-      This oversight probably only matters for code that is doing
-      tasks like auditing the OpenSSL installation.  But it's
-      nominally a violation of the OpenSSL API, so fix it.
-     
-    
-
-    
-
-     
-      Fix our pkg-config files to again support static
-      linking of libpq (Peter Eisentraut)
-     
-    
-
-    
-
-     
-      Make pg_regexec() robust against an
-      out-of-range search_start parameter
-      (Tom Lane)
-     
-
-     
-      Return REG_NOMATCH, instead of possibly crashing,
-      when search_start is past the end of the
-      string.  This case is probably unreachable within
-      core PostgreSQL, but extensions might be
-      more careless about the parameter value.
-     
-    
-
-    
-