Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
opt
/
postgresql-11
/
doc
/
html
/
//opt/postgresql-11/doc/html/release-9-6-11.html
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>E.10. Release 9.6.11</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="release-10.html" title="E.9. Release 10" /><link rel="next" href="release-9-6-10.html" title="E.11. Release 9.6.10" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.10. Release 9.6.11</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-10.html" title="E.9. Release 10">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><th width="60%" align="center">Appendix E. Release Notes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 11.1 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-9-6-10.html" title="E.11. Release 9.6.10">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-9-6-11"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.10. Release 9.6.11</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-9-6-11.html#id-1.11.6.14.4">E.10.1. Migration to Version 9.6.11</a></span></dt><dt><span class="sect2"><a href="release-9-6-11.html#id-1.11.6.14.5">E.10.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2018-11-08</p><p> This release contains a variety of fixes from 9.6.10. For information about new features in the 9.6 major release, see <a class="xref" href="release-9-6.html" title="E.21. Release 9.6">Section E.21</a>. </p><div class="sect2" id="id-1.11.6.14.4"><div class="titlepage"><div><div><h3 class="title">E.10.1. Migration to Version 9.6.11</h3></div></div></div><p> A dump/restore is not required for those running 9.6.X. </p><p> However, if you are upgrading from a version earlier than 9.6.9, see <a class="xref" href="release-9-6-9.html" title="E.12. Release 9.6.9">Section E.12</a>. </p></div><div class="sect2" id="id-1.11.6.14.5"><div class="titlepage"><div><div><h3 class="title">E.10.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Fix corner-case failures in <code class="function">has_<em class="replaceable"><code>foo</code></em>_privilege()</code> family of functions (Tom Lane) </p><p> Return NULL rather than throwing an error when an invalid object OID is provided. Some of these functions got that right already, but not all. <code class="function">has_column_privilege()</code> was additionally capable of crashing on some platforms. </p></li><li class="listitem"><p> Avoid O(N^2) slowdown in regular expression match/split functions on long strings (Andrew Gierth) </p></li><li class="listitem"><p> Fix parsing of standard multi-character operators that are immediately followed by a comment or <code class="literal">+</code> or <code class="literal">-</code> (Andrew Gierth) </p><p> This oversight could lead to parse errors, or to incorrect assignment of precedence. </p></li><li class="listitem"><p> Avoid O(N^3) slowdown in lexer for long strings of <code class="literal">+</code> or <code class="literal">-</code> characters (Andrew Gierth) </p></li><li class="listitem"><p> Fix mis-execution of SubPlans when the outer query is being scanned backwards (Andrew Gierth) </p></li><li class="listitem"><p> Fix failure of <code class="command">UPDATE/DELETE ... WHERE CURRENT OF ...</code> after rewinding the referenced cursor (Tom Lane) </p><p> A cursor that scans multiple relations (particularly an inheritance tree) could produce wrong behavior if rewound to an earlier relation. </p></li><li class="listitem"><p> Fix <code class="function">EvalPlanQual</code> to handle conditionally-executed InitPlans properly (Andrew Gierth, Tom Lane) </p><p> This resulted in hard-to-reproduce crashes or wrong answers in concurrent updates, if they contained code such as an uncorrelated sub-<code class="literal">SELECT</code> inside a <code class="literal">CASE</code> construct. </p></li><li class="listitem"><p> Fix character-class checks to not fail on Windows for Unicode characters above U+FFFF (Tom Lane, Kenji Uno) </p><p> This bug affected full-text-search operations, as well as <code class="filename">contrib/ltree</code> and <code class="filename">contrib/pg_trgm</code>. </p></li><li class="listitem"><p> Disallow pushing sub-<code class="literal">SELECT</code>s containing window functions, <code class="literal">LIMIT</code>, or <code class="literal">OFFSET</code> to parallel workers (Amit Kapila) </p><p> Such cases could result in inconsistent behavior due to different workers getting different answers, as a result of indeterminacy due to row-ordering variations. </p></li><li class="listitem"><p> Ensure that sequences owned by a foreign table are processed by <code class="literal">ALTER OWNER</code> on the table (Peter Eisentraut) </p><p> The ownership change should propagate to such sequences as well, but this was missed for foreign tables. </p></li><li class="listitem"><p> Ensure that the server will process already-received <code class="literal">NOTIFY</code> and <code class="literal">SIGTERM</code> interrupts before waiting for client input (Jeff Janes, Tom Lane) </p></li><li class="listitem"><p> Fix over-allocation of space for <code class="function">array_out()</code>'s result string (Keiichi Hirobe) </p></li><li class="listitem"><p> Fix memory leak in repeated SP-GiST index scans (Tom Lane) </p><p> This is only known to amount to anything significant in cases where an exclusion constraint using SP-GiST receives many new index entries in a single command. </p></li><li class="listitem"><p> Ensure that <code class="function">ApplyLogicalMappingFile()</code> closes the mapping file when done with it (Tomas Vondra) </p><p> Previously, the file descriptor was leaked, eventually resulting in failures during logical decoding. </p></li><li class="listitem"><p> Fix logical decoding to handle cases where a mapped catalog table is repeatedly rewritten, e.g. by <code class="literal">VACUUM FULL</code> (Andres Freund) </p></li><li class="listitem"><p> Prevent starting the server with <code class="varname">wal_level</code> set to too low a value to support an existing replication slot (Andres Freund) </p></li><li class="listitem"><p> Avoid crash if a utility command causes infinite recursion (Tom Lane) </p></li><li class="listitem"><p> When initializing a hot standby, cope with duplicate XIDs caused by two-phase transactions on the master (Michael Paquier, Konstantin Knizhnik) </p></li><li class="listitem"><p> Fix event triggers to handle nested <code class="command">ALTER TABLE</code> commands (Michael Paquier, Álvaro Herrera) </p></li><li class="listitem"><p> Propagate parent process's transaction and statement start timestamps to parallel workers (Konstantin Knizhnik) </p><p> This prevents misbehavior of functions such as <code class="function">transaction_timestamp()</code> when executed in a worker. </p></li><li class="listitem"><p> Fix transfer of expanded datums to parallel workers so that alignment is preserved, preventing crashes on alignment-picky platforms (Tom Lane, Amit Kapila) </p></li><li class="listitem"><p> Fix WAL file recycling logic to work correctly on standby servers (Michael Paquier) </p><p> Depending on the setting of <code class="varname">archive_mode</code>, a standby might fail to remove some WAL files that could be removed. </p></li><li class="listitem"><p> Fix handling of commit-timestamp tracking during recovery (Masahiko Sawasa, Michael Paquier) </p><p> If commit timestamp tracking has been turned on or off, recovery might fail due to trying to fetch the commit timestamp for a transaction that did not record it. </p></li><li class="listitem"><p> Randomize the <code class="function">random()</code> seed in bootstrap and standalone backends, and in <span class="application">initdb</span> (Noah Misch) </p><p> The main practical effect of this change is that it avoids a scenario where <span class="application">initdb</span> might mistakenly conclude that POSIX shared memory is not available, due to name collisions caused by always using the same random seed. </p></li><li class="listitem"><p> Allow DSM allocation to be interrupted (Chris Travers) </p></li><li class="listitem"><p> Avoid failure in a parallel worker when loading an extension that tries to access system caches within its init function (Thomas Munro) </p><p> We don't consider that to be good extension coding practice, but it mostly worked before parallel query, so continue to support it for now. </p></li><li class="listitem"><p> Properly handle turning <code class="varname">full_page_writes</code> on dynamically (Kyotaro Horiguchi) </p></li><li class="listitem"><p> Fix possible crash due to double <code class="function">free()</code> during SP-GiST rescan (Andrew Gierth) </p></li><li class="listitem"><p> Avoid possible buffer overrun when replaying GIN page recompression from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian) </p></li><li class="listitem"><p> Fix missed fsync of a replication slot's directory (Konstantin Knizhnik, Michael Paquier) </p></li><li class="listitem"><p> Fix unexpected timeouts when using <code class="varname">wal_sender_timeout</code> on a slow server (Noah Misch) </p></li><li class="listitem"><p> Ensure that hot standby processes use the correct WAL consistency point (Alexander Kukushkin, Michael Paquier) </p><p> This prevents possible misbehavior just after a standby server has reached a consistent database state during WAL replay. </p></li><li class="listitem"><p> Ensure background workers are stopped properly when the postmaster receives a fast-shutdown request before completing database startup (Alexander Kukushkin) </p></li><li class="listitem"><p> Update the free space map during WAL replay of page all-visible/frozen flag changes (Álvaro Herrera) </p><p> Previously we were not careful about this, reasoning that the FSM is not critical data anyway. However, if it's sufficiently out of date, that can result in significant performance degradation after a standby has been promoted to primary. The FSM will eventually be healed by updates, but we'd like it to be good sooner, so work harder at maintaining it during WAL replay. </p></li><li class="listitem"><p> Avoid premature release of parallel-query resources when query end or tuple count limit is reached (Amit Kapila) </p><p> It's only okay to shut down the executor at this point if the caller cannot demand backwards scan afterwards. </p></li><li class="listitem"><p> Don't run atexit callbacks when servicing <code class="literal">SIGQUIT</code> (Heikki Linnakangas) </p></li><li class="listitem"><p> Don't record foreign-server user mappings as members of extensions (Tom Lane) </p><p> If <code class="command">CREATE USER MAPPING</code> is executed in an extension script, an extension dependency was created for the user mapping, which is unexpected. Roles can't be extension members, so user mappings shouldn't be either. </p></li><li class="listitem"><p> Make syslogger more robust against failures in opening CSV log files (Tom Lane) </p></li><li class="listitem"><p> Fix <span class="application">psql</span>, as well as documentation examples, to call <code class="function">PQconsumeInput()</code> before each <code class="function">PQnotifies()</code> call (Tom Lane) </p><p> This fixes cases in which <span class="application">psql</span> would not report receipt of a <code class="literal">NOTIFY</code> message until after the next command. </p></li><li class="listitem"><p> Fix possible inconsistency in <span class="application">pg_dump</span>'s sorting of dissimilar object names (Jacob Champion) </p></li><li class="listitem"><p> Ensure that <span class="application">pg_restore</span> will schema-qualify the table name when emitting <code class="literal">DISABLE</code>/<code class="literal">ENABLE TRIGGER</code> commands (Tom Lane) </p><p> This avoids failures due to the new policy of running restores with restrictive search path. </p></li><li class="listitem"><p> Fix <span class="application">pg_upgrade</span> to handle event triggers in extensions correctly (Haribabu Kommi) </p><p> <span class="application">pg_upgrade</span> failed to preserve an event trigger's extension-membership status. </p></li><li class="listitem"><p> Fix <span class="application">pg_upgrade</span>'s cluster state check to work correctly on a standby server (Bruce Momjian) </p></li><li class="listitem"><p> Enforce type <code class="type">cube</code>'s dimension limit in all <code class="filename">contrib/cube</code> functions (Andrey Borodin) </p><p> Previously, some cube-related functions could construct values that would be rejected by <code class="function">cube_in()</code>, leading to dump/reload failures. </p></li><li class="listitem"><p> In <code class="filename">contrib/postgres_fdw</code>, don't try to ship a variable-free <code class="literal">ORDER BY</code> clause to the remote server (Andrew Gierth) </p></li><li class="listitem"><p> Fix <code class="filename">contrib/unaccent</code>'s <code class="function">unaccent()</code> function to use the <code class="literal">unaccent</code> text search dictionary that is in the same schema as the function (Tom Lane) </p><p> Previously it tried to look up the dictionary using the search path, which could fail if the search path has a restrictive value. </p></li><li class="listitem"><p> Fix build problems on macOS 10.14 (Mojave) (Tom Lane) </p><p> Adjust <span class="application">configure</span> to add an <code class="option">-isysroot</code> switch to <code class="varname">CPPFLAGS</code>; without this, PL/Perl and PL/Tcl fail to configure or build on macOS 10.14. The specific sysroot used can be overridden at configure time or build time by setting the <code class="varname">PG_SYSROOT</code> variable in the arguments of <span class="application">configure</span> or <span class="application">make</span>. </p><p> It is now recommended that Perl-related extensions write <code class="literal">$(perl_includespec)</code> rather than <code class="literal">-I$(perl_archlibexp)/CORE</code> in their compiler flags. The latter continues to work on most platforms, but not recent macOS. </p><p> Also, it should no longer be necessary to specify <code class="option">--with-tclconfig</code> manually to get PL/Tcl to build on recent macOS releases. </p></li><li class="listitem"><p> Fix MSVC build and regression-test scripts to work on recent Perl versions (Andrew Dunstan) </p><p> Perl no longer includes the current directory in its search path by default; work around that. </p></li><li class="listitem"><p> On Windows, allow the regression tests to be run by an Administrator account (Andrew Dunstan) </p><p> To do this safely, <span class="application">pg_regress</span> now gives up any such privileges at startup. </p></li><li class="listitem"><p> Allow btree comparison functions to return <code class="literal">INT_MIN</code> (Tom Lane) </p><p> Up to now, we've forbidden datatype-specific comparison functions from returning <code class="literal">INT_MIN</code>, which allows callers to invert the sort order just by negating the comparison result. However, this was never safe for comparison functions that directly return the result of <code class="function">memcmp()</code>, <code class="function">strcmp()</code>, etc, as POSIX doesn't place any such restriction on those functions. At least some recent versions of <code class="function">memcmp()</code> can return <code class="literal">INT_MIN</code>, causing incorrect sort ordering. Hence, we've removed this restriction. Callers must now use the <code class="literal">INVERT_COMPARE_RESULT()</code> macro if they wish to invert the sort order. </p></li><li class="listitem"><p> Fix recursion hazard in shared-invalidation message processing (Tom Lane) </p><p> This error could, for example, result in failure to access a system catalog or index that had just been processed by <code class="command">VACUUM FULL</code>. </p><p> This change adds a new result code for <code class="function">LockAcquire</code>, which might possibly affect external callers of that function, though only very unusual usage patterns would have an issue with it. The API of <code class="function">LockAcquireExtended</code> is also changed. </p></li><li class="listitem"><p> Save and restore SPI's global variables during <code class="function">SPI_connect()</code> and <code class="function">SPI_finish()</code> (Chapman Flack, Tom Lane) </p><p> This prevents possible interference when one SPI-using function calls another. </p></li><li class="listitem"><p> Avoid using potentially-under-aligned page buffers (Tom Lane) </p><p> Invent new union types <code class="type">PGAlignedBlock</code> and <code class="type">PGAlignedXLogBlock</code>, and use these in place of plain char arrays, ensuring that the compiler can't place the buffer at a misaligned start address. This fixes potential core dumps on alignment-picky platforms, and may improve performance even on platforms that allow misalignment. </p></li><li class="listitem"><p> Make <code class="filename">src/port/snprintf.c</code> follow the C99 standard's definition of <code class="function">snprintf()</code>'s result value (Tom Lane) </p><p> On platforms where this code is used (mostly Windows), its pre-C99 behavior could lead to failure to detect buffer overrun, if the calling code assumed C99 semantics. </p></li><li class="listitem"><p> When building on i386 with the <span class="application">clang</span> compiler, require <code class="option">-msse2</code> to be used (Andres Freund) </p><p> This avoids problems with missed floating point overflow checks. </p></li><li class="listitem"><p> Fix <span class="application">configure</span>'s detection of the result type of <code class="function">strerror_r()</code> (Tom Lane) </p><p> The previous coding got the wrong answer when building with <span class="application">icc</span> on Linux (and perhaps in other cases), leading to <span class="application">libpq</span> not returning useful error messages for system-reported errors. </p></li><li class="listitem"><p> Update time zone data files to <span class="application">tzdata</span> release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea. </p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-10.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-9-6-10.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.9. Release 10 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E.11. Release 9.6.10</td></tr></table></div></body></html>