Release notes for 11.1, 10.6, 9.6.11, 9.5.15, 9.4.20, 9.3.25.

This commit is contained in:
Tom Lane 2018-11-04 16:57:15 -05:00
parent 33c697e9d4
commit 89c563f1bb
1 changed files with 466 additions and 0 deletions

View File

@ -1,6 +1,472 @@
<!-- doc/src/sgml/release-9.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-9-3-25">
<title>Release 9.3.25</title>
<formalpara>
<title>Release date:</title>
<para>2018-11-08</para>
</formalpara>
<para>
This release contains a variety of fixes from 9.3.24.
For information about new features in the 9.3 major release, see
<xref linkend="release-9-3">.
</para>
<para>
This is expected to be the last <productname>PostgreSQL</productname>
release in the 9.3.X series. Users are encouraged to update to a newer
release branch soon.
</para>
<sect2>
<title>Migration to Version 9.3.25</title>
<para>
A dump/restore is not required for those running 9.3.X.
</para>
<para>
However, if you are upgrading from a version earlier than 9.3.23,
see <xref linkend="release-9-3-23">.
</para>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem>
<para>
Fix corner-case failures
in <function>has_<replaceable>foo</replaceable>_privilege()</function>
family of functions (Tom Lane)
</para>
<para>
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. <function>has_column_privilege()</function> was additionally
capable of crashing on some platforms.
</para>
</listitem>
<listitem>
<para>
Avoid O(N^2) slowdown in regular expression match/split functions on
long strings (Andrew Gierth)
</para>
</listitem>
<listitem>
<para>
Avoid O(N^3) slowdown in lexer for long strings
of <literal>+</literal> or <literal>-</literal> characters
(Andrew Gierth)
</para>
</listitem>
<listitem>
<para>
Fix mis-execution of SubPlans when the outer query is being scanned
backwards (Andrew Gierth)
</para>
</listitem>
<listitem>
<para>
Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command>
after rewinding the referenced cursor (Tom Lane)
</para>
<para>
A cursor that scans multiple relations (particularly an inheritance
tree) could produce wrong behavior if rewound to an earlier relation.
</para>
</listitem>
<listitem>
<para>
Fix <function>EvalPlanQual</function> to handle conditionally-executed
InitPlans properly (Andrew Gierth, Tom Lane)
</para>
<para>
This resulted in hard-to-reproduce crashes or wrong answers in
concurrent updates, if they contained code such as an uncorrelated
sub-<literal>SELECT</literal> inside a <literal>CASE</literal>
construct.
</para>
</listitem>
<listitem>
<para>
Fix character-class checks to not fail on Windows for Unicode
characters above U+FFFF (Tom Lane, Kenji Uno)
</para>
<para>
This bug affected full-text-search operations, as well
as <filename>contrib/ltree</filename>
and <filename>contrib/pg_trgm</filename>.
</para>
</listitem>
<listitem>
<para>
Ensure that sequences owned by a foreign table are processed
by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut)
</para>
<para>
The ownership change should propagate to such sequences as well, but
this was missed for foreign tables.
</para>
</listitem>
<listitem>
<para>
Fix over-allocation of space for <function>array_out()</function>'s
result string (Keiichi Hirobe)
</para>
</listitem>
<listitem>
<para>
Fix memory leak in repeated SP-GiST index scans (Tom Lane)
</para>
<para>
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.
</para>
</listitem>
<listitem>
<para>
Avoid crash if a utility command causes infinite recursion (Tom Lane)
</para>
</listitem>
<listitem>
<para>
When initializing a hot standby, cope with duplicate XIDs caused by
two-phase transactions on the master
(Michael Paquier, Konstantin Knizhnik)
</para>
</listitem>
<listitem>
<para>
Randomize the <function>random()</function> seed in bootstrap and
standalone backends, and in <application>initdb</application>
(Noah Misch)
</para>
<para>
The main practical effect of this change is that it avoids a scenario
where <application>initdb</application> might mistakenly conclude that
POSIX shared memory is not available, due to name collisions caused by
always using the same random seed.
</para>
</listitem>
<listitem>
<para>
Ensure that hot standby processes use the correct WAL consistency
point (Alexander Kukushkin, Michael Paquier)
</para>
<para>
This prevents possible misbehavior just after a standby server has
reached a consistent database state during WAL replay.
</para>
</listitem>
<listitem>
<para>
Don't run atexit callbacks when servicing <literal>SIGQUIT</literal>
(Heikki Linnakangas)
</para>
</listitem>
<listitem>
<para>
Don't record foreign-server user mappings as members of extensions
(Tom Lane)
</para>
<para>
If <command>CREATE USER MAPPING</command> 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.
</para>
</listitem>
<listitem>
<para>
Make syslogger more robust against failures in opening CSV log files
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
Fix possible inconsistency in <application>pg_dump</application>'s
sorting of dissimilar object names (Jacob Champion)
</para>
</listitem>
<listitem>
<para>
Ensure that <application>pg_restore</application> will schema-qualify
the table name when
emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal>
commands (Tom Lane)
</para>
<para>
This avoids failures due to the new policy of running restores with
restrictive search path.
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_upgrade</application> to handle event triggers in
extensions correctly (Haribabu Kommi)
</para>
<para>
<application>pg_upgrade</application> failed to preserve an event
trigger's extension-membership status.
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_upgrade</application>'s cluster state check to
work correctly on a standby server (Bruce Momjian)
</para>
</listitem>
<listitem>
<para>
Enforce type <type>cube</type>'s dimension limit in
all <filename>contrib/cube</filename> functions (Andrey Borodin)
</para>
<para>
Previously, some cube-related functions could construct values that
would be rejected by <function>cube_in()</function>, leading to
dump/reload failures.
</para>
</listitem>
<listitem>
<para>
Fix <filename>contrib/unaccent</filename>'s
<function>unaccent()</function> function to use
the <literal>unaccent</literal> text search dictionary that is in the
same schema as the function (Tom Lane)
</para>
<para>
Previously it tried to look up the dictionary using the search path,
which could fail if the search path has a restrictive value.
</para>
</listitem>
<listitem>
<para>
Fix build problems on macOS 10.14 (Mojave) (Tom Lane)
</para>
<para>
Adjust <application>configure</application> to add
an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>;
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 <varname>PG_SYSROOT</varname> variable in
the arguments of <application>configure</application>
or <application>make</application>.
</para>
<para>
It is now recommended that Perl-related extensions
write <literal>$(perl_includespec)</literal> rather
than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler
flags. The latter continues to work on most platforms, but not recent
macOS.
</para>
<para>
Also, it should no longer be necessary to
specify <option>--with-tclconfig</option> manually to get PL/Tcl to
build on recent macOS releases.
</para>
</listitem>
<listitem>
<para>
Fix MSVC build and regression-test scripts to work on recent Perl
versions (Andrew Dunstan)
</para>
<para>
Perl no longer includes the current directory in its search path
by default; work around that.
</para>
</listitem>
<listitem>
<para>
Support building on Windows with Visual Studio 2015 or Visual Studio 2017
(Michael Paquier, Haribabu Kommi)
</para>
</listitem>
<listitem>
<para>
Allow btree comparison functions to return <literal>INT_MIN</literal>
(Tom Lane)
</para>
<para>
Up to now, we've forbidden datatype-specific comparison functions from
returning <literal>INT_MIN</literal>, 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 <function>memcmp()</function>, <function>strcmp()</function>,
etc, as POSIX doesn't place any such restriction on those functions.
At least some recent versions of <function>memcmp()</function> can
return <literal>INT_MIN</literal>, causing incorrect sort ordering.
Hence, we've removed this restriction. Callers must now use
the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to
invert the sort order.
</para>
</listitem>
<listitem>
<para>
Fix recursion hazard in shared-invalidation message processing
(Tom Lane)
</para>
<para>
This error could, for example, result in failure to access a system
catalog or index that had just been processed by <command>VACUUM
FULL</command>.
</para>
<para>
This change adds a new result code
for <function>LockAcquire</function>, which might possibly affect
external callers of that function, though only very unusual usage
patterns would have an issue with it. The API
of <function>LockAcquireExtended</function> is also changed.
</para>
</listitem>
<listitem>
<para>
Save and restore SPI's global variables
during <function>SPI_connect()</function>
and <function>SPI_finish()</function> (Chapman Flack, Tom Lane)
</para>
<para>
This prevents possible interference when one SPI-using function calls
another.
</para>
</listitem>
<listitem>
<para>
Provide <literal>ALLOCSET_DEFAULT_SIZES</literal> and sibling macros
in back branches (Tom Lane)
</para>
<para>
These macros have existed since 9.6, but there were requests to add
them to older branches to allow extensions to rely on them without
branch-specific coding.
</para>
</listitem>
<listitem>
<para>
Avoid using potentially-under-aligned page buffers (Tom Lane)
</para>
<para>
Invent new union types <type>PGAlignedBlock</type>
and <type>PGAlignedXLogBlock</type>, 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.
</para>
</listitem>
<listitem>
<para>
Make <filename>src/port/snprintf.c</filename> follow the C99
standard's definition of <function>snprintf()</function>'s result
value (Tom Lane)
</para>
<para>
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.
</para>
</listitem>
<listitem>
<para>
When building on i386 with the <application>clang</application>
compiler, require <option>-msse2</option> to be used (Andres Freund)
</para>
<para>
This avoids problems with missed floating point overflow checks.
</para>
</listitem>
<listitem>
<para>
Fix <application>configure</application>'s detection of the result
type of <function>strerror_r()</function> (Tom Lane)
</para>
<para>
The previous coding got the wrong answer when building
with <application>icc</application> on Linux (and perhaps in other
cases), leading to <application>libpq</application> not returning
useful error messages for system-reported errors.
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</application>
release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia
(Volgograd), plus historical corrections for China, Hawaii, Japan,
Macau, and North Korea.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-9-3-24">
<title>Release 9.3.24</title>