First-draft release notes for 9.4.2 et al.
authorTom Lane
Sat, 16 May 2015 22:09:39 +0000 (18:09 -0400)
committerTom Lane
Sat, 16 May 2015 22:09:39 +0000 (18:09 -0400)
As usual, the release notes for older branches will be made by cutting
these down, but put them up for community review first.

doc/src/sgml/release-9.4.sgml

index 3e15bb6cad7ec008aaf8dd65f7dff458ba094e27..c3d5ae7e87c603c9845f71c0c4f11accbdd812e0 100644 (file)
 
 
 
+  Release 9.4.2
+
+  
+  Release Date
+  2015-05-21
+  
+
+  
+   This release contains a variety of fixes from 9.4.1.
+   For information about new features in the 9.4 major release, see
+   .
+  
+
+  
+   Migration to Version 9.4.2
+
+   
+    A dump/restore is not required for those running 9.4.X.
+   
+
+   
+    However, if you use contrib/citext's
+    regexp_matches() functions, see the changelog entry below
+    about that.
+   
+
+   
+    Also, if you are upgrading from a version earlier than 9.4.1,
+    see .
+   
+  
+
+  
+   Changes
+
+   
+
+
+
+    
+     
+      Protect against wraparound of multixact member IDs
+      (Álvaro Herrera, Robert Haas, Thomas Munro)
+     
+
+     
+      Under certain usage patterns, the existing defenses against this might
+      be insufficient, allowing pg_multixact/members files to be
+      removed too early, resulting in data loss.
+      The fix for this includes modifying the server to fail transactions
+      that would result in overwriting old multixact member ID data, and
+      improving autovacuum to ensure it will act proactively to prevent
+      multixact member ID wraparound, as it does for transaction ID
+      wraparound.
+     
+    
+
+
+
+    
+     
+      Fix incorrect declaration of contrib/citext's
+      regexp_matches() functions (Tom Lane)
+     
+
+     
+      These functions should return setof text[], like the core
+      functions they are wrappers for; but they were incorrectly declared as
+      returning just text[].  This mistake had two results: first,
+      if there was no match you got a scalar null result, whereas what you
+      should get is an empty set (zero rows).  Second, the g flag
+      was effectively ignored, since you would get only one result array even
+      if there were multiple matches.
+     
+
+     
+      While the latter behavior is clearly a bug, there might be applications
+      depending on the former behavior; therefore the function declarations
+      will not be changed by default until PostgreSQL 9.5.
+      In pre-9.5 branches, the old behavior exists in version 1.0 of
+      the citext extension, while we have provided corrected
+      declarations in version 1.1 (which is not installed by
+      default).  To adopt the fix in pre-9.5 branches, execute
+      ALTER EXTENSION citext UPDATE TO '1.1' in each database in
+      which citext is installed.  (You can also update
+      back to 1.0 if you need to undo that.)  Beware that either update
+      direction will require dropping and recreating any views or rules that
+      use citext's regexp_matches() functions.
+     
+    
+
+
+
+    
+     
+      Render infinite dates and timestamps as infinity when
+      converting to json, rather than throwing an error
+      (Andrew Dunstan)
+     
+    
+
+
+
+    
+     
+      Fix json/jsonb's populate_record()
+      and to_record() functions to handle empty input properly
+      (Andrew Dunstan)
+     
+    
+
+
+
+    
+     
+      Fix incorrect checking of deferred exclusion constraints after a HOT
+      update (Tom Lane)
+     
+
+     
+      If a new row that potentially violates a deferred exclusion constraint
+      is HOT-updated (that is, no indexed columns change and the row can be
+      stored back onto the same table page) later in the same transaction,
+      the exclusion constraint would be reported as violated when the check
+      finally occurred, even if the row(s) the new row originally conflicted
+      with had been deleted.
+     
+    
+
+
+
+    
+     
+      Fix behavior when changing foreign key constraint deferrability status
+      with ALTER TABLE ... ALTER CONSTRAINT (Tom Lane)
+     
+
+     
+      Operations later in the same session or concurrent sessions might not
+      honor the status change promptly.
+     
+    
+
+
+
+    
+     
+      Fix planning of star-schema-style queries (Tom Lane)
+     
+
+     
+      Sometimes, efficient scanning of a large table requires that index
+      parameters be provided from more than one other table (commonly,
+      dimension tables whose keys are needed to index a large fact table).
+      The planner should be able to find such plans, but an overly
+      restrictive search heuristic prevented it.
+     
+    
+
+
+
+    
+     
+      Prevent improper reordering of antijoins (NOT EXISTS joins) versus
+      other outer joins (Tom Lane)
+     
+
+     
+      This oversight in the planner has been observed to cause could
+      not find RelOptInfo for given relids errors, but it seems possible
+      that sometimes an incorrect query plan might get past that consistency
+      check and result in silently-wrong query output.
+     
+    
+
+
+
+    
+     
+      Fix incorrect matching of subexpressions in outer-join plan nodes
+      (Tom Lane)
+     
+
+     
+      Previously, if textually identical non-strict subexpressions were used
+      both above and below an outer join, the planner might try to re-use
+      the value computed below the join, which would be incorrect because the
+      executor would force the value to NULL in case of an unmatched outer row.
+     
+    
+
+
+
+    
+     
+      Fix GEQO planner to cope with failure of its join order heuristic
+      (Tom Lane)
+     
+
+     
+      This oversight has been seen to lead to failed to join all
+      relations together errors in queries involving LATERAL,
+      and that might happen in other cases as well.
+     
+    
+
+
+
+    
+     
+      Ensure that row locking occurs properly when the target of
+      an UPDATE or DELETE is a security-barrier view
+      (Stephen Frost)
+     
+    
+
+
+
+    
+     
+      Use a file opened for read/write when syncing replication slot data
+      during database startup (Andres Freund)
+     
+
+     
+      On some platforms, the previous coding could result in errors like
+      could not fsync file "pg_replslot/...": Bad file descriptor.
+     
+    
+
+
+
+    
+     
+      Fix possible deadlock at startup
+      when max_prepared_transactions is too small
+      (Heikki Linnakangas)
+     
+    
+
+
+
+    
+     
+      Don't archive useless preallocated WAL files after a timeline switch
+      (Heikki Linnakangas)
+     
+    
+
+
+
+    
+     
+      Recursively fsync() the data directory after a crash
+      (Abhijit Menon-Sen, Robert Haas)
+     
+
+     
+      This ensures consistency if another crash occurs shortly later.  (The
+      second crash would have to be a system-level crash, not just a database
+      crash, for there to be a problem.)
+     
+    
+
+
+
+    
+     
+      Fix autovacuum launcher's possible failure to shut down, if an error
+      occurs after it receives SIGTERM (Álvaro Herrera)
+     
+    
+
+
+
+    
+     
+      Fix failure to handle invalidation messages for system catalogs
+      early in session startup (Tom Lane)
+     
+
+     
+      This oversight could result in failures in sessions that start
+      concurrently with a VACUUM FULL on a system catalog.
+     
+    
+
+
+
+    
+     
+      Fix crash in BackendIdGetTransactionIds() when trying
+      to get status for a backend process that just exited (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Cope with unexpected signals in LockBufferForCleanup()
+      (Andres Freund)
+     
+
+     
+      This oversight could result in spurious errors about multiple
+      backends attempting to wait for pincount 1.
+     
+    
+
+
+
+    
+     
+      Fix crash when doing COPY IN to a table with check
+      constraints that contain whole-row references (Tom Lane)
+     
+
+     
+      The known failure case only crashes in 9.4 and up, but there is very
+      similar code in 9.3 and 9.2, so back-patch those branches as well.
+     
+    
+
+
+
+    
+     
+      Avoid waiting for WAL flush or synchronous replication during commit of
+      a transaction that was read-only so far as the user is concerned
+      (Andres Freund)
+     
+
+     
+      Previously, a delay could occur at commit in transactions that had
+      written WAL due to HOT page pruning, leading to undesirable effects
+      such as sessions getting stuck at startup if all synchronous replicas
+      are down.  Sessions have also been observed to get stuck in catchup
+      interrupt processing when using synchronous replication; this will fix
+      that problem as well.
+     
+    
+
+
+
+    
+     
+      Avoid busy-waiting with short recovery_min_apply_delay
+      values (Andres Freund)
+     
+    
+
+
+
+    
+     
+      Fix crash when manipulating hash indexes on temporary tables
+      (Heikki Linnakangas)
+     
+
+     
+      This fault was introduced in the previous set of minor releases
+      as a byproduct of a race-condition fix.
+     
+    
+
+
+
+    
+     
+      Fix possible failure during hash index bucket split, if other processes
+      are modifying the index concurrently (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Fix memory leaks in GIN index vacuum (Heikki Linnakangas)
+     
+    
+
+
+
+    
+     
+      Check for interrupts while analyzing index expressions (Jeff Janes)
+     
+
+     
+      ANALYZE executes index expressions many times; if there are
+      slow functions in such an expression, it's desirable to be able to
+      cancel the ANALYZE before that loop finishes.
+     
+    
+
+
+
+    
+     
+      Ensure tableoid of a foreign table is reported
+      correctly when a READ COMMITTED recheck occurs after
+      locking rows in SELECT FOR UPDATE, UPDATE,
+      or DELETE (Etsuro Fujita)
+     
+    
+
+
+
+    
+     
+      Improve object description strings for foreign-server user mappings
+      (Álvaro Herrera)
+     
+
+     
+      Add the name of the target server, since otherwise it's ambiguous.
+     
+    
+
+
+
+    
+     
+      Include the schema name in object identity strings for conversions
+      (Álvaro Herrera)
+     
+    
+
+
+
+    
+     
+      Recommend setting include_realm to 1 when using
+      Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
+     
+
+     
+      Without this, identically-named users from different realms cannot be
+      distinguished.  For the moment this is only a documentation change, but
+      it will become the default setting in PostgreSQL 9.5.
+     
+    
+
+
+
+    
+     
+      Remove code for matching IPv4 pg_hba.conf entries to
+      IPv4-in-IPv6 addresses (Tom Lane)
+     
+
+     
+      This hack was added in 2003 in response to a report that some Linux
+      kernels of the time would report IPv4 connections as having
+      IPv4-in-IPv6 addresses.  However, the logic was accidentally broken in
+      9.0.  The lack of any field complaints since then shows that it's not
+      needed anymore.  Now we have reports that the broken code causes
+      crashes on some systems, so let's just remove it rather than fix it.
+      (Had we chosen to fix it, that would make for a subtle and potentially
+      security-sensitive change in the effective meaning of
+      IPv4 pg_hba.conf entries, which does not seem like a good
+      thing to do in minor releases.)
+     
+    
+
+
+
+    
+     
+      Fix status reporting for terminated background workers that were never
+      actually started (Robert Haas)
+     
+    
+
+
+
+    
+     
+      After a database crash, don't restart background workers that are
+      marked BGW_NEVER_RESTART (Amit Khandekar)
+     
+    
+
+
+
+    
+     
+      Report WAL flush, not insert, position in IDENTIFY_SYSTEM
+      replication command (Heikki Linnakangas)
+     
+
+     
+      This avoids a possible startup failure
+      in pg_receivexlog.
+     
+    
+
+
+
+    
+     
+      While shutting down service on Windows, periodically send status
+      updates to the Service Control Manager to prevent it from killing the
+      service too soon; and ensure that pg_ctl will wait for
+      shutdown (Krystian Bigaj)
+     
+    
+
+
+
+    
+     
+      Guard against network deadlock when using libpq's
+      non-blocking mode (Heikki Linnakangas)
+     
+
+     
+      When sending large volumes of data, it's important to drain the input
+      buffer every so often, in case the server has sent enough response data
+      to cause it to block on output.  (A typical scenario is that the server
+      is sending a stream of NOTICE messages during COPY FROM
+      STDIN.)  This worked properly in the normal blocking mode, but not
+      so much in non-blocking mode.  We've modified libpq
+      to opportunistically drain input when it can, but a full defense
+      against this problem requires application cooperation: the application
+      should watch for socket read-ready as well as write-ready conditions,
+      and be sure to call PQconsumeInput() upon read-ready.
+     
+    
+
+
+
+    
+     
+      In libpq, fix misparsing of empty values in URI
+      connection strings (Thomas Fanghaenel)
+     
+    
+
+
+
+    
+     
+      Fix array handling in ecpg (Michael Meskes)
+     
+    
+
+
+
+    
+     
+      Fix psql to sanely handle URIs and conninfo strings as
+      the first parameter to \connect
+      (David Fetter, Andrew Dunstan, Álvaro Herrera)
+     
+
+     
+      This syntax has been accepted (but undocumented) for a long time, but
+      previously some parameters might be taken from the old connection
+      instead of the given string, which was agreed to be undesirable.
+     
+    
+
+
+
+    
+     
+      Suppress incorrect complaints from psql on some
+      platforms that it failed to write ~/.psql_history at exit
+      (Tom Lane)
+     
+
+     
+      This misbehavior was caused by a workaround for a bug in very old
+      (pre-2006) versions of libedit.  We fixed it by
+      removing the workaround, which will cause a similar failure to appear
+      for anyone still using such versions of libedit.
+      Recommendation: upgrade that library, or use libreadline.
+     
+    
+
+
+
+    
+     
+      Fix pg_dump's rule for deciding which casts are
+      system-provided casts that should not be dumped (Tom Lane)
+     
+    
+
+
+
+    
+     
+      In pg_dump, fix failure to honor -Z
+      compression level option together with -Fd
+      (Michael Paquier)
+     
+    
+
+
+
+    
+     
+      Make pg_dump consider foreign key relationships
+      between extension configuration tables while choosing dump order
+      (Gilles Darold, Michael Paquier, Stephen Frost)
+     
+
+     
+      This oversight could result in producing dumps that fail to reload
+      because foreign key constraints are transiently violated.
+     
+    
+
+
+
+    
+     
+      Avoid possible pg_dump failure when concurrent sessions
+      are creating and dropping temporary functions (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Fix dumping of views that are just VALUES(...) but have
+      column aliases (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Ensure that a view's replication identity is correctly set
+      to nothing during dump/restore (Marko Tiikkaja)
+     
+
+     
+      Previously, if the view was involved in a circular dependency,
+      it might wind up with an incorrect replication identity property.
+     
+    
+
+
+
+    
+     
+      In pg_upgrade, force timeline 1 in the new cluster
+      (Bruce Momjian)
+     
+
+     
+      This avoids a scenario in which a server previously promoted from
+      standby status couldn't be upgraded because of a missing WAL history
+      file.
+     
+    
+
+
+
+    
+     
+      In pg_upgrade, check for improperly non-connectable
+      databases before proceeding
+      (Bruce Momjian)
+     
+    
+
+
+
+    
+     
+      In pg_upgrade, quote directory paths
+      properly in the generated delete_old_cluster script
+      (Bruce Momjian)
+     
+    
+
+
+
+    
+     
+      In pg_upgrade, preserve database-level freezing info
+      properly
+      (Bruce Momjian)
+     
+
+     
+      This oversight could cause missing-clog-file errors for tables within
+      the postgres and template1 databases.
+     
+    
+
+
+
+    
+     
+      Run pg_upgrade and pg_resetxlog with
+      restricted privileges on Windows, so that they don't fail when run by
+      an administrator (Muhammad Asif Naeem)
+     
+    
+
+
+
+    
+     
+      Improve handling of readdir() failures when scanning
+      directories in initdb and pg_basebackup
+      (Marco Nenciarini)
+     
+    
+
+
+
+    
+     
+      Fix failure in pg_receivexlog (Andres Freund)
+     
+
+     
+      A patch merge mistake in 9.2.10 led to could not create archive
+      status file errors.
+     
+    
+
+
+
+    
+     
+      Fix slow sorting algorithm in contrib/intarray (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Fix compile failure on Sparc V8 machines (Rob Rowan)
+     
+    
+
+
+
+    
+     
+      Silence some build warnings on OS X (Tom Lane)
+     
+    
+
+
+
+    
+     
+      Update time zone data files to tzdata release 2015d
+      for DST law changes in Egypt, Mongolia, and Palestine, plus historical
+      changes in Canada and Chile.  Also adopt revised zone abbreviations for
+      the America/Adak zone (HST/HDT not HAST/HADT).
+     
+    
+
+   
+
+  
+
  
   Release 9.4.1