+
+
Release 9.5.4
+
+
+
Release Date
+ 2016-08-11
+
+
+ This release contains a variety of fixes from 9.5.3.
+ For information about new features in the 9.5 major release, see
+ .
+
+
+
+
Migration to Version 9.5.4
+
+ A dump/restore is not required for those running 9.5.X.
+
+
+ However, if you are upgrading from a version earlier than 9.5.2,
+ see .
+
+
+
+
+
Changes
+
+
+
+
+
+ Fix corner-case misbehaviors for IS NULL>/IS NOT
+ NULL> applied to nested composite values (Andrew Gierth, Tom Lane)
+
+
+ The SQL standard specifies that IS NULL> should return
+ TRUE for a row of all null values (thus ROW(NULL,NULL) IS
+ NULL> yields TRUE), but this is not meant to apply recursively
+ (thus ROW(NULL, ROW(NULL,NULL)) IS NULL> yields FALSE).
+ The core executor got this right, but certain planner optimizations
+ treated the test as recursive (thus producing TRUE in both cases),
+ and contrib/postgres_fdw> could produce remote queries
+ that misbehaved similarly.
+
+
+
+
+
+ Fix unrecognized node type> error for INSERT ... ON
+ CONFLICT> within a recursive CTE (a WITH> item) (Peter
+ Geoghegan)
+
+
+
+
+
+ Fix INSERT ... ON CONFLICT> to successfully match index
+ expressions or index predicates that are simplified during the
+ planner's expression preprocessing phase (Tom Lane)
+
+
+
+
+
+ Correctly handle violations of exclusion constraints that apply to
+ the target table of an INSERT ... ON CONFLICT> command,
+ but are not one of the selected arbiter indexes (Tom Lane)
+
+
+ Such a case should raise a normal constraint-violation error, but it
+ got into an infinite loop instead.
+
+
+
+
+
+ Fix INSERT ... ON CONFLICT> to not fail if the target
+ table has a unique index on OID (Tom Lane)
+
+
+
+
+
+ Make the inet> and cidr> data types properly reject
+ IPv6 addresses with too many colon-separated fields (Tom Lane)
+
+
+
+
+
+ Prevent crash in close_ps()>
+ (the point> ##> lseg> operator)
+ for NaN input coordinates (Tom Lane)
+
+
+ Make it return NULL instead of crashing.
+
+
+
+
+
+ Avoid possible crash in pg_get_expr()> when inconsistent
+ values are passed to it (Michael Paquier, Thomas Munro)
+
+
+
+
+
+ Do not run the planner on the query contained in CREATE
+ MATERIALIZED VIEW> or CREATE TABLE AS>
+ when WITH NO DATA> is specified (Michael Paquier,
+ Tom Lane)
+
+
+ This avoids some unnecessary failure conditions, for example if a
+ stable function invoked by the materialized view depends on a table
+ that doesn't exist yet.
+
+
+
+
+
+ Avoid unsafe intermediate state during expensive paths
+ through heap_update()> (Masahiko Sawada, Andres Freund)
+
+
+ Previously, these cases locked the target tuple (by setting its XMAX)
+ but did not WAL-log that action, thus risking data integrity problems
+ if the page were spilled to disk and then a database crash occurred
+ before the tuple update could be completed.
+
+
+
+
+
+ Fix hint bit update during WAL replay of row locking operations
+ (Andres Freund)
+
+
+ The only known consequence of this problem is that row locks held by
+ a prepared, but uncommitted, transaction might fail to be enforced
+ after a crash and restart.
+
+
+
+
+
+ Avoid unnecessary could not serialize access> errors when
+ acquiring FOR KEY SHARE> row locks in serializable mode
+ (Álvaro Herrera)
+
+
+
+
+
+ Make sure expanded> datums returned by a plan node are
+ read-only (Tom Lane)
+
+
+ This avoids failures in some cases where the result of a lower plan
+ node is referenced in multiple places in upper nodes. So far as
+ core
PostgreSQL> is concerned, only array values
+ returned by PL/pgSQL functions are at risk; but extensions might
+ use expanded datums for other things.
+
+
+
+
+
+ Avoid crash in postgres -C> when the specified variable
+ has a null string value (Michael Paquier)
+
+
+
+
+
+ Prevent unintended waits for the receiver in WAL sender processes
+ (Kyotaro Horiguchi)
+
+
+
+
+
+ Fix possible loss of large subtransactions in logical decoding
+ (Petru-Florin Mihancea)
+
+
+
+
+
+ Ensure that backends see up-to-date statistics for shared catalogs
+ (Tom Lane)
+
+
+ The statistics collector failed to update the statistics file for
+ shared catalogs after a request from a regular backend. This problem
+ was partially masked because the autovacuum launcher regularly makes
+ requests that did cause such updates; however, it became obvious with
+ autovacuum disabled.
+
+
+
+
+
+ Avoid redundant writes of the statistics files when multiple
+ backends request updates close together (Tom Lane, Tomas Vondra)
+
+
+
+
+
+ Avoid consuming a transaction ID during VACUUM>
+ (Alexander Korotkov)
+
+
+ Some cases in VACUUM> unnecessarily caused an XID to be
+ assigned to the current transaction. Normally this is negligible,
+ but if one is up against the XID wraparound limit, consuming more
+ XIDs during anti-wraparound vacuums is a very bad thing.
+
+
+
+
+
+ Avoid canceling hot-standby queries during VACUUM FREEZE>
+ (Simon Riggs, Álvaro Herrera)
+
+
+ VACUUM FREEZE> on an otherwise-idle master server could
+ result in unnecessary cancellations of queries on its standby
+ servers.
+
+
+
+
+
+ Prevent possible failure when vacuuming multixact IDs in an
+ installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
+ Álvaro Herrera)
+
+
+ The usual symptom of this bug is errors
+ like MultiXactId NNN> has not been created
+ yet -- apparent wraparound.
+
+
+
+
+
+ When a manual ANALYZE> specifies a column list, don't
+ reset the table's changes_since_analyze> counter
+ (Tom Lane)
+
+
+ If we're only analyzing some columns, we should not prevent routine
+ auto-analyze from happening for the other columns.
+
+
+
+
+
+ Prevent autovacuum from starting multiple workers for the same shared
+ catalog (Álvaro Herrera)
+
+
+ Normally this isn't much of a problem because the vacuum doesn't take
+ long anyway; but in the case of a severely bloated catalog, it could
+ result in all but one worker uselessly waiting instead of doing
+ useful work on other tables.
+
+
+
+
+
+ Fix bug in b-tree mark/restore processing (Kevin Grittner)
+
+
+ This error could lead to incorrect join results or assertion failures
+ in a merge join whose inner source node is a b-tree indexscan.
+
+
+
+
+
+ Avoid duplicate buffer lock release when abandoning a b-tree index
+ page deletion attempt (Tom Lane)
+
+
+ This mistake prevented VACUUM> from completing in some
+ cases involving corrupt b-tree indexes.
+
+
+
+
+
+ Fix building of large (bigger than shared_buffers>)
+ hash indexes (Tom Lane)
+
+
+ The code path used for large indexes contained a bug causing
+ incorrect hash values to be inserted into the index, so that
+ subsequent index searches always failed, except for tuples inserted
+ into the index after the initial build.
+
+
+
+
+
+ Prevent infinite loop in GiST index build for geometric columns
+ containing NaN component values (Tom Lane)
+
+
+
+
+
+ Fix possible crash during a nearest-neighbor (ORDER BY>
+ distance) indexscan on a contrib/btree_gist> index on
+ an interval> column (Peter Geoghegan)
+
+
+
+
+
+ Fix PANIC: failed to add BRIN tuple> error when attempting
+ to update a BRIN index entry (Álvaro Herrera)
+
+
+
+
+
+ Fix possible crash during background worker shutdown (Dmitry Ivanov)
+
+
+
+
+
+ Fix PL/pgSQL's handling of the INTO> clause
+ within IMPORT FOREIGN SCHEMA> commands (Tom Lane)
+
+
+
+
+
+ Fix contrib/btree_gin> to handle the smallest
+ possible bigint> value correctly (Peter Eisentraut)
+
+
+
+
+
+ Teach libpq to correctly decode server version from future servers
+ (Peter Eisentraut)
+
+
+ It's planned to switch to two-part instead of three-part server
+ version numbers for releases after 9.6. Make sure
+ that PQserverVersion()> returns the correct value for
+ such cases.
+
+
+
+
+
+ Fix
ecpg>'s code for unsigned long long>
+ array elements (Michael Meskes)
+
+
+
+
+
+ In
pg_dump> with both
+ options, avoid emitting an unwanted CREATE SCHEMA public>
+ command (David Johnston, Tom Lane)
+
+
+
+
+
+ Improve handling of SIGTERM>/control-C in
+ parallel
pg_dump> and pg_restore> (Tom
+ Lane)
+
+
+ Make sure that the worker processes will exit promptly, and also arrange
+ to send query-cancel requests to the connected backends, in case they
+ are doing something long-running such as a CREATE INDEX>.
+
+
+
+
+
+ Fix error reporting in parallel
pg_dump>
+ and
pg_restore> (Tom Lane)
+
+
+ Previously, errors reported by
pg_dump>
+ or
pg_restore> worker processes might never make it to
+ the user's console, because the messages went through the master
+ process, and there were various deadlock scenarios that would prevent
+ the master process from passing on the messages. Instead, just print
+ everything to stderr>. In some cases this will result in
+ duplicate messages (for instance, if all the workers report a server
+ shutdown), but that seems better than no message.
+
+
+
+
+
+ Ensure that parallel
pg_dump>
+ or
pg_restore> on Windows will shut down properly
+ after an error (Kyotaro Horiguchi)
+
+
+ Previously, it would report the error, but then just sit until
+ manually stopped by the user.
+
+
+
+
+
+ Make parallel
pg_dump> fail cleanly when run against a
+ standby server (Magnus Hagander)
+
+
+ This usage is not supported
+ unless
+ error was not handled very well.
+
+
+
+
+
+ Make
pg_dump> behave better when built without zlib
+ support (Kyotaro Horiguchi)
+
+
+ It didn't work right for parallel dumps, and emitted some rather
+ pointless warnings in other cases.
+
+
+
+
+
+ Make
pg_basebackup> accept -Z 0> as
+ specifying no compression (Fujii Masao)
+
+
+
+
+
+ Revert to the old heuristic timeout for pg_ctl start -w>
+ (Tom Lane)
+
+
+ The new method adopted as of release 9.1.20 does not work
+ when silent_mode> is enabled, so go back to the old way.
+
+
+
+
+
+ Fix makefiles' rule for building AIX shared libraries to be safe for
+ parallel make (Noah Misch)
+
+
+
+
+
+ Fix TAP tests and MSVC scripts to work when build directory's path
+ name contains spaces (Michael Paquier, Kyotaro Horiguchi)
+
+
+
+
+
+ Be more predictable about reporting statement timeout>
+ versus lock timeout> (Tom Lane)
+
+
+ On heavily loaded machines, the regression tests sometimes failed due
+ to reporting lock timeout> even though the statement timeout
+ should have occurred first.
+
+
+
+
+
+ Make regression tests safe for Danish and Welsh locales (Jeff Janes,
+ Tom Lane)
+
+
+ Change some test data that triggered the unusual sorting rules of
+ these locales.
+
+
+
+
+
+ Update our copy of the timezone code to match
+ IANA's
tzcode> release 2016c (Tom Lane)
+
+
+ This is needed to cope with anticipated future changes in the time
+ zone data files. It also fixes some corner-case bugs in coping with
+ unusual time zones.
+
+
+
+
+
+ Update time zone data files to
tzdata> release 2016f
+ for DST law changes in Kemerovo and Novosibirsk, plus historical
+ corrections for Azerbaijan, Belarus, and Morocco.
+
+
+
+
+
+
+
+
Release 9.5.3