3244 lines
86 KiB
Plaintext
3244 lines
86 KiB
Plaintext
<!-- doc/src/sgml/release-12.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-12">
|
|
<title>Release 12</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2019-??-?? AS OF 2019-05-09</para>
|
|
</formalpara>
|
|
|
|
<sect2>
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
Major enhancements in <productname>PostgreSQL</productname> 12 include:
|
|
</para>
|
|
|
|
<!-- Items in this list summarize one or more items below -->
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>big item</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items are explained in more detail in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 12</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 12 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-11-20 [578b22971] Remove WITH OIDS support, change oid catalog column visi
|
|
-->
|
|
|
|
<para>
|
|
Remove the special behavior of <link
|
|
linkend="datatype-oid">OID</link> columns (Andres Freund,
|
|
John Naylor)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a normally-invisible <type>OID</type> column could be
|
|
specified during table creation using <literal>WITH OIDS</literal>;
|
|
that ability has been removed. Columns can still be explicitly
|
|
specified as type <type>OID</type>. Operations on tables that
|
|
have columns named <type>OID</type> (created using <literal>WITH
|
|
OIDS</literal>) will need adjustment. <command>SELECT *</command>
|
|
will now output those columns for the many system tables which
|
|
have them. Previously, the columns had to be selected explicitly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-10-11 [cda6a8d01] Remove deprecated abstime, reltime, tinterval datatypes.
|
|
-->
|
|
|
|
<para>
|
|
Remove data types <type>abstime</type>, <type>reltime</type>,
|
|
and <type>tinterval</type> (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-10-11 [2d10defa7] Remove timetravel extension.
|
|
-->
|
|
|
|
<para>
|
|
Remove the <productname>timetravel</productname> extension
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-25 [2dedf4d9a] Integrate recovery.conf into postgresql.conf
|
|
-->
|
|
|
|
<para>
|
|
Move <filename>recovery.conf</filename> settings into <link
|
|
linkend="runtime-config-wal-archive-recovery"><filename>postgresql.conf</filename></link>
|
|
(Fujii Masao, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)
|
|
</para>
|
|
|
|
<para>
|
|
<filename>recovery.conf</filename> is no longer used,
|
|
and the server will not start if the file exists. <link
|
|
linkend="runtime-config-wal-archive-recovery">recovery.signal</link>
|
|
and standby.signal are now used to switch into non-primary
|
|
mode. <varname>trigger_file</varname> has been renamed
|
|
to <xref linkend="guc-promote-trigger-file"/>. The
|
|
<varname>standby_mode</varname> setting has been removed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-28 [f2cbffc7a] Only allow one recovery target setting
|
|
-->
|
|
|
|
<para>
|
|
Do not allow multiple conflicting <link
|
|
linkend="runtime-config-wal-recovery-target"><varname>recovery_target</varname>*</link>
|
|
specifications (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, only allow one of <xref
|
|
linkend="guc-recovery-target"/>, <xref
|
|
linkend="guc-recovery-target-lsn"/>,
|
|
<xref linkend="guc-recovery-target-name"/>,
|
|
<xref linkend="guc-recovery-target-time"/>, <xref
|
|
linkend="guc-recovery-target-xid"/>. Previously, multiple different
|
|
instances of the variables above could be specified, and the last one
|
|
was honored. Now, only one can be specified, though the same one can
|
|
be specified multiple times and the last specification is honored.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-01-13 [0acb3bc33] Change default of recovery_target_timeline to <literal>latest</literal>
|
|
-->
|
|
|
|
<para>
|
|
Cause recovery to advance to the latest timeline by default
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <xref linkend="guc-recovery-target-time"/> now
|
|
defaults to <literal>latest</literal>. Previously, it defaulted
|
|
to <literal>current</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2018-07-29 [a7dc63d90] Refactor geometric functions and operators
|
|
-->
|
|
|
|
<para>
|
|
Refactor <link linkend="functions-geometry">geometric
|
|
functions</link> and operators (Emre Hasegeli)
|
|
</para>
|
|
|
|
<para>
|
|
This could lead to more accurate, but slightly different, results
|
|
from previous releases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2018-08-16 [c4c340088] Use the built-in float datatypes to implement geometric
|
|
-->
|
|
|
|
<para>
|
|
Restructure <link linkend="datatype-geometric">geometric
|
|
types</link> to handle NaN, underflow, overflow and division by
|
|
zero more consistently (Emre Hasegeli)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2018-09-26 [2e2a392de] Fix problems in handling the line data type
|
|
-->
|
|
|
|
<para>
|
|
Improve behavior and error reporting for the <link
|
|
linkend="datatype-geometric">line data type</link> (Emre Hasegeli)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
|
|
2019-02-13 [02ddd4993] Change floating-point output format for improved perform
|
|
-->
|
|
|
|
<para>
|
|
Improve performance by changing the default number of trailing digits
|
|
output for <link linkend="datatype-float"><type>REAL</type></link>
|
|
and <type>DOUBLE PRECISION</type> values (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, float values were output rounded to 6 or 15 decimals
|
|
by default. Now, only the number of digits required to preserve
|
|
the exact binary value is output. The previous behavior can be
|
|
restored by setting <xref linkend="guc-extra-float-digits"/> to zero.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-04-23 [c06e3550d] Don't request pretty-printed output from xmlNodeDump().
|
|
-->
|
|
|
|
<para>
|
|
Change <link linkend="functions-xml"><acronym>XML</acronym></link>
|
|
functions like <function>xpath()</function> to never pretty-print
|
|
their output (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this happened in some rare cases. ACCURATE? HOW TO
|
|
GET PRETTY PRINT OUTPUT?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-03-13 [6dd263cfa] Rename pg_verify_checksums to pg_checksums
|
|
-->
|
|
|
|
<para>
|
|
Rename command-line tool
|
|
<application>pg_verify_checksums</application> to <xref
|
|
linkend="app-pgchecksums"/> (Michaël Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-04 [413ccaa74] pg_restore: Require -f - to mean stdout
|
|
-->
|
|
|
|
<para>
|
|
Require specification of <xref linkend="app-pgrestore"/>
|
|
<literal>-f -</literal> to send the dump contents to stdout
|
|
(Euler Taveira)
|
|
</para>
|
|
|
|
<para>
|
|
The previous behavior was considered confusing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-14 [eaf746a5b] Make psql's "\pset format" command reject non-unique abb
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-26 [a7eece4fc] Fix breakage of "\pset format latex".
|
|
-->
|
|
|
|
<para>
|
|
Disallow <application>psql</application>'s <command>\pset
|
|
format</command> command from using non-unique abbreviations
|
|
(Daniel Vérité)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <command>\pset format a</command> chose
|
|
<literal>aligned</literal>; it will now error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
This is caused by adding the tid to the btree entry, as listed later.
|
|
-->
|
|
|
|
<para>
|
|
The maximum btree index length is now reduced by eight bytes;
|
|
a <xref linkend="sql-reindex"/> operation could potentially fail.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-19 [586b98fdf] Make type "name" collation-aware.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-04-05 [478cacb50] Ensure consistent name matching behavior in processSQLNa
|
|
-->
|
|
|
|
<para>
|
|
Allow data type <link
|
|
linkend="datatype-character-special-table">name</link> to use
|
|
non-C collations (Tom Lane, Daniel Vérité)
|
|
</para>
|
|
|
|
<para>
|
|
It still uses the "C" collation by default, rather than defaulting
|
|
to the database collation. Regular expression operations on
|
|
data type name columns will now use the "C" collation; you will
|
|
need to override the collation if you want to use locale-specific
|
|
regular expression patterns, e.g., <command>\w</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-21 [bfb456c1b] Improve error reporting for DROP FUNCTION/PROCEDURE/AGGR
|
|
-->
|
|
|
|
<para>
|
|
Cause <link linkend="sql-dropfunction"><command>DROP IF EXISTS
|
|
FUNCTION</command></link>/<literal>PROCEDURE</literal>/<literal>AGGREGATE</literal>/<literal>ROUTINE</literal>
|
|
to generate an error if no arguments are supplied and there are
|
|
multiple matching objects (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
Also improve the error message in such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-01 [96b00c433] Remove obsolete <structname>pg_constraint</structname>.consrc column
|
|
-->
|
|
|
|
<para>
|
|
Remove obsolete <link
|
|
linkend="catalog-pg-constraint"><structname>pg_constraint</structname></link>.<structfield>consrc</structfield>
|
|
column (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-01 [fe5038236] Remove obsolete pg_attrdef.adsrc column
|
|
-->
|
|
|
|
<para>
|
|
Remove obsolete <link
|
|
linkend="catalog-pg-attrdef"><structname>pg_attrdef</structname></link>.<structfield>adsrc</structfield>
|
|
column (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-07-10 [bcbd94080] Remove dynamic_shared_memory_type=none
|
|
-->
|
|
|
|
<para>
|
|
Remove the ability to disable dynamic shared memory (Kyotaro
|
|
Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <xref linkend="guc-dynamic-shared-memory-type"/>
|
|
can no longer be set to <literal>none</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 12 and the previous
|
|
major release.
|
|
</para>
|
|
|
|
<sect3>
|
|
<title>Server</title>
|
|
|
|
<sect4>
|
|
<title><link linkend="ddl-partitioning">Partitioning</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-07 [c6e4133fa] Postpone calculating total_table_pages until after pruni
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-15 [34c9e455d] Improve performance of partition pruning remapping a lit
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2018-11-16 [3f2393ede] Redesign initialization of partition routing structures
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-02-21 [9eefba181] Delay lock acquisition for partitions until we route a t
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-30 [428b260f8] Speed up planning when partitions can be pruned at plan
|
|
-->
|
|
|
|
<para>
|
|
Improve performance of many operations on partitioned tables
|
|
(Amit Langote, David Rowley, Tom Lane, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
Allow tables with thousands of child partitions to be processed
|
|
efficiently by operations that only affect a small number of
|
|
partitions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-03 [f56f8f8da] Support foreign keys that reference partitioned tables
|
|
-->
|
|
|
|
<para>
|
|
Allow <link linkend="ddl-constraints-fk">foreign keys</link>
|
|
to reference partitioned tables (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-08-01 [0d5f05cde] Allow multi-inserts during COPY into a partitioned table
|
|
-->
|
|
|
|
<para>
|
|
Improve speed of <command>COPY</command> into partitioned tables
|
|
(David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-01-25 [7c079d741] Allow generalized expression syntax for partition bounds
|
|
-->
|
|
|
|
<para>
|
|
Allow partitions bounds to be any expression (Kyotaro Horiguchi,
|
|
Tom Lane, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
Expressions are evaluated at partitioned table creation time.
|
|
Previously, only constants were allowed as partitions bounds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2018-12-17 [ca4103025] Fix tablespace handling for partitioned tables
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>CREATE TABLE</command>'s tablespace specification
|
|
for a partitioned table to affect the tablespace of its children
|
|
(David Rowley, Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-04-05 [959d00e9d] Use Append rather than MergeAppend for scanning ordered
|
|
-->
|
|
|
|
<para>
|
|
Avoid sorting when partitions are already being scanned in the
|
|
necessary order (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-03-07 [898e5e329] Allow ATTACH PARTITION with only ShareUpdateExclusiveLoc
|
|
-->
|
|
|
|
<para>
|
|
<link linkend="sql-altertable"><command>ATTACH
|
|
PARTITION</command></link> is now performed with reduced locking
|
|
requirements (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-02-08 [3677a0b26] Add pg_partition_root to display top-most parent of a pa
|
|
-->
|
|
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-partition"><function>pg_partition_root()</function></link>
|
|
to return top-most parent of a partition tree (Michaël Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-04 [b96f6b194] pg_partition_ancestors
|
|
-->
|
|
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-partition"><function>pg_partition_ancestors()</function></link>
|
|
to report all ancestors of a partition (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-30 [d5eec4eef] Add pg_partition_tree to display information about parti
|
|
-->
|
|
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-partition"><function>pg_partition_tree()</function></link>
|
|
to display information about partitions (Amit Langote)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-12-18 [f94cec644] Include partitioned indexes to system view pg_indexes
|
|
-->
|
|
|
|
<para>
|
|
Include partitioned indexes in the system view <link
|
|
linkend="view-pg-indexes"><structname>pg_indexes</structname></link>
|
|
(Suraj Kharage)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-07 [1c5d9270e] psql \dP: list partitioned tables and indexes
|
|
-->
|
|
|
|
<para>
|
|
Add <application>psql</application> command <command>\dP</command>
|
|
to list partitioned tables and indexes (Pavel Stěhule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2018-11-19 [d56e0fde8] psql: Describe partitioned tables/indexes as such
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-26 [1af25ca0c] Improve psql's \d display of foreign key constraints
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-17 [b036982db] psql: display tablespace for partitioned indexes
|
|
-->
|
|
|
|
<para>
|
|
Improve <application>psql</application> <command>\d</command>
|
|
and <command>\z</command> display of partitioned tables (Pavel
|
|
Stěhule, Michaël Paquier, Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-02-11 [1d92a0c9f] Redesign the partition dependency mechanism.
|
|
-->
|
|
|
|
<para>
|
|
Fix bugs that could cause <command>ALTER TABLE DETACH
|
|
PARTITION</command> to not drop objects that should be dropped,
|
|
such as automatically-created child indexes (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2018-07-28 [d2086b08b] Reduce path length for locking leaf B-tree pages during
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2019-03-25 [f21668f32] Add "split after new tuple" nbtree optimization.
|
|
-->
|
|
|
|
<para>
|
|
Improve speed of btree index insertions (Peter Geoghegan,
|
|
Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
The new code improves the space-efficiency of page splits,
|
|
reduces locking overhead, and gives better performance for
|
|
<command>UPDATE</command>s and <command>DELETE</command>s on
|
|
indexes with many duplicates.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2019-03-10 [f2e403803] Support for INCLUDE attributes in GiST indexes
|
|
-->
|
|
|
|
<para>
|
|
Support <link
|
|
linkend="sql-createindex"><literal>INCLUDE</literal></link> columns
|
|
in <link linkend="gist">GiST</link> indexes (Andrey Borodin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2018-09-19 [2a6368343] Add support for nearest-neighbor (KNN) searches to SP-Gi
|
|
-->
|
|
|
|
<para>
|
|
Add support for nearest-neighbor (<acronym>KNN</acronym>) searches
|
|
of <link linkend="spgist">SP-GiST</link> indexes (Nikita Glukhov,
|
|
Alexander Korotkov, Vlad Sterzhanov)
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2019-04-03 [9155580fd] Generate less WAL during GiST, GIN and SP-GiST index bui
|
|
-->
|
|
|
|
<para>
|
|
Reduce the <acronym>WAL</acronym> write overhead
|
|
of <acronym>GiST</acronym>, <acronym>GIN</acronym> and
|
|
<acronym>SP-GiST</acronym> index creation (Anastasia Lubennikova,
|
|
Andrey V. Lepikhov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-03 [80b9e9c46] Improve performance of index-only scans with many index
|
|
-->
|
|
|
|
<para>
|
|
Allow index-only scans to be more efficient on indexes with many
|
|
columns (Konstantin Knizhnik)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2019-03-20 [fab250243] Consider secondary factors during nbtree splits.
|
|
-->
|
|
|
|
<para>
|
|
Have new btree indexes sort duplicate index entries in heap-storage
|
|
order (Peter Geoghegan, Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Indexes <application>pg_upgraded</application> from previous
|
|
releases will not have this ordering.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2019-03-05 [fe280694d] Scan GiST indexes in physical order during VACUUM.
|
|
-->
|
|
|
|
<para>
|
|
Improve the performance of vacuum scans of GiST indexes (Andrey
|
|
Borodin, Konstantin Kuznetsov, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2019-03-22 [7df159a62] Delete empty pages during GiST VACUUM.
|
|
-->
|
|
|
|
<para>
|
|
Delete empty leaf pages during <acronym>GiST</acronym>
|
|
<command>VACUUM</command> (Andrey Borodin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-14 [1b5d797cd] Lower lock level for renaming indexes
|
|
-->
|
|
|
|
<para>
|
|
Reduce locking requirements for index renaming (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Optimizer</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2019-03-27 [7300a6995] Add support for multivariate MCV lists
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2019-03-27 [a63b29a1d] Minor improvements for the multivariate MCV lists
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="sql-createstatistics"/> to create
|
|
most-common-value statistics for multiple columns (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
This improves optimization for columns with non-uniform
|
|
distributions that often appear in <literal>WHERE</literal>
|
|
clauses.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-02-16 [608b167f9] Allow user control of CTE materialization, and change th
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-04-09 [947613127] Prevent inlining of multiply-referenced CTEs with outer
|
|
-->
|
|
|
|
<para>
|
|
Allow <link linkend="queries-with">common table expressions</link>
|
|
(<acronym>CTE</acronym>) to be inlined in later parts of the query
|
|
(Andreas Karlsson, Andrew Gierth, David Fetter, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <acronym>CTE</acronym>s are inlined
|
|
if they are not recursive and are referenced only
|
|
once later in the query. Inlining can be prevented by
|
|
specifying <literal>MATERIALIZED</literal>, and forced by
|
|
specifying <literal>NOT MATERIALIZED</literal>. Previously,
|
|
<acronym>CTE</acronym>s were never inlined and were always
|
|
evaluated before the rest of the query.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-07-16 [f7cb2842b] Add plan_cache_mode setting
|
|
-->
|
|
|
|
<para>
|
|
Allow control over when generic plans are used for prepared
|
|
statements (Pavel Stěhule)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by the <xref linkend="guc-plan-cache_mode"/>
|
|
server variable.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-30 [b5415e3c2] Support parameterized TidPaths.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-30 [0a6ea4001] Add a hash opclass for type "tid".
|
|
-->
|
|
|
|
<para>
|
|
Improve optimization of self-joins (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-13 [04fe805a1] Drop no-op CoerceToDomain nodes from expressions at plan
|
|
-->
|
|
|
|
<para>
|
|
Improve optimizations for <link
|
|
linkend="sql-createdomain">domains</link> that have no check
|
|
constraints (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-30 [6f19a8c41] Teach eval_const_expressions to constant-fold LEAST/GREA
|
|
-->
|
|
|
|
<para>
|
|
Inline calls to <link
|
|
linkend="functions-greatest-least"><literal>LEAST</literal></link>
|
|
and <literal>GREATEST</literal> to improve optimization (Vik
|
|
Fearing)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-02-20 [e04a3905e] Improve planner's understanding of strictness of type co
|
|
-->
|
|
|
|
<para>
|
|
Allow <literal>IS NOT NULL</literal> with mis-matching types to
|
|
use partial indexes more frequently (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-01 [65ce07e02] Teach optimizer's predtest.c more things about ScalarArr
|
|
-->
|
|
|
|
<para>
|
|
Allow IN comparisons with arrays to use <literal>IS NOT
|
|
NULL</literal> partial indexes more frequently (James Coleman)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-14 [5e0928005] Make pg_statistic and related code account more honestly
|
|
-->
|
|
|
|
<para>
|
|
Store statistics using the collation defined for each column
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the default collation was used for all statistics
|
|
storage. This potentially gives better optimizer behavior for
|
|
columns with non-default collations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-25 [f7111f72d] Improve planner's selectivity estimates for inequalities
|
|
-->
|
|
|
|
<para>
|
|
Improve optimizer estimates for <link
|
|
linkend="datatype-oid"><type>tid</type></link> inequality
|
|
comparisons (Edmund Horner)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-07-11 [39a96512b] Mark built-in btree comparison functions as leakproof wh
|
|
-->
|
|
|
|
<para>
|
|
Fix the btree leakproof designation of some functions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This allows for more complex optimizations.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
2018-09-21 [1f7fc7670] doc: JIT is enabled by default in PG 12
|
|
-->
|
|
|
|
<para>
|
|
Enable <link linkend="jit">Just-in-Time</link>
|
|
(<acronym>JIT</acronym>) compilation by default (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2019-01-29 [36a1281f8] Separate per-batch and per-tuple memory contexts in COPY
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-01-26 [a9c35cf85] Change function call information to be variable length.
|
|
-->
|
|
|
|
<para>
|
|
Greatly reduce memory consumption of <xref linkend="sql-copy"/>
|
|
and function calls (Andres Freund, Tomas Vondra, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-01-06 [afb0d0712] Replace the data structure used for keyword lookup.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-01-09 [c64d0cd5c] Use perfect hashing, instead of binary search, for keywo
|
|
-->
|
|
|
|
<para>
|
|
Speed up keyword lookup (John Naylor, Joerg Sonnenberger, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2019-01-25 [9556aa01c] Use single-byte Boyer-Moore-Horspool search even with mu
|
|
-->
|
|
|
|
<para>
|
|
Improve search performance for multi-byte characters (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
2019-04-02 [4d0e994ee] Add support for partial TOAST decompression
|
|
-->
|
|
|
|
<para>
|
|
Allow <link linkend="storage-toast"><literal>TOAST</literal></link>
|
|
values to be minimally decompressed (Paul Ramsey)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for routines that only look at values at the start
|
|
of the <literal>TOAST</literal> field.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-03-13 [bbb96c370] Allow ALTER TABLE .. SET NOT NULL to skip provably unnec
|
|
-->
|
|
|
|
<para>
|
|
Allow <link linkend="sql-altertable"><command>ALTER TABLE .. SET
|
|
NOT NULL</command></link> to avoid unnecessary checking (Sergei
|
|
Kornilov)
|
|
</para>
|
|
|
|
<para>
|
|
This can happen if column constraints already prevent nulls.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
2019-03-08 [3c5926301] Avoid some table rewrites for ALTER TABLE .. SET DATA TY
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>ALTER TABLE .. SET DATA TYPE</command>
|
|
<type>timestamp/timestamptz</type> to avoid a table rewrite when
|
|
the session time zone is <acronym>UTC</acronym> (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
In the <acronym>UTC</acronym> time zone, the data types are
|
|
binary compatible.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-07-22 [86eaf208e] Hand code string to integer conversion for performance.
|
|
-->
|
|
|
|
<para>
|
|
Improve speed in converting strings to
|
|
<type>int2</type>/<type>int4</type> integers (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2019-03-15 [bb16aba50] Enable parallel query with SERIALIZABLE isolation.
|
|
-->
|
|
|
|
<para>
|
|
Allow parallelized queries when in <link
|
|
linkend="sql-set-transaction"><literal>SERIALIZABLE</literal></link>
|
|
isolation mode (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, parallelism was disabled when in this mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-11-07 [3fd2a7932] Provide pg_pread() and pg_pwrite() for random I/O.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-11-07 [c24dcd0cf] Use pg_pread() and pg_pwrite() for data files and WAL.
|
|
-->
|
|
|
|
<para>
|
|
Use <function>pread()</function> and <function>pwrite()</function>
|
|
for random I/O (Oskari Saarenmaa, Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the number of system calls required.
|
|
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-07-24 [1bc180cd2] Use setproctitle_fast() to update the ps status, if avai
|
|
-->
|
|
|
|
<para>
|
|
Improve the speed of setting the <link
|
|
linkend="guc-update-process-title">process title</link> on
|
|
<systemitem class="osname">FreeBSD</systemitem> (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2018-11-29 [88bdbd3f7] Add log_statement_sample_rate parameter
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-03 [799e22034] Log all statements from a sample of transactions
|
|
-->
|
|
|
|
<para>
|
|
Allow logging of only a percentage of statements and transactions
|
|
meeting <xref linkend="guc-log-min-duration-statement"/> criteria
|
|
(Adrien Nayrat)
|
|
</para>
|
|
|
|
<para>
|
|
The parameters <xref linkend="guc-log-statement-sample-rate"/>
|
|
and <xref linkend="guc-log-transaction-sample-rate"/> control this.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-02 [ab0dfc961] Report progress of CREATE INDEX operations
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-04-07 [03f9e5cba] Report progress of REINDEX operations
|
|
-->
|
|
|
|
<para>
|
|
Report progress of <command>CREATE INDEX</command> and
|
|
<command>REINDEX</command> operations (Álvaro Herrera, Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Progress is reported in the <link
|
|
linkend="progress-reporting"><structname>pg_stat_progress_create_index</structname></link>
|
|
system view
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-03-25 [6f97457e0] Add progress reporting for CLUSTER and VACUUM FULL.
|
|
-->
|
|
|
|
<para>
|
|
Add progress reporting to <command>CLUSTER</command> and
|
|
<command>VACUUM FULL</command> (Tatsuro Yamada)
|
|
</para>
|
|
|
|
<para>
|
|
Progress is reported in the <link
|
|
linkend="vacuum-progress-reporting"><structname>pg_stat_progress_cluster</structname></link>
|
|
system view.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-04-02 [280e5f140] Add progress reporting to pg_checksums
|
|
-->
|
|
|
|
<para>
|
|
Add progress reporting to <xref linkend="app-pgchecksums"/>
|
|
(Michael Banck, Bernd Helmle)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with the option <option>--progress</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
2019-03-09 [6b9e875f7] Track block level checksum failures in pg_stat_database
|
|
-->
|
|
|
|
<para>
|
|
Add counter of checksum failures to
|
|
<structname>pg_stat_database</structname> (Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
2019-04-12 [77bd49adb] Show shared object statistics in pg_stat_database
|
|
-->
|
|
|
|
<para>
|
|
Add tracking of global objects in system view
|
|
<structname>pg_stat_database</structname> (Julien Rouhaud)
|
|
</para>
|
|
|
|
<para>
|
|
Global objects have a <link
|
|
linkend="pg-stat-database-view"><structname>pg_stat_database</structname></link>.<structfield>datoid</structfield>
|
|
value of zero.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-09 [c48101620] Add pg_ls_archive_statusdir function
|
|
-->
|
|
|
|
<para>
|
|
Add the ability to list the contents of the archive directory
|
|
(Christoph Moench-Tegeder)
|
|
</para>
|
|
|
|
<para>
|
|
The function is <link
|
|
linkend="functions-admin-genfile-table"><function>pg_ls_archive_statusdir()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-05 [9cd92d1a3] Add pg_ls_tmpdir function
|
|
-->
|
|
|
|
<para>
|
|
Add the ability to list the contents of temporary directories
|
|
(Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The function, <link
|
|
linkend="functions-admin-genfile-table"><function>pg_ls_tmpdir()</function></link>,
|
|
optionally allows specification of a tablespace.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-02-01 [f60a0e967] Add more columns to pg_stat_ssl
|
|
-->
|
|
|
|
<para>
|
|
Add information about the client certificate to the system view
|
|
<structname>pg_stat_ssl</structname> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are <structfield>client_serial</structfield>
|
|
and <structfield>issuer_dn</structfield>. Column
|
|
<structfield>clientdn</structfield> has been renamed to
|
|
<structfield>client_dn</structfield>, for clarity.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-02-21 [f9692a769] Hide other user's pg_stat_ssl rows
|
|
-->
|
|
|
|
<para>
|
|
Restrict visibility of rows in <link
|
|
linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</structname></link>
|
|
by unprivileged users (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-01-30 [689d15e95] Log PostgreSQL version number on startup
|
|
-->
|
|
|
|
<para>
|
|
Add the version number to the server startup log message
|
|
(Christoph Berg)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2019-03-06 [342cb650e] Don't log incomplete startup packet if it's empty
|
|
-->
|
|
|
|
<para>
|
|
Prevent logging of empty "incomplete" startup packets (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
2018-09-28 [8bddc8640] Add application_name to connection authorized msg
|
|
-->
|
|
|
|
<para>
|
|
Unconditionally include <xref linkend="guc-application-name"/>
|
|
in server log authentication messages (Don Seiler)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-02-27 [6ae578a91] Set fallback_application_name for a walreceiver to clust
|
|
-->
|
|
|
|
<para>
|
|
Have the walreceiver set its application name to the cluster name,
|
|
if set (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-12-09 [7fee252f6] Add timestamp of last received message from standby to p
|
|
-->
|
|
|
|
<para>
|
|
Add the timestamp of the last received standby message to <link
|
|
linkend="pg-stat-replication-view"><structname>pg_stat_replication</structname></link>
|
|
(Lim MyungKyu)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-07-02 [c55de5e51] Add wait event for fsync of WAL segments
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="wait-event-table">wait event</link> for fsync
|
|
of <acronym>WAL</acronym> segments (Konstantin Knizhnik)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect5>
|
|
<title><link linkend="infoschema-tables">Information Schema</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-20 [7c15cef86] Base information_schema.sql_identifier domain on name, n
|
|
-->
|
|
|
|
<para>
|
|
Allow more use of indexes for text comparisons with
|
|
<structname>information_schema</structname> columns (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-18 [6b0faf723] Make collation-aware system catalog columns use "C" coll
|
|
-->
|
|
|
|
<para>
|
|
Use "C" collation for <structname>information_schema</structname>
|
|
and the system tables (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This will produce more consistent behavior in databases with
|
|
different collations, but will also cause these tables to produce
|
|
results in "C" collation ordering, rather than the default
|
|
collation for the database.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-20 [5bbee34d9] Avoid producing over-length specific_name outputs in inf
|
|
-->
|
|
|
|
<para>
|
|
Force <structname>information_schema</structname> outputs to honor
|
|
the system-defined maximum 63-byte identifier length (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect5>
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><acronym>Authentication</acronym></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
2019-04-03 [b0b39f72b] GSSAPI encryption support
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="gssapi-auth"><acronym>GSSAPI</acronym></link>
|
|
client and server-side encryption support (Robbie Harwood,
|
|
Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Add <link
|
|
linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
|
|
<link
|
|
linkend="auth-pg-hba-conf"><literal>hostgssenc</literal></link>
|
|
and <literal>hostnogssenc</literal> record types. This would
|
|
typically use the <literal>gss</literal> authentication method.
|
|
This also adds a libpq <xref linkend="libpq-connect-gssencmode"/>
|
|
option, and a <xref linkend="pg-stat-gssapi-view"/> system view.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
2019-03-09 [0516c61b7] Add new clientcert hba option verify-full
|
|
-->
|
|
|
|
<para>
|
|
Allow the <link
|
|
linkend="auth-cert"><literal>clientcert</literal></link>
|
|
<filename>pg_hba.conf</filename> option to check that the database
|
|
user name matches the certificate common name (Julian Markwort,
|
|
Marius Timmer)
|
|
</para>
|
|
|
|
<para>
|
|
The new check is enabled with
|
|
<literal>clientcert=verify-full</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2019-03-21 [0f086f84a] Add DNS SRV support for LDAP server discovery.
|
|
-->
|
|
|
|
<para>
|
|
Allow discovery of the <link
|
|
linkend="auth-ldap"><acronym>LDAP</acronym></link> server using
|
|
<acronym>DNS SRV</acronym> records (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids the requirement of specifying
|
|
<literal>ldapserver</literal>, and is only supported if
|
|
<productname>PostgreSQL</productname> is compiled with
|
|
<productname>OpenLDAP</productname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-08-10 [f841ceb26] Improve TRUNCATE by avoiding early lock queue
|
|
-->
|
|
|
|
<para>
|
|
Prevent <xref linkend="sql-truncate"/> from requesting a lock on
|
|
tables for which the user lacks permission (Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents unauthorized locking delays.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-08-27 [a556549d7] Improve VACUUM and ANALYZE by avoiding early lock queue
|
|
-->
|
|
|
|
<para>
|
|
Prevent <command>VACUUM</command> and <command>ANALYZE</command>
|
|
from requesting a lock on tables for which it lacks permission
|
|
(Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents unauthorized locking delays.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Server Configuration</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-03-23 [ed308d783] Add options to enable and disable checksums in pg_checks
|
|
-->
|
|
|
|
<para>
|
|
Add ability to enable/disable cluster checksums using <xref
|
|
linkend="app-pgchecksums"/> (Michael Banck, Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
The cluster must be offline for these operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-10 [cbccac371] Reduce the default value of autovacuum_vacuum_cost_delay
|
|
-->
|
|
|
|
<para>
|
|
Reduce the default value of <xref
|
|
linkend="guc-autovacuum-vacuum-cost-delay"/> to 2ms (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="guc-vacuum-cost-delay"/> to specify
|
|
sub-millisecond delays (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Floating-point values can also now be specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
|
|
-->
|
|
|
|
<para>
|
|
Allow time-based server variables to use <link
|
|
linkend="config-setting">micro-seconds</link> (us) (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-11 [1a83a80a2] Allow fractional input values for integer GUCs, and impr
|
|
-->
|
|
|
|
<para>
|
|
Allow fractional input for integer server variables (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
For example, <command>SET work_mem = '30.1GB'</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
|
|
-->
|
|
|
|
<para>
|
|
Allow units to be specified for floating-point server variables
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2019-04-02 [475861b26] Add wal_recycle and wal_init_zero GUCs.
|
|
-->
|
|
|
|
<para>
|
|
Add <xref linkend="guc-wal-recycle"/> and <xref
|
|
linkend="guc-wal-init-zero"/> server variables to avoid
|
|
<acronym>WAL</acronym> file recycling (Jerry Jelinek)
|
|
</para>
|
|
|
|
<para>
|
|
This can be beneficial on copy-on-write file systems like
|
|
<productname>ZFS</productname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-04-06 [249d64999] Add support TCP user timeout in libpq and the backend se
|
|
-->
|
|
|
|
<para>
|
|
Add parameter to control the server <acronym>TCP</acronym> timeout
|
|
(Ryohei Nagaura)
|
|
</para>
|
|
|
|
<para>
|
|
The parameter is <xref linkend="guc-tcp-user-timeout"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-20 [e73e67c71] Add settings to control SSL/TLS protocol version
|
|
-->
|
|
|
|
<para>
|
|
Allow control of the minimum and maximum <acronym>SSL</acronym>>
|
|
protocol versions (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The server settings are <xref
|
|
linkend="guc-ssl-min-protocol-version"/> and <xref
|
|
linkend="guc-ssl-max-protocol-version"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-07-30 [98efa76fe] Add ssl_library preset parameter
|
|
-->
|
|
|
|
<para>
|
|
Add server variable <xref linkend="guc-ssl-library"/> to report
|
|
the <acronym>SSL</acronym> library version used by the server
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2019-02-03 [f1bebef60] Add shared_memory_type GUC.
|
|
-->
|
|
|
|
<para>
|
|
Add server variable to control the type of shared memory to use
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The variable is <xref linkend="guc-shared-memory-type"/>.
|
|
Its purpose is to allow selection of <productname>System
|
|
V</productname> shared memory, if desired.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Streaming Replication and Recovery</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-02-07 [13b89f96d] Allow some recovery parameters to be changed with reload
|
|
-->
|
|
|
|
<para>
|
|
Allow some recovery parameters to be changed with reload (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
These parameters are <xref linkend="guc-archive-cleanup-command"/>,
|
|
<xref linkend="guc-promote-trigger-file"/>, <xref
|
|
linkend="guc-recovery-end-command"/>, and <xref
|
|
linkend="guc-recovery-min-apply-delay"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-09-22 [db361db2f] Make GUC wal_sender_timeout user-settable
|
|
-->
|
|
|
|
<para>
|
|
Allow the streaming replication timeout (<xref
|
|
linkend="guc-wal-sender-timeout"/>) to be set per connection
|
|
(Tsunakawa Takayuki)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this could only be set cluster-wide.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-25 [10074651e] Add pg_promote function
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-11-06 [8f045e242] Switch pg_promote to be parallel-safe
|
|
-->
|
|
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-recovery-control"><function>pg_promote()</function></link>
|
|
to promote standbys to primaries (Laurenz Albe, Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this operation was only possible by using <xref
|
|
linkend="app-pg-ctl"/> or creating a trigger file.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-04-05 [9f06d79ef] Add facility to copy replication slots
|
|
-->
|
|
|
|
<para>
|
|
Allow replication slots to be copied (Masahiko Sawada)
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="functions-replication-table"><function>pg_copy_physical_replication_slot()</function></link>
|
|
and <function>pg_copy_logical_replication_slot()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-02-12 [ea92368cd] Move max_wal_senders out of max_connections for connecti
|
|
-->
|
|
|
|
<para>
|
|
Have <xref linkend="guc-max-wal-senders"/> not count as part of
|
|
<xref linkend="guc-max-connections"/> (Alexander Kukushkin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-01-11 [ff8530605] Add value 'current' for recovery_target_timeline
|
|
-->
|
|
|
|
<para>
|
|
Add an explicit value of <literal>current</literal> for <xref
|
|
linkend="guc-recovery-target-time"/> (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-09-07 [8582b4d04] Improve handling of corrupted two-phase state files at r
|
|
-->
|
|
|
|
<para>
|
|
Have recovery fail if a <link
|
|
linkend="sql-prepare-transaction">two-phase transaction</link>
|
|
status file is corrupt (Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only a warning was issued in the logs and recovery
|
|
continued.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-29 [5dc92b844] REINDEX CONCURRENTLY
|
|
-->
|
|
|
|
<para>
|
|
Add <xref linkend="sql-reindex"/> <literal>CONCURRENTLY</literal>
|
|
to allow reindexing concurrently (Michaël Paquier, Andreas
|
|
Karlsson, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This is also controlled by the <xref linkend="app-reindexdb"/>
|
|
<option>--concurrently</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-30 [fc22b6623] Generated columns
|
|
-->
|
|
|
|
<para>
|
|
Add support for <link linkend="sql-createtable">generated
|
|
columns</link> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The content of generated columns are computed from expressions
|
|
(including references to other columns in the same table)
|
|
rather than being specified by <command>INSERT</command> or
|
|
<command>UPDATE</command> commands.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2019-01-20 [31f381740] Allow COPY FROM to filter data using WHERE conditions
|
|
-->
|
|
|
|
<para>
|
|
Add a <literal>WHERE</literal> clause to <command>COPY
|
|
FROM</command> which controls which rows are output (Surafel
|
|
Temesgen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-10-09 [212fab992] Relax transactional restrictions on ALTER TYPE ... ADD V
|
|
-->
|
|
|
|
<para>
|
|
Allow enumerated values to be added in more transaction types
|
|
(Andrew Dunstan, Tom Lane, Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <link linkend="sql-altertype"><command>ALTER
|
|
TYPE ... ADD VALUE</command></link> could only be called in
|
|
a transaction that created the enumerated type. Now, the only
|
|
restriction is that the new enumerated value cannot be referenced
|
|
until the transaction commits.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-24 [280a408b4] Transaction chaining
|
|
-->
|
|
|
|
<para>
|
|
Add command to end a transaction and start a new one (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The commands are <link linkend="sql-commit"><command>COMMIT AND
|
|
CHAIN</command></link> and <command>ROLLBACK AND CHAIN</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-22 [5e1963fb7] Collations with nondeterministic comparison
|
|
-->
|
|
|
|
<para>
|
|
Allow the creation of <link
|
|
linkend="sql-createcollation">collations</link> that report
|
|
string equality for strings that are not byte-wise equal (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This allows case and accent-agnostic equality comparisons using
|
|
"nondeterministic" collations. This is only supported for
|
|
<acronym>ICU</acronym> collations. MENTION ITS AFFECT ON ORDERING?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2019-04-08 [119dcfad9] Add vacuum_truncate reloption.
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2019-05-08 [b84dbc8eb] Add TRUNCATE parameter to VACUUM.
|
|
-->
|
|
|
|
<para>
|
|
Add <xref linkend="sql-vacuum"/> and <command>CREATE
|
|
TABLE</command> options to prevent <command>VACUUM</command>
|
|
from truncating trailing empty pages (Tsunakawa Takayuki)
|
|
</para>
|
|
|
|
<para>
|
|
The options are <varname>vacuum_truncate</varname> and
|
|
<varname>toast.vacuum_truncate</varname>. This reduces vacuum
|
|
locking requirements.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-04-04 [a96c41fee] Allow VACUUM to be run with index cleanup disabled.
|
|
-->
|
|
|
|
<para>
|
|
Allow vacuum to avoid index cleanup with the
|
|
<literal>INDEX_CLEANUP</literal> option (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-04 [803b1301e] Add option SKIP_LOCKED to VACUUM and ANALYZE
|
|
-->
|
|
|
|
<para>
|
|
Add the ability to skip <command>VACUUM</command> and
|
|
<command>ANALYZE</command> operations on tables that cannot be
|
|
immediately locked (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
This option is called <literal>SKIP_LOCKED</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-03-29 [41b54ba78] Allow existing VACUUM options to take a Boolean argument
|
|
-->
|
|
|
|
<para>
|
|
Allow <command>VACUUM</command> and <command>ANALYZE</command>
|
|
to take optional boolean argument specifications (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2019-04-04 [ea569d64a] Add SETTINGS option to EXPLAIN, to print modified settin
|
|
-->
|
|
|
|
<para>
|
|
Add <xref linkend="sql-explain"/> option
|
|
<literal>SETTINGS</literal> to output non-default optimizer
|
|
settings (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
This can also be output in auto-explain via <xref
|
|
linkend="auto-explain"/>.<literal>log_settings</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
|
|
2019-03-19 [01bde4fa4] Implement OR REPLACE option for CREATE AGGREGATE.
|
|
-->
|
|
|
|
<para>
|
|
Allow aggregates to be replaced (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
The command is <link linkend="sql-createaggregate"><command>CREATE
|
|
OR REPLACE AGGREGATE</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-19 [590a87025] Ignore attempts to add TOAST table to shared or catalog
|
|
-->
|
|
|
|
<para>
|
|
Allow modifications of system table options using <xref
|
|
linkend="sql-altertable"/> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This allows modifications of <literal>reloptions</literal> and
|
|
autovacuum settings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-01-30 [5f5c01459] Allow RECORD and RECORD[] to be specified in function co
|
|
-->
|
|
|
|
<para>
|
|
Allow <type>RECORD</type> and <type>RECORD[]</type> to be used
|
|
as column types in a query's column definition list for a <link
|
|
linkend="sql-createfunction">table function</link> that is declared
|
|
to return <type>RECORD</type> (Elvis Pranskevichus)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-13 [f177660ab] Include all columns in default names for foreign key con
|
|
-->
|
|
|
|
<para>
|
|
Use all column names when creating default foreign key constraint
|
|
names (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only the first column name was used.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-24 [fd582317e] Sync our Snowball stemmer dictionaries with current upst
|
|
-->
|
|
|
|
<para>
|
|
Update Snowball stemmer dictionaries with support for new languages
|
|
(Arthur Zakirov)
|
|
</para>
|
|
|
|
<para>
|
|
This adds additional stemming languages to <link
|
|
linkend="textsearch">full text search</link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-17 [b8f9a2a69] Add support for collation attributes on older ICU versio
|
|
-->
|
|
|
|
<para>
|
|
Add support for <acronym>ICU</acronym> collation customization
|
|
attributes (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This allow modification of the collation rules. DETAILS?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-19 [2ece7c07d] Add text-vs-name cross-type operators, and unify name_op
|
|
-->
|
|
|
|
<para>
|
|
Allow data type <link linkend="datatype-oid">name</link> to more
|
|
seamlessly be compared to other text types (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2019-03-16 [72b646033] Partial implementation of SQL/JSON path language
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2019-03-16 [16d489b0f] Numeric error suppression in jsonpath
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2019-04-01 [0a02e2ae0] GIN support for @@ and @? jsonpath operators
|
|
-->
|
|
|
|
<para>
|
|
Add support for the <acronym>SQL/JSON</acronym> <link
|
|
linkend="functions-json-processing-table">path</link> language
|
|
(Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov,
|
|
Liudmila Mantrova)
|
|
</para>
|
|
|
|
<para>
|
|
This allows execution of complex queries on <type>JSON</type>
|
|
values using an <acronym>SQL</acronym>-standard language.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-03-12 [f1d85aa98] Add support for hyperbolic functions, as well as log10()
|
|
-->
|
|
|
|
<para>
|
|
Add support for <link linkend="functions-math-hyp-table">hyperbolic
|
|
functions</link> (Lætitia Avrot)
|
|
</para>
|
|
|
|
<para>
|
|
Also add <function>log10()</function> as alias for
|
|
<function>log()</function>, for standards compliance.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2018-10-06 [e954a727f] Improve the accuracy of floating point statistical aggre
|
|
-->
|
|
<para>
|
|
Improve the accuracy of statistical aggregates like <link
|
|
linkend="functions-aggregate-statistics-table"><function>variance()</function></link>
|
|
by using more precise algorithms (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-14 [600b04d6b] Add a timezone-specific variant of date_trunc().
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-datetime-table"><function>date_trunc()</function></link>
|
|
to have an additional argument to control the time zone (Vik
|
|
Fearing, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is faster and simpler than using the <literal>AT TIME
|
|
ZONE</literal> clause.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2018-09-09 [cf9846724] Improve behavior of to_timestamp()/to_date() functions
|
|
-->
|
|
|
|
<para>
|
|
Adjust <link
|
|
linkend="functions-formatting-table"><function>to_timestamp()</function></link>/<function>to_date()</function>
|
|
functions to be more forgiving of template mismatches (Artur
|
|
Zakirov, Alexander Korotkov, Liudmila Mantrova)
|
|
</para>
|
|
|
|
<para>
|
|
This new behavior more closely matches the
|
|
<productname>Oracle</productname> functions of the same name.
|
|
DETAILS?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-07 [251cf2e27] Fix minor deficiencies in XMLTABLE, xpath(), xmlexists()
|
|
-->
|
|
|
|
<para>
|
|
Improve node detection and escaping of <link
|
|
linkend="functions-xml"><acronym>XML</acronym> functions</link>
|
|
(Pavel Stěhule, Markus Winand, Chapman Flack)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, in <literal>XMLTABLE</literal>,
|
|
<function>xpath()</function>, and <function>xmlexists()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-07 [eaaa5986a] Fix the BY {REF,VALUE} clause of XMLEXISTS/XMLTABLE
|
|
-->
|
|
|
|
<para>
|
|
Allow the <literal>XML BY VALUE</literal> clause (Chapman Flack)
|
|
</para>
|
|
|
|
<para>
|
|
The clause has no effect.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-03-27 [5bde1651b] Switch function current_schema[s]() to be parallel-unsaf
|
|
-->
|
|
|
|
<para>
|
|
Prevent <link
|
|
linkend="functions-info-session-table"><function>current_schema()</function></link>
|
|
and <function>current_schemas()</function> from being run by
|
|
parallel workers (Michaël Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title><link linkend="plpgsql">PL/pgSQL</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-01-04 [4879a5172] Support plpgsql variable names that conflict with unrese
|
|
-->
|
|
|
|
<para>
|
|
Allow commands and variables with the same name as commands to
|
|
be used in the same PL/pgSQL function (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
For example, allow a variable called comment to exist in the same
|
|
function that calls the comment <acronym>SQL</acronym> command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2018-07-25 [167075be3] Add strict_multi_assignment and too_many_rows plpgsql ch
|
|
-->
|
|
|
|
<para>
|
|
Add new optional warning and error checks to PL/pgSQL (Pavel
|
|
Stěhule)
|
|
</para>
|
|
|
|
<para>
|
|
The new checks allow for run-time validation of
|
|
<literal>INTO</literal> column counts and single-row results.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Interfaces</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
2019-02-18 [050710b36] Add bytea datatype to ECPG.
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="app-ecpg"/> to create variables of data type
|
|
bytea (Ryo Matsumura)
|
|
</para>
|
|
|
|
<para>
|
|
This allows to interaction with <type>bytea</type> data directly,
|
|
rather than using a binary encoding.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
2019-02-16 [bd7c95f0c] Add DECLARE STATEMENT support to ECPG.
|
|
-->
|
|
|
|
<para>
|
|
Add <command>DECLARE STATEMENT</command> support to
|
|
<productname>ECPG</productname> (Takeshi Ideriha, Hayato Kuroda)
|
|
</para>
|
|
|
|
<para>
|
|
This allows statements to be associated with named connections,
|
|
so future operations like cursors don't need to re-reference the
|
|
connection name.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-04-06 [249d64999] Add support TCP user timeout in libpq and the backend se
|
|
-->
|
|
|
|
<para>
|
|
Add parameter to control libpq's <acronym>TCP</acronym> timeout
|
|
(Ryohei Nagaura)
|
|
</para>
|
|
|
|
<para>
|
|
The parameter is <xref linkend="libpq-tcp-user-timeout"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-04-04 [7bac3acab] Add a "SQLSTATE-only" error verbosity option to libpq an
|
|
-->
|
|
|
|
<para>
|
|
Allow libpq to report the <literal>SQLSTATE</literal> to output
|
|
only this value (Didier Gautheron)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-11 [2970afa6c] Add PQresultMemorySize function to report allocated size
|
|
-->
|
|
|
|
<para>
|
|
Add libpq function to report the memory size of the query result
|
|
(Lars Kanis, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The function is <link
|
|
linkend="libpq-pqresultmemorysize"><function>PQresultMemorySize()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-09-07 [1fea1e325] libpq: Change "options" dispchar to normal
|
|
-->
|
|
|
|
<para>
|
|
Remove the no-display/debug flag from the libpq
|
|
<literal>options</literal> parameter (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This allows the option to be used by
|
|
<application>postgres_fdw</application>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-04-01 [cc8d41511] Unified logging system for command-line programs
|
|
-->
|
|
|
|
<para>
|
|
Add colorization to the output of command-line utilities (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with by setting environment variable
|
|
<envar>PG_COLORS</envar>. EXAMPLE?
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-psql"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-26 [aa2ba50c2] Add CSV table output mode in psql.
|
|
-->
|
|
|
|
<para>
|
|
Add <acronym>CSV</acronym> table output mode in
|
|
<application>psql</application> (Daniel Vérité)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by <command>\pset format csv</command> or the
|
|
command-line <option>--csv</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-11 [27f3dea64] psql: Add documentation URL to \help output
|
|
-->
|
|
|
|
<para>
|
|
Show the manual page <acronym>URL</acronym> in
|
|
<application>psql</application>'s <command>\help</command> output
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2018-11-19 [6e5f8d489] psql: Show IP address in \conninfo
|
|
-->
|
|
|
|
<para>
|
|
Display the <acronym>IP</acronym> address in
|
|
<application>psql</application>'s <command>\conninfo</command>
|
|
(Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-12-23 [11a60d496] Add completion for storage parameters after CREATE TABLE
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-26 [5953c9969] Improve tab completion of CREATE EVENT TRIGGER in psql
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-10-26 [292ef6e27] Add tab completion of EXECUTE FUNCTION for CREATE TRIGGE
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-01-28 [23349b18d] Add tab completion for ALTER INDEX ALTER COLUMN in psql
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-12-20 [4cba9c2a3] Add more tab completion for CREATE TABLE in psql
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-20 [a7c4dad1a] Fix psql's tab completion for ALTER DATABASE ... SET TAB
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-12-25 [f89ae34ab] Improve tab completion of ALTER INDEX/TABLE with SET STA
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-20 [c9a8a401f] Fix psql's tab completion for TABLE.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-21 [121213d9d] Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.
|
|
-->
|
|
|
|
<para>
|
|
Improve tab completion of <command>CREATE TABLE, CREATE TRIGGER,
|
|
CREATE EVENT TRIGGER, ANALYZE, EXPLAIN, VACUUM, ALTER TABLE,
|
|
ALTER INDEX, ALTER DATABASE, ALTER INDEX ALTER COLUMN</command>
|
|
(Dagfinn Ilmari Mannsåker, Tatsuro Yamada, Michaël Paquier,
|
|
Tom Lane, Justin Pryzby)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><link linkend="pgbench"><application>pgbench</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-01-10 [6260cc550] pgbench: add \cset and \gset commands
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-25 [25ee70511] pgbench: Remove \cset
|
|
-->
|
|
|
|
<para>
|
|
Allow values produced by queries to be assigned to pgbench
|
|
variables (Fabien Coelho, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
The commands is <command>\gset</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-25 [5b7e03670] Avoid unnecessary precision loss for pgbench's - -rate ta
|
|
-->
|
|
|
|
<para>
|
|
Improve precision of pgbench's <option>--rate</option>
|
|
option (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-10-15 [5b75a4f82] pgbench: Report errors during run better
|
|
-->
|
|
<para>
|
|
Improve pgbench error reporting with clearer messages and return
|
|
codes (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-01-31 [00d1e88d3] Add - -min-xid-age and - -min-mxid-age options to vacuumdb
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="app-vacuumdb"/> to select tables for vacuum
|
|
based on their wraparound horizon (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The options are <option>--min-xid-age</option> and
|
|
<option>--min-mxid-age</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-01-08 [354e95d1f] Add - -disable-page-skipping and - -skip-locked to vacuumd
|
|
-->
|
|
|
|
<para>
|
|
Add vacuumdb to disable waiting for locks or skipping all-visible
|
|
pages (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The options are <option>--skip-locked</option> and
|
|
<option>--disable-page-skipping</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2018-09-01 [ec7436993] Implement "pg_ctl logrotate" command
|
|
-->
|
|
|
|
<para>
|
|
Allow control of log file rotation via <xref linkend="app-pg-ctl"/>
|
|
(Kyotaro Horiguchi, Alexander Kuzmenkov, Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this was only possible via an <acronym>SQL</acronym>
|
|
function or a process signal.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2019-01-14 [bb24439ce] Detach postmaster process from pg_ctl's session at serve
|
|
-->
|
|
|
|
<para>
|
|
Properly detach the server on <application>pg_ctl</application>
|
|
start (Paul Guo)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents later shell activity from interfering with the
|
|
postmaster.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
|
2018-11-07 [3a769d823] pg_upgrade: Allow use of file cloning
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="pgupgrade"/> to use the file system cloning
|
|
feature (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The <option>--clone</option> option has the advantages of
|
|
<option>--link</option>, while preventing the old cluster from
|
|
being changed after the new cluster has started.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-12-01 [2d34ad843] Add a - -socketdir option to pg_upgrade.
|
|
-->
|
|
|
|
<para>
|
|
Allow specification of the <application>pg_upgrade</application>
|
|
socket directory (Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by <option>--socketdir</option>; the default
|
|
is the current directory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-13 [23bd3cec6] Attempt to identify system timezone by reading /etc/loca
|
|
-->
|
|
|
|
<para>
|
|
Have <xref linkend="app-initdb"/> determine the local timezone
|
|
from the <filename>/etc/localtime</filename> symbolic link,
|
|
if it exists (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is more likely to produce the desired time zone string when
|
|
multiple identical time zones exist.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-03-23 [e0090c869] Add option -N/- -no-sync to pg_checksums
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="app-pgchecksums"/> to disable fsync operations
|
|
(Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by the <option>--no-sync</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-07-10 [8a00b96aa] Add pg_rewind - -no-sync
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="app-pgrewind"/> to disable fsync operations
|
|
(Michaël 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>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2019-03-07 [7e413a0f8] pg_dump: allow multiple rows per insert
|
|
-->
|
|
|
|
<para>
|
|
Allow control over the number of rows each
|
|
<application>pg_dump</application> <command>INSERT</command>
|
|
statement uses (Surafel Temesgen, David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
The option is <option>--rows-per-insert</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2019-03-01 [f092de050] Add - -exclude-database option to pg_dumpall
|
|
-->
|
|
|
|
<para>
|
|
Add <option>--exclude-database</option> option to
|
|
<application>pg_dumpall</application> (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-07-13 [387a5cfb9] Add pg_dump - -on-conflict-do-nothing option.
|
|
-->
|
|
|
|
<para>
|
|
Allow pg_dump to emit <command>INSERT ... ON CONFLICT DO
|
|
NOTHING</command> (Surafel Temesgen)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids conflict failures during restore.
|
|
The <application>pg_dump</application> option is
|
|
<option>--on-conflict-do-nothing</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-14 [548e50976] Improve parallel scheduling logic in pg_dump/pg_restore.
|
|
-->
|
|
|
|
<para>
|
|
Decouple the order of parallel <application>pg_dump</application>
|
|
from the order used by <application>pg_restore</application>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>pg_restore</application> to perform more
|
|
efficient parallel restores.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2019-02-18 [af25bc03e] Provide an extra-float-digits setting for pg_dump / pg_d
|
|
-->
|
|
|
|
<para>
|
|
Allow the number of float digits to be specified
|
|
for <application>pg_dump</application> and
|
|
<application>pg_dumpall</application> (Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This allows the float digit output to match previous dumps.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-11-16 [4da597edf] Make TupleTableSlots extensible, finish split of
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-06 [8586bf7ed] tableam: introduce table AM infrastructure.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-06 [3b925e905] tableam: Add pg_dump support.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-11 [c2fe139c2] tableam: Add and use scan APIs.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-23 [5db6df0c0] tableam: Add tuple_{insert, delete, update, lock} and us
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-28 [d25f51910] tableam: relation creation, VACUUM FULL/CLUSTER, SET TAB
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-29 [d3a5fc17e] Show table access methods as such in psql's \dA.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-31 [73c954d24] tableam: sample scan.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2019-03-31 [bfbcad478] tableam: bitmap table scan.
|
|
existin
|
|
-->
|
|
|
|
<para>
|
|
Add <xref linkend="sql-create-access-method"/> command to create
|
|
new table types (Andres Freund, Haribabu Kommi, Álvaro Herrera,
|
|
Alexander Korotkov, Dimitri Golgov)
|
|
</para>
|
|
|
|
<para>
|
|
This enables the development of new <link linkend="tableam">table
|
|
access methods</link>, which can optimize storage for different
|
|
use-cases. The existing <literal>heap</literal> access method
|
|
remains the default.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-02-09 [1fb57af92] Create the infrastructure for planner support functions.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2019-02-09 [a391ff3c3] Build out the planner support function infrastructure.
|
|
-->
|
|
|
|
<para>
|
|
Add support function capability to improve optimizer estimates,
|
|
inlining, and indexing for functions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This allows extensions to create planner support functions that
|
|
can provide function-specific selectivity, cost, and row-count
|
|
estimates that can depend on the function's arguments. Support
|
|
functions can also supply simplified representations and index
|
|
conditions, greatly expanding optimization possibilities.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-12-13 [09568ec3d] Create a separate oid range for oids assigned by genbki.
|
|
-->
|
|
|
|
<para>
|
|
Reserve a range of oids (9000-9999) to be used for external
|
|
extensions (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2018-10-02 [a33245a85] Don't build static libraries on Cygwin
|
|
-->
|
|
|
|
<para>
|
|
Build <productname>Cygwin</productname> binaries using dynamic
|
|
instead of static libraries (Marco Atzeri)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-01-01 [1707a0d2a] Remove configure switch - -disable-strong-random
|
|
-->
|
|
|
|
<para>
|
|
Remove <application>configure</application> switch
|
|
<option>--disable-strong-random</option> (Michaël Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
A strong random source is now required.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-09-26 [26e9d4d4e] Convert elog.c's useful_strerror() into a globally-used
|
|
-->
|
|
|
|
<para>
|
|
Properly report Winsock errors on
|
|
<productname>Windows</productname> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2018-08-23 [d9dd406fe] Require C99 (and thus MSCV 2013 upwards).
|
|
-->
|
|
|
|
<para>
|
|
Require a C99-supported compiler, and <acronym>MSVC</acronym>
|
|
2013 or later on <productname>Windows</productname> (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Documentation</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-03-27 [ea55aec0a] doc: Add some images
|
|
-->
|
|
|
|
<para>
|
|
Add images to the <productname>PostgreSQL</productname>
|
|
documentation (Jürgen Purtz)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2019-03-29 [c900c1526] Warn more strongly about the dangers of exclusive backup
|
|
-->
|
|
|
|
<para>
|
|
More clearly document the problems of server failure during <link
|
|
linkend="backup-lowlevel-base-backup-exclusive">exclusive base
|
|
backups</link> (David Steele, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Greg Stark <stark@mit.edu>
|
|
2018-10-09 [36e9d413a] Add "B" suffix for bytes to docs
|
|
-->
|
|
|
|
<para>
|
|
Document that the <literal>B</literal>/bytes units can be specified
|
|
for <link linkend="config-setting">server variables</link>
|
|
(Greg Stark)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Joe Conway <mail@joeconway.com>
|
|
2018-09-24 [c62dd80cd] Document aclitem functions and operators
|
|
-->
|
|
|
|
<para>
|
|
Add <link linkend="functions-aclitem-op-table">documentation</link>
|
|
for <type>aclitem</type> functions and operators (Fabien Coelho,
|
|
John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2019-04-26 [60bbf0753] doc: Update section on NFS
|
|
-->
|
|
|
|
<para>
|
|
Update documentation on the use of <link
|
|
linkend="creating-cluster-nfs"><acronym>NFS</acronym></link>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2019-04-02 [ffab494a4] postgres_fdw: Perform the (ORDERED, NULL) upperrel opera
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2019-04-02 [d50d172e5] postgres_fdw: Perform the (FINAL, NULL) upperrel operati
|
|
-->
|
|
|
|
<para>
|
|
Allow more <literal>ORDER BY</literal> sorts and
|
|
<literal>LIMIT</literal> clauses to be pushed to
|
|
<application>postgres_fdw</application> foreign tables (Etsuro
|
|
Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2018-12-04 [f8f6e4467] postgres_fdw: Improve cost and size estimation for aggre
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2019-01-24 [fd1afdbaf] postgres_fdw: Account for tlist eval costs in estimate_p
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2019-05-09 [edbcbe277] postgres_fdw: Fix cost estimation for aggregate pushdown
|
|
-->
|
|
|
|
<para>
|
|
Improve optimizer cost accounting for pushdown of aggregates to
|
|
<xref linkend="postgres-fdw"/> tables (Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
This release also improves costing of
|
|
<application>postgres_fdw</application> target list generation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2018-07-08 [a45adc747] Fix WITH CHECK OPTION on views referencing postgres_fdw
|
|
-->
|
|
|
|
<para>
|
|
Properly honor <literal>WITH CHECK OPTION</literal> on views
|
|
that reference <application>postgres_fdw</application> tables
|
|
(Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
While <literal>CHECK OPTION</literal>s on
|
|
<application>postgres_fdw</application> tables are ignored (because
|
|
the reference is foreign), views on such tables are considered
|
|
local, so this release enforces <literal>CHECK OPTION</literal>s
|
|
on them. Previously, only <command>INSERT</command>s and
|
|
<command>UPDATE</command>s with <literal>RETURNING</literal>
|
|
clauses that returned <literal>CHECK OPTION</literal> values
|
|
were validated.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2019-01-11 [43cbedab8] Extend pg_stat_statements_reset to reset statistics spec
|
|
-->
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="pgstatstatements"><function>pg_stat_statements_reset()</function></link>
|
|
to be more granular (Haribabu Kommi, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
The function now allows reset of statistics for specific databases,
|
|
users, and queries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2018-07-31 [2d36a5e9d] Provide a log_level setting for auto_explain
|
|
-->
|
|
|
|
<para>
|
|
Allow control of the <xref linkend="auto-explain"/> log level
|
|
(Tom Dunstan, Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
The default is <literal>LOG</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2019-01-10 [e1c1d5444] Update unaccent rules with release 34 of CLDR for Latin-
|
|
-->
|
|
|
|
<para>
|
|
Update <application>unaccent</application> rules with new
|
|
punctuation and symbols (Hugh Ranalli, Michaël Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2019-02-01 [456e3718e] Add combining characters to unaccent.rules.
|
|
-->
|
|
|
|
<para>
|
|
Allow <xref linkend="unaccent"/> to handle some accents encoded
|
|
as combining characters (Hugh Ranalli)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2018-09-02 [5e8d670c3] Add Greek characters to unaccent.rules.
|
|
-->
|
|
|
|
<para>
|
|
Allow <application>unaccent</application> to remove accents from
|
|
Greek characters (Tasos Maschalidis)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-23 [48c41fa97] Add a 64-bit hash function for type <type>citext</type>.
|
|
-->
|
|
|
|
<para>
|
|
Add 64-bit hash function to <xref linkend="citext"/> (Amul Sul)
|
|
</para>
|
|
|
|
<para>
|
|
The function <function>citext_hash_extended()</function> also
|
|
requires a seed value. NO DOCS?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2018-11-23 [eb6f29141] Add a 64-bit hash function for type <application>hstore</application>.
|
|
-->
|
|
|
|
<para>
|
|
Add 64-bit hash function to <xref linkend="hstore"/> (Amul Sul)
|
|
</para>
|
|
|
|
<para>
|
|
The function <function>hstore_hash_extended()</function> also
|
|
requires a seed value. NO DOCS?
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-08-28 [1aaf532de] Rework option set of oid2name
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2018-08-28 [bfea331a5] Rework option set of vacuumlo
|
|
-->
|
|
|
|
<para>
|
|
Improve <xref linkend="oid2name"/> and <xref linkend="vacuumlo"/>
|
|
option handling to match other commands (Tatsuro Yamada)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-12-acknowledgements">
|
|
<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></member>
|
|
</simplelist>
|
|
</sect2>
|
|
|
|
</sect1>
|