3963 lines
113 KiB
Plaintext
3963 lines
113 KiB
Plaintext
<!-- 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: 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>
|
|
|
|
<para>
|
|
This oversight could be exploited by an unprivileged user to gain
|
|
superuser privileges during the next dump/reload
|
|
or <application>pg_upgrade</application> run. (CVE-2018-16850)
|
|
</para>
|
|
</listitem>
|
|
|
|
<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 [5d28c9bd7] 2018-11-06 18:33:28 -0500
|
|
Branch: REL_11_STABLE [05f84605d] 2018-11-06 18:33:33 -0500
|
|
-->
|
|
<para>
|
|
Disable <varname>recheck_on_update</varname> optimization (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This new-in-v11 feature turns out not to have been ready for prime
|
|
time. Disable it until something can be done about it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [dc3e436b1] 2018-11-05 11:04:02 +0900
|
|
Branch: REL_11_STABLE [7c222d5e5] 2018-11-05 11:04:14 +0900
|
|
Branch: REL_10_STABLE [8aad248f7] 2018-11-05 11:04:20 +0900
|
|
-->
|
|
<para>
|
|
Prevent creation of a partition in a trigger attached to its parent
|
|
table (Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
Ideally we'd allow that, but for the moment it has to be blocked to
|
|
avoid crashes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [4bc772e2a] 2018-11-05 09:14:33 +0900
|
|
Branch: REL_11_STABLE [948af5232] 2018-11-05 09:15:08 +0900
|
|
Branch: REL_10_STABLE [70c38e708] 2018-11-05 09:15:25 +0900
|
|
-->
|
|
<para>
|
|
Fix problems with applying <literal>ON COMMIT DELETE ROWS</literal> to
|
|
a partitioned temporary table (Amit Langote)
|
|
</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: 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: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [edb979766] 2018-09-25 09:55:44 +0900
|
|
Branch: REL_11_STABLE Release: REL_11_0 [a3bb831ef] 2018-09-25 09:56:41 +0900
|
|
Branch: REL_10_STABLE [90a1f9786] 2018-09-25 09:56:57 +0900
|
|
-->
|
|
<para>
|
|
In <filename>contrib/pg_stat_statements</filename>, disallow
|
|
the <literal>pg_read_all_stats</literal> role from
|
|
executing <function>pg_stat_statements_reset()</function>
|
|
(Haribabu Kommi)
|
|
</para>
|
|
|
|
<para>
|
|
<literal>pg_read_all_stats</literal> is only meant to grant permission
|
|
to read statistics, not to change them, so this grant was incorrect.
|
|
</para>
|
|
|
|
<para>
|
|
To cause this change to take effect, run <literal>ALTER EXTENSION
|
|
pg_stat_statements UPDATE</literal> in each database
|
|
where <filename>pg_stat_statements</filename> has been installed.
|
|
(A database freshly created in 11.0 should not need this, but a
|
|
database upgraded from a previous release probably still contains
|
|
the old version of <filename>pg_stat_statements</filename>. The
|
|
<literal>UPDATE</literal> command is harmless if the module was
|
|
already updated.)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [003c68a3b] 2018-11-06 13:25:24 -0500
|
|
Branch: REL_11_STABLE [1f28ec6be] 2018-11-06 13:25:24 -0500
|
|
Branch: REL_10_STABLE [b2e754c14] 2018-11-06 13:25:24 -0500
|
|
-->
|
|
<para>
|
|
Rename red-black tree support functions to use <literal>rbt</literal>
|
|
prefix not <literal>rb</literal> prefix (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids name collisions with Ruby functions, which broke
|
|
PL/Ruby. It's hoped that there are no other affected extensions.
|
|
</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>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2018-10-18</para>
|
|
</formalpara>
|
|
|
|
<sect2>
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
Major enhancements in <productname>PostgreSQL</productname> 11 include:
|
|
</para>
|
|
|
|
<!-- Items in this list summarize one or more items below -->
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improvements to partitioning functionality, including:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Add support for partitioning by a hash key
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Add support for <literal>PRIMARY KEY</literal>, <literal>FOREIGN
|
|
KEY</literal>, indexes, and triggers on partitioned tables
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Allow creation of a <quote>default</quote> partition for storing
|
|
data that does not match any of the remaining partitions
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<command>UPDATE</command> statements that change a partition key
|
|
column now cause affected rows to be moved to the appropriate
|
|
partitions
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Improve <command>SELECT</command> performance through enhanced
|
|
partition elimination strategies during query planning and execution
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improvements to parallelism, including:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<command>CREATE INDEX</command> can now use parallel processing
|
|
while building a B-tree index
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Parallelization is now possible in <command>CREATE TABLE
|
|
... AS</command>,
|
|
<command>CREATE MATERIALIZED VIEW</command>, and certain
|
|
queries using <literal>UNION</literal>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Parallelized hash joins and parallelized sequential scans now
|
|
perform better
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
SQL stored procedures that support embedded transactions
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Optional Just-in-Time (JIT) compilation for some SQL code, speeding
|
|
evaluation of expressions
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Window functions now support all framing options shown in the SQL:2011
|
|
standard, including <literal>RANGE <replaceable>distance</replaceable>
|
|
PRECEDING/FOLLOWING</literal>, <literal>GROUPS</literal> mode, and
|
|
frame exclusion options
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Covering indexes can now be created, using the
|
|
<literal>INCLUDE</literal> clause of <command>CREATE INDEX</command>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Many other useful performance improvements, including the ability to
|
|
avoid a table rewrite for <command>ALTER TABLE ... ADD COLUMN</command>
|
|
with a non-null column default
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items are explained in more detail in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 11</title>
|
|
|
|
<para>
|
|
A dump/restore using <xref linkend="app-pg-dumpall"/>, or use of <xref
|
|
linkend="pgupgrade"/>, is required for those wishing to migrate data
|
|
from any previous release.
|
|
</para>
|
|
|
|
<para>
|
|
Version 11 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-22 [b3f840120] Move handling of database properties from pg_dumpall int
|
|
2018-01-23 [160a4f62e] In pg_dump, force reconnection after issuing ALTER DATAB
|
|
2018-01-25 [0d4e6ed30] Clean up some aspects of pg_dump/pg_restore item-selecti
|
|
-->
|
|
|
|
<para>
|
|
Make <link
|
|
linkend="app-pgdump"><application>pg_dump</application></link>
|
|
dump the properties of a database, not just its contents
|
|
(Haribabu Kommi)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, attributes of the database itself, such as database-level
|
|
<command>GRANT</command>/<command>REVOKE</command> permissions and
|
|
<command>ALTER DATABASE SET</command> variable settings, were only
|
|
dumped by <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>.
|
|
Now <command>pg_dump --create</command> and
|
|
<command>pg_restore --create</command> will restore these database
|
|
properties in addition to the objects within the
|
|
database. <command>pg_dumpall -g</command> now only dumps role-
|
|
and tablespace-related attributes.
|
|
<application>pg_dumpall</application>'s complete output (without
|
|
<option>-g</option>) is unchanged.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dump</application> and
|
|
<application>pg_restore</application>, without
|
|
<option>--create</option>, no longer dump/restore database-level
|
|
comments and security labels; those are now treated as properties of
|
|
the database.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dumpall</application>'s output script will now always
|
|
create databases with their original locale and encoding, and hence
|
|
will fail if the locale or encoding name is unknown to the
|
|
destination system. Previously, <command>CREATE DATABASE</command>
|
|
would be emitted without these specifications if the database locale
|
|
and encoding matched the old cluster's defaults.
|
|
</para>
|
|
|
|
<para>
|
|
<command>pg_dumpall --clean</command> now restores the original
|
|
locale and encoding settings of the <literal>postgres</literal>
|
|
and <literal>template1</literal> databases, as well as those of
|
|
user-created databases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-06-18 [b97a3465d] Consider syntactic form when disambiguating function vs
|
|
2018-06-18 [45e98ee73] Remove obsolete prohibition on function name matching a
|
|
-->
|
|
|
|
<para>
|
|
Consider syntactic form when disambiguating function versus column
|
|
references (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When <replaceable>x</replaceable> is a table name or composite
|
|
column, <productname>PostgreSQL</productname> has traditionally
|
|
considered the syntactic
|
|
forms <literal><replaceable>f</replaceable>(<replaceable>x</replaceable>)</literal>
|
|
and <literal><replaceable>x</replaceable>.<replaceable>f</replaceable></literal>
|
|
to be equivalent, allowing tricks such as writing a function and
|
|
then using it as though it were a computed-on-demand column.
|
|
However, if both interpretations are feasible, the column
|
|
interpretation was always chosen, leading to surprising results if
|
|
the user intended the function interpretation. Now, if there is
|
|
ambiguity, the interpretation that matches the syntactic form is
|
|
chosen.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-09-04 [fb466d7b5] Fully enforce uniqueness of constraint names.
|
|
-->
|
|
<para>
|
|
Fully enforce uniqueness of table and domain constraint names
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> expects the names of a table's
|
|
constraints to be distinct, and likewise for the names of a domain's
|
|
constraints. However, there was not rigid enforcement of this, and
|
|
previously there were corner cases where duplicate names could be
|
|
created.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-29 [61b200e2f] Avoid wrong results for power() with NaN input on some p
|
|
2018-04-29 [6bdf1303b] Avoid wrong results for power() with NaN input on more p
|
|
2018-05-17 [d1fc750b5] Make numeric power() handle NaNs according to the modern
|
|
-->
|
|
|
|
<para>
|
|
Make <function>power(numeric, numeric)</function>
|
|
and <function>power(float8, float8)</function>
|
|
handle <literal>NaN</literal> inputs according to the POSIX standard
|
|
(Tom Lane, Dang Minh Huong)
|
|
</para>
|
|
|
|
<para>
|
|
POSIX says that <literal>NaN ^ 0 = 1</literal> and <literal>1 ^ NaN
|
|
= 1</literal>, but all other cases with <literal>NaN</literal>
|
|
input(s) should return <literal>NaN</literal>.
|
|
<function>power(numeric, numeric)</function> just
|
|
returned <literal>NaN</literal> in all such cases; now it honors the
|
|
two exceptions. <function>power(float8, float8)</function> followed
|
|
the standard if the C library does; but on some old Unix platforms
|
|
the library doesn't, and there were also problems on some versions
|
|
of Windows.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-17 [e87d4965b] Prevent to_number() from losing data when template doesn
|
|
-->
|
|
|
|
<para>
|
|
Prevent <link
|
|
linkend="functions-formatting-numeric-table"><function>to_number()</function></link>
|
|
from consuming characters when the template separator does not
|
|
match (Oliver Ford)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <command>SELECT to_number('1234', '9,999')</command>
|
|
used to return <literal>134</literal>. It will now
|
|
return <literal>1234</literal>. <literal>L</literal> and
|
|
<literal>TH</literal> now only consume characters that are not
|
|
digits, positive/negative signs, decimal points, or commas.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-18 [976a1a48f] Improve to_date/to_number/to_timestamp behavior with mul
|
|
-->
|
|
|
|
<para>
|
|
Fix <link
|
|
linkend="functions-formatting"><function>to_date()</function></link>,
|
|
<function>to_number()</function>, and
|
|
<function>to_timestamp()</function> to skip a character for each
|
|
template character (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, they skipped one <emphasis>byte</emphasis> for each byte
|
|
of template character, resulting in strange behavior if either string
|
|
contained multibyte characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-18 [63ca86318] Fix quoted-substring handling in format parsing for to_c
|
|
-->
|
|
|
|
<para>
|
|
Adjust the handling of backslashes inside double-quotes in
|
|
template strings for <function>to_char()</function>,
|
|
<function>to_number()</function>, and
|
|
<function>to_timestamp()</function>.
|
|
</para>
|
|
|
|
<para>
|
|
Such a backslash now escapes the character after it, particularly
|
|
a double-quote or another backslash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-06-21 [e474c2b7e] Set correct context for XPath evaluation
|
|
-->
|
|
|
|
<para>
|
|
Correctly handle relative path expressions
|
|
in <function>xmltable()</function>, <function>xpath()</function>,
|
|
and other XML-handling functions (Markus Winand)
|
|
</para>
|
|
|
|
<para>
|
|
Per the SQL standard, relative paths start from the document node of
|
|
the XML input document, not the root node as these functions
|
|
previously did.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-18 [f8e5f156b] Rearm statement_timeout after each executed query.
|
|
|
|
-->
|
|
|
|
<para>
|
|
In the <link linkend="protocol-query-concepts">extended query
|
|
protocol</link>,
|
|
make <link linkend="guc-statement-timeout"><varname>statement_timeout</varname></link>
|
|
apply to each Execute message separately, not to all commands before
|
|
Sync (Tatsuo Ishii, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-14 [f66e8bf87] Remove pg_class.relhaspkey
|
|
-->
|
|
|
|
<para>
|
|
Remove the <structfield>relhaspkey</structfield> column from system
|
|
catalog <structname>pg_class</structname> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Applications needing to check for a primary key should consult
|
|
<structname>pg_index</structname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-02 [fd1a421fe] Add prokind column, replacing proisagg and proiswindow
|
|
-->
|
|
|
|
<para>
|
|
Replace system catalog <structname>pg_proc</structname>'s
|
|
<structfield>proisagg</structfield> and
|
|
<structfield>proiswindow</structfield> columns with
|
|
<structfield>prokind</structfield> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This new column more clearly distinguishes functions, procedures,
|
|
aggregates, and window functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-16 [9b5140fb5] Correct representation of foreign tables in information
|
|
-->
|
|
|
|
<para>
|
|
Correct information schema column <link
|
|
linkend="infoschema-tables"><structname>tables</structname>.<structfield>table_type</structfield></link>
|
|
to return <literal>FOREIGN</literal> instead of <literal>FOREIGN
|
|
TABLE</literal> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This new output matches the SQL standard.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-20 [be87b70b6] Sync process names between ps and pg_stat_activity
|
|
-->
|
|
|
|
<para>
|
|
Change the ps process display
|
|
labels for background workers to match the <link
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname>.<structfield>backend_type</structfield></link>
|
|
labels (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-09 [ae20b23a9] Refactor permissions checks for large objects.
|
|
2017-11-14 [6d776522d] Document changes in large-object privilege checking.
|
|
-->
|
|
|
|
<para>
|
|
Cause large object permission checks
|
|
to happen during large object open, <link
|
|
linkend="lo-open"><function>lo_open()</function></link>, not
|
|
when a read or write is attempted (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
If write access is requested and not available, an error will now be
|
|
thrown even if the large object is never written to.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-08-09 [87330e21c] Restrict access to reindex of shared catalogs for non-pr
|
|
-->
|
|
<para>
|
|
Prevent non-superusers from reindexing shared catalogs
|
|
(Michael Paquier, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, database owners were also allowed to do this, but
|
|
now it is considered outside the bounds of their privileges.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-06 [11523e860] Support new default roles with adminpack
|
|
-->
|
|
|
|
<para>
|
|
Remove deprecated <link
|
|
linkend="adminpack"><filename>adminpack</filename></link> functions
|
|
<function>pg_file_read()</function>,
|
|
<function>pg_file_length()</function>, and
|
|
<function>pg_logfile_rotate()</function> (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Equivalent functionality is now present in the core backend.
|
|
Existing <filename>adminpack</filename> installs will continue to have
|
|
access to these functions until they are updated via <command>ALTER
|
|
EXTENSION ... UPDATE</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-26 [fb8697b31] Avoid unnecessary use of pg_strcasecmp for already-downc
|
|
-->
|
|
|
|
<para>
|
|
Honor the capitalization of double-quoted command options
|
|
(Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, option names in certain SQL commands were forcibly
|
|
lower-cased even if entered with double quotes; thus for example
|
|
<literal>"FillFactor"</literal> would be accepted as an index storage
|
|
option, though properly its name is lower-case. Such cases will now
|
|
generate an error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-29 [8b304b8b7] Remove replacement selection sort.
|
|
-->
|
|
|
|
<para>
|
|
Remove server parameter <varname>replacement_sort_tuples</varname>
|
|
(Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
Replacement sorts were determined to be no longer useful.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-26 [4971d2a32] Remove the obsolete WITH clause of CREATE FUNCTION.
|
|
-->
|
|
|
|
<para>
|
|
Remove <literal>WITH</literal> clause in <link
|
|
linkend="sql-createfunction"><command>CREATE
|
|
FUNCTION</command></link> (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> has long supported a more
|
|
standard-compliant syntax for this capability.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-13 [4b93f5799] Make plpgsql use its DTYPE_REC code paths for composite-
|
|
-->
|
|
|
|
<para>
|
|
In PL/pgSQL trigger functions, the <varname>OLD</varname>
|
|
and <varname>NEW</varname> variables now read as NULL when not
|
|
assigned (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, references to these variables could be parsed but not
|
|
executed.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 11 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3>
|
|
<title>Server</title>
|
|
|
|
<sect4>
|
|
<title>Partitioning</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-09 [1aba8e651] Add hash partitioning.
|
|
-->
|
|
|
|
<para>
|
|
Allow the creation of partitions based on hashing a key column
|
|
(Amul Sul)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-19 [8b08f7d48] Local partitioned indexes
|
|
2018-02-19 [eb7ed3f30] Allow UNIQUE indexes on partitioned tables
|
|
2018-03-26 [555ee77a9] Handle INSERT .. ON CONFLICT with partitioned tables
|
|
-->
|
|
|
|
<para>
|
|
Support indexes on partitioned tables (Álvaro Herrera,
|
|
Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
An <quote>index</quote> on a partitioned table is not a physical
|
|
index across the whole partitioned table, but rather a template for
|
|
automatically creating similar indexes on each partition of the
|
|
table.
|
|
</para>
|
|
|
|
<para>
|
|
If the partition key is part of the index's column set, a
|
|
partitioned index may be declared <literal>UNIQUE</literal>.
|
|
It will represent a valid uniqueness constraint across the whole
|
|
partitioned table, even though each physical index only enforces
|
|
uniqueness within its own partition.
|
|
</para>
|
|
|
|
<para>
|
|
The new command <link linkend="sql-alterindex"><command>ALTER
|
|
INDEX ATTACH PARTITION</command></link> causes an existing index on
|
|
a partition to be associated with a matching index template for its
|
|
partitioned table. This provides flexibility in setting up a new
|
|
partitioned index for an existing partitioned table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-04 [3de241dba] Foreign keys on partitioned tables
|
|
-->
|
|
|
|
<para>
|
|
Allow foreign keys on partitioned tables (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-23 [86f575948] Allow FOR EACH ROW triggers on partitioned tables
|
|
-->
|
|
|
|
<para>
|
|
Allow <literal>FOR EACH ROW</literal> triggers on partitioned
|
|
tables (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
Creation of a trigger on a partitioned table automatically creates
|
|
triggers on all existing and future partitions.
|
|
This also allows deferred unique constraints on partitioned tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-08 [6f6b99d13] Allow a partitioned table to have a default partition.
|
|
2018-04-11 [72cf7f310] Fix ALTER TABLE .. ATTACH PARTITION ... DEFAULT
|
|
-->
|
|
|
|
<para>
|
|
Allow partitioned tables to have a default partition (Jeevan Ladhe,
|
|
Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
The default partition will store rows that don't match any of the
|
|
other defined partitions, and is searched accordingly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-19 [2f1784410] Allow UPDATE to move rows between partitions.
|
|
-->
|
|
|
|
<para>
|
|
<command>UPDATE</command> statements that change a partition key
|
|
column now cause affected rows to be moved to the appropriate
|
|
partitions (Amit Khandekar)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-06 [3d956d956] Allow insert and update tuple routing and COPY for forei
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>INSERT</command>, <command>UPDATE</command>, and
|
|
<command>COPY</command> on partitioned tables to properly route
|
|
rows to foreign partitions (Etsuro Fujita, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
This is supported by <filename>postgres_fdw</filename>
|
|
foreign tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-02 [9aef17316] Refactor code for partition bound searching
|
|
2018-02-23 [f724022d0] Revise API for partition bound search functions.
|
|
2018-04-06 [9fdb675fc] Faster partition pruning
|
|
2018-04-23 [055fb8d33] Add GUC enable_partition_pruning
|
|
-->
|
|
|
|
<para>
|
|
Allow faster partition elimination during query processing (Amit
|
|
Langote, David Rowley, Dilip Kumar)
|
|
</para>
|
|
|
|
<para>
|
|
This speeds access to partitioned tables with many partitions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-07 [499be013d] Support partition pruning at execution time
|
|
-->
|
|
|
|
<para>
|
|
Allow partition elimination during query execution (David Rowley,
|
|
Beena Emerson)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, partition elimination only happened at planning
|
|
time, meaning many joins and prepared queries could not use
|
|
partition elimination.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-15 [e139f1953] Assorted preparatory refactoring for partition-wise join
|
|
2017-10-06 [f49842d1e] Basic partition-wise join functionality.
|
|
2018-02-16 [2fb1abaeb] Rename enable_partition_wise_join to enable_partitionwis
|
|
-->
|
|
|
|
<para>
|
|
In an equality join between partitioned tables, allow matching
|
|
partitions to be joined directly (Ashutosh Bapat)
|
|
</para>
|
|
|
|
<para>
|
|
This feature is disabled by default
|
|
but can be enabled by changing <link
|
|
linkend="guc-enable-partitionwise-join"><varname>enable_partitionwise_join</varname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-26 [9fd8b7d63] Factor some code out of create_grouping_paths.
|
|
2018-03-22 [e2f1eb0ee] Implement partition-wise grouping/aggregation.
|
|
-->
|
|
|
|
<para>
|
|
Allow aggregate functions on partitioned tables to be evaluated
|
|
separately for each partition, subsequently merging the results
|
|
(Jeevan Chalke, Ashutosh Bapat, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This feature is disabled by default
|
|
but can be enabled by changing <link
|
|
linkend="guc-enable-partitionwise-aggregate"><varname>enable_partitionwise_aggregate</varname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-02 [7e0d64c7a] postgres_fdw: Push down partition-wise aggregation.
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
|
|
to push down aggregates to foreign tables that are partitions
|
|
(Jeevan Chalke)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Parallel Queries</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-02 [9da0cc352] Support parallel btree index builds.
|
|
-->
|
|
|
|
<para>
|
|
Allow parallel building of a btree index (Peter Geoghegan,
|
|
Rushabh Lathia, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-21 [180428404] Add parallel-aware hash joins.
|
|
-->
|
|
|
|
<para>
|
|
Allow hash joins to be performed in parallel using a shared hash
|
|
table (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-05 [ab7271677] Support Parallel Append plan nodes.
|
|
2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
|
|
-->
|
|
|
|
<para>
|
|
Allow <literal>UNION</literal> to run each
|
|
<command>SELECT</command> in parallel if the individual
|
|
<command>SELECT</command>s cannot be parallelized (Amit Khandekar,
|
|
Robert Haas, Amul Sul)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
same commits as above
|
|
2017-12-05 [ab7271677] Support Parallel Append plan nodes.
|
|
2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
|
|
-->
|
|
|
|
<para>
|
|
Allow partition scans to more efficiently use parallel workers
|
|
(Amit Khandekar, Robert Haas, Amul Sul)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-29 [3452dc524] Push tuple limits through Gather and Gather Merge.
|
|
-->
|
|
|
|
<para>
|
|
Allow <literal>LIMIT</literal> to be passed to parallel workers
|
|
(Robert Haas, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This allows workers to reduce returned results and use targeted
|
|
index scans.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-16 [e89a71fb4] Pass InitPlan values to workers via Gather (Merge).
|
|
2018-03-29 [3f90ec859] Postpone generate_gather_paths for topmost scan/join rel
|
|
2018-03-29 [11cf92f6e] Rewrite the code that applies scan/join targets to paths
|
|
-->
|
|
|
|
<para>
|
|
Allow single-evaluation queries, e.g. <literal>WHERE</literal>
|
|
clause aggregate queries, and functions in the target list to be
|
|
parallelized (Amit Kapila, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-15 [e5253fdc4] Add parallel_leader_participation GUC.
|
|
-->
|
|
|
|
<para>
|
|
Add server parameter <link
|
|
linkend="guc-parallel-leader-participation"><varname>parallel_leader_participation</varname></link>
|
|
to control whether the leader also executes subplans (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
The default is enabled, meaning the leader will execute subplans.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-05 [e9baa5e9f] Allow DML commands that create tables to use parallel qu
|
|
-->
|
|
|
|
<para>
|
|
Allow parallelization of commands <command>CREATE TABLE
|
|
... AS</command>, <command>SELECT INTO</command>, and
|
|
<command>CREATE MATERIALIZED VIEW</command> (Haribabu Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-16 [3cda10f41] Use atomic ops to hand out pages to scan in parallel sca
|
|
|
|
-->
|
|
|
|
<para>
|
|
Improve performance of sequential scans with many parallel workers
|
|
(David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-29 [bf11e7ee2] Propagate sort instrumentation from workers back to lead
|
|
-->
|
|
|
|
<para>
|
|
Add reporting of parallel workers' sort activity in
|
|
<command>EXPLAIN</command> (Robert Haas, Tom Lane)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-07 [8224de4f4] Indexes with INCLUDE columns and their support in B-tree
|
|
-->
|
|
|
|
<para>
|
|
Allow B-tree indexes to include columns that are not part of the
|
|
search key or unique constraint, but are available to be read by
|
|
index-only scans (Anastasia Lubennikova, Alexander Korotkov, Teodor
|
|
Sigaev)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled by the new <literal>INCLUDE</literal> clause of <link
|
|
linkend="sql-createindex"><command>CREATE INDEX</command></link>.
|
|
It facilitates building <quote>covering indexes</quote> that optimize
|
|
specific types of queries. Columns can be included even if their
|
|
data types don't have B-tree support.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-26 [2b2727343] Optimize btree insertions for common case of increasing
|
|
2018-04-10 [074251db6] Adjustments to the btree fastpath optimization.
|
|
-->
|
|
|
|
<para>
|
|
Improve performance of monotonically increasing index additions
|
|
(Pavan Deolasee, Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-22 [7c75ef571] hash: Implement page-at-a-time scan.
|
|
-->
|
|
|
|
<para>
|
|
Improve performance of hash index scans (Ashutosh Sharma)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-27 [3ad55863e] Add predicate locking for GiST
|
|
2018-03-30 [43d1ed60f] Predicate locking in GIN index
|
|
2018-04-07 [b508a56f2] Predicate locking in hash indexes.
|
|
-->
|
|
|
|
<para>
|
|
Add predicate locking for hash, GiST and GIN indexes (Shubham
|
|
Barai)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the likelihood of serialization conflicts in
|
|
serializable-mode transactions.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect5>
|
|
<title><link linkend="spgist">SP-Gist</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-03 [710d90da1] Add prefix operator for TEXT type.
|
|
-->
|
|
|
|
<para>
|
|
Add prefix-match
|
|
operator <type>text</type> <literal>^@</literal> <type>text</type>,
|
|
which is supported by SP-GiST (Ildus Kurbangaliev)
|
|
</para>
|
|
|
|
<para>
|
|
This is similar to using <replaceable>var</replaceable> <literal>LIKE
|
|
'word%'</literal> with a btree index, but it is more efficient.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-25 [ff963b393] Add polygon opclass for SP-GiST
|
|
-->
|
|
|
|
<para>
|
|
Allow polygons to be indexed with SP-GiST (Nikita Glukhov,
|
|
Alexander Korotkov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-22 [854823fa3] Add optional compression method to SP-GiST
|
|
-->
|
|
|
|
<para>
|
|
Allow SP-GiST to use lossy representation of leaf keys (Teodor Sigaev,
|
|
Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect5>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Optimizer</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-22 [b5db1d93d] Improve ANALYZE's strategy for finding MCVs.
|
|
-->
|
|
|
|
<para>
|
|
Improve selection of the most common values for statistics
|
|
(Jeff Janes, Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the most common values (<acronym>MCV</acronym>s) were
|
|
identified based on their frequency compared to all column
|
|
values. Now, <acronym>MCV</acronym>s are chosen based on their
|
|
frequency compared to the non-<acronym>MCV</acronym> values.
|
|
This improves the robustness of the algorithm for both uniform and
|
|
non-uniform distributions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-13 [7d08ce286] Distinguish selectivity of < from <= and > from >=.
|
|
-->
|
|
|
|
<para>
|
|
Improve selectivity estimates for <literal>>=</literal>
|
|
and <literal><=</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such cases used the same selectivity estimates
|
|
as <literal>></literal> and <literal><</literal>, respectively,
|
|
unless the comparison constants are <acronym>MCV</acronym>s.
|
|
This change is particularly helpful for queries
|
|
involving <literal>BETWEEN</literal> with small ranges.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-08 [8ec5429e2] Reduce "X = X" to "X IS NOT NULL", if it's easy to do so
|
|
-->
|
|
|
|
<para>
|
|
Reduce <replaceable>var</replaceable> <literal>=</literal>
|
|
<replaceable>var</replaceable>
|
|
to <replaceable>var</replaceable> <literal>IS NOT NULL</literal>
|
|
where equivalent (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This leads to better selectivity estimates.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-29 [7ca25b7de] Fix neqjoinsel's behavior for semi/anti join cases.
|
|
-->
|
|
|
|
<para>
|
|
Improve optimizer's row count estimates for <literal>EXISTS</literal>
|
|
and <literal>NOT EXISTS</literal> queries (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-02 [7b6c07547] Teach planner to account for HAVING quals in aggregation
|
|
-->
|
|
|
|
<para>
|
|
Make the optimizer account for evaluation costs and selectivity
|
|
of <literal>HAVING</literal> clauses (Tom Lane)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-21 [432bb9e04] Basic JIT provider and error handling infrastructure.
|
|
2018-03-22 [b96d550eb] Support for optimizing and emitting code in LLVM JIT pro
|
|
2018-03-22 [cc415a56d] Basic planner and executor integration for JIT.
|
|
2018-03-26 [32af96b2b] JIT tuple deforming in LLVM JIT provider.
|
|
2018-03-27 [f4f5845b3] Quick adaption of JIT tuple deforming to the fast defaul
|
|
2018-03-28 [9370462e9] Add inlining support to LLVM JIT provider.
|
|
2018-09-15 [0fdadfb01] In v11, disable JIT by default (it's still enabled by de
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="jit">Just-in-Time</link>
|
|
(<acronym>JIT</acronym>) compilation of some parts of query plans
|
|
to improve execution speed (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This feature requires <application>LLVM</application> to be
|
|
available. It is not currently enabled by default, even in
|
|
builds that support it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-01 [7c70996eb] Allow bitmap scans to operate as index-only scans when p
|
|
-->
|
|
|
|
<para>
|
|
Allow bitmap scans to perform index-only scans when possible
|
|
(Alexander Kuzmenkov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-29 [851a26e26] While vacuuming a large table, update upper-level <acronym>FSM</acronym> da
|
|
2018-03-30 [c79f6df75] Do index FSM vacuuming sooner.
|
|
-->
|
|
|
|
<para>
|
|
Update the free space map during <command>VACUUM</command>
|
|
(Claudio Freire)
|
|
</para>
|
|
|
|
<para>
|
|
This allows free space to be reused more quickly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-04 [857f9c36c] Skip full index scan during cleanup of B-tree indexes wh
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>VACUUM</command> to avoid unnecessary index scans
|
|
(Masahiko Sawada, Alexander Korotkov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-01 [baaf272ac] Use group updates when setting transaction status in clo
|
|
-->
|
|
|
|
<para>
|
|
Improve performance of committing multiple concurrent transactions
|
|
(Amit Kapila)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-08 [84ad4b036] Reduce memory usage of targetlist SRFs.
|
|
-->
|
|
|
|
<para>
|
|
Reduce memory usage for queries using set-returning functions in
|
|
their target lists (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-09 [69c3936a1] Expression evaluation based aggregate transition invocat
|
|
-->
|
|
|
|
<para>
|
|
Improve the speed of aggregate computations (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-07 [1bc0100d2] postgres_fdw: Push down UPDATE/DELETE joins to remote se
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
|
|
to push <command>UPDATE</command>s and <command>DELETE</command>s
|
|
using joins to foreign servers (Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only non-join <command>UPDATE</command>s and
|
|
<command>DELETE</command>s were pushed.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-21 [1cc4f536e] Support huge pages on Windows
|
|
-->
|
|
|
|
<para>
|
|
Add support for <firstterm>large pages</firstterm> on Windows
|
|
(Takayuki Tsunakawa, Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by the <link
|
|
linkend="guc-huge-pages">huge_pages</link> configuration
|
|
parameter.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-01 [c039ba071] Add memory info to getrusage output
|
|
-->
|
|
|
|
<para>
|
|
Show memory usage in output from <link
|
|
linkend="runtime-config-statistics-monitor"><varname>log_statement_stats</varname></link>,
|
|
<varname>log_parser_stats</varname>,
|
|
<varname>log_planner_stats</varname>, and
|
|
<varname>log_executor_stats</varname> (Justin Pryzby, Peter
|
|
Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-29 [5373bc2a0] Add background worker type
|
|
-->
|
|
|
|
<para>
|
|
Add column <link
|
|
linkend="pg-stat-activity-view"><structname>pg_stat_activity</structname>.<structfield>backend_type</structfield></link>
|
|
to show the type of a background worker (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The type is also visible in <application>ps</application> output.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-04 [ab6eaee88] When VACUUM or ANALYZE skips a concurrently dropped tabl
|
|
-->
|
|
|
|
<para>
|
|
Make <link
|
|
linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</varname></link>
|
|
log skipped tables that are concurrently being dropped (Nathan
|
|
Bossart)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect5>
|
|
<title><link linkend="infoschema-tables">Information Schema</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-07 [32ff26911] Add more information_schema columns
|
|
-->
|
|
|
|
<para>
|
|
Add <literal>information_schema</literal> columns related to table
|
|
constraints and triggers (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically,
|
|
<structname>triggers</structname>.<structfield>action_order</structfield>,
|
|
<structname>triggers</structname>.<structfield>action_reference_old_table</structfield>,
|
|
and
|
|
<structname>triggers</structname>.<structfield>action_reference_new_table</structfield>
|
|
are now populated, where before they were always null. Also,
|
|
<structname>table_constraints</structname>.<structfield>enforced</structfield>
|
|
now exists but is not yet usefully populated.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect5>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><acronym>Authentication</acronym></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-12 [83aaac41c] Allow custom search filters to be configured for LDAP au
|
|
-->
|
|
|
|
<para>
|
|
Allow the server to specify more complex <link
|
|
linkend="auth-ldap"><acronym>LDAP</acronym></link> specifications
|
|
in search+bind mode (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <literal>ldapsearchfilter</literal> allows pattern matching using
|
|
combinations of <acronym>LDAP</acronym> attributes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-03 [35c0754fa] Allow ldaps when using ldap authentication
|
|
2018-01-04 [3ad2afc2e] Define LDAPS_PORT if it's missing and disable implicit L
|
|
-->
|
|
|
|
<para>
|
|
Allow <acronym>LDAP</acronym> authentication to use
|
|
encrypted <acronym>LDAP</acronym> (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
We already supported <acronym>LDAP</acronym> over
|
|
<acronym>TLS</acronym> by using <literal>ldaptls=1</literal>.
|
|
This new <acronym>TLS</acronym> <acronym>LDAP</acronym> method for
|
|
encrypted <acronym>LDAP</acronym> is enabled
|
|
with <literal>ldapscheme=ldaps</literal>
|
|
or <literal>ldapurl=ldaps://</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-12 [cf1238cd9] Log diagnostic messages if errors occur during LDAP auth
|
|
-->
|
|
|
|
<para>
|
|
Improve logging of <acronym>LDAP</acronym> errors (Thomas Munro)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Permissions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-06 [0fdc8495b] Add default roles for file/program access
|
|
2018-04-07 [da9b580d8] Refactor dir/file permissions
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="default-roles-table">default roles</link> that
|
|
enable file system access (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, the new roles are:
|
|
<literal>pg_read_server_files</literal>,
|
|
<literal>pg_write_server_files</literal>, and
|
|
<literal>pg_execute_server_program</literal>. These roles now also
|
|
control who can use server-side <command>COPY</command> and the <link
|
|
linkend="file-fdw"><filename>file_fdw</filename></link> extension.
|
|
Previously, only superusers could use these functions, and that
|
|
is still the default behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-06 [e79350fef] Remove explicit superuser checks in favor of ACLs
|
|
-->
|
|
|
|
<para>
|
|
Allow access to file system functions to be controlled by
|
|
<command>GRANT</command>/<command>REVOKE</command> permissions,
|
|
rather than superuser checks (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, these functions were modified: <link
|
|
linkend="functions-admin-genfile-table"><function>pg_ls_dir()</function></link>,
|
|
<function>pg_read_file()</function>,
|
|
<function>pg_read_binary_file()</function>,
|
|
<function>pg_stat_file()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-09 [5ecc0d738] Restrict lo_import()/lo_export() via SQL permissions not
|
|
2017-11-14 [6d776522d] Document changes in large-object privilege checking.
|
|
-->
|
|
|
|
<para>
|
|
Use <command>GRANT</command>/<command>REVOKE</command>
|
|
to control access to <link
|
|
linkend="lo-import"><function>lo_import()</function></link>
|
|
and <function>lo_export()</function> (Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only superusers were granted access to these functions.
|
|
</para>
|
|
|
|
<para>
|
|
The compile-time option <literal>ALLOW_DANGEROUS_LO_FUNCTIONS</literal>
|
|
has been removed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-05 [ab3f008a2] postgres_fdw: Judge password use by run-as user, not ses
|
|
-->
|
|
|
|
<para>
|
|
Use view owner not session owner when
|
|
preventing non-password access to <link
|
|
linkend="postgres-fdw"><filename>postgres_fdw</filename></link>
|
|
tables (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> only allows superusers to
|
|
access <filename>postgres_fdw</filename> tables without
|
|
passwords, e.g. via <literal>peer</literal>. Previously, the
|
|
session owner had to be a superuser to allow such access; now
|
|
the view owner is checked instead.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-14 [50c6bb022] Fix enforcement of SELECT FOR UPDATE permissions with ne
|
|
-->
|
|
|
|
<para>
|
|
Fix invalid locking permission check in <command>SELECT FOR
|
|
UPDATE</command> on views (Tom Lane)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Server Configuration</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-17 [8a3d94252] Add ssl_passphrase_command setting
|
|
-->
|
|
|
|
<para>
|
|
Add server setting <link
|
|
linkend="guc-ssl-passphrase-command"><varname>ssl_passphrase_command</varname></link>
|
|
to allow supplying of the passphrase for <acronym>SSL</acronym>
|
|
key files (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Also add <link
|
|
linkend="guc-ssl-passphrase-command-supports-reload"><varname>ssl_passphrase_command_supports_reload</varname></link>
|
|
to specify whether the <acronym>SSL</acronym> configuration
|
|
should be reloaded and <varname>ssl_passphrase_command</varname>
|
|
called during a server configuration reload.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-20 [c2513365a] Parameter toast_tuple_target controls TOAST for new rows
|
|
-->
|
|
|
|
<para>
|
|
Add storage parameter <link
|
|
linkend="sql-createtable-storage-parameters"><varname>toast_tuple_target</varname></link>
|
|
to control the minimum tuple length before <acronym>TOAST</acronym>
|
|
storage will be considered (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
The default <acronym>TOAST</acronym> threshold has not been
|
|
changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-12 [6e7baa322] Introduce BYTES unit for GUCs.
|
|
2018-05-23 [b06d8e58b] Accept "B" in all memory-unit GUCs, and improve error me
|
|
-->
|
|
|
|
<para>
|
|
Allow server options related to memory and file sizes to be
|
|
specified in units of bytes (Beena Emerson)
|
|
</para>
|
|
|
|
<para>
|
|
The new unit suffix is <quote>B</quote>. This is in addition to the
|
|
existing units <quote>kB</quote>, <quote>MB</quote>, <quote>GB</quote>
|
|
and <quote>TB</quote>.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><link linkend="wal">Write-Ahead Log</link> (<acronym>WAL</acronym>)</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-19 [fc49e24fa] Make WAL segment size configurable at initdb time.
|
|
-->
|
|
|
|
<para>
|
|
Allow the <acronym>WAL</acronym> file size to be set
|
|
during <application>initdb</application> (Beena Emerson)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the 16MB default could only be changed at compile time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-07 [4b0d28de0] Remove secondary checkpoint
|
|
-->
|
|
|
|
<para>
|
|
Retain <acronym>WAL</acronym> data for only a single checkpoint
|
|
(Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <acronym>WAL</acronym> was retained for two checkpoints.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-30 [4a33bb59d] Ensure that WAL pages skipped by a forced WAL switch are
|
|
-->
|
|
|
|
<para>
|
|
Fill the unused portion of force-switched <acronym>WAL</acronym>
|
|
segment files with zeros for improved compressibility (Chapman
|
|
Flack)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Base Backup and Streaming Replication</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-07 [5dfd1e5a6] Logical decoding of TRUNCATE
|
|
2018-04-07 [039eb6e92] Logical replication support for TRUNCATE
|
|
-->
|
|
|
|
<para>
|
|
Replicate <command>TRUNCATE</command> activity when using logical
|
|
replication (Simon Riggs, Marco Nenciarini, Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-28 [1eb6d6527] Store 2PC GID in commit/abort WAL recs for logical decod
|
|
-->
|
|
|
|
<para>
|
|
Pass prepared transaction information to logical replication
|
|
subscribers (Nikhil Sontakke, Stas Kelvich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-23 [8694cc96b] Exclude unlogged tables from base backups
|
|
2018-03-27 [920a5e500] Skip temp tables from basebackup.
|
|
2017-11-07 [98267ee83] Exclude pg_internal.init from BASE_BACKUP
|
|
-->
|
|
|
|
<para>
|
|
Exclude unlogged tables, temporary tables, and
|
|
<filename>pg_internal.init</filename> files from streaming base
|
|
backups (David Steele)
|
|
</para>
|
|
|
|
<para>
|
|
There is no need to copy such files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-03 [4eb77d50c] Validate page level checksums in base backups
|
|
-->
|
|
|
|
<para>
|
|
Allow checksums of heap pages to be verified during streaming base
|
|
backup (Michael Banck)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-17 [9c7d06d60] Ability to advance replication slots
|
|
-->
|
|
|
|
<para>
|
|
Allow replication slots to be advanced programmatically, rather
|
|
than be consumed by subscribers (Petr Jelinek)
|
|
</para>
|
|
|
|
<para>
|
|
This allows efficient advancement of replication slots when the
|
|
contents do not need to be consumed. This is performed by
|
|
<function>pg_replication_slot_advance()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-06 [6271fceb8] Add TIMELINE to backup_label file
|
|
-->
|
|
|
|
<para>
|
|
Add timeline information to the <link
|
|
linkend="backup-lowlevel-base-backup"><filename>backup_label</filename></link>
|
|
file (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Also add a check that the <acronym>WAL</acronym> timeline matches
|
|
the <filename>backup_label</filename> file's timeline.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-31 [9a895462d] Enhance pg_stat_wal_receiver view to display host and po
|
|
-->
|
|
|
|
<para>
|
|
Add host and port connection information to the
|
|
<structname>pg_stat_wal_receiver</structname> system view
|
|
(Haribabu Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-28 [16828d5c0] Fast ALTER TABLE ADD COLUMN with a non-NULL default
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>ALTER TABLE</command> to add a column with
|
|
a non-null default without doing a table rewrite (Andrew Dunstan,
|
|
Serge Rielau)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled when the default value is a constant.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-30 [34c20de4d] Allow to lock views.
|
|
2018-03-31 [1b26bd408] Fix bug with view locking code.
|
|
-->
|
|
|
|
<para>
|
|
Allow views to be locked by locking the underlying tables
|
|
(Yugo Nagata)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-06 [5b6d13eec] Allow SET STATISTICS on expression indexes
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>ALTER INDEX</command> to set statistics-gathering
|
|
targets for expression indexes (Alexander Korotkov, Adrien Nayrat)
|
|
</para>
|
|
|
|
<para>
|
|
In <application>psql</application>, <literal>\d+</literal> now shows
|
|
the statistics target for indexes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-03 [11d8d72c2] Allow multiple tables to be specified in one VACUUM or A
|
|
-->
|
|
|
|
<para>
|
|
Allow multiple tables to be specified in one
|
|
<command>VACUUM</command> or <command>ANALYZE</command> command
|
|
(Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
Also, if any table mentioned in <command>VACUUM</command> uses
|
|
a column list, then the <command>ANALYZE</command> keyword must be
|
|
supplied; previously, <command>ANALYZE</command> was implied in
|
|
such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-05 [854dd8cff] Add parenthesized options syntax for ANALYZE.
|
|
-->
|
|
|
|
<para>
|
|
Add parenthesized options syntax to <command>ANALYZE</command>
|
|
(Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
This is similar to the syntax supported by
|
|
<command>VACUUM</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-14 [4de2d4fba] Explicitly track whether aggregate final functions modif
|
|
2017-10-16 [be0ebb65f] Allow the built-in ordered-set aggregates to share trans
|
|
-->
|
|
|
|
<para>
|
|
Add <command>CREATE AGGREGATE</command> option to specify the
|
|
behavior of the aggregate's finalization function (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is helpful for allowing user-defined aggregate functions to be
|
|
optimized and to work as window functions.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-30 [c12d570fa] Support arrays over domains.
|
|
-->
|
|
|
|
<para>
|
|
Allow the creation of arrays of domains (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This also allows <function>array_agg()</function> to be used
|
|
on domains.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-26 [37a795a60] Support domains over composite types.
|
|
2017-10-26 [820c0305f] Support domains over composite types in PL/Tcl.
|
|
2017-10-28 [60651e4cd] Support domains over composite types in PL/Perl.
|
|
2017-11-16 [687f096ea] Make PL/Python handle domain-type conversions correctly.
|
|
-->
|
|
|
|
<para>
|
|
Support domains over composite types (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Also allow PL/Perl, PL/Python, and PL/Tcl to handle
|
|
composite-domain function arguments and results. Also improve
|
|
PL/Python domain handling.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-29 [c0cbe00fe] Add casts from jsonb
|
|
-->
|
|
|
|
<para>
|
|
Add casts from <type>JSONB</type> scalars to numeric and boolean data
|
|
types (Anastasia Lubennikova)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-07 [0a459cec9] Support all SQL:2011 options for window frame clauses.
|
|
2018-02-24 [8b29e88cd] Add window RANGE support for float4, float8, numeric.
|
|
-->
|
|
|
|
<para>
|
|
Add all <link linkend="sql-window">window function</link> framing
|
|
options specified by SQL:2011 (Oliver Ford, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, allow <literal>RANGE</literal> mode to use
|
|
<literal>PRECEDING</literal> and <literal>FOLLOWING</literal> to
|
|
select rows having grouping values within plus or minus the
|
|
specified offset. Add <literal>GROUPS</literal> mode to include plus
|
|
or minus the number of peer groups. Frame exclusion syntax was also
|
|
added.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-22 [10cfce34c] Add user-callable SHA-2 functions
|
|
-->
|
|
|
|
<para>
|
|
Add <acronym>SHA-2</acronym> family of hash functions (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <link
|
|
linkend="functions-binarystring-other"><function>sha224()</function></link>,
|
|
<function>sha256()</function>, <function>sha384()</function>,
|
|
<function>sha512()</function> were added.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-31 [81c5e46c4] Introduce 64-bit hash functions with a 64-bit seed.
|
|
-->
|
|
|
|
<para>
|
|
Add support for 64-bit non-cryptographic hash functions (Robert
|
|
Haas, Amul Sul)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-09 [11b623dd0] Implement TZH and TZM timestamp format patterns
|
|
-->
|
|
|
|
<para>
|
|
Allow <function>to_char()</function> and
|
|
<function>to_timestamp()</function> to specify the time zone's
|
|
offset from <acronym>UTC</acronym> in hours and minutes
|
|
(Nikita Glukhov, Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This is done with format specifications <link
|
|
linkend="functions-formatting-datetime-table"><literal>TZH</literal></link>
|
|
and <literal>TZM</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-05 [1664ae197] Add websearch_to_tsquery
|
|
-->
|
|
|
|
<para>
|
|
Add text search function <link
|
|
linkend="textsearch-functions-table"><function>websearch_to_tsquery()</function></link>
|
|
that supports a query syntax similar to that used by web search
|
|
engines (Victor Drobny, Dmitry Ivanov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-07 [1c1791e00] Add json(b)_to_tsvector function
|
|
-->
|
|
|
|
<para>
|
|
Add functions <link
|
|
linkend="textsearch-functions-table"><function>json(b)_to_tsvector()</function></link>
|
|
to create a text search query for matching
|
|
<type>JSON</type>/<type>JSONB</type> values (Dmitry Dolgov)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server-Side Languages</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-30 [e4128ee76] SQL procedures
|
|
2018-02-22 [76b6aa41f] Support parameters in CALL
|
|
2018-03-14 [33803f67f] Support INOUT arguments in procedures
|
|
2018-04-14 [a8677e3ff] Support named and default arguments in CALL
|
|
2018-08-22 [e0dc839e7] Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax
|
|
2018-08-22 [fd4417e8a] Change PROCEDURE to FUNCTION in CREATE OPERATOR syntax
|
|
-->
|
|
|
|
<para>
|
|
Add SQL-level procedures, which can start and commit their own
|
|
transactions (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
They are created with the new <link
|
|
linkend="sql-createprocedure"><command>CREATE
|
|
PROCEDURE</command></link> command and invoked via <link
|
|
linkend="sql-call"><command>CALL</command></link>.
|
|
</para>
|
|
|
|
<para>
|
|
The new <command>ALTER</command>/<command>DROP ROUTINE</command>
|
|
commands allow altering/dropping of all routine-like objects,
|
|
including procedures, functions, and aggregates.
|
|
</para>
|
|
|
|
<para>
|
|
Also, writing <literal>FUNCTION</literal> is now preferred
|
|
over writing <literal>PROCEDURE</literal> in <command>CREATE
|
|
OPERATOR</command> and <command>CREATE TRIGGER</command>, because the
|
|
referenced object must be a function not a procedure. However, the
|
|
old syntax is still accepted for compatibility.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-22 [8561e4840] Transaction control in PL procedures
|
|
2018-03-28 [d92bc83c4] PL/pgSQL: Nested CALL with transactions
|
|
2018-03-28 [056a5a3f6] Allow committing inside cursor loop
|
|
2018-04-05 [b981275b6] PL/pgSQL: Add support for SET TRANSACTION
|
|
-->
|
|
|
|
<para>
|
|
Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl,
|
|
and <acronym>SPI</acronym> server-side languages (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Transaction control is only available within top-transaction-level
|
|
procedures and nested <command>DO</command> and
|
|
<command>CALL</command> blocks that only contain other
|
|
<command>DO</command> and <command>CALL</command> blocks.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-13 [f9263006d] Support CONSTANT/NOT NULL/initial value for plpgsql comp
|
|
-->
|
|
|
|
<para>
|
|
Add the ability to define PL/pgSQL composite-type variables as not
|
|
null, constant, or with initial values (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-13 [4b93f5799] Make plpgsql use its DTYPE_REC code paths for composite-
|
|
-->
|
|
|
|
<para>
|
|
Allow PL/pgSQL to handle changes to composite types (e.g. record,
|
|
row) that happen between the first and later function executions
|
|
in the same session (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such circumstances generated errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-28 [3f44e3db7] Transforms for jsonb to PL/Python
|
|
-->
|
|
|
|
<para>
|
|
Add extension <filename>jsonb_plpython</filename> to
|
|
transform <type>JSONB</type> to/from PL/Python types (Anthony
|
|
Bykov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-03 [341e16618] Transforms for jsonb to PL/Perl
|
|
-->
|
|
|
|
<para>
|
|
Add extension <filename>jsonb_plperl</filename> to transform
|
|
<type>JSONB</type> to/from PL/Perl types (Anthony Bykov)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Interfaces</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-17 [e3bdb2d92] Set libpq sslcompression to off by default
|
|
-->
|
|
|
|
<para>
|
|
Change libpq to disable compression by default (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Compression is already disabled in modern OpenSSL versions, so that
|
|
the libpq setting had no effect with such libraries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-25 [d22e9d530] Implement <literal>DO CONTINUE</literal> action for <literal>ECPG WHENEVER</literal> statement
|
|
-->
|
|
|
|
<para>
|
|
Add <literal>DO CONTINUE</literal> option
|
|
to <application>ecpg</application>'s <literal>WHENEVER</literal>
|
|
statement (Vinayak Pokale)
|
|
</para>
|
|
|
|
<para>
|
|
This generates a C <command>continue</command> statement, causing a
|
|
return to the top of the contained loop when the specified condition
|
|
occurs.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-14 [3b7ab4380] Add Oracle like handling of char arrays.
|
|
-->
|
|
|
|
<para>
|
|
Add an <application>ecpg</application> mode to enable Oracle
|
|
Pro*C-style handling of char arrays.
|
|
</para>
|
|
|
|
<para>
|
|
This mode is enabled with <option>-C</option>.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Applications</title>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-psql"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-05 [49ca462eb] Add \gdesc psql command.
|
|
-->
|
|
|
|
<para>
|
|
Add <application>psql</application> command <literal>\gdesc</literal>
|
|
to display the names and types of the columns in a query result
|
|
(Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-12 [69835bc89] Add psql variables to track success/failure of SQL queri
|
|
-->
|
|
|
|
<para>
|
|
Add <application>psql</application> variables to report query
|
|
activity and errors (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, the new variables are <literal>ERROR</literal>,
|
|
<literal>SQLSTATE</literal>, <literal>ROW_COUNT</literal>,
|
|
<literal>LAST_ERROR_MESSAGE</literal>, and
|
|
<literal>LAST_ERROR_SQLSTATE</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-21 [d57c7a7c5] Provide a test for variable existence in psql
|
|
-->
|
|
|
|
<para>
|
|
Allow <application>psql</application> to test for the existence
|
|
of a variable (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, the syntax <literal>:{?variable_name}</literal> allows
|
|
a variable's existence to be tested in an <literal>\if</literal>
|
|
statement.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-05 [5e8304fdc] In psql, use PSQL_PAGER in preference to PAGER, if it's
|
|
-->
|
|
|
|
<para>
|
|
Allow environment variable <envar>PSQL_PAGER</envar> to control
|
|
<application>psql</application>'s pager (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>psql</application>'s default pager to
|
|
be specified as a separate environment variable from the pager
|
|
for other applications. <envar>PAGER</envar> is still honored
|
|
if <envar>PSQL_PAGER</envar> is not set.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-23 [05b6ec39d] Show partition info from psql \d+
|
|
-->
|
|
|
|
<para>
|
|
Make psql's <literal>\d+</literal> command always show the table's
|
|
partitioning information (Amit Langote, Ashutosh Bapat)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, partition information would not be displayed for a
|
|
partitioned table if it had no partitions. Also indicate which
|
|
partitions are themselves partitioned.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-29 [15be27460] Avoid misleading psql password prompt when username is m
|
|
-->
|
|
|
|
<para>
|
|
Ensure that <application>psql</application> reports the proper user
|
|
name when prompting for a password (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, combinations of <option>-U</option> and a user name
|
|
embedded in a <acronym>URI</acronym> caused incorrect reporting.
|
|
Also suppress the user name before the password prompt when
|
|
<option>--password</option> is specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-01 [df9f599bc] psql: Add quit/help behavior/hint, for other tool porta
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>quit</command> and <command>exit</command> to
|
|
exit <application>psql</application> when given with no prior input
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Also print hints about how to exit when <command>quit</command> and
|
|
<command>exit</command> are used alone on a line while the input
|
|
buffer is not empty. Add a similar hint for <command>help</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-02-12 [91389228a] psql: give ^D hint for \q in place where \q is ignored
|
|
-->
|
|
|
|
<para>
|
|
Make <application>psql</application> hint at using control-D
|
|
when <command>\q</command> is entered alone on a line but ignored
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
For example, <command>\q</command> does not exit when supplied
|
|
in character strings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-03 [2b8c94e1b] Improve tab-completion for ALTER INDEX RESET/SET.
|
|
-->
|
|
|
|
<para>
|
|
Improve tab completion for <command>ALTER INDEX
|
|
RESET</command>/<command>SET</command> (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-05 [722408bcd] Add infrastructure to support server-version-dependent t
|
|
-->
|
|
|
|
<para>
|
|
Add infrastructure to allow <application>psql</application>
|
|
to adapt its tab completion queries based on the server version
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, tab completion queries could fail against older servers.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><link linkend="pgbench"><application>pgbench</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-09 [bc7fa0c15] Improve scripting language in pgbench
|
|
-->
|
|
|
|
<para>
|
|
Add <application>pgbench</application> expression support for
|
|
NULLs, booleans, and some functions and operators (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-22 [f67b113ac] Add \if support to pgbench
|
|
-->
|
|
|
|
<para>
|
|
Add <literal>\if</literal> conditional support to
|
|
<application>pgbench</application> (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-04 [9d36a3866] Adjust pgbench to allow non-ASCII characters in variable
|
|
-->
|
|
|
|
<para>
|
|
Allow the use of non-<acronym>ASCII</acronym> characters in
|
|
<application>pgbench</application> variable names (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-13 [591c504fa] Allow running just selected steps of pgbench's initializ
|
|
-->
|
|
|
|
<para>
|
|
Add <application>pgbench</application> option
|
|
<option>--init-steps</option> to control the initialization steps
|
|
performed (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-14 [1fcd0adeb] Add approximated Zipfian-distributed random generator to
|
|
-->
|
|
|
|
<para>
|
|
Add an approximately Zipfian-distributed random generator to
|
|
<application>pgbench</application> (Alik Khilazhev)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-26 [64f85894a] Set random seed for pgbench.
|
|
-->
|
|
|
|
<para>
|
|
Allow the random seed to be set in
|
|
<application>pgbench</application> (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-12-27 [7a727c180] Add pow(), aka power(), function to pgbench.
|
|
-->
|
|
|
|
<para>
|
|
Allow <application>pgbench</application> to do exponentiation
|
|
with <function>pow()</function> and <function>power()</function>
|
|
(Raúl Marín Rodríguez)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-21 [e51a04840] Add general purpose hasing functions to pgbench.
|
|
-->
|
|
|
|
<para>
|
|
Add hashing functions to <application>pgbench</application>
|
|
(Ildar Musin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-04 [c23bb6bad] Fix some subtle problems in pgbench transaction stats co
|
|
2017-11-21 [16827d442] pgbench: fix stats reporting when some transactions are
|
|
-->
|
|
|
|
<para>
|
|
Make <application>pgbench</application> statistics more
|
|
accurate when using <option>--latency-limit</option> and
|
|
<option>--rate</option> (Fabien Coelho)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-27 [3709ca1cf] pg_basebackup: Add option to create replication slot
|
|
-->
|
|
|
|
<para>
|
|
Add an option to <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
that creates a named replication slot (Michael Banck)
|
|
</para>
|
|
|
|
<para>
|
|
The option <option>--create-slot</option> creates
|
|
the named replication slot (<option>--slot</option>)
|
|
when the <acronym>WAL</acronym> streaming method
|
|
(<option>--wal-method=stream</option>) is used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-07 [c37b3d08c] Allow group access on PGDATA
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="app-initdb"><application>initdb</application></link>
|
|
to set group read access to the data directory (David Steele)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished with the new initdb option
|
|
<option>--allow-group-access</option>. Administrators
|
|
can also set group permissions on the empty data
|
|
directory before running initdb. Server variable <link
|
|
linkend="guc-data-directory"><varname>data_directory_mode</varname></link>
|
|
allows reading of data directory group permissions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-05 [1fde38bea] Allow on-line enabling and disabling of data checksums
|
|
2018-04-09 [a228cc13a] Revert "Allow on-line enabling and disabling of data che
|
|
-->
|
|
|
|
<para>
|
|
Add <link
|
|
linkend="pgverifychecksums"><application>pg_verify_checksums</application></link>
|
|
tool to verify database checksums while offline (Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-25 [bf4a8676c] pg_resetwal: Allow users to change the WAL segment size
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgresetwal"><application>pg_resetwal</application></link>
|
|
to change the <acronym>WAL</acronym> segment size via
|
|
<option>--wal-segsize</option> (Nathan Bossart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-24 [e22b27f0c] Add long options to pg_resetwal and pg_controldata
|
|
-->
|
|
|
|
<para>
|
|
Add long options to <application>pg_resetwal</application>
|
|
and <application>pg_controldata</application> (Nathan Bossart,
|
|
Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-29 [5f3971291] pg_receivewal: Add - -no-sync option.
|
|
-->
|
|
|
|
<para>
|
|
Add <link
|
|
linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
|
|
option <option>--no-sync</option> to prevent synchronous
|
|
<acronym>WAL</acronym> writes, for testing (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-11 [6d9fa5264] pg_receivewal: Add - -endpos option
|
|
-->
|
|
|
|
<para>
|
|
Add <application>pg_receivewal</application> option
|
|
<option>--endpos</option> to specify when <acronym>WAL</acronym>
|
|
receiving should stop (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-01 [2e83db3ad] Allow pg_ctl kill to send SIGKILL.
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pg-ctl"><application>pg_ctl</application></link>
|
|
to send the <literal>SIGKILL</literal> signal to processes
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This was previously unsupported due to concerns over possible misuse.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-29 [266b6acb3] Make pg_rewind skip files and directories that are remov
|
|
-->
|
|
|
|
<para>
|
|
Reduce the number of files copied by <link
|
|
linkend="app-pgrewind"><application>pg_rewind</application></link>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-09 [5d5aeddab] Make sure pg_rewind can't run as root
|
|
-->
|
|
|
|
<para>
|
|
Prevent <application>pg_rewind</application> from running as
|
|
<literal>root</literal> (Michael Paquier)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="app-pgdump"><application>pg_dump</application></link>,
|
|
<link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
|
|
<link linkend="app-pgrestore"><application>pg_restore</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-01 [84be67181] pg_dumpall: Add a -E flag to set the encoding, like pg_d
|
|
-->
|
|
|
|
<para>
|
|
Add <application>pg_dumpall</application> option
|
|
<option>--encoding</option> to control output encoding
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dump</application> already had this option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-14 [23d7680d0] pg_dump: Add a - -load-via-partition-root option.
|
|
-->
|
|
|
|
<para>
|
|
Add <application>pg_dump</application> option
|
|
<option>--load-via-partition-root</option> to force loading of
|
|
data into the partition's root table, rather than the original
|
|
partition (Rushabh Lathia)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful if the system to be loaded to has different collation
|
|
definitions or endianness, possibly requiring rows to be stored in
|
|
different partitions than previously.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-25 [1368e92e1] Support - -no-comments in pg_dump, pg_dumpall, pg_restore
|
|
-->
|
|
|
|
<para>
|
|
Add an option to suppress dumping and restoring database object
|
|
comments (Robins Tharakan)
|
|
</para>
|
|
|
|
<para>
|
|
The new <application>pg_dump</application>,
|
|
<application>pg_dumpall</application>, and
|
|
<application>pg_restore</application> option is
|
|
<option>--no-comments</option>.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-07-31 [d06eebce5] Provide for contrib and pgxs modules to install include
|
|
2018-09-05 [235526a20] Allow extensions to install built as well as unbuilt hea
|
|
2018-09-07 [094ffd684] Refactor installation of extension headers.
|
|
2018-09-16 [f1ca5a654] Fix out-of-tree build for transform modules.
|
|
-->
|
|
<para>
|
|
Add <application>PGXS</application> support for installing include
|
|
files (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
This supports creating extension modules that depend on other
|
|
modules. Formerly there was no easy way for the dependent module to
|
|
find the referenced one's include files. Several
|
|
existing <filename>contrib</filename> modules that define data types
|
|
have been adjusted to install relevant files. Also, PL/Perl and
|
|
PL/Python now install their include files, to support creation of
|
|
transform modules for those languages.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-05 [1fd869066] Install errcodes.txt for use by extensions.
|
|
-->
|
|
|
|
<para>
|
|
Install <filename>errcodes.txt</filename> to allow extensions to access
|
|
the list of error codes known to <productname>PostgreSQL</productname>
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-06 [1c53f612b] Escape < and & in SGML
|
|
2017-10-17 [c29c57890] Don't use SGML empty tags
|
|
2017-10-20 [1ff01b390] Convert SGML IDs to lower case
|
|
2017-11-23 [3c49c6fac] Convert documentation to DocBook XML
|
|
-->
|
|
|
|
<para>
|
|
Convert documentation to DocBook <acronym>XML</acronym> (Peter
|
|
Eisentraut, Alexander Lakhin, Jürgen Purtz)
|
|
</para>
|
|
|
|
<para>
|
|
The file names still use an <filename>sgml</filename> extension
|
|
for compatibility with back branches.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-22 [9a95a77d9] Use stdbool.h if suitable
|
|
2018-03-23 [7ba7986fb] Fix interaction of Perl and stdbool.h
|
|
2018-05-02 [6fe25c135] Change SIZEOF_BOOL to 1 for Windows.
|
|
-->
|
|
|
|
<para>
|
|
Use <filename>stdbool.h</filename> to define type <type>bool</type>
|
|
on platforms where it's suitable, which is most (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This eliminates a coding hazard for extension modules that need
|
|
to include <filename>stdbool.h</filename>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-03 [a351679c8] Trivial adjustments in preparation for bootstrap data co
|
|
2018-04-08 [372728b0d] Replace our traditional initial-catalog-data format with
|
|
2018-04-17 [e90d4ddc6] Simplify genbki.pl's data quoting rules.
|
|
2018-04-17 [9ffcccdb9] Rationalize handling of array type names in bootstrap da
|
|
2018-04-17 [55d26ff63] Rationalize handling of single and double quotes in boot
|
|
2018-04-18 [5372c2c84] Improve error detection/reporting in Catalog.pm and genb
|
|
2018-04-26 [a0854f107] Avoid parsing catalog data twice during BKI file constru
|
|
2018-05-05 [d160882a1] Fix bootstrap parser so that its keywords are unreserved
|
|
-->
|
|
|
|
<para>
|
|
Overhaul the way that initial system catalog contents are defined
|
|
(John Naylor)
|
|
</para>
|
|
|
|
<para>
|
|
The initial data is now represented in Perl data structures, making
|
|
it much easier to manipulate mechanically.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-21 [846b5a525] Prevent extensions from creating custom GUCs that are GU
|
|
-->
|
|
|
|
<para>
|
|
Prevent extensions from creating custom server parameters that
|
|
take a quoted list of values (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This cannot be supported at present because knowledge of the
|
|
parameter's property would be required even before the extension is
|
|
loaded.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-18 [9288d62bb] Support channel binding 'tls-unique' in SCRAM
|
|
2017-12-19 [4bbf110d2] Add libpq connection parameter "scram_channel_binding"
|
|
2018-01-04 [d3fb72ea6] Implement channel binding tls-server-end-point for SCRAM
|
|
-->
|
|
|
|
<para>
|
|
Add ability to use channel binding when using <link
|
|
linkend="auth-password"><acronym>SCRAM</acronym></link>
|
|
authentication (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Channel binding is intended to prevent man-in-the-middle attacks, but
|
|
<acronym>SCRAM</acronym> cannot prevent them unless it can be forced
|
|
to be active. Unfortunately, there is no way to do that in libpq.
|
|
Support for it is expected in future versions of libpq and in
|
|
interfaces not built using libpq, e.g. JDBC.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-05 [eed1ce72e] Allow background workers to bypass datallowconn
|
|
-->
|
|
|
|
<para>
|
|
Allow background workers to attach to databases that normally
|
|
disallow connections (Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-04 [f044d71e3] Use ARMv8 CRC instructions where available.
|
|
-->
|
|
|
|
<para>
|
|
Add support for hardware <acronym>CRC</acronym> calculations
|
|
on <productname>ARMv8</productname> (Yuqi Gu, Heikki Linnakangas,
|
|
Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-04 [212e6f34d] Replace binary search in fmgr_isbuiltin with a lookup ar
|
|
-->
|
|
|
|
<para>
|
|
Speed up lookups of built-in functions by OID (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The previous binary search has been replaced by a lookup array.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-11 [1de09ad8e] Add more efficient functions to pqformat API.
|
|
-->
|
|
|
|
<para>
|
|
Speed up construction of query results (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-13 [141fd1b66] Improve sys/catcache performance.
|
|
-->
|
|
|
|
<para>
|
|
Improve speed of access to system caches (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-23 [a4ccc1cef] Generational memory allocator
|
|
-->
|
|
|
|
<para>
|
|
Add a generational memory allocator which is optimized for serial
|
|
allocation/deallocation (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces memory usage for logical decoding.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-22 [7c91a0364] Sync up our various ways of estimating pg_class.reltuple
|
|
-->
|
|
|
|
<para>
|
|
Make the computation of
|
|
<structname>pg_class</structname>.<structfield>reltuples</structfield>
|
|
by <command>VACUUM</command> consistent with its computation
|
|
by <command>ANALYZE</command> (Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-25 [46cda5bf7] Change pgindent/README to specify that we use perltidy v
|
|
2018-04-27 [a2ada08d4] perltidy: Don't write backup files
|
|
-->
|
|
|
|
<para>
|
|
Update to use <application>perltidy</application> version
|
|
<literal>20170521</literal> (Tom Lane, Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-21 [79ccd7cbd] pg_prewarm: Add automatic prewarm feature.
|
|
-->
|
|
|
|
<para>
|
|
Allow extension <link
|
|
linkend="pgprewarm"><filename>pg_prewarm</filename></link>
|
|
to restore the previous shared buffer contents on startup (Mithun
|
|
Cy, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished by having <filename>pg_prewarm</filename> store
|
|
the shared buffers' relation and block number data to disk
|
|
occasionally during server operation, and at shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-21 [be8a7a686] Add strict_word_similarity to pg_trgm module
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="pgtrgm"><filename>pg_trgm</filename></link>
|
|
function <function>strict_word_similarity()</function> to compute
|
|
the similarity of whole words (Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
The function <function>word_similarity()</function> already
|
|
existed for this purpose, but it was designed to find similar
|
|
parts of words, while <function>strict_word_similarity()</function>
|
|
computes the similarity to whole words.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-19 [f24649976] Add citext_pattern_ops for citext contrib module
|
|
-->
|
|
|
|
<para>
|
|
Allow creation of indexes that can be used by <literal>LIKE</literal>
|
|
comparisons
|
|
on <link linkend="citext"><filename>citext</filename></link> columns
|
|
(Alexey Chernyshov)
|
|
</para>
|
|
|
|
<para>
|
|
To do this, the index must be created using the
|
|
<literal>citext_pattern_ops</literal> operator class.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-05 [f4cd7102b] Add support of bool, bpchar, name and uuid to btree_gin
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="btree-gin"><filename>btree_gin</filename></link>
|
|
to index <type>bool</type>, <type>bpchar</type>, <type>name</type>
|
|
and <type>uuid</type> data types (Matheus Oliveira)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-20 [de1d042f5] Support index-only scans in contrib/cube and contrib/seg
|
|
-->
|
|
|
|
<para>
|
|
Allow <link linkend="cube"><filename>cube</filename></link>
|
|
and <link linkend="seg"><filename>seg</filename></link>
|
|
extensions to perform index-only scans using GiST indexes
|
|
(Andrey Borodin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-01-11 [f50c80dbb] llow negative coordinate for ~> (cube, int) operator
|
|
-->
|
|
|
|
<para>
|
|
Allow retrieval of negative cube coordinates using
|
|
the <literal>~></literal> operator (Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for KNN-GiST searches when looking for coordinates in
|
|
descending order.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-08-16 [ec0a69e49] Extend the default rules file for contrib/unaccent with
|
|
-->
|
|
|
|
<para>
|
|
Add Vietnamese letter handling to the <link
|
|
linkend="unaccent"><filename>unaccent</filename></link>
|
|
extension (Dang Minh Huong, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-03-31 [7f563c09f] Add amcheck verification of heap relations belonging to
|
|
-->
|
|
|
|
<para>
|
|
Enhance <link
|
|
linkend="amcheck"><filename>amcheck</filename></link>
|
|
to check that each heap tuple has an index entry (Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2018-04-06 [11523e860] Support new default roles with adminpack
|
|
-->
|
|
|
|
<para>
|
|
Have <link
|
|
linkend="adminpack"><filename>adminpack</filename></link>
|
|
use the new default file system access roles (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only superusers could call <filename>adminpack</filename>
|
|
functions; now role permissions are checked.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-10-11 [cff440d36] pg_stat_statements: Widen query IDs from 32 bits to 64 b
|
|
-->
|
|
|
|
<para>
|
|
Widen <structname>pg_stat_statement</structname>'s query ID
|
|
to 64 bits (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This greatly reduces the chance of query ID hash collisions.
|
|
The query ID can now potentially display as a negative value.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-11-17 [527878635] Remove contrib/start-scripts/osx/.
|
|
-->
|
|
|
|
<para>
|
|
Remove the <filename>contrib/start-scripts/osx</filename> scripts
|
|
since they are no longer recommended
|
|
(use <filename>contrib/start-scripts/macos</filename> instead)
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
2017-09-22 [5d3cad564] Remove contrib/chkpass
|
|
-->
|
|
|
|
<para>
|
|
Remove the <filename>chkpass</filename> extension (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This extension is no longer considered to be a usable security tool
|
|
or example of how to write an extension.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Acknowledgments</title>
|
|
|
|
<para>
|
|
The following individuals (in alphabetical order) have contributed to this
|
|
release as patch authors, committers, reviewers, testers, or reporters of
|
|
issues.
|
|
</para>
|
|
|
|
<simplelist>
|
|
<member>Abhijit Menon-Sen</member>
|
|
<member>Adam Bielanski</member>
|
|
<member>Adam Brightwell</member>
|
|
<member>Adam Brusselback</member>
|
|
<member>Aditya Toshniwal</member>
|
|
<member>Adrián Escoms</member>
|
|
<member>Adrien Nayrat</member>
|
|
<member>Akos Vandra</member>
|
|
<member>Aleksander Alekseev</member>
|
|
<member>Aleksandr Parfenov</member>
|
|
<member>Alexander Korotkov</member>
|
|
<member>Alexander Kukushkin</member>
|
|
<member>Alexander Kuzmenkov</member>
|
|
<member>Alexander Lakhin</member>
|
|
<member>Alexandre Garcia</member>
|
|
<member>Alexey Bashtanov</member>
|
|
<member>Alexey Chernyshov</member>
|
|
<member>Alexey Kryuchkov</member>
|
|
<member>Alik Khilazhev</member>
|
|
<member>Álvaro Herrera</member>
|
|
<member>Amit Kapila</member>
|
|
<member>Amit Khandekar</member>
|
|
<member>Amit Langote</member>
|
|
<member>Amul Sul</member>
|
|
<member>Anastasia Lubennikova</member>
|
|
<member>Andreas Joseph Krogh</member>
|
|
<member>Andreas Karlsson</member>
|
|
<member>Andreas Seltenreich</member>
|
|
<member>André Hänsel</member>
|
|
<member>Andrei Gorita</member>
|
|
<member>Andres Freund</member>
|
|
<member>Andrew Dunstan</member>
|
|
<member>Andrew Fletcher</member>
|
|
<member>Andrew Gierth</member>
|
|
<member>Andrew Grossman</member>
|
|
<member>Andrew Krasichkov</member>
|
|
<member>Andrey Borodin</member>
|
|
<member>Andrey Lizenko</member>
|
|
<member>Andy Abelisto</member>
|
|
<member>Anthony Bykov</member>
|
|
<member>Antoine Scemama</member>
|
|
<member>Anton Dignös</member>
|
|
<member>Antonin Houska</member>
|
|
<member>Arseniy Sharoglazov</member>
|
|
<member>Arseny Sher</member>
|
|
<member>Arthur Zakirov</member>
|
|
<member>Ashutosh Bapat</member>
|
|
<member>Ashutosh Sharma</member>
|
|
<member>Ashwin Agrawal</member>
|
|
<member>Asim Praveen</member>
|
|
<member>Atsushi Torikoshi</member>
|
|
<member>Badrul Chowdhury</member>
|
|
<member>Balazs Szilfai</member>
|
|
<member>Basil Bourque</member>
|
|
<member>Beena Emerson</member>
|
|
<member>Ben Chobot</member>
|
|
<member>Benjamin Coutu</member>
|
|
<member>Bernd Helmle</member>
|
|
<member>Blaz Merela</member>
|
|
<member>Brad DeJong</member>
|
|
<member>Brent Dearth</member>
|
|
<member>Brian Cloutier</member>
|
|
<member>Bruce Momjian</member>
|
|
<member>Catalin Iacob</member>
|
|
<member>Chad Trabant</member>
|
|
<member>Chapman Flack</member>
|
|
<member>Christian Duta</member>
|
|
<member>Christian Ullrich</member>
|
|
<member>Christoph Berg</member>
|
|
<member>Christoph Dreis</member>
|
|
<member>Christophe Courtois</member>
|
|
<member>Christopher Jones</member>
|
|
<member>Claudio Freire</member>
|
|
<member>Clayton Salem</member>
|
|
<member>Craig Ringer</member>
|
|
<member>Dagfinn Ilmari Mannsåker</member>
|
|
<member>Dan Vianello</member>
|
|
<member>Dan Watson</member>
|
|
<member>Dang Minh Huong</member>
|
|
<member>Daniel Gustafsson</member>
|
|
<member>Daniel Vérité</member>
|
|
<member>Daniel Westermann</member>
|
|
<member>Daniel Wood</member>
|
|
<member>Darafei Praliaskouski</member>
|
|
<member>Dave Cramer</member>
|
|
<member>Dave Page</member>
|
|
<member>David Binderman</member>
|
|
<member>David Carlier</member>
|
|
<member>David Fetter</member>
|
|
<member>David G. Johnston</member>
|
|
<member>David Gould</member>
|
|
<member>David Hinkle</member>
|
|
<member>David Pereiro Lagares</member>
|
|
<member>David Rader</member>
|
|
<member>David Rowley</member>
|
|
<member>David Steele</member>
|
|
<member>Davy Machado</member>
|
|
<member>Dean Rasheed</member>
|
|
<member>Dian Fay</member>
|
|
<member>Dilip Kumar</member>
|
|
<member>Dmitriy Sarafannikov</member>
|
|
<member>Dmitry Dolgov</member>
|
|
<member>Dmitry Ivanov</member>
|
|
<member>Dmitry Shalashov</member>
|
|
<member>Don Seiler</member>
|
|
<member>Doug Doole</member>
|
|
<member>Doug Rady</member>
|
|
<member>Edmund Horner</member>
|
|
<member>Eiji Seki</member>
|
|
<member>Elvis Pranskevichus</member>
|
|
<member>Emre Hasegeli</member>
|
|
<member>Erik Rijkers</member>
|
|
<member>Erwin Brandstetter</member>
|
|
<member>Etsuro Fujita</member>
|
|
<member>Euler Taveira</member>
|
|
<member>Everaldo Canuto</member>
|
|
<member>Fabien Coelho</member>
|
|
<member>Fabrízio de Royes Mello</member>
|
|
<member>Feike Steenbergen</member>
|
|
<member>Frits Jalvingh</member>
|
|
<member>Fujii Masao</member>
|
|
<member>Gao Zengqi</member>
|
|
<member>Gianni Ciolli</member>
|
|
<member>Greg Stark</member>
|
|
<member>Gunnlaugur Thor Briem</member>
|
|
<member>Guo Xiang Tan</member>
|
|
<member>Hadi Moshayedi</member>
|
|
<member>Hailong Li</member>
|
|
<member>Haribabu Kommi</member>
|
|
<member>Heath Lord</member>
|
|
<member>Heikki Linnakangas</member>
|
|
<member>Hugo Mercier</member>
|
|
<member>Igor Korot</member>
|
|
<member>Igor Neyman</member>
|
|
<member>Ildar Musin</member>
|
|
<member>Ildus Kurbangaliev</member>
|
|
<member>Ioseph Kim</member>
|
|
<member>Jacob Champion</member>
|
|
<member>Jaime Casanova</member>
|
|
<member>Jakob Egger</member>
|
|
<member>Jean-Pierre Pelletier</member>
|
|
<member>Jeevan Chalke</member>
|
|
<member>Jeevan Ladhe</member>
|
|
<member>Jeff Davis</member>
|
|
<member>Jeff Janes</member>
|
|
<member>Jeremy Evans</member>
|
|
<member>Jeremy Finzel</member>
|
|
<member>Jeremy Schneider</member>
|
|
<member>Jesper Pedersen</member>
|
|
<member>Jim Nasby</member>
|
|
<member>Jimmy Yih</member>
|
|
<member>Jing Wang</member>
|
|
<member>Jobin Augustine</member>
|
|
<member>Joe Conway</member>
|
|
<member>John Gorman</member>
|
|
<member>John Naylor</member>
|
|
<member>Jon Nelson</member>
|
|
<member>Jon Wolski</member>
|
|
<member>Jonathan Allen</member>
|
|
<member>Jonathan S. Katz</member>
|
|
<member>Julien Rouhaud</member>
|
|
<member>Jürgen Purtz</member>
|
|
<member>Justin Pryzby</member>
|
|
<member>KaiGai Kohei</member>
|
|
<member>Kaiting Chen</member>
|
|
<member>Karl Lehenbauer</member>
|
|
<member>Keith Fiske</member>
|
|
<member>Kevin Bloch</member>
|
|
<member>Kha Nguyen</member>
|
|
<member>Kim Rose Carlsen</member>
|
|
<member>Konstantin Knizhnik</member>
|
|
<member>Kuntal Ghosh</member>
|
|
<member>Kyle Samson</member>
|
|
<member>Kyotaro Horiguchi</member>
|
|
<member>Lætitia Avrot</member>
|
|
<member>Lars Kanis</member>
|
|
<member>Laurenz Albe</member>
|
|
<member>Leonardo Cecchi</member>
|
|
<member>Liudmila Mantrova</member>
|
|
<member>Lixian Zou</member>
|
|
<member>Lloyd Albin</member>
|
|
<member>Luca Ferrari</member>
|
|
<member>Lucas Fairchild</member>
|
|
<member>Lukas Eder</member>
|
|
<member>Lukas Fittl</member>
|
|
<member>Magnus Hagander</member>
|
|
<member>Mai Peng</member>
|
|
<member>Maksim Milyutin</member>
|
|
<member>Maksym Boguk</member>
|
|
<member>Mansur Galiev</member>
|
|
<member>Marc Dilger</member>
|
|
<member>Marco Nenciarini</member>
|
|
<member>Marina Polyakova</member>
|
|
<member>Mario de Frutos Dieguez</member>
|
|
<member>Mark Cave-Ayland</member>
|
|
<member>Mark Dilger</member>
|
|
<member>Mark Wood</member>
|
|
<member>Marko Tiikkaja</member>
|
|
<member>Markus Winand</member>
|
|
<member>Martín Marqués</member>
|
|
<member>Masahiko Sawada</member>
|
|
<member>Matheus Oliveira</member>
|
|
<member>Matthew Stickney</member>
|
|
<member>Metin Doslu</member>
|
|
<member>Michael Banck</member>
|
|
<member>Michael Meskes</member>
|
|
<member>Michael Paquier</member>
|
|
<member>Michail Nikolaev</member>
|
|
<member>Mike Blackwell</member>
|
|
<member>Minh-Quan Tran</member>
|
|
<member>Mithun Cy</member>
|
|
<member>Morgan Owens</member>
|
|
<member>Nathan Bossart</member>
|
|
<member>Nathan Wagner</member>
|
|
<member>Neil Conway</member>
|
|
<member>Nick Barnes</member>
|
|
<member>Nicolas Thauvin</member>
|
|
<member>Nikhil Sontakke</member>
|
|
<member>Nikita Glukhov</member>
|
|
<member>Nikolay Shaplov</member>
|
|
<member>Noah Misch</member>
|
|
<member>Noriyoshi Shinoda</member>
|
|
<member>Oleg Bartunov</member>
|
|
<member>Oleg Samoilov</member>
|
|
<member>Oliver Ford</member>
|
|
<member>Pan Bian</member>
|
|
<member>Pascal Legrand</member>
|
|
<member>Patrick Hemmer</member>
|
|
<member>Patrick Krecker</member>
|
|
<member>Paul Bonaud</member>
|
|
<member>Paul Guo</member>
|
|
<member>Paul Ramsey</member>
|
|
<member>Pavan Deolasee</member>
|
|
<member>Pavan Maddamsetti</member>
|
|
<member>Pavel Golub</member>
|
|
<member>Pavel Stehule</member>
|
|
<member>Peter Eisentraut</member>
|
|
<member>Peter Geoghegan</member>
|
|
<member>Petr Jelínek</member>
|
|
<member>Petru-Florin Mihancea</member>
|
|
<member>Phil Florent</member>
|
|
<member>Philippe Beaudoin</member>
|
|
<member>Pierre Ducroquet</member>
|
|
<member>Piotr Stefaniak</member>
|
|
<member>Prabhat Sahu</member>
|
|
<member>Pu Qun</member>
|
|
<member>QL Zhuo</member>
|
|
<member>Rafia Sabih</member>
|
|
<member>Rahila Syed</member>
|
|
<member>Rainer Orth</member>
|
|
<member>Rajkumar Raghuwanshi</member>
|
|
<member>Raúl Marín Rodríguez</member>
|
|
<member>Regina Obe</member>
|
|
<member>Richard Yen</member>
|
|
<member>Robert Haas</member>
|
|
<member>Robins Tharakan</member>
|
|
<member>Rod Taylor</member>
|
|
<member>Rushabh Lathia</member>
|
|
<member>Ryan Murphy</member>
|
|
<member>Sahap Asci</member>
|
|
<member>Samuel Horwitz</member>
|
|
<member>Scott Ure</member>
|
|
<member>Sean Johnston</member>
|
|
<member>Shao Bret</member>
|
|
<member>Shay Rojansky</member>
|
|
<member>Shubham Barai</member>
|
|
<member>Simon Riggs</member>
|
|
<member>Simone Gotti</member>
|
|
<member>Sivasubramanian Ramasubramanian</member>
|
|
<member>Stas Kelvich</member>
|
|
<member>Stefan Kaltenbrunner</member>
|
|
<member>Stephen Froehlich</member>
|
|
<member>Stephen Frost</member>
|
|
<member>Steve Singer</member>
|
|
<member>Steven Winfield</member>
|
|
<member>Sven Kunze</member>
|
|
<member>Taiki Kondo</member>
|
|
<member>Takayuki Tsunakawa</member>
|
|
<member>Takeshi Ideriha</member>
|
|
<member>Tatsuo Ishii</member>
|
|
<member>Tatsuro Yamada</member>
|
|
<member>Teodor Sigaev</member>
|
|
<member>Thom Brown</member>
|
|
<member>Thomas Kellerer</member>
|
|
<member>Thomas Munro</member>
|
|
<member>Thomas Reiss</member>
|
|
<member>Tobias Bussmann</member>
|
|
<member>Todd A. Cook</member>
|
|
<member>Tom Kazimiers</member>
|
|
<member>Tom Lane</member>
|
|
<member>Tomas Vondra</member>
|
|
<member>Tomonari Katsumata</member>
|
|
<member>Torsten Grust</member>
|
|
<member>Tushar Ahuja</member>
|
|
<member>Vaishnavi Prabakaran</member>
|
|
<member>Vasundhar Boddapati</member>
|
|
<member>Victor Drobny</member>
|
|
<member>Victor Wagner</member>
|
|
<member>Victor Yegorov</member>
|
|
<member>Vik Fearing</member>
|
|
<member>Vinayak Pokale</member>
|
|
<member>Vincent Lachenal</member>
|
|
<member>Vitaliy Garnashevich</member>
|
|
<member>Vitaly Burovoy</member>
|
|
<member>Vladimir Baranoff</member>
|
|
<member>Xin Zhang</member>
|
|
<member>Yi Wen Wong</member>
|
|
<member>Yorick Peterse</member>
|
|
<member>Yugo Nagata</member>
|
|
<member>Yuqi Gu</member>
|
|
<member>Yura Sokolov</member>
|
|
<member>Yves Goergen</member>
|
|
<member>Zhou Digoal</member>
|
|
</simplelist>
|
|
</sect2>
|
|
|
|
</sect1>
|