mirror of
https://github.com/postgres/postgres.git
synced 2025-05-11 05:41:32 +03:00
Release notes for 11.1, 10.6, 9.6.11, 9.5.15, 9.4.20, 9.3.25.
This commit is contained in:
parent
d358da8141
commit
84010b9989
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,401 @@
|
||||
<!-- doc/src/sgml/release-11.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-11-1">
|
||||
<title>Release 11.1</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-11-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 11.0.
|
||||
For information about new features in major release 11, see
|
||||
<xref linkend="release-11"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 11.1</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 11.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you use the <filename>pg_stat_statements</filename> extension,
|
||||
see the changelog entry below about that.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||
Branch: master [dfa608141] 2018-11-03 13:25:19 -0300
|
||||
Branch: REL_11_STABLE [33e6c34c3] 2018-11-03 13:25:29 -0300
|
||||
-->
|
||||
<para>
|
||||
Apply the tablespace specified for a partitioned index when creating a
|
||||
child index (Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Previously, child indexes were always created in the default
|
||||
tablespace.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Thomas Munro <tmunro@postgresql.org>
|
||||
Branch: master [1ce4a807e] 2018-11-03 11:05:35 +1300
|
||||
Branch: REL_11_STABLE [fd6449aa3] 2018-11-03 11:08:03 +1300
|
||||
-->
|
||||
<para>
|
||||
Fix NULL handling in parallel hashed multi-batch left joins (Andrew
|
||||
Gierth, Thomas Munro)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Outer-relation rows with null values of the hash key were omitted from
|
||||
the join result.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [14a158f9b] 2018-10-30 15:26:11 -0400
|
||||
Branch: REL_11_STABLE [2bd6dcdef] 2018-10-30 15:26:11 -0400
|
||||
-->
|
||||
<para>
|
||||
Fix incorrect processing of an array-type coercion expression
|
||||
appearing within a <literal>CASE</literal> clause that has a constant
|
||||
test expression (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Andrew Dunstan <andrew@dunslane.net>
|
||||
Branch: master [040a1df61] 2018-10-24 10:56:27 -0400
|
||||
Branch: REL_11_STABLE [372102b81] 2018-10-24 10:57:35 -0400
|
||||
-->
|
||||
<para>
|
||||
Fix incorrect expansion of tuples lacking recently-added columns
|
||||
(Andrew Dunstan, Amit Langote)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This is known to lead to crashes in triggers on tables with
|
||||
recently-added columns, and could have other symptoms as well.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [15c729347] 2018-11-04 13:25:39 -0500
|
||||
Branch: REL_11_STABLE [4b0c3712c] 2018-11-04 13:25:39 -0500
|
||||
Branch: master [9b6fb9fbb] 2018-11-04 14:50:55 -0500
|
||||
Branch: REL_11_STABLE [d358da814] 2018-11-04 14:50:55 -0500
|
||||
-->
|
||||
<para>
|
||||
Fix bugs with named or defaulted arguments in <command>CALL</command>
|
||||
argument lists (Tom Lane, Pavel Stehule)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Andres Freund <andres@anarazel.de>
|
||||
Branch: master [4c640f4f3] 2018-11-03 14:48:42 -0700
|
||||
Branch: REL_11_STABLE [fd59b29c8] 2018-11-03 14:48:42 -0700
|
||||
Branch: master [793beab37] 2018-11-03 15:55:23 -0700
|
||||
Branch: REL_11_STABLE [6eb31cedb] 2018-11-03 16:00:00 -0700
|
||||
-->
|
||||
<para>
|
||||
Fix strictness check for strict aggregates with <literal>ORDER
|
||||
BY</literal> columns (Andrew Gierth, Andres Freund)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The strictness logic incorrectly ignored rows for which
|
||||
the <literal>ORDER BY</literal> value(s) were null.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [981dc2baa] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL_11_STABLE [bf4a9562e] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL_10_STABLE [f7ba6e951] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL9_6_STABLE [73dbaed93] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL9_5_STABLE [6e6092989] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL9_4_STABLE [0ae902e39] 2018-11-03 13:56:10 -0400
|
||||
Branch: REL9_3_STABLE [33c697e9d] 2018-11-03 13:56:10 -0400
|
||||
-->
|
||||
<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>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [2ddb9149d] 2018-10-19 21:39:21 -0400
|
||||
Branch: REL_11_STABLE [7aaeb7b45] 2018-10-19 21:39:21 -0400
|
||||
Branch: REL_10_STABLE [3bdef6d21] 2018-10-19 21:39:21 -0400
|
||||
Branch: REL9_6_STABLE [cbab94077] 2018-10-19 21:39:22 -0400
|
||||
Branch: REL9_5_STABLE [f4941666a] 2018-10-19 21:39:22 -0400
|
||||
-->
|
||||
<para>
|
||||
Ensure that the server will process
|
||||
already-received <literal>NOTIFY</literal>
|
||||
and <literal>SIGTERM</literal> interrupts before waiting for client
|
||||
input (Jeff Janes, Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [696b0c5fd] 2018-10-31 17:05:03 -0400
|
||||
Branch: REL_11_STABLE [2493e2c2d] 2018-10-31 17:04:42 -0400
|
||||
Branch: REL_10_STABLE [92e371f9b] 2018-10-31 17:04:43 -0400
|
||||
Branch: REL9_6_STABLE [558571afc] 2018-10-31 17:04:43 -0400
|
||||
Branch: REL9_5_STABLE [156a737a6] 2018-10-31 17:04:43 -0400
|
||||
Branch: REL9_4_STABLE [95015b1f8] 2018-10-31 17:04:43 -0400
|
||||
Branch: REL9_3_STABLE [82dd1c271] 2018-10-31 17:04:43 -0400
|
||||
-->
|
||||
<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>
|
||||
<!--
|
||||
Author: Andres Freund <andres@anarazel.de>
|
||||
Branch: master [691d79a07] 2018-10-31 15:46:39 -0700
|
||||
Branch: REL_11_STABLE [c33a01c79] 2018-10-31 15:46:40 -0700
|
||||
Branch: REL_10_STABLE [021e1c329] 2018-10-31 15:46:40 -0700
|
||||
Branch: REL9_6_STABLE [d35fd17cb] 2018-10-31 15:46:40 -0700
|
||||
Branch: REL9_5_STABLE [679cb44e4] 2018-10-31 15:46:40 -0700
|
||||
Branch: REL9_4_STABLE [cf358a2c0] 2018-10-31 15:46:40 -0700
|
||||
-->
|
||||
<para>
|
||||
Prevent starting the server with <varname>wal_level</varname> set
|
||||
to too low a value to support an existing replication slot (Andres
|
||||
Freund)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [4247db625] 2018-10-19 22:22:57 -0400
|
||||
Branch: REL_11_STABLE [d30d27a52] 2018-10-19 22:22:57 -0400
|
||||
Branch: REL_10_STABLE [ecc59e31a] 2018-10-19 22:22:57 -0400
|
||||
Branch: REL9_6_STABLE [34aad21cb] 2018-10-19 22:22:57 -0400
|
||||
Branch: REL9_5_STABLE [ac3be116a] 2018-10-19 22:22:57 -0400
|
||||
-->
|
||||
<para>
|
||||
Fix <application>psql</application>, as well as documentation
|
||||
examples, to call <function>PQconsumeInput()</function> before
|
||||
each <function>PQnotifies()</function> call (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This fixes cases in which <application>psql</application> would not
|
||||
report receipt of a <literal>NOTIFY</literal> message until after the
|
||||
next command.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [350410be4] 2018-10-19 00:50:16 -0400
|
||||
Branch: REL_11_STABLE [06292bb94] 2018-10-19 00:50:16 -0400
|
||||
Branch: REL_10_STABLE [09397f0ed] 2018-10-19 00:50:17 -0400
|
||||
-->
|
||||
<para>
|
||||
Ensure proper quoting of transition table names
|
||||
when <application>pg_dump</application> emits <command>CREATE TRIGGER
|
||||
... REFERENCING</command> commands (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Michael Paquier <michael@paquier.xyz>
|
||||
Branch: master [d55241af7] 2018-10-19 22:44:12 +0900
|
||||
Branch: REL_11_STABLE [cc7f27eae] 2018-10-19 22:45:07 +0900
|
||||
-->
|
||||
<para>
|
||||
Fix <application>pg_verify_checksums</application>'s determination of
|
||||
which files to check the checksums of (Michael Paquier)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In some cases it complained about files that are not expected to have
|
||||
checksums.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [1440c461f] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL_11_STABLE [df1d749a7] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL_10_STABLE [229a5c8ad] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL9_6_STABLE [401202b79] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL9_5_STABLE [94ea1cf73] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL9_4_STABLE [1b5e8b408] 2018-11-02 18:54:00 -0400
|
||||
Branch: REL9_3_STABLE [1aad3a724] 2018-11-02 18:54:00 -0400
|
||||
Branch: master [e74dd00f5] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL_11_STABLE [d1e869d1e] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL_10_STABLE [34f9944c2] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL9_6_STABLE [1b92ca9e2] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL9_5_STABLE [021b355cd] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL9_4_STABLE [0749acca5] 2018-10-18 14:55:23 -0400
|
||||
Branch: REL9_3_STABLE [015fd381f] 2018-10-18 14:55:23 -0400
|
||||
Branch: master [68fc227dd] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL_11_STABLE [1a69f738d] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL_10_STABLE [ee6c08b01] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL9_6_STABLE [5777a9ff8] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL9_5_STABLE [d0ab588cc] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL9_4_STABLE [486e6f8d9] 2018-10-16 16:27:15 -0400
|
||||
Branch: REL9_3_STABLE [19ac2cb2a] 2018-10-16 16:27:15 -0400
|
||||
Branch: master [5e2217131] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL_11_STABLE Release: REL_11_0 [9590f7d6c] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL_10_STABLE [736c3a48c] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL9_6_STABLE [0a4456a70] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL9_5_STABLE [6dc28d291] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL9_4_STABLE [a5361b593] 2018-09-25 13:23:29 -0400
|
||||
Branch: REL9_3_STABLE [6019247a5] 2018-09-25 13:23:29 -0400
|
||||
-->
|
||||
<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>
|
||||
<!--
|
||||
Author: Andrew Dunstan <andrew@dunslane.net>
|
||||
Branch: master [1df92eeaf] 2018-10-28 12:22:32 -0400
|
||||
Branch: REL_11_STABLE [8cb5e67d1] 2018-10-28 12:23:19 -0400
|
||||
Branch: REL_10_STABLE [a71f55652] 2018-10-28 12:25:10 -0400
|
||||
Branch: REL9_6_STABLE [9fd6d4eae] 2018-10-28 12:25:56 -0400
|
||||
Branch: REL9_5_STABLE [ba103dc87] 2018-10-28 12:26:05 -0400
|
||||
Branch: REL9_4_STABLE [698255147] 2018-10-28 12:26:14 -0400
|
||||
Branch: REL9_3_STABLE [075641fd0] 2018-10-28 12:27:58 -0400
|
||||
-->
|
||||
<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>
|
||||
<!--
|
||||
Author: Andrew Dunstan <andrew@dunslane.net>
|
||||
Branch: master [ce5d3424d] 2018-10-20 09:02:36 -0400
|
||||
Branch: REL_11_STABLE [a0a8671a6] 2018-10-20 09:10:02 -0400
|
||||
Branch: REL_10_STABLE [f4b67efdc] 2018-10-20 09:10:18 -0400
|
||||
Branch: REL9_6_STABLE [42a93da25] 2018-10-20 09:10:54 -0400
|
||||
Branch: REL9_5_STABLE [cc02db82c] 2018-10-20 09:11:18 -0400
|
||||
-->
|
||||
<para>
|
||||
On Windows, allow the regression tests to be run by an Administrator
|
||||
account (Andrew Dunstan)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To do this safely, <application>pg_regress</application> now gives up
|
||||
any such privileges at startup.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: master [5c2e0ca5f] 2018-10-31 08:35:50 -0400
|
||||
Branch: REL_11_STABLE [58c45fdaa] 2018-10-31 08:36:06 -0400
|
||||
Branch: REL_10_STABLE [671f43d88] 2018-10-31 08:36:15 -0400
|
||||
Branch: REL9_6_STABLE [bb761c6a0] 2018-10-31 08:36:22 -0400
|
||||
Branch: REL9_5_STABLE [811d8cb87] 2018-10-31 08:36:29 -0400
|
||||
Branch: REL9_4_STABLE [d651e9e7c] 2018-10-31 08:36:35 -0400
|
||||
Branch: REL9_3_STABLE [3bf4edace] 2018-10-31 08:36:41 -0400
|
||||
Branch: master [13877d30f] 2018-10-19 17:01:34 -0400
|
||||
Branch: REL_11_STABLE [d2259c26b] 2018-10-19 17:01:49 -0400
|
||||
Branch: REL_10_STABLE [5777c93af] 2018-10-19 17:01:56 -0400
|
||||
Branch: REL9_6_STABLE [185f135c9] 2018-10-19 17:02:05 -0400
|
||||
Branch: REL9_5_STABLE [56170609b] 2018-10-19 17:02:12 -0400
|
||||
Branch: REL9_4_STABLE [9abbfc35c] 2018-10-19 17:02:20 -0400
|
||||
Branch: REL9_3_STABLE [84261eb10] 2018-10-19 17:02:26 -0400
|
||||
-->
|
||||
<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-11">
|
||||
<title>Release 11</title>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -1,6 +1,522 @@
|
||||
<!-- doc/src/sgml/release-9.4.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-4-20">
|
||||
<title>Release 9.4.20</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-11-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.4.19.
|
||||
For information about new features in the 9.4 major release, see
|
||||
<xref linkend="release-9-4"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.4.20</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.4.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.4.18,
|
||||
see <xref linkend="release-9-4-18"/>.
|
||||
</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>
|
||||
Ensure that <function>ApplyLogicalMappingFile()</function> closes the
|
||||
mapping file when done with it (Tomas Vondra)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Previously, the file descriptor was leaked, eventually resulting in
|
||||
failures during logical decoding.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to handle cases where a mapped catalog table is
|
||||
repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
|
||||
(Andres Freund)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent starting the server with <varname>wal_level</varname> set
|
||||
to too low a value to support an existing replication slot (Andres
|
||||
Freund)
|
||||
</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>
|
||||
Allow DSM allocation to be interrupted (Chris Travers)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid possible buffer overrun when replaying GIN page recompression
|
||||
from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix missed fsync of a replication slot's directory (Konstantin
|
||||
Knizhnik, Michael Paquier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix unexpected timeouts when
|
||||
using <varname>wal_sender_timeout</varname> on a slow server
|
||||
(Noah Misch)
|
||||
</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-4-19">
|
||||
<title>Release 9.4.19</title>
|
||||
|
||||
|
@ -1,6 +1,646 @@
|
||||
<!-- doc/src/sgml/release-9.5.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-5-15">
|
||||
<title>Release 9.5.15</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-11-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.5.14.
|
||||
For information about new features in the 9.5 major release, see
|
||||
<xref linkend="release-9-5"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.5.15</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.5.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.5.13,
|
||||
see <xref linkend="release-9-5-13"/>.
|
||||
</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>
|
||||
Fix parsing of standard multi-character operators that are immediately
|
||||
followed by a comment or <literal>+</literal> or <literal>-</literal>
|
||||
(Andrew Gierth)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This oversight could lead to parse errors, or to incorrect assignment
|
||||
of precedence.
|
||||
</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>
|
||||
Ensure that the server will process
|
||||
already-received <literal>NOTIFY</literal>
|
||||
and <literal>SIGTERM</literal> interrupts before waiting for client
|
||||
input (Jeff Janes, Tom Lane)
|
||||
</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>
|
||||
Ensure that <function>ApplyLogicalMappingFile()</function> closes the
|
||||
mapping file when done with it (Tomas Vondra)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Previously, the file descriptor was leaked, eventually resulting in
|
||||
failures during logical decoding.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to handle cases where a mapped catalog table is
|
||||
repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
|
||||
(Andres Freund)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent starting the server with <varname>wal_level</varname> set
|
||||
to too low a value to support an existing replication slot (Andres
|
||||
Freund)
|
||||
</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>
|
||||
Fix event triggers to handle nested <command>ALTER TABLE</command>
|
||||
commands (Michael Paquier, Álvaro Herrera)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Propagate parent process's transaction and statement start timestamps
|
||||
to parallel workers (Konstantin Knizhnik)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This prevents misbehavior of functions such
|
||||
as <function>transaction_timestamp()</function> when executed in a
|
||||
worker.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix WAL file recycling logic to work correctly on standby servers
|
||||
(Michael Paquier)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Depending on the setting of <varname>archive_mode</varname>, a standby
|
||||
might fail to remove some WAL files that could be removed.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix handling of commit-timestamp tracking during recovery
|
||||
(Masahiko Sawasa, Michael Paquier)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</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>
|
||||
Allow DSM allocation to be interrupted (Chris Travers)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Properly handle turning <varname>full_page_writes</varname> on
|
||||
dynamically (Kyotaro Horiguchi)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid possible buffer overrun when replaying GIN page recompression
|
||||
from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix missed fsync of a replication slot's directory (Konstantin
|
||||
Knizhnik, Michael Paquier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix unexpected timeouts when
|
||||
using <varname>wal_sender_timeout</varname> on a slow server
|
||||
(Noah Misch)
|
||||
</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>
|
||||
Ensure background workers are stopped properly when the postmaster
|
||||
receives a fast-shutdown request before completing database startup
|
||||
(Alexander Kukushkin)
|
||||
</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 <application>psql</application>, as well as documentation
|
||||
examples, to call <function>PQconsumeInput()</function> before
|
||||
each <function>PQnotifies()</function> call (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This fixes cases in which <application>psql</application> would not
|
||||
report receipt of a <literal>NOTIFY</literal> message until after the
|
||||
next command.
|
||||
</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>
|
||||
On Windows, allow the regression tests to be run by an Administrator
|
||||
account (Andrew Dunstan)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To do this safely, <application>pg_regress</application> now gives up
|
||||
any such privileges at startup.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!--
|
||||
Author: Andrew Dunstan <andrew@dunslane.net>
|
||||
Branch: REL9_5_STABLE [f6c268c48] 2018-09-11 16:09:46 -0400
|
||||
Branch: REL9_4_STABLE [19acfd652] 2018-09-11 16:03:42 -0400
|
||||
Branch: REL9_3_STABLE [48c978f3e] 2018-09-11 16:05:20 -0400
|
||||
Branch: REL9_4_STABLE [9ca32a6eb] 2018-09-11 15:44:42 -0400
|
||||
Branch: REL9_3_STABLE [048257832] 2018-09-11 15:46:35 -0400
|
||||
Branch: REL9_4_STABLE [86e247583] 2018-09-12 12:24:11 -0400
|
||||
Branch: REL9_3_STABLE [520711d6e] 2018-09-12 12:25:57 -0400
|
||||
-->
|
||||
<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>
|
||||
<!--
|
||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
Branch: REL9_5_STABLE [1245561df] 2018-10-12 14:49:33 -0400
|
||||
Branch: REL9_4_STABLE [ec185747a] 2018-10-12 14:49:33 -0400
|
||||
Branch: REL9_3_STABLE [01187f32c] 2018-10-12 14:49:33 -0400
|
||||
-->
|
||||
<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-5-14">
|
||||
<title>Release 9.5.14</title>
|
||||
|
||||
|
@ -1,6 +1,688 @@
|
||||
<!-- doc/src/sgml/release-9.6.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-6-11">
|
||||
<title>Release 9.6.11</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-11-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.6.10.
|
||||
For information about new features in the 9.6 major release, see
|
||||
<xref linkend="release-9-6"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.6.11</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.6.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.6.9,
|
||||
see <xref linkend="release-9-6-9"/>.
|
||||
</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>
|
||||
Fix parsing of standard multi-character operators that are immediately
|
||||
followed by a comment or <literal>+</literal> or <literal>-</literal>
|
||||
(Andrew Gierth)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This oversight could lead to parse errors, or to incorrect assignment
|
||||
of precedence.
|
||||
</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>
|
||||
Disallow pushing sub-<literal>SELECT</literal>s containing window
|
||||
functions, <literal>LIMIT</literal>, or <literal>OFFSET</literal> to
|
||||
parallel workers (Amit Kapila)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Such cases could result in inconsistent behavior due to different
|
||||
workers getting different answers, as a result of indeterminacy
|
||||
due to row-ordering variations.
|
||||
</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>
|
||||
Ensure that the server will process
|
||||
already-received <literal>NOTIFY</literal>
|
||||
and <literal>SIGTERM</literal> interrupts before waiting for client
|
||||
input (Jeff Janes, Tom Lane)
|
||||
</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>
|
||||
Ensure that <function>ApplyLogicalMappingFile()</function> closes the
|
||||
mapping file when done with it (Tomas Vondra)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Previously, the file descriptor was leaked, eventually resulting in
|
||||
failures during logical decoding.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to handle cases where a mapped catalog table is
|
||||
repeatedly rewritten, e.g. by <literal>VACUUM FULL</literal>
|
||||
(Andres Freund)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent starting the server with <varname>wal_level</varname> set
|
||||
to too low a value to support an existing replication slot (Andres
|
||||
Freund)
|
||||
</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>
|
||||
Fix event triggers to handle nested <command>ALTER TABLE</command>
|
||||
commands (Michael Paquier, Álvaro Herrera)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Propagate parent process's transaction and statement start timestamps
|
||||
to parallel workers (Konstantin Knizhnik)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This prevents misbehavior of functions such
|
||||
as <function>transaction_timestamp()</function> when executed in a
|
||||
worker.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix transfer of expanded datums to parallel workers so that alignment
|
||||
is preserved, preventing crashes on alignment-picky platforms
|
||||
(Tom Lane, Amit Kapila)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix WAL file recycling logic to work correctly on standby servers
|
||||
(Michael Paquier)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Depending on the setting of <varname>archive_mode</varname>, a standby
|
||||
might fail to remove some WAL files that could be removed.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix handling of commit-timestamp tracking during recovery
|
||||
(Masahiko Sawasa, Michael Paquier)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</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>
|
||||
Allow DSM allocation to be interrupted (Chris Travers)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid failure in a parallel worker when loading an extension that
|
||||
tries to access system caches within its init function (Thomas Munro)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Properly handle turning <varname>full_page_writes</varname> on
|
||||
dynamically (Kyotaro Horiguchi)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix possible crash due to double <function>free()</function> during
|
||||
SP-GiST rescan (Andrew Gierth)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid possible buffer overrun when replaying GIN page recompression
|
||||
from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix missed fsync of a replication slot's directory (Konstantin
|
||||
Knizhnik, Michael Paquier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix unexpected timeouts when
|
||||
using <varname>wal_sender_timeout</varname> on a slow server
|
||||
(Noah Misch)
|
||||
</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>
|
||||
Ensure background workers are stopped properly when the postmaster
|
||||
receives a fast-shutdown request before completing database startup
|
||||
(Alexander Kukushkin)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Update the free space map during WAL replay of page all-visible/frozen
|
||||
flag changes (Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid premature release of parallel-query resources when query end or
|
||||
tuple count limit is reached (Amit Kapila)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It's only okay to shut down the executor at this point if the caller
|
||||
cannot demand backwards scan afterwards.
|
||||
</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 <application>psql</application>, as well as documentation
|
||||
examples, to call <function>PQconsumeInput()</function> before
|
||||
each <function>PQnotifies()</function> call (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This fixes cases in which <application>psql</application> would not
|
||||
report receipt of a <literal>NOTIFY</literal> message until after the
|
||||
next command.
|
||||
</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>
|
||||
In <filename>contrib/postgres_fdw</filename>, don't try to ship a
|
||||
variable-free <literal>ORDER BY</literal> clause to the remote server
|
||||
(Andrew Gierth)
|
||||
</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>
|
||||
On Windows, allow the regression tests to be run by an Administrator
|
||||
account (Andrew Dunstan)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To do this safely, <application>pg_regress</application> now gives up
|
||||
any such privileges at startup.
|
||||
</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>
|
||||
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-6-10">
|
||||
<title>Release 9.6.10</title>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user