diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml index 1ee136ab96..97d1f51515 100644 --- a/doc/src/sgml/release-9.6.sgml +++ b/doc/src/sgml/release-9.6.sgml @@ -1,6 +1,1447 @@ + + Release 9.6.2 + + + Release Date + 2017-02-09 + + + + This release contains a variety of fixes from 9.6.1. + For information about new features in the 9.6 major release, see + . + + + + Migration to Version 9.6.2 + + + A dump/restore is not required for those running 9.6.X. + + + + However, if you are upgrading from a version earlier than 9.6.1, + see . + + + + + Changes + + + + + + + Ensure that the special snapshot used for catalog scans is not + invalidated by premature data pruning (Tom Lane) + + + + Backends failed to account for this snapshot when advertising their + oldest xmin, potentially allowing concurrent vacuuming operations to + remove data that was still needed. This led to transient failures + along the lines of cache lookup failed for relation 1255. + + + + + + + Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh) + + + + The WAL record emitted for a BRIN revmap page when moving an + index tuple to a different page was incorrect. Replay would make the + related portion of the index useless, forcing it to be recomputed. + + + + + + + Unconditionally WAL-log creation of the init fork for an + unlogged table (Michael Paquier) + + + + Previously, this was skipped when + = minimal, but actually it's necessary even in that case + to ensure that the unlogged table is properly reset to empty after a + crash. + + + + + + + Fix WAL page header validation when re-reading segments (Takayuki + Tsunakawa, Amit Kapila) + + + + In corner cases, a spurious out-of-sequence TLI error + could be reported during recovery. + + + + + + + Reduce interlocking on standby servers during the replay of btree + index vacuuming operations (Simon Riggs) + + + + This change avoids substantial replication delays that sometimes + occurred while replaying such operations. + + + + + + + If the stats collector dies during hot standby, restart it (Takayuki + Tsunakawa) + + + + + + + Ensure that hot standby feedback works correctly when it's enabled at + standby server start (Ants Aasma, Craig Ringer) + + + + + + + Check for interrupts while hot standby is waiting for a conflicting + query (Simon Riggs) + + + + + + + Avoid constantly respawning the autovacuum launcher in a corner case + (Amit Khandekar) + + + + This fix avoids problems when autovacuum is nominally off and there + are some tables that require freezing, but all such tables are + already being processed by autovacuum workers. + + + + + + + Disallow setting the num_sync field to zero in + (Fujii Masao) + + + + The correct way to disable synchronous standby is to set the whole + value to an empty string. + + + + + + + Don't count background worker processes against a user's connection + limit (David Rowley) + + + + + + + Fix check for when an extension member object can be dropped (Tom Lane) + + + + Extension upgrade scripts should be able to drop member objects, + but this was disallowed for serial-column sequences, and possibly + other cases. + + + + + + + Fix tracking of initial privileges for extension member objects so + that it works correctly with ALTER EXTENSION ... ADD/DROP + (Stephen Frost) + + + + An object's current privileges at the time it is added to the + extension will now be considered its default privileges; only + later changes in its privileges will be dumped by + subsequent pg_dump runs. + + + + + + + Make sure ALTER TABLE preserves index tablespace + assignments when rebuilding indexes (Tom Lane, Michael Paquier) + + + + Previously, non-default settings + of could result in broken + indexes. + + + + + + + Fix incorrect updating of trigger function properties when changing a + foreign-key constraint's deferrability properties with ALTER + TABLE ... ALTER CONSTRAINT (Tom Lane) + + + + This led to odd failures during subsequent exercise of the foreign + key, as the triggers were fired at the wrong times. + + + + + + + Prevent dropping a foreign-key constraint if there are pending + trigger events for the referenced relation (Tom Lane) + + + + This avoids could not find trigger NNN + or relation NNN has no triggers errors. + + + + + + + Fix ALTER TABLE ... SET DATA TYPE ... USING when child + table has different column ordering than the parent + (Álvaro Herrera) + + + + Failure to adjust the column numbering in the USING + expression led to errors, + typically attribute N has wrong type. + + + + + + + Fix processing of OID column when a table with OIDs is associated to + a parent with OIDs via ALTER TABLE ... INHERIT (Amit + Langote) + + + + The OID column should be treated the same as regular user columns in + this case, but it wasn't, leading to odd behavior in later + inheritance changes. + + + + + + + Ensure that CREATE TABLE ... LIKE ... WITH OIDS creates + a table with OIDs, whether or not the LIKE-referenced + table(s) have OIDs (Tom Lane) + + + + + + + Fix CREATE OR REPLACE VIEW to update the view query + before attempting to apply the new view options (Dean Rasheed) + + + + Previously the command would fail if the new options were + inconsistent with the old view definition. + + + + + + + Report correct object identity during ALTER TEXT SEARCH + CONFIGURATION (Artur Zakirov) + + + + The wrong catalog OID was reported to extensions such as logical + decoding. + + + + + + + Fix commit timestamp mechanism to not fail when queried about + the special XIDs FrozenTransactionId + and BootstrapTransactionId (Craig Ringer) + + + + + + + Check for serializability conflicts before reporting + constraint-violation failures (Thomas Munro) + + + + When using serializable transaction isolation, it is desirable + that any error due to concurrent transactions should manifest + as a serialization failure, thereby cueing the application that + a retry might succeed. Unfortunately, this does not reliably + happen for duplicate-key failures caused by concurrent insertions. + This change ensures that such an error will be reported as a + serialization error if the application explicitly checked for + the presence of a conflicting key (and did not find it) earlier + in the transaction. + + + + + + + Fix incorrect use of view reloptions as regular table reloptions (Tom + Lane) + + + + The symptom was spurious ON CONFLICT is not supported on table + ... used as a catalog table errors when the target + of INSERT ... ON CONFLICT is a view with cascade option. + + + + + + + Fix incorrect target lists can have at most N + entries complaint when using ON CONFLICT with + wide tables (Tom Lane) + + + + + + + Fix spurious query provides a value for a dropped column + errors during INSERT or UPDATE on a table + with a dropped column (Tom Lane) + + + + + + + Prevent multicolumn expansion of foo.* in + an UPDATE source expression (Tom Lane) + + + + This led to UPDATE target count mismatch --- internal + error. Now the syntax is understood as a whole-row variable, + as it would be in other contexts. + + + + + + + Ensure that column typmods are determined accurately for + multi-row VALUES constructs (Tom Lane) + + + + This fixes problems occurring when the first value in a column has a + determinable typmod (e.g., length for a varchar value) but + later values don't share the same limit. + + + + + + + Throw error for an unfinished Unicode surrogate pair at the end of a + Unicode string (Tom Lane) + + + + Normally, a Unicode surrogate leading character must be followed by a + Unicode surrogate trailing character, but the check for this was + missed if the leading character was the last character in a Unicode + string literal (U&'...') or Unicode identifier + (U&"..."). + + + + + + + Fix execution of DISTINCT and ordered aggregates when + multiple such aggregates are able to share the same transition state + (Heikki Linnakangas) + + + + + + + Fix implementation of phrase search operators in tsquery + (Tom Lane) + + + + Remove incorrect, and inconsistently-applied, rewrite rules that + tried to transform away AND/OR/NOT operators appearing below a PHRASE + operator; instead upgrade the execution engine to handle such cases + correctly. This fixes assorted strange behavior and possible crashes + for text search queries containing such combinations. Also fix + nested PHRASE operators to work sanely in combinations other than + simple left-deep trees, correct the behavior when removing stopwords + from a phrase search clause, and make sure that index searches behave + consistently with simple sequential-scan application of such queries. + + + + + + + Ensure that a purely negative text search query, such + as !foo, matches empty tsvectors (Tom Dunstan) + + + + Such matches were found by GIN index searches, but not by sequential + scans or GiST index searches. + + + + + + + Prevent crash when ts_rewrite() replaces a non-top-level + subtree with an empty query (Artur Zakirov) + + + + + + + Fix performance problems in ts_rewrite() (Tom Lane) + + + + + + + Fix ts_rewrite()'s handling of nested NOT operators + (Tom Lane) + + + + + + + Improve speed of user-defined aggregates that + use array_append() as transition function (Tom Lane) + + + + + + + Fix array_fill() to handle empty arrays properly (Tom Lane) + + + + + + + Fix possible crash in array_position() + or array_positions() when processing arrays of records + (Junseok Yang) + + + + + + + Fix one-byte buffer overrun in quote_literal_cstr() + (Heikki Linnakangas) + + + + The overrun occurred only if the input consisted entirely of single + quotes and/or backslashes. + + + + + + + Prevent multiple calls of pg_start_backup() + and pg_stop_backup() from running concurrently (Michael + Paquier) + + + + This avoids an assertion failure, and possibly worse things, if + someone tries to run these functions in parallel. + + + + + + + Disable transform that attempted to remove no-op AT TIME + ZONE conversions (Tom Lane) + + + + This resulted in wrong answers when the simplified expression was + used in an index condition. + + + + + + + Avoid discarding interval-to-interval casts + that aren't really no-ops (Tom Lane) + + + + In some cases, a cast that should result in zeroing out + low-order interval fields was mistakenly deemed to be a + no-op and discarded. An example is that casting from INTERVAL + MONTH to INTERVAL YEAR failed to clear the months field. + + + + + + + Fix crash if the number of workers available to a parallel query + decreases during a rescan (Andreas Seltenreich) + + + + + + + Fix bugs in transmitting GUC parameter values to parallel workers + (Michael Paquier, Tom Lane) + + + + + + + Allow statements prepared with PREPARE to be given + parallel plans (Amit Kapila, Tobias Bussman) + + + + + + + Fix incorrect generation of parallel plans for semi-joins (Tom Lane) + + + + + + + Fix planner's cardinality estimates for parallel joins (Robert Haas) + + + + Ensure that these estimates reflect the number of rows predicted to + be seen by each worker, rather than the total. + + + + + + + Fix planner to avoid trying to parallelize plan nodes containing + initplans or subplans (Tom Lane, Amit Kapila) + + + + + + + Ensure that cached plans are invalidated by changes in foreign-table + options (Amit Langote, Etsuro Fujita, Ashutosh Bapat) + + + + + + + Fix the plan generated for sorted partial aggregation with a constant + GROUP BY clause (Tom Lane) + + + + + + + Fix could not find plan for CTE planner error when dealing + with a UNION ALL containing CTE references (Tom Lane) + + + + + + + Fix mishandling of initplans when forcibly adding a Material node to + a subplan (Tom Lane) + + + + The typical consequence of this mistake was a plan should not + reference subplan's variable error. + + + + + + + Fix foreign-key-based join selectivity estimation for semi-joins and + anti-joins, as well as inheritance cases (Tom Lane) + + + + The new code for taking the existence of a foreign key relationship + into account did the wrong thing in these cases, making the estimates + worse not better than the pre-9.6 code. + + + + + + + Fix pg_dump to emit the data of a sequence that is + marked as an extension configuration table (Michael Paquier) + + + + + + + Fix mishandling of ALTER DEFAULT PRIVILEGES ... REVOKE + in pg_dump (Stephen Frost) + + + + pg_dump missed issuing the + required REVOKE commands in cases where ALTER + DEFAULT PRIVILEGES had been used to reduce privileges to less than + they would normally be. + + + + + + + Fix pg_dump to dump user-defined casts and transforms + that use built-in functions (Stephen Frost) + + + + + + + Fix pg_restore with + + + This doesn't fix any live bug, but it may improve the behavior in + future if pg_restore is used with an archive + generated by a later pg_dump version. + + + + + + + Fix pg_basebackup's rate limiting in the presence of + slow I/O (Antonin Houska) + + + + If disk I/O was transiently much slower than the specified rate + limit, the calculation overflowed, effectively disabling the rate + limit for the rest of the run. + + + + + + + Fix pg_basebackup's handling of + symlinked pg_stat_tmp and pg_replslot + subdirectories (Magnus Hagander, Michael Paquier) + + + + + + + Fix possible pg_basebackup failure on standby + server when including WAL files (Amit Kapila, Robert Haas) + + + + + + + Improve initdb to insert the correct + platform-specific default values for + the xxx_flush_after parameters + into postgresql.conf (Fabien Coelho, Tom Lane) + + + + This is a cleaner way of documenting the default values than was used + previously. + + + + + + + Fix possible mishandling of expanded arrays in domain check + constraints and CASE execution (Tom Lane) + + + + It was possible for a PL/pgSQL function invoked in these contexts to + modify or even delete an array value that needs to be preserved for + additional operations. + + + + + + + Fix nested uses of PL/pgSQL functions in contexts such as domain + check constraints evaluated during assignment to a PL/pgSQL variable + (Tom Lane) + + + + + + + Ensure that the Python exception objects we create for PL/Python are + properly reference-counted (Rafa de la Torre, Tom Lane) + + + + This avoids failures if the objects are used after a Python garbage + collection cycle has occurred. + + + + + + + Fix PL/Tcl to support triggers on tables that have .tupno + as a column name (Tom Lane) + + + + This matches the (previously undocumented) behavior of + PL/Tcl's spi_exec and spi_execp commands, + namely that a magic .tupno column is inserted only if + there isn't a real column named that. + + + + + + + Allow DOS-style line endings in ~/.pgpass files, + even on Unix (Vik Fearing) + + + + This change simplifies use of the same password file across Unix and + Windows machines. + + + + + + + Fix one-byte buffer overrun if ecpg is given a file + name that ends with a dot (Takayuki Tsunakawa) + + + + + + + Fix incorrect error reporting for duplicate data + in psql's \crosstabview (Tom Lane) + + + + psql sometimes quoted the wrong row and/or column + values when complaining about multiple entries for the same crosstab + cell. + + + + + + + Fix psql's tab completion for ALTER DEFAULT + PRIVILEGES (Gilles Darold, Stephen Frost) + + + + + + + Fix psql's tab completion for ALTER TABLE t + ALTER c DROP ... (Kyotaro Horiguchi) + + + + + + + In psql, treat an empty or all-blank setting of + the PAGER environment variable as meaning no + pager (Tom Lane) + + + + Previously, such a setting caused output intended for the pager to + vanish entirely. + + + + + + + Improve contrib/dblink's reporting of + low-level libpq errors, such as out-of-memory + (Joe Conway) + + + + + + + Teach contrib/dblink to ignore irrelevant server options + when it uses a contrib/postgres_fdw foreign server as + the source of connection options (Corey Huinker) + + + + Previously, if the foreign server object had options that were not + also libpq connection options, an error occurred. + + + + + + + Fix portability problems in contrib/pageinspect's + functions for GIN indexes (Peter Eisentraut, Tom Lane) + + + + + + + Fix possible miss of socket read events while waiting on Windows + (Amit Kapial) + + + + This error was harmless for most uses, but it is known to cause hangs + when trying to use the pldebugger extension. + + + + + + + On Windows, ensure that environment variable changes are propagated + to DLLs built with debug options (Christian Ullrich) + + + + + + + Sync our copy of the timezone library with IANA release tzcode2016j + (Tom Lane) + + + + This fixes various issues, most notably that timezone data + installation failed if the target directory didn't support hard + links. + + + + + + + Update time zone data files to tzdata release 2016j + for DST law changes in northern Cyprus (adding a new zone + Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, + and Antarctica/Casey. + Historical corrections for Italy, Kazakhstan, Malta, and Palestine. + Switch to preferring numeric zone abbreviations for Tonga. + + + + + + + + Release 9.6.1