diff --git a/doc/src/sgml/release-9.6.sgml b/doc/src/sgml/release-9.6.sgml index a122afad9ea..bd471d08bf9 100644 --- a/doc/src/sgml/release-9.6.sgml +++ b/doc/src/sgml/release-9.6.sgml @@ -1,6 +1,664 @@ + + Release 9.6.19 + + + Release date: + 2020-08-13 + + + + This release contains a variety of fixes from 9.6.18. + For information about new features in the 9.6 major release, see + . + + + + Migration to Version 9.6.19 + + + A dump/restore is not required for those running 9.6.X. + + + + However, if you are upgrading from a version earlier than 9.6.16, + see . + + + + + Changes + + + + + + + In logical replication walsender, fix failure to send feedback + messages after sending a keepalive message (Álvaro Herrera) + + + + This is a relatively minor problem when using built-in logical + replication, because the built-in walreceiver will send a feedback + reply (which clears the incorrect state) fairly frequently anyway. + But with some other replication systems, such + as pglogical, it causes significant + performance issues. + + + + + + + Fix slow execution of ts_headline() (Tom Lane) + + + + The phrase-search fix added in our previous set of minor releases + could cause ts_headline() to take unreasonable + amounts of time for long documents; to make matters worse, the query + was not cancellable within the troublesome loop. + + + + + + + Ensure the repeat() function can be interrupted + by query cancel (Joe Conway) + + + + + + + Fix mis-handling of NaN inputs during parallel + aggregation on numeric-type columns (Tom Lane) + + + + If some partial aggregation workers found only NaNs + while others found only non-NaNs, the results + were combined incorrectly, possibly leading to the wrong overall + result (i.e., not NaN when it should be). + + + + + + + Undo double-quoting of index names in EXPLAIN's + non-text output formats (Tom Lane, Euler Taveira) + + + + + + + Fix timing of constraint revalidation in ALTER + TABLE (David Rowley) + + + + If ALTER TABLE needs to fully rewrite the table's + contents (for example, due to change of a column's data type) and + also needs to scan the table to re-validate foreign keys + or CHECK constraints, it sometimes did things in + the wrong order, leading to odd errors such as could not read + block 0 in file "base/nnnnn/nnnnn": read only 0 of 8192 bytes. + + + + + + + Cope with LATERAL references in restriction + clauses attached to an un-flattened sub-SELECT in + the FROM clause (Tom Lane) + + + + This oversight could result in assertion failures or crashes at + query execution. + + + + + + + Avoid believing that a never-analyzed foreign table has zero tuples + (Tom Lane) + + + + This primarily affected the planner's estimate of the number of + groups that would be obtained by GROUP BY. + + + + + + + Improve error handling in the server's buffile + module (Thomas Munro) + + + + Fix some cases where I/O errors were indistinguishable from reaching + EOF, or were not reported at all. Also add details such as block + numbers and byte counts where appropriate. + + + + + + + Fix conflict-checking anomalies in SERIALIZABLE + isolation mode (Peter Geoghegan) + + + + If a concurrently-inserted tuple was updated by a different + concurrent transaction, and neither tuple version was visible to the + current transaction's snapshot, serialization conflict checking + could draw the wrong conclusions about whether the tuple was relevant + to the results of the current transaction. This could allow a + serializable transaction to commit when it should have failed with a + serialization error. + + + + + + + Avoid repeated marking of dead btree index entries as dead (Masahiko + Sawada) + + + + While functionally harmless, this led to useless WAL traffic when + checksums are enabled or wal_log_hints is on. + + + + + + + Fix failure of some code paths to acquire the correct lock before + modifying pg_control (Nathan Bossart, Fujii + Masao) + + + + This oversight could allow pg_control to be + written out with an inconsistent checksum, possibly causing trouble + later, including inability to restart the database if it crashed + before the next pg_control update. + + + + + + + Fix errors in currtid() + and currtid2() (Michael Paquier) + + + + These functions (which are undocumented and used only by ancient + versions of the ODBC driver) contained coding errors that could + result in crashes, or in confusing error messages such as could + not open file when applied to a relation having no storage. + + + + + + + Avoid calling elog() + or palloc() while holding a spinlock (Michael + Paquier, Tom Lane) + + + + Logic associated with replication slots had several violations of + this coding rule. While the odds of trouble are quite low, an error + in the called function would lead to a stuck spinlock. + + + + + + + Report out-of-disk-space errors properly + in pg_dump + and pg_basebackup (Justin Pryzby, Tom + Lane, Álvaro Herrera) + + + + Some code paths could produce silly reports like could not + write file: Success. + + + + + + + Fix parallel restore of tables having both table-level privileges + and per-column privileges (Tom Lane) + + + + The table-level privilege grants have to be applied first, but a + parallel restore did not reliably order them that way; this could + lead to tuple concurrently updated errors, or to + disappearance of some per-column privilege grants. The fix for this + is to include dependency links between such entries in the archive + file, meaning that a new dump has to be taken with a + corrected pg_dump to ensure that the + problem will not recur. + + + + + + + Ensure that pg_upgrade runs + with vacuum_defer_cleanup_age set to zero in the + target cluster (Bruce Momjian) + + + + If the target cluster's configuration has been modified to + set vacuum_defer_cleanup_age to a nonzero value, + that prevented freezing of the system catalogs from working properly, + which caused the upgrade to fail in confusing ways. Ensure that any + such setting is overridden for the duration of the upgrade. + + + + + + + Fix pg_recvlogical to drain pending + messages before exiting (Noah Misch) + + + + Without this, the replication sender might detect a send failure and + exit without making the expected final update to the replication + slot's LSN position. That led to re-transmitting data after the + next connection. It was also possible to miss error messages sent + after the last data that pg_recvlogical + wants to consume. + + + + + + + Fix pg_rewind's handling of just-deleted + files in the source data directory (Justin Pryzby, Michael Paquier) + + + + When working with an on-line source database, concurrent file + deletions are possible, but pg_rewind + would get confused if deletion happened between seeing a file's + directory entry and examining it with stat(). + + + + + + + Make pg_test_fsync use binary I/O mode on + Windows (Michael Paquier) + + + + Previously it wrote the test file in text mode, which is not an + accurate reflection of PostgreSQL's + actual usage. + + + + + + + Fix failure to initialize local state correctly + in contrib/dblink (Joe Conway) + + + + With the right combination of circumstances, this could lead to + dblink_close() issuing an unexpected + remote COMMIT. + + + + + + + Fix contrib/pgcrypto's misuse + of deflate() (Tom Lane) + + + + The pgp_sym_encrypt functions could produce + incorrect compressed data due to mishandling + of zlib's API requirements. We have no + reports of this error manifesting with + stock zlib, but it can be seen when using + IBM's zlibNX implementation. + + + + + + + Fix corner case in decompression logic + in contrib/pgcrypto's + pgp_sym_decrypt functions (Kyotaro Horiguchi, + Michael Paquier) + + + + A compressed stream can validly end with an empty packet, but the + decompressor failed to handle this and would complain about corrupt + data. + + + + + + + Use POSIX-standard strsignal() in place of the + BSD-ish sys_siglist[] (Tom Lane) + + + + This avoids build failures with very recent versions + of glibc. + + + + + + + Support building our NLS code with Microsoft Visual Studio 2015 or + later (Juan José Santamaría Flecha, Davinder Singh, + Amit Kapila) + + + + + + + Avoid possible failure of our MSVC install script when there is a + file named configure several levels above the + source code tree (Arnold Müller) + + + + This could confuse some logic that looked + for configure to identify the top level of the + source tree. + + + + + + + + Release 9.6.18