Release notes for 16.2, 15.6, 14.11, 13.14, 12.18.
authorTom Lane
Sun, 4 Feb 2024 19:17:14 +0000 (14:17 -0500)
committerTom Lane
Sun, 4 Feb 2024 19:17:14 +0000 (14:17 -0500)
doc/src/sgml/release-14.sgml

index 8bf266d2d30127b77c978b5f27a5456dceec23f6..820855580d093d0f6a066825d34ea1880b6785be 100644 (file)
 
 
 
+  Release 14.11
+
+  
+  Release date:
+  2024-02-08
+  
+
+  
+   This release contains a variety of fixes from 14.10.
+   For information about new features in major release 14, see
+   .
+  
+
+  
+   Migration to Version 14.11
+
+   
+    A dump/restore is not required for those running 14.X.
+   
+
+   
+    However, one bug was fixed that could have resulted in corruption of
+    GIN indexes during concurrent updates.  If you suspect such
+    corruption, reindex affected indexes after installing this update.
+   
+
+   
+    Also, if you are upgrading from a version earlier than 14.10,
+    see .
+   
+  
+
+  
+   Changes
+
+   
+
+    
+
+     
+      Fix memory leak when performing JIT inlining (Andres Freund,
+      Daniel Gustafsson)
+     
+
+     
+      There have been multiple reports of backend processes suffering
+      out-of-memory conditions after sufficiently many JIT compilations.
+      This fix should resolve that.
+     
+    
+
+    
+
+     
+      When dequeueing from an LWLock, avoid needing to search the list of
+      waiting processes (Andres Freund)
+     
+
+     
+      This fixes O(N^2) behavior when the list of waiters is long.  In
+      some use-cases this results in substantial throughput improvements.
+     
+    
+
+    
+
+     
+      Avoid generating incorrect partitioned-join plans (Richard Guo)
+     
+
+     
+      Some uncommon situations involving lateral references could create
+      incorrect plans.  Affected queries could produce wrong answers, or
+      odd failures such as variable not found in subplan target
+      list, or executor crashes.
+     
+    
+
+    
+
+     
+      Fix incorrect wrapping of subquery output expressions in
+      PlaceHolderVars (Tom Lane)
+     
+
+     
+      This fixes incorrect results when a subquery is underneath an outer
+      join and has an output column that laterally references something
+      outside the outer join's scope.  The output column might not appear
+      as NULL when it should do so due to the action of the outer join.
+     
+    
+
+    
+
+     
+      Prevent access to a no-longer-pinned buffer in BEFORE ROW
+      UPDATE triggers (Alexander Lakhin, Tom Lane)
+     
+
+     
+      If the tuple being updated had just been updated and moved to
+      another page by another session, there was a narrow window where
+      we would attempt to fetch data from the new tuple version without
+      any pin on its buffer.  In principle this could result in garbage
+      data appearing in non-updated columns of the proposed new tuple.
+      The odds of problems in practice seem rather low, however.
+     
+    
+
+    
+
+     
+      Avoid requesting an oversize shared-memory area in parallel hash
+      join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov)
+     
+
+     
+      The limiting value was too large, allowing invalid DSA memory
+      alloc request size errors to occur with sufficiently large
+      expected hash table sizes.
+     
+    
+
+    
+
+     
+      Avoid assertion failures in heap_update()
+      and heap_delete() when a tuple to be updated by
+      a foreign-key enforcement trigger fails the extra visibility
+      crosscheck (Alexander Lakhin)
+     
+
+     
+      This error had no impact in non-assert builds.
+     
+    
+
+    
+
+     
+      Fix possible failure during ALTER TABLE ADD
+      COLUMN on a complex inheritance tree (Tender Wang)
+     
+
+     
+      If a grandchild table would inherit the new column via multiple
+      intermediate parents, the command failed with tuple already
+      updated by self.
+     
+    
+
+    
+
+     
+      Fix problems with duplicate token names in ALTER TEXT
+      SEARCH CONFIGURATION ... MAPPING commands (Tender Wang,
+      Michael Paquier)
+     
+    
+
+    
+
+     
+      Properly lock the associated table during DROP
+      STATISTICS (Tomas Vondra)
+     
+
+     
+      Failure to acquire the lock could result in tuple
+      concurrently deleted errors if the DROP
+      executes concurrently with ANALYZE.
+     
+    
+
+    
+
+     
+      Fix function volatility checking for GENERATED
+      and DEFAULT expressions (Tom Lane)
+     
+
+     
+      These places could fail to detect insertion of a volatile function
+      default-argument expression, or decide that a polymorphic function
+      is volatile although it is actually immutable on the datatype of
+      interest.  This could lead to improperly rejecting or accepting
+      a GENERATED clause, or to mistakenly applying the
+      constant-default-value optimization in ALTER TABLE ADD
+      COLUMN.
+     
+    
+
+    
+
+     
+      Detect that a new catalog cache entry became stale while detoasting
+      its fields (Tom Lane)
+     
+
+     
+      We expand any out-of-line fields in a catalog tuple before inserting
+      it into the catalog caches.  That involves database access which
+      might cause invalidation of catalog cache entries — but the
+      new entry isn't in the cache yet, so we would miss noticing that it
+      should get invalidated.  The result is a race condition in which an
+      already-stale cache entry could get made, and then persist
+      indefinitely.  This would lead to hard-to-predict misbehavior.
+      Fix by rechecking the tuple's visibility after detoasting.
+     
+    
+
+    
+
+     
+      Fix edge-case integer overflow detection bug on some platforms (Dean
+      Rasheed)
+     
+
+     
+      Computing 0 - INT64_MIN should result in an
+      overflow error, and did on most platforms.  However, platforms with
+      neither integer overflow builtins nor 128-bit integers would fail to
+      spot the overflow, instead returning INT64_MIN.
+     
+    
+
+    
+
+     
+      Detect Julian-date overflow when adding or subtracting
+      an interval to/from a timestamp (Tom Lane)
+     
+
+     
+      Some cases that should cause an out-of-range error produced an
+      incorrect result instead.
+     
+    
+
+    
+
+     
+      Add more checks for overflow in interval_mul()
+      and interval_div() (Dean Rasheed)
+     
+
+     
+      Some cases that should cause an out-of-range error produced an
+      incorrect result instead.
+     
+    
+
+    
+
+     
+      Make the pg_file_settings view check
+      validity of unapplied values for settings
+      with backend
+      or superuser-backend context (Tom Lane)
+     
+
+     
+      Invalid values were not noted in the view as intended.  This escaped
+      detection because there are very few settings in these groups.
+     
+    
+
+    
+
+     
+      Match collation too when matching an existing index to a new
+      partitioned index (Peter Eisentraut)
+     
+
+     
+      Previously we could accept an index that has a different collation
+      from the corresponding element of the partition key, possibly
+      leading to misbehavior.
+     
+    
+
+    
+
+     
+      Avoid failure if a child index is dropped concurrently
+      with REINDEX INDEX on a partitioned index
+      (Fei Changhong)
+     
+    
+
+    
+
+     
+      Fix insufficient locking when cleaning up an incomplete split of
+      a GIN index's internal page (Fei Changhong, Heikki Linnakangas)
+     
+
+     
+      The code tried to do this with shared rather than exclusive lock on
+      the buffer.  This could lead to index corruption if two processes
+      attempted the cleanup concurrently.
+     
+    
+
+    
+
+     
+      Avoid premature release of buffer pin in GIN index insertion
+      (Tom Lane)
+     
+
+     
+      If an index root page split occurs concurrently with our own
+      insertion, the code could fail with buffer NNNN is not owned
+      by resource owner.
+     
+    
+
+    
+
+     
+      Avoid failure with partitioned SP-GiST indexes (Tom Lane)
+     
+
+     
+      Trying to use an index of this kind could lead to No such
+      file or directory errors.
+     
+    
+
+    
+
+     
+      Fix ownership change reporting for large objects (Tom Lane)
+     
+
+     
+      A no-op ALTER LARGE OBJECT OWNER command (that
+      is, one selecting the existing owner) passed the wrong class ID to
+      the PostAlterHook, probably confusing any
+      extension using that hook.
+     
+    
+
+    
+
+     
+      Prevent standby servers from incorrectly processing dead index
+      tuples during subtransactions (Fei Changhong)
+     
+
+     
+      The startedInRecovery flag was not
+      correctly set for a subtransaction.  This affects only processing of
+      dead index tuples.  It could allow a query in a subtransaction to
+      ignore index entries that it should return (if they are already dead
+      on the primary server, but not dead to the standby transaction), or
+      to prematurely mark index entries as dead that are not yet dead on
+      the primary.  It is not clear that the latter case has any serious
+      consequences, but it's not the intended behavior.
+     
+    
+
+    
+
+     
+      Fix deadlock between a logical replication apply worker, its
+      tablesync worker, and a session process trying to alter the
+      subscription (Shlok Kyal)
+     
+
+     
+      One edge of the deadlock loop did not involve a lock wait, so the
+      deadlock went undetected and would persist until manual
+      intervention.
+     
+    
+
+    
+
+     
+      Prevent examining system catalogs with the wrong snapshot during
+      logical decoding (Fei Changhong)
+     
+
+     
+      If decoding begins partway through a transaction that modifies
+      system catalogs, the decoder may not recognize that, causing it to
+      fail to treat that transaction as in-progress for catalog lookups.
+      This fix deals with the case that a top-level transaction is already
+      marked as containing catalog changes, but its subtransaction(s) are
+      not.
+     
+    
+
+    
+
+     
+      Return the correct status code when a new client disconnects without
+      responding to the server's password challenge (Liu Lang, Tom Lane)
+     
+
+     
+      In some cases we'd treat this as a loggable error, which was not the
+      intention and tends to create log spam, since common clients
+      like psql frequently do this.  It may
+      also confuse extensions that
+      use ClientAuthentication_hook.
+     
+    
+
+    
+
+     
+      Fix incompatibility with OpenSSL 3.2
+      (Tristan Partin, Bo Andreson)
+     
+
+     
+      Use the BIO app_data field for our private storage,
+      instead of assuming it's okay to use the data field.
+      This mistake didn't cause problems before, but with 3.2 it leads
+      to crashes and complaints about double frees.
+     
+    
+
+    
+
+     
+      Be more wary about OpenSSL not
+      setting errno on error (Tom Lane)
+     
+
+     
+      If errno isn't set, assume the cause of the
+      reported failure is read EOF.  This fixes rare cases of strange
+      error reports like could not accept SSL connection:
+      Success.
+     
+    
+
+    
+
+     
+      Fix file descriptor leakage when a foreign data
+      wrapper's ForeignAsyncRequest function fails
+      (Heikki Linnakangas)
+     
+    
+
+    
+
+     
+      Report ENOMEM errors from file-related system
+      calls as ERRCODE_OUT_OF_MEMORY,
+      not ERRCODE_INTERNAL_ERROR (Alexander Kuzmenkov)
+     
+    
+
+    
+
+     
+      In PL/pgSQL, support SQL commands that
+      are CREATE FUNCTION/CREATE
+      PROCEDURE with SQL-standard bodies (Tom Lane)
+     
+
+     
+      Previously, such cases failed with parsing errors due to the
+      semicolon(s) appearing in the function body.
+     
+    
+
+    
+
+     
+      Fix libpq's
+      handling of errors in pipelines (Álvaro Herrera)
+     
+
+     
+      The pipeline state could get out of sync if an error is returned
+      for reasons other than a query problem (for example, if the
+      connection is lost).  Potentially this would lead to a busy-loop in
+      the calling application.
+     
+    
+
+    
+
+     
+      Make libpq's
+      PQsendFlushRequest() function flush the client
+      output buffer under the same rules as
+      other PQsend functions (Jelte Fennema-Nio)
+     
+
+     
+      In pipeline mode, it may still be necessary to
+      call PQflush() as well; but this change removes
+      some inconsistency.
+     
+    
+
+    
+
+     
+      Avoid race condition when libpq
+      initializes OpenSSL support concurrently in two different threads
+      (Willi Mann, Michael Paquier)
+     
+    
+
+    
+
+     
+      Fix timing-dependent failure in GSSAPI data transmission (Tom Lane)
+     
+
+     
+      When using GSSAPI encryption in non-blocking
+      mode, libpq sometimes failed
+      with GSSAPI caller failed to retransmit all data needing to
+      be retried.
+     
+    
+
+    
+
+     
+      In pg_dump, don't dump RLS policies or
+      security labels for extension member objects (Tom Lane, Jacob
+      Champion)
+     
+
+     
+      Previously, commands would be included in the dump to set these
+      properties, which is really incorrect since they should be
+      considered as internal affairs of the extension.  Moreover, the
+      restoring user might not have adequate privilege to set them, and
+      indeed the dumping user might not have enough privilege to dump them
+      (since dumping RLS policies requires acquiring lock on their table).
+     
+    
+
+    
+
+     
+      In pg_dump, don't dump an extended
+      statistics object if its underlying table isn't being dumped
+      (Rian McGuire, Tom Lane)
+     
+
+     
+      This conforms to the behavior for other dependent objects such as
+      indexes.
+     
+    
+
+    
+
+     
+      Make it an error for a pgbench script to
+      end with an open pipeline (Anthonin Bonnefoy)
+     
+
+     
+      Previously, pgbench would behave oddly if
+      a \startpipeline command lacked a
+      matching \endpipeline.  This seems like a
+      scripting mistake rather than a case
+      that pgbench needs to handle nicely, so
+      throw an error.
+     
+    
+
+    
+
+     
+      In contrib/bloom, fix overly tight assertion
+      about false_positive_rate (Alexander Lakhin)
+     
+    
+
+    
+
+     
+      Fix crash in contrib/intarray if an array with
+      an element equal to INT_MAX is inserted into
+      a gist__int_ops index
+      (Alexander Lakhin, Tom Lane)
+     
+    
+
+    
+
+     
+      Report a better error
+      when contrib/pageinspect's
+      hash_bitmap_info() function is applied to a
+      partitioned hash index (Alexander Lakhin, Michael Paquier)
+     
+    
+
+    
+
+     
+      Report a better error
+      when contrib/pgstattuple's
+      pgstathashindex() function is applied to a
+      partitioned hash index (Alexander Lakhin)
+     
+    
+
+    
+
+     
+      On Windows, suppress autorun options when launching subprocesses
+      in pg_ctl
+      and pg_regress (Kyotaro Horiguchi)
+     
+
+     
+      When launching a child process via cmd.exe,
+      pass the  flag to prevent executing any autorun
+      commands specified in the registry.  This avoids possibly-surprising
+      side effects.
+     
+    
+
+    
+
+     
+      Fix compilation failures with libxml2
+      version 2.12.0 and later (Tom Lane)
+     
+    
+
+    
+
+     
+      Fix compilation failure of WAL_DEBUG code on
+      Windows (Bharath Rupireddy)
+     
+    
+
+    
+
+     
+      Suppress compiler warnings from Python's header files
+      (Peter Eisentraut, Tom Lane)
+     
+
+     
+      Our preferred compiler options provoke warnings about constructs
+      appearing in recent versions of Python's header files.  When using
+      gcc, we can suppress these warnings with
+      a pragma.
+     
+    
+
+    
+
+     
+      Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro)
+     
+    
+
+    
+
+     
+      Update time zone data files to tzdata
+      release 2024a for DST law changes in Greenland, Kazakhstan, and
+      Palestine, plus corrections for the Antarctic stations Casey and
+      Vostok.  Also historical corrections for Vietnam, Toronto, and
+      Miquelon.
+     
+    
+
+   
+
+  
+
  
   Release 14.10