Commit 1d8573ed authored by Bruce Momjian's avatar Bruce Momjian

doc: first draft of Postgres 10 release notes

parent 66fade8a
...@@ -169,6 +169,7 @@ ...@@ -169,6 +169,7 @@
<!ENTITY sourcerepo SYSTEM "sourcerepo.sgml"> <!ENTITY sourcerepo SYSTEM "sourcerepo.sgml">
<!ENTITY release SYSTEM "release.sgml"> <!ENTITY release SYSTEM "release.sgml">
<!ENTITY release-10 SYSTEM "release-10.sgml">
<!ENTITY release-9.6 SYSTEM "release-9.6.sgml"> <!ENTITY release-9.6 SYSTEM "release-9.6.sgml">
<!ENTITY release-9.5 SYSTEM "release-9.5.sgml"> <!ENTITY release-9.5 SYSTEM "release-9.5.sgml">
<!ENTITY release-9.4 SYSTEM "release-9.4.sgml"> <!ENTITY release-9.4 SYSTEM "release-9.4.sgml">
......
...@@ -248,7 +248,7 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI ...@@ -248,7 +248,7 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry id="SQL-CREATETABLE-PARTITION">
<term><literal>PARTITION OF <replaceable class="PARAMETER">parent_table</replaceable> FOR VALUES <replaceable class="PARAMETER">partition_bound_spec</replaceable></literal></term> <term><literal>PARTITION OF <replaceable class="PARAMETER">parent_table</replaceable> FOR VALUES <replaceable class="PARAMETER">partition_bound_spec</replaceable></literal></term>
<listitem> <listitem>
<para> <para>
......
<!-- doc/src/sgml/release-10.sgml -->
<!-- See header comment in release.sgml about typical markup -->
<sect1 id="release-10">
<title>Release 10</title>
<note>
<title>Release Date</title>
<simpara>2017-09-XX</simpara>
<simpara>CURRENT AS OF 2017-04-22</simpara>
</note>
<sect2>
<title>Overview</title>
<para>
Major enhancements in <productname>PostgreSQL</> 10 include:
</para>
<!-- Items in this list summarize one or more items below -->
<itemizedlist>
<listitem><para> </para></listitem>
</itemizedlist>
<para>
The above items are explained in more detail in the sections below.
</para>
</sect2>
<sect2>
<title>Migration to Version 10</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 10 contains a number of changes that may affect compatibility
with previous releases. Observe the following incompatibilities:
</para>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-30 [6d46f4783] Improve hash index bucket split behavior.
Author: Robert Haas <rhaas@postgresql.org>
2017-02-07 [293e24e50] Cache hash index's metapage in rel->rd_amcache.
Author: Robert Haas <rhaas@postgresql.org>
2017-02-27 [b0f18cb77] hash: Refactor bucket squeeze code.
Author: Robert Haas <rhaas@postgresql.org>
2017-02-27 [30df93f69] hash: Refactor overflow page allocation.
Author: Robert Haas <rhaas@postgresql.org>
2017-04-03 [ea69a0dea] Expand hash indexes more gradually.
-->
<para>
Improve hash bucket split performance by reducing locking requirements
(Amit Kapila, Mithun Cy)
</para>
<para>
Also cache hash index meta-information for faster lookups. Additional
hash performance improvements have also been made. <application>pg_upgrade</>'d hash
indexes from previous major Postgres versions must be rebuilt.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-27 [3371e4d9b] Change default of log_directory to 'log'
-->
<para>
Change the default <link linkend="guc-log-destination">log directory</> from <filename>pg_log</> to <filename>log</> (Andreas
Karlsson)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-17 [88e66d193] Rename "pg_clog" directory to "pg_xact".
-->
<para>
Rename transaction status directory <filename>pg_clog</> directory to <filename>pg_xact</>
(Michael Paquier)
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-01-04 [9a4d51077] Make wal streaming the default mode for pg_basebackup
-->
<para>
Have <application><xref linkend="app-pgbasebackup"></> stream the <acronym>WAL</> needed to restore the backup by
default (Magnus Hagander)
</para>
<para>
This changes the <application>pg_basebackup</> <option>-X</>/<option>--xlog-method</> default to <literal>stream</>.
An option value <literal>none</> has been added to recreate the old
behavior. The <application>pg_basebackup</> option <option>-x</> has been removed (use <option>-X</> fetch).
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-01-14 [05cd12ed5] pg_ctl: Change default to wait for all actions
-->
<para>
Make all <application><xref linkend="app-pg-ctl"></> actions wait by default for completion (Peter Eisentraut)
</para>
<para>
Previously some <application>pg_ctl</> actions didn't wait for completion, and required
the use of <option>-w</> to do so.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-10-26 [94aceed31] Support multi-dimensional arrays in PL/python.
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-10-26 [cfd9c87a5] Only treat Python Lists as array dimensions.
-->
<para>
Allow multi-dimensional arrays to be passed into PL/Python functions,
and returned as nested Python lists (Alexey Grishchenko, Dave Cramer,
Heikki Linnakangas)
</para>
<para>
This makes a backwards-incompatible change to the handling of composite
types in arrays. Previously, you could return an array of composite types
as "[[col1, col2], [col1, col2]]", but now that is interpreted as a two-
dimensional array. Composite types in arrays must now be returned as
Python tuples, not lists, to resolve the ambiguity. I.e. "[(col1, col2),
(col1, col2)]". See the documentation for more details. CLARIFY
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-02-27 [817f2a586] Remove PL/Tcl's "module" facility.
-->
<para>
Remove PL/Tcl's "module" auto-loading facility (Tom Lane)
</para>
<para>
Replaced by new PL/Tcl startup <acronym>GUC</>s.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-12-23 [e13486eba] Remove sql_inheritance <acronym>GUC</>.
-->
<para>
Remove <varname>sql_inheritance</> <acronym>GUC</> (Robert Haas)
</para>
<para>
Changing this from the default value caused queries referencing parent
tables to not include children tables. The <acronym>SQL</> standard requires such
behavior and this has been the default since Postgres 7.1.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-15 [51ee6f316] Replace min_parallel_relation_size with two new <acronym>GUC</>s.
-->
<para>
Add <acronym>GUC</>s <xref linkend="guc-min-parallel-table-scan-size"> and
<xref linkend="guc-min-parallel-index-scan-size">
to control parallel operation (Amit Kapila, Robert Haas)
</para>
<para>
This replaces <varname>min_parallel_relation_size</>, which was too generic.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-02-23 [b6aa17e0a] De-support floating-point timestamps.
-->
<para>
Remove support for floating-point datetimes/timestamps (Tom Lane)
</para>
<para>
This removes configure's <option>--disable-integer-datetimes</> option.
Floating-point datetimes/timestamps have not been the default
since Postgres 8.3 and have few advantages.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-10-11 [2f1eaf87e] Drop server support for <acronym>FE/BE</> protocol version 1.0.
-->
<para>
Remove support for client/server protocol version 1.0 (Tom Lane)
</para>
<para>
This protocol hasn't had client support since Postgres 6.3.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-13 [7ada2d31f] Remove contrib/tsearch2.
-->
<para>
Remove contrib/tsearch2 (Robert Haas)
</para>
<para>
This removes compatibility with the contrib version of full text search
that shipped in pre-8.3 Postgres versions.
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Changes</title>
<para>
Below you will find a detailed account of the changes between
<productname>PostgreSQL</productname> 10 and the previous major
release.
</para>
<sect3>
<title>Server</title>
<sect4>
<title>Parallel Queries</title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-15 [569174f1b] btree: Support parallel index scans.
Author: Robert Haas <rhaas@postgresql.org>
2017-02-15 [5262f7a4f] Add optimizer and executor support for parallel index sc
Author: Robert Haas <rhaas@postgresql.org>
2017-02-19 [0414b26ba] Add optimizer and executor support for parallel index-on
-->
<para>
Support parallel btree index scans (Rahila Syed, Amit Kapila, Robert
Haas)
</para>
<para>
Allows btree index pages to be checked by separate parallel workers.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-08 [98e6e8904] tidbitmap: Support shared iteration.
Author: Robert Haas <rhaas@postgresql.org>
2017-03-08 [f35742ccb] Support parallel bitmap heap scans.
-->
<para>
Support parallel bitmap heap scans (Dilip Kumar)
</para>
<para>
This allows a single index scan to dispatch parallel workers to process
different areas of the heap.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-07 [3bc7dafa9] Consider parallel merge joins.
-->
<para>
Allow merge joins to be performed in parallel (Dilip Kumar)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-08 [98e6e8904] tidbitmap: Support shared iteration.
Author: Robert Haas <rhaas@postgresql.org>
2017-03-08 [f35742ccb] Support parallel bitmap heap scans.
-->
<para>
Support parallel bitmap heap scans (Dilip Kumar)
</para>
<para>
This allows a single index scan to dispatch parallel workers to process
different areas of the heap.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-09 [355d3993c] Add a Gather Merge executor node.
-->
<para>
Improve ability of parallel workers to return pre-sorted data (Rushabh
Lathia)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-24 [61c2e1a95] Improve access to parallel query from procedural languag
-->
<para>
Increase parallel query usage in procedural language functions (Robert
Haas)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-12-02 [b460f5d66] Add max_parallel_workers GUC.
Author: Robert Haas <rhaas@postgresql.org>
2016-12-05 [2b959d495] Reduce the default for max_worker_processes back to 8.
-->
<para>
Add <acronym>GUC</> <xref linkend="guc-max-parallel-workers"> to limit the number of worker processes
that can be used for parallelism (Julien Rouhaud)
</para>
<para>
This can be set lower than <xref linkend="guc-max-worker-processes"> to reserve worker
processes for non-parallel purposes.
</para>
</listitem>
<listitem>
<!--<listitem>
Author: Robert Haas <rhaas@postgresql.org>
2016-10-20 [f82ec32ac] Rename "pg_xlog" directory to "pg_wal"
-->
<para>
Rename <filename>pg_xlog</> to <link linkend="wal"><filename>pg_wal</></> (Michael Paquier)
</para>
<para>
This prevents the write-ahead log directory from being confused as
containing server activity logs, and erroneously truncated.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-09 [806091c96] Remove all references to "xlog" from SQL-callable functi
Author: Robert Haas <rhaas@postgresql.org>
2017-02-09 [85c11324c] Rename user-facing tools with "xlog" in the name to say
Author: Robert Haas <rhaas@postgresql.org>
2017-02-09 [62e8b3875] Rename command line options for ongoing xlog -> wal conv
Author: Fujii Masao <fujii@postgresql.org>
2017-02-15 [0dfa89ba2] Replace reference to "xlog-method" with "wal-method" in
-->
<para>
Rename <acronym>SQL</> functions, tools, and options that reference <quote>xlog</> to <quote>wal</>
(Robert Haas)
</para>
<para>
For example, <function>pg_switch_xlog()</> becomes <function>pg_switch_wal()</>, <application>pg_receivexlog</>
becomes <application>pg_receivewal</>, and <option>--xlogdir</> becomes <option>--waldir</>. This might
require adjustments for prior-version scripts.
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-01-18 [69f4b9c85] Move targetlist SRF handling from expression evaluation
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-18 [f13a1277a] Doc: improve documentation of new SRF-in-tlist behavior.
-->
<para>
Allow <literal>COALESCE</> and <literal>CASE</> to return multiple rows when evaluating
set-returning functions (Andres Freund).
</para>
<para>
This also prevents conditionals like <literal>CASE</> from controlling the
execution of set-returning functions because set-returning functions
are now executed earlier.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-10-12 [64f3524e2] Remove pg_dump/pg_dumpall support for dumping from pre-8
-->
<para>
Remove <application>pg_dump</>/<application>pg_dumpall</> support for dumping from pre-8.0 servers (Tom
Lane)
</para>
<para>
Users needing dump support for pre-8.0 servers need to use dump binaries
from Postgres 9.6.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Indexes</title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-14 [c11453ce0] hash: Add write-ahead logging support.
-->
<para>
Add write-ahead logging support to hash indexes (Amit Kapila)
</para>
<para>
This makes hash indexes crash-safe and replicated, and removes the
warning message about their use.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-15 [6977b8b7f] Port single-page btree vacuum logic to hash indexes.
-->
<para>
Allow single-page hash pruning (Ashutosh Sharma)
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-03-31 [e306df7f9] Full Text Search support for <type>JSON</> and <type>JSONB</>
-->
<para>
Add full text search support for <type>JSON</> and <type>JSONB</> (Dmitry Dolgov)
</para>
<para>
This is accessed via <function>ts_headline()</> and to_tsvector. RIGHT SECTION?
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-23 [77e290682] Create an SP-GiST opclass for inet/cidr.
-->
<para>
Add <acronym>SP-GiST</> index support for <type>INET</> and <type>CIDR</> data types (Emre Hasegeli)
</para>
<para>
These data types already had GiST support.
</para>
</listitem>
<listitem>
<!--
Author: Teodor Sigaev <teodor@sigaev.ru>
2017-03-23 [218f51584] Reduce page locking in <acronym>GIN</> vacuum
-->
<para>
Reduce page locking during vacuuming of <acronym>GIN</> indexes (Andrey Borodin)
</para>
</listitem>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2017-04-01 [7526e1022] BRIN auto-summarization
-->
<para>
Cause <acronym>BRIN</> index summarization to happen more aggressively (&Aacute;lvaro
Herrera)
</para>
<para>
Specifically, summarize the previous page range when a new page range is
created.
</para>
</listitem>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2017-04-01 [c655899ba] BRIN de-summarization
-->
<para>
Add function <function>brin_desummarize_range()</> to remove <acronym>BRIN</> summarization of a
specified range (&Aacute;lvaro Herrera)
</para>
<para>
This allows future <acronym>BRIN</> index summarization to be more compact. CLARIFY
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Locking</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-31 [64d4da511] For foreign keys, check <literal>REFERENCES</> privilege only on the
-->
<para>
Only check for <literal>REFERENCES</> permission on referenced tables (Tom Lane)
</para>
<para>
Previously <literal>REFERENCES</> permission on the referencing table was also
required.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-05 [15bc038f9] Relax transactional restrictions on ALTER TYPE ... ADD V
-->
<para>
Reduce locking required for adding values to enum types (Andrew Dunstan,
Tom Lane)
</para>
<para>
Previously it was impossible to run <command>ALTER TYPE ... ADD VALUE</> in a
transaction block unless the enum type was created in the same block.
Now, only references to uncommitted enum values from other transactions
is prohibited.
</para>
</listitem>
<listitem>
<!--
Author: Kevin Grittner <kgrittn@postgresql.org>
2017-04-07 [c63172d60] Add GUCs for predicate lock promotion thresholds.
-->
<para>
Allow tuning of predicate lock promotion thresholds (Dagfinn Ilmari
Manns&aring;ker)
</para>
<para>
The new settings are <xref linkend="guc-max-pred-locks-per-relation"> and
<varname>max_pred_locks_per_page</>.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Optimizer</title>
<itemizedlist>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2017-03-24 [7b504eb28] Implement multivariate n-distinct coefficients
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-04-05 [2686ee1b7] Collect and use multi-column dependency stats
-->
<para>
Add the ability to compute a correlation ratio and the number of
distinct values on several columns (Tomas Vondra, David Rowley)
</para>
<para>
New commands are <command><link linkend="SQL-CREATESTATISTICS">CREATE</></>,
<command><link linkend="SQL-ALTERSTATISTICS">ALTER</></>, and
<command><link linkend="SQL-DROPSTATISTICS">DROP STATISTICS</></>. This is helpful in
estimating query memory usage and ... HOW IS RATIO USED?
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-15 [0777f7a2e] Fix matching of boolean index columns to sort ordering.
-->
<para>
Improve planner matching of boolean indexes (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-16 [b30fb56b0] postgres_fdw: Push down <literal>FULL JOIN</>s with restriction clau
-->
<para>
Improve optimization of <literal>FULL JOIN</> queries containing subqueries in the
<literal>FROM</> clause (Etsuro Fujita)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-18 [215b43cdc] Improve RLS planning by marking individual quals with se
-->
<para>
Improve performance of queries referencing row level security
restrictions (Tom Lane)
</para>
<para>
The optimizer now has more flexibility in reordering executor behavior.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-23 [50c956add] Remove createlang and droplang
-->
<para>
Remove createlang and droplang (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-03-30 [5ded4bd21] Remove support for version-0 calling conventions.
-->
<para>
Remove support for version-0 function calling conventions (Andres
Freund)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-10-11 [2b860f52e] Remove "sco" and "unixware" ports.
-->
<para>
Remove <systemitem class="osname">SCO</> and <systemitem class="osname">Unixware</> ports (Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>General Performance</title>
<itemizedlist>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-09-02 [9cca11c91] Speed up SUM calculation in numeric aggregates.
-->
<para>
Speed up <function>SUM()</> calculations (Heikki Linnakangas)
</para>
<para>
This uses an optimized numeric accumulator.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2017-03-13 [aeed17d00] Use radix tree for character encoding conversions.
-->
<para>
Improve the performance of character encoding conversions by using radix
trees (Kyotaro Horiguchi, Heikki Linnakangas)
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-03-25 [b8d7f053c] Faster expression evaluation and targetlist projection.
-->
<para>
Reduce the function call overhead during query execution (Andres Freund)
</para>
<para>
This is particularly helpful for queries that process many rows.
</para>
</listitem>
<listitem>
<!--
Author: Andrew Gierth <rhodiumtoad@postgresql.org>
2017-03-27 [b5635948a] Support hashed aggregation with grouping sets.
-->
<para>
Improve the performance of grouping sets (Andrew Gierth)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-04-07 [9c7f5229a] Optimize joins when the inner relation can be proven uni
-->
<para>
Use uniqueness guarantees to optimize certain join types (David Rowley)
</para>
</listitem>
<listitem>
<!--
Author: Teodor Sigaev <teodor@sigaev.ru>
2017-03-29 [f90d23d0c] Implement SortSupport for macaddr data type
-->
<para>
Improve sort performance of the macaddr data type (Brandur Leach)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Monitoring</title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-11-18 [67dc4ccbb] Add pg_sequences view
-->
<para>
Add <link linkend="view-pg-sequences"><structname>pg_sequences</></> view to show all sequences (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-12-20 [1753b1b02] Add pg_sequence system catalog
-->
<para>
Create a <link linkend="catalog-pg-sequence"><structname>pg_sequence</></> system catalog to store sequence metadata (Andreas
Karlsson)
</para>
<para>
Sequence metadata includes start, increment, etc, which is now
transactional. Sequence counters are still stored in separate heap
relations.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2017-03-08 [f9b1a0dd4] Expose explain's SUMMARY option
-->
<para>
Allow explicit control over <command><link linkend="SQL-EXPLAIN">EXPLAIN</></>'s display of planning and execution
time (Stephen Frost)
</para>
<para>
By default planning and execution is display by <command>EXPLAIN ANALYZE</> and not
display in other cases. The new <command>EXPLAIN</> option <literal>SUMMARY</> allows explicit
control of this.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-18 [17f8ffa1e] Fix <command>REFRESH MATERIALIZED VIEW</> to report activity to the
-->
<para>
Properly update the statistics collector during <link linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED VIEW</></>
(Jim Mlodgenski)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-03-30 [25fff4079] Default monitoring roles
-->
<para>
Add default monitoring roles (Dave Page)
</para>
<para>
New roles <literal>pg_monitor</>, <literal>pg_read_all_settings</>, <literal>pg_read_all_stats</>, and
<literal>pg_stat_scan_tables</> allow simplified permission configuration.
</para>
</listitem>
</itemizedlist>
<sect5>
<title>Logging</title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-10-17 [7d3235ba4] By default, set log_line_prefix = '%m [%p] '.
-->
<para>
Change <xref linkend="guc-log-line-prefix"> default to include current timestamp with milliseconds
and the process id (Christoph Berg)
</para>
<para>
The previous default was not to output a prefix.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-16 [befd73c50] Add pg_ls_logdir() and pg_ls_waldir() functions.
-->
<para>
Add functions to return the log and <acronym>WAL</> directory names (Dave Page)
</para>
<para>
The new functions are <link linkend="functions-admin-genfile-table"><function>pg_ls_logdir()</></> and
<link linkend="functions-admin-genfile-table"><function>pg_ls_waldir()</></> and can be
executed by non-super users with the proper permissions.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-03 [19dc233c3] Add pg_current_logfile() function.
-->
<para>
Add function <link linkend="functions-info-session-table"><function>pg_current_logfile()</></> to read syslog's current stderr and
csvlog output file names (Gilles Darold)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-10 [f9dfa5c97] Improve postmaster's logging of listen socket creation.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-14 [2b32ac2a5] Include port number when logging successful binding to a
-->
<para>
Report the address and port number of successful startup socket binding
in the server logs (Tom Lane)
</para>
<para>
Also, report bind socket failure details in the server logs.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-10 [6ec4c8584] Reduce log verbosity of startup/shutdown for launcher su
-->
<para>
Reduce log chatter about the starting and stopping of launcher
subprocesses (Tom Lane)
</para>
<para>
These are now <literal>DEBUG1</>-level messages.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-17 [a43f1939d] Remove or reduce verbosity of some debug messages.
-->
<para>
Reduce message verbosity of lower-numbered debug levels controlled by
<xref linkend="guc-log-min-messages"> (Robert Haas)
</para>
<para>
This also changes the verbosity of <xref linkend="guc-client-min-messages"> debug levels.
</para>
</listitem>
</itemizedlist>
</sect5>
<sect5>
<title><link linkend="pg-stat-activity-view"><structname>pg_stat_activity</></link></title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-10-04 [6f3bd98eb] Extend framework from commit 53be0b1ad to report latch w
-->
<para>
Add <structname>pg_stat_activity</> reporting of latch wait states (Michael Paquier,
Robert Haas)
</para>
<para>
This includes the remaining wait events, like client reads, client
writes, and synchronous replication.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-18 [249cf070e] Create and use wait events for read, write, and fsync op
-->
<para>
Add <structname>pg_stat_activity</> reporting of waits on reads, writes, and fsyncs
(Rushabh Lathia)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-26 [fc70a4b0d] Show more processes in pg_stat_activity.
-->
<para>
Show auxiliary processes and background workers in <structname>pg_stat_activity</>
(Kuntal Ghosh)
</para>
<para>
New column <structfield>backend_type</> identifies the process type.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2016-09-12 [fc3d4a44e] Identify walsenders in pg_stat_activity
-->
<para>
Display walsender processes in <structname>pg_stat_activity</> (Michael Paquier)
</para>
<para>
This simplifies monitoring.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-22 [4c728f382] Pass the source text for a parallel query to the workers
-->
<para>
Allow <structname>pg_stat_activity</> to show the source query being executed by parallel workers
(Rafia Sabih)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-12-16 [3761fe3c2] Simplify LWLock tranche machinery by removing array_base
-->
<para>
Rename <structname>pg_stat_activity</>.<structfield>wait_event_type</> values <literal>LWLockTranche</> and
<literal>LWLockNamed</> to <literal>LWLock</> (Robert Haas)
</para>
<para>
This makes the output more consistent.
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
<sect4>
<title><acronym>Authentication</></title>
<itemizedlist>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2017-03-07 [818fd4a67] Support SCRAM-SHA-256 authentication (RFC 5802 and 7677)
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2017-03-24 [7ac955b34] Allow SCRAM authentication, when pg_hba.conf says 'md5'.
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2017-04-07 [60f11b87a] Use SASLprep to normalize passwords for SCRAM authentica
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2017-04-18 [c727f120f] Rename "scram" to "scram-sha-256" in pg_hba.conf and pas
-->
<para>
Add <link linkend="auth-pg-hba-conf"><literal>SCRAM-SHA-256</></> support for password negotiation and storage (Michael
Paquier, Heikki Linnakangas)
</para>
<para>
This proves better security than the existing 'md5' negotiation and
storage method.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-09-28 [babe05bc2] Turn password_encryption <acronym>GUC</> into an enum.
-->
<para>
Change <acronym>GUC</> <xref linkend="guc-password-encryption"> from <type>boolean</> to <type>enum</> (Michael Paquier)
</para>
<para>
This was necessary to support additional password hashing options.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-30 [de16ab723] Invent pg_hba_file_rules view to show the content of pg_
-->
<para>
Add view <link linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</></> to display the contents of <filename>pg_hba.conf</>
(Haribabu Kommi)
</para>
<para>
This shows the file contents, not the currently active settings.
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-03-22 [6b76f1bb5] Support multiple RADIUS servers
-->
<para>
Support multiple <acronym>RADIUS</> servers (Magnus Hagander)
</para>
<para>
All the <acronym>RADIUS</> related parameters are now plural and support a
comma-separated list of servers.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Server Configuration</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-02 [de41869b6] Allow SSL configuration to be updated at SIGHUP.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-03 [1e942c747] Disable prompting for passphrase while (re)loading SSL c
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-04 [6667d9a6d] Re-allow SSL passphrase prompt at server start, but not
-->
<para>
Allow <acronym>SSL</> configuration to be updated at <literal>SIGHUP</> (Andreas Karlsson, Tom Lane)
</para>
<para>
This allows <acronym>SSL</> to be reconfigured without a server restart by using
<command>pg_ctl reload</>, <command>SELECT pg_reload_conf()</>, or sending a
<literal>SIGHUP</> signal.
Reload <acronym>SSL</> configuration updates do not work if the <acronym>SSL</> key requires a
passphrase.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-11-30 [81c52728f] doc: Remove claim about large shared_buffers on Windows
-->
<para>
Remove documented restriction about using large shared buffers on
<systemitem class="osname">Windows</> (Tsunakawa, Takayuki)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-03-06 [21d4e2e20] Reduce lock levels for table storage params related to p
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-04-05 [68ea2b7f9] Reduce lock level for CREATE STATISTICS
-->
<para>
Reduce locking required to change table params (Simon Riggs, Fabr&iacute;zio
Mello)
</para>
<para>
For example, changing a table's <xref linkend="guc-effective-io-concurrency"> setting can now
be done with a more lightweight lock.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-02 [14ca9abfb] Increase upper bound for bgwriter_lru_maxpages.
-->
<para>
Make the maximum value of <xref linkend="guc-bgwriter-lru-maxpages"> effectively unlimited
(Jim Nasby)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Reliability</title>
<itemizedlist>
<listitem>
<!--
Author: Teodor Sigaev <teodor@sigaev.ru>
2017-03-27 [1b02be21f] Fsync directory after creating or unlinking file.
-->
<para>
Perform an fsync on the directory after creating or unlinking files
(Michael Paquier)
</para>
<para>
This reduces the risk of data loss after a power failure.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-21 [a734fd5d1] autovacuum: Drop orphan temp tables more quickly but wit
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-27 [dafa0848d] Code review for early drop of orphaned temp relations in
-->
<para>
Remove orphaned temporary tables more aggressively (Robert Haas, Tom Lane)
</para>
<para>
Previously such tables were removed only when necessary. SECTION?
</para>
</listitem>
</itemizedlist>
<sect5>
<title><link linkend="wal">Write-Ahead Log</> (<acronym>WAL</>)</title>
<itemizedlist>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2016-12-22 [6ef2eba3f] Skip checkpoints, archiving on idle systems.
-->
<para>
Prevent checkpoints and <acronym>WAL</> archiving on otherwise-idle systems (Michael
Paquier)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-08 [a507b8690] Add WAL consistency checking facility.
Author: Robert Haas <rhaas@postgresql.org>
2017-03-14 [bb4a39637] hash: Support WAL consistency checking.
-->
<para>
Add <acronym>GUC</> <xref linkend="guc-wal-consistency-checking"> to add details to <acronym>WAL</> that can be
sanity-checked on the standby (Kuntal Ghosh, Michael Paquier, Robert
Haas)
</para>
<para>
Any sanity-check failure generates a fatal error on the standby.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-04-05 [00b6b6feb] Allow \-\-with-wal-segsize=n up to n=1024MB
-->
<para>
Increase the maximum configurable <acronym>WAL</> size to 1 gigabyte (Beena Emerson)
</para>
</listitem>
</itemizedlist>
</sect5>
</sect4>
</sect3>
<sect3>
<title>Replication and Recovery</title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-01-20 [665d1fad9] Logical replication
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-23 [7c4f52409] Logical replication support for initial data copy
Author: Fujii Masao <fujii@postgresql.org>
2017-04-12 [ff7bce174] Add max_sync_workers_per_subscription to postgresql.conf
-->
<para>
Add the ability to <link linkend="logical-replication">logically replicate</> tables to standby servers (Petr
Jelinek)
</para>
<para>
This allows more fine-grained replication options, including replication
between different major versions of Postgres and selective-table
replication.
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2016-12-19 [3901fd70c] Support quorum-based synchronous replication.
-->
<para>
Allow waiting for commit acknowledgement from standby servers
irrespective of the order they appear in <xref linkend="guc-synchronous-standby-names">
(Masahiko Sawada)
</para>
<para>
Previously the server always waited for the active standbys that
appeared first in <varname>synchronous_standby_names</>. The new
<varname>synchronous_standby_names</> keyword <literal>ANY</> allows waiting for any number of
standbys irrespective of their ordering. This is known as quorum commit.
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-01-14 [f6d6d2920] Change default values for backup and replication paramet
-->
<para>
Reduce configuration necessary to perform streaming backup and
replication (Magnus Hagander)
</para>
<para>
Specifically, defaults were changed for <xref linkend="guc-wal-level">,
<xref linkend="guc-max-wal-senders">, and
<xref linkend="guc-max-replication-slots">.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-09 [be37c2120] Enable replication connections by default in <filename>pg_hba.conf</>
-->
<para>
Enable replication from localhost connections by default in <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></>
(Michael Paquier)
</para>
<para>
Previously <filename>pg_hba.conf</>'s replication connection lines were commented
out. This is particularly useful for <application><xref linkend="app-pgbasebackup"></>.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-03-23 [6912acc04] Replication lag tracking for walsenders
-->
<para>
Add columns to <link linkend="monitoring-stats-views-table"><structname>pg_stat_replication</></> to report replication delay times
(Thomas Munro)
</para>
<para>
The new columns are <structfield>write_lag</>, <structfield>flush_lag</>, and <structfield>replay_lag</>.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2016-09-03 [35250b6ad] New recovery target recovery_target_lsn
-->
<para>
Add specification of a Log Sequence Number (<acronym>LSN</>) stopping point in
<link linkend="recovery-config"><filename>recovery.conf</></> (Michael Paquier)
</para>
<para>
Previously only specification of the stop name, time, and xid were
supported.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2017-03-22 [017e4f258] Expose waitforarchive option through pg_stop_backup()
-->
<para>
Allow users to disable <link linkend="functions-admin"><function>pg_stop_backup()</></>'s waiting for all <acronym>WAL</> to be
archived (David Steele)
</para>
<para>
An optional second argument to <function>pg_stop_backup()</> controls that behavior.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-12-12 [a924c327e] Add support for temporary replication slots
-->
<para>
Allow creation of <link linkend="functions-replication-table">temporary replication slots</> (Petr Jelinek)
</para>
<para>
Temporary slots are automatically removed on session exit or error.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-03-22 [9b013dc23] Improve performance of replay of AccessExclusiveLocks
-->
<para>
Improve performance of hot standby replay with better tracking of
Access Exclusive locks (Simon Riggs, David Rowley)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-04-04 [728bd991c] Speedup 2PC recovery by skipping two phase state files i
-->
<para>
Speed up two-phase commit recovery performance (Simon Riggs)
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Queries</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
-->
<para>
Allow <literal>ROW</> to supply values to <command>UPDATE ... SET (column_list)</> (Tom Lane)
</para>
<para>
Also allow row values to be supplied by table.*.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-05 [c54159d44] Make locale-dependent regex character classes work for l
-->
<para>
Fix regular expression locale class handling for bytes greater than <literal>U+7FF</>
(Tom Lane)
</para>
<para>
Previously such classes were not recognized.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Utility Commands</title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-12-07 [f0e44751d] Implement table partitioning.
-->
<para>
Add table <link linkend="SQL-CREATETABLE-PARTITION">partitioning syntax</> that automatically creates partition
constraints and <command>INSERT</> routing (Amit Langote)
</para>
<para>
The syntax supports range and list partitioning.
</para>
</listitem>
<listitem>
<!--
Author: Kevin Grittner <kgrittn@postgresql.org>
2016-11-04 [8c48375e5] Implement syntax for transition tables in AFTER triggers
Author: Kevin Grittner <kgrittn@postgresql.org>
2017-04-04 [5ebeb579b] Follow-on cleanup for the transition table patch.
-->
<para>
Add <link linkend="SQL-CREATETRIGGER"><literal>AFTER</> trigger</> transition table to record changed rows (Kevin Grittner)
</para>
<para>
Transition table contents are accessible from server-side languages.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2016-12-05 [093129c9d] Add support for restrictive RLS policies
-->
<para>
Allow <link linkend="SQL-CREATEPOLICY">restrictive row-level security policies</> (Stephen Frost)
</para>
<para>
Previously all security policies were permissive, meaning that any
matching policy allowed access. Optional restrictive policies must
match for access to be granted. These policy types can be combined.
</para>
</listitem>
<listitem>
<!--
Author: Teodor Sigaev <teodor@sigaev.ru>
2017-03-28 [ab89e465c] Altering default privileges on schemas
-->
<para>
Allow <link linkend="SQL-ALTERDEFAULTPRIVILEGES">default permissions</> on schemas (Matheus Oliveira)
</para>
<para>
This is done using the <literal>ALTER DEFAULT PRIVILEGES</> command.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-02-10 [2ea5b06c7] Add CREATE SEQUENCE AS <data type> clause
-->
<para>
Add <link linkend="SQL-CREATESEQUENCE"><command>CREATE SEQUENCE AS</></> command to create a sequence matching
an integer data type (Peter Eisentraut)
</para>
<para>
This simplifies the creation of sequences matching the range of base
columns.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-10 [279c439c7] Support "COPY view FROM" for views with INSTEAD OF INSER
-->
<para>
Allow <command>COPY view FROM</> on views with <literal>INSTEAD INSERT</> triggers (Haribabu
Kommi)
</para>
<para>
The triggers are fed the rows from <command>COPY</>.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-14 [aefeb6874] Allow referring to functions without arguments when uniq
-->
<para>
Allow the specification of a function name without arguments in <acronym>DDL</>
commands, when unique (Peter Eisentraut)
</para>
<para>
For example, allow <link linkend="SQL-DROPFUNCTION"><command>DROP FUNCTION</></> on a function name without arguments if
there is only one function with that name. This is required by the <acronym>SQL</>
standard.
</para>
</listitem>
<listitem>
<!--<listitem>
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-06 [583f6c414] Allow dropping multiple functions at once
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-14 [aefeb6874] Allow referring to functions without arguments when uniq-->
<para>
Allow multiple functions, operators, and aggregates to be dropped with a
single <command>DROP</> command (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-03-20 [b6fb534f1] Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPP
-->
<para>
Add <literal>IF NOT EXISTS</> for <link linkend="SQL-CREATESERVER"><command>CREATE SERVER</></> and
<link linkend="SQL-CREATEUSERMAPPING"><command>CREATE USER MAPPING</></> (Anastasia
Lubennikova)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-02-15 [6d16ecc64] Add CREATE COLLATION IF NOT EXISTS clause
-->
<para>
Add <literal>IF NOT EXISTS</> clause to <link linkend="SQL-CREATECOLLATION"><command>CREATE COLLATION</></> (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2017-03-25 [70adf2fbe] Make VACUUM VERBOSE report the number of skipped frozen
-->
<para>
Have <link linkend="SQL-VACUUM"><command>VACUUM VERBOSE</></> report the number of skipped frozen pages (Masahiko
Sawada)
</para>
<para>
This information is also included in <xref linkend="guc-log-autovacuum-min-duration"> output.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-16 [d43a619c6] Fix check_srf_call_placement() to handle VALUES cases co
-->
<para>
Fix <function>check_srf_call_placement()</> to handle <command>VALUES</> cases correctly (Tom
Lane)
</para>
<para>
NEED TEXT.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Data Types</title>
<itemizedlist>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2017-03-15 [c7a9fa399] Add support for EUI-64 MAC addresses as macaddr8
-->
<para>
Add support for <acronym>EUI-64</> <acronym>MAC</> addresses as <link linkend="datatype-macaddr8"><type>MACADDR8</></> (Haribabu Kommi)
</para>
<para>
This complements support for <acronym>EUI-48</> <acronym>MAC</> addresses as <type>macaddr</>.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-04-06 [321732705] Identity columns
-->
<para>
Add <link linkend="SQL-CREATETABLE">identity columns</> for assigning a numeric value to columns on insert
(Peter Eisentraut)
</para>
<para>
These are similar to <type>SERIAL</> columns, but are <acronym>SQL</> standard compliant.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-07 [0ab9c56d0] Support renaming an existing value of an enum type.
-->
<para>
Allow <link linkend="datatype-enum"><type>ENUM</></> values to be renamed (Dagfinn Ilmari Manns&aring;ker)
</para>
<para>
This uses the syntax <link linkend="SQL-ALTERTABLE"><command>ALTER TYPE ... RENAME VALUE</></>.
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-02-22 [502a3832c] Correctly handle array pseudotypes in to_json and to_jso
-->
<para>
Properly treat array pseudotypes (<type>anyarray</>) as arrays in <link linkend="functions-json-creation-table"><function>to_json()</></> and <function>to_jsonb()</> (Andrew
Dunstan)
</para>
<para>
Previously "anyarray" values were converted to <type>JSON</> strings.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-01-17 [323b96aa3] Register missing money operators in system catalogs
-->
<para>
Add <link linkend="datatype-money"><type>MONEY</></> operators for multiplication and division with <type>INT8</> values
(Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-14 [656df624c] Add overflow checks to money type input function
-->
<para>
More strictly check the <type>MONEY</> type for overflow operations (Peter
Eisentraut)
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Functions</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-17 [cf9b0fea5] Implement regexp_match(), a simplified alternative to re
-->
<para>
Add simplified <link linkend="functions-posix-regexp"><function>regexp_match()</></> function (Emre Hasegeli)
</para>
<para>
Similar to <function>regexp_matches()</>, but only returns results from the first
match so it is easier use for simple cases.
</para>
</listitem>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2017-03-08 [fcec6caaf] Support XMLTABLE query expression
-->
<para>
Add support for converting <type>XML</>-formatted data into a row set (Pavel
Stehule, &Aacute;lvaro Herrera)
</para>
<para>
This is done by referencing the new <link linkend="functions-xml-processing-xmltable"><function>XMLTABLE</></> function.
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-01-18 [d00ca333c] Implement array version of jsonb_delete and operator
-->
<para>
Add version of jsonb's <link linkend="functions-jsonb-op-table">delete operator</> that takes an array of keys to delete
(Magnus Hagander)
</para>
<para>
The <type>JSONB</> delete operator also now supports arrays.
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-04-06 [cf35346e8] Make json_populate_record and friends operate recursivel
-->
<para>
Improve <link linkend="functions-json-processing-table"><function>json_populate_record</></> and friends operate recursively (Nikita
Glukhov)
</para>
<para>
CLARIFY
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-08-23 [86f31695f] Add txid_current_ifassigned().
-->
<para>
Add function <link linkend="functions-txid-snapshot"><function>txid_current_ifassigned()</></> to return <literal>NULL</> if no transaction
id has been assigned (Craig Ringer)
</para>
<para>
This is different from <link linkend="functions-txid-snapshot"><function>txid_current()</></>, which always returns a
transaction id by assigning one if necessary. This can be also run on
standby servers.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-03-24 [857ee8e39] Add a txid_status function.
-->
<para>
Add function <link linkend="functions-txid-snapshot"><function>txid_status()</></> to check if a transaction was committed
(Craig Ringer)
</para>
<para>
This is useful for checking after an abrupt disconnection if your
previous transaction committed and you just didn't receive the
acknowledgement.
</para>
</listitem>
<listitem>
<!--
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2017-01-19 [30bcebbdc] Allow negative years in make_date to represent BC years
-->
<para>
Allow <link linkend="functions-formatting-table"><function>make_date()</></> to interpret negative years as <acronym>BC</> years (&Aacute;lvaro
Herrera)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-28 [d3cd36a13] Make to_timestamp() and to_date() range-check fields of
-->
<para>
Have <function>to_timestamp()</> and <function>to_date()</> check check input values for validity
(Artur Zakirov)
</para>
<para>
Previously <function>to_date('2009-06-40','YYYY-MM-DD')</> was accepted and returned
'2009-07-10'. It will now generate an error.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Server-Side Languages</title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-27 [70ec3f1f8] PL/Python: Add cursor and execute methods to plan object
-->
<para>
Allow the PL/Python plan object to call cursor and execute methods
(Peter Eisentraut)
</para>
<para>
This is a more object oriented style.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-12-13 [55caaaeba] Improve handling of array elements as getdiag_targets an
-->
<para>
Allow PL/pgSQL's <command>GET DIAGNOSTICS</> to retrieve values into array elements
(Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-08 [1833f1a1c] Simplify code by getting rid of SPI_push, SPI_pop, SPI_r
-->
<para>
Remove <acronym>SPI</> functions <function>SPI_push()</>, <function>SPI_pop()</>, <function>SPI_restore_connection()</> as
unnecessary (Tom Lane)
</para>
<para>
Their functionality now happens automatically. Also, <function>SPI_palloc()</> now
requires an active connection.
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="pltcl">PL/Tcl</></title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-06 [26abb50c4] Support PL/Tcl functions that return composite types and
-->
<para>
Allow PL/Tcl functions to return composite types and sets (Jim Nasby)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-11 [b58fd4a9c] Add a "subtransaction" command to PL/Tcl.
-->
<para>
Add a subtransaction command to PL/Tcl (Victor Wagner)
</para>
<para>
This allows PL/Tcl queries to fail without aborting the entire function.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-07 [0d2b1f305] Invent start_proc parameters for PL/Tcl.
-->
<para>
Add <acronym>GUC</>s to allow initialization routines to be called on PL/Tcl startup
(Tom Lane)
</para>
<para>
The <acronym>GUC</>s are <varname>pltcl.start_proc</> and <varname>pltclu.start_proc</>.
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Client Interfaces</title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-03 [274bb2b38] libpq: Allow connection strings and <acronym>URI</>s to specify mult
-->
<para>
Allow libpq to connect to <link linkend="libpq-connect-host">multiple specified</> host names (Robert Haas)
</para>
<para>
libpq will connect with the first responsive host name.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-29 [721f7bd3c] libpq: Add target_session_attrs parameter.
-->
<para>
Allow the libpq connection string to request a <link linkend="libpq-connect-target-session-attrs">read/write host</> (Victor
Wagner, Mithun Cy)
</para>
<para>
This is useful when multiple libpq host names are specified, and is
controlled by libpq connection parameter <option>target_session_attrs</>.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-24 [ba005f193] Allow password file name to be specified as a libpq conn
-->
<para>
Allow <link linkend="libpq-connect-passfile">password file name</> to be specified as a libpq connection parameter
(Julian Markwort)
</para>
<para>
Previously this could only be specified via an environment variable.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-16 [a7b5573d6] Remove separate version numbering for ecpg preprocessor.
-->
<para>
ecpg preprocessor version changed from 4.12 to 10 (Tom Lane)
</para>
<para>
The ecpg version now matches the Postgres distribution version number.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Client Applications</title>
<sect4>
<title><xref linkend="APP-PSQL"></title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-30 [e984ef586] Support \if ... \elif ... \else ... \endif in psql scrip
-->
<para>
Add conditional branch support to <application>psql</> (Corey Huinker)
</para>
<para>
The new syntax uses \if, \elif, \else, and \endif. This is particularly
helpful for scripting.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2017-03-07 [b2678efd4] psql: Add \gx command
-->
<para>
Add <application>psql</> \gx command to perform \g(execute) in expanded mode (\x)
(Christoph Berg)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-11-03 [a0f357e57] psql: Split up "Modifiers" column in \d and \dD
-->
<para>
Improve <application>psql</>'s \d (relation) and \dD (domain) commands to specify
collation, nullable, and default in separate columns (Peter Eisentraut)
</para>
<para>
Previous they were in a single "Modifiers" column.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-04-01 [f833c847b] Allow psql variable substitution to occur in backtick co
-->
<para>
Expand <application>psql</> colon variables when used in backtick-executed contexts (Tom Lane)
</para>
<para>
This is particularly useful for the new <application>psql</> conditional branch support
commands.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-30 [511ae628f] Make psql reject attempts to set special variables to in
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-02-01 [86322dc7e] Improve psql's behavior for \set and \unset of its contr
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-02-02 [fd6cd6980] Clean up psql's behavior for a few more control variable
-->
<para>
Prevent <application>psql</> special variables from being set to invalid values (Daniel
V&eacute;rit&eacute;, Tom Lane)
</para>
<para>
Previously setting <application>psql</> special variables to invalid values produced the
default behavior. \set and \unset of special variables now sets them to
"on" and its default value, rather than a zero-length string and
undefined. Also have \set always display values for <literal>FETCH_COUNT</>,
<literal>HISTSIZE</>, and <literal>IGNOREEOF</>.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-04-02 [5dbc5da11] Fix behavior of psql's \p to agree with \g, \w, etc.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-04-02 [68dba97a4] Document psql's behavior of recalling the previously exe
-->
<para>
Fix <application>psql</> \p to always print what would be executed by \g or \w (Daniel
V&eacute;rit&eacute;)
</para>
<para>
Previously \p didn't properly print the reverted-to command after a
buffer contents reset. CLARIFY?
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-18 [49917dbd7] Improve psql's tab completion for ALTER EXTENSION foo UP
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-18 [8019b5a89] Improve psql's tab completion for \l.
Author: Kevin Grittner <kgrittn@postgresql.org>
2016-09-01 [76f9dd4fa] Improve tab completion for BEGIN &amp; START|SET TRANSACTION
Author: Kevin Grittner <kgrittn@postgresql.org>
2016-09-11 [52803098a] psql tab completion for CREATE DATABASE ... TEMPLATE ...
Author: Kevin Grittner <kgrittn@postgresql.org>
2016-09-12 [63c1a8719] Fix recent commit for tab-completion of database templat
Author: Robert Haas <rhaas@postgresql.org>
2016-11-03 [1d15d0db5] psql: Tab-complete LOCK [TABLE] ... IN {ACCESS|ROW|SHARE
Author: Kevin Grittner <kgrittn@postgresql.org>
2016-11-04 [927d7bb6b] Improve tab completion for CREATE TRIGGER.
Author: Robert Haas <rhaas@postgresql.org>
2016-11-08 [577f0bdd2] psql: Tab completion for renaming enum values.
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-01 [b5a388392] psql: Add tab completion for DEALLOCATE
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-16 [d7d77f382] psql: Add completion for \help DROP|ALTER
-->
<para>
Improve <application>psql</>'s tab completion (Jeff Janes, Ian Barwick, Andreas Karlsson,
Sehrope Sarkuni, Thomas Munro, Kevin Grittner, Dagfinn Ilmari Manns&aring;ker)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><xref linkend="pgbench"></title>
<itemizedlist>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-11-09 [41124a91e] pgbench: Allow the transaction log file prefix to be cha
-->
<para>
Add pgbench option <option>--log-prefix</> to control the log file prefix (Masahiko
Sawada)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-20 [cdc2a7047] Allow backslash line continuations in pgbench's meta com
-->
<para>
Allow pgbench's meta commands to span multiple lines via a
line-terminating backslash (Fabien Coelho)
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Server Applications</title>
<itemizedlist>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-01-17 [cada1af31] Add compression support to pg_receivexlog
-->
<para>
Add <link linkend="app-pgreceivewal"><application>pg_receivewal</></> option <option>-Z</>/<option>--compress</> to support compression (Michael
Paquier)
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-01-04 [7c030783a] Add pg_recvlogical \-\-endpos=LSN
-->
<para>
Add <link linkend="app-pgrecvlogical"><application>pg_recvlogical</></> option (<option>--endpos</>) to specify the ending position
(Craig Ringer)
</para>
<para>
This complements the existing <option>--startpos</> option.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-10-19 [5d58c07a4] initdb pg_basebackup: Rename \-\-noxxx options to \-\-no-xxx
-->
<para>
Rename <link linkend="APP-INITDB"><application>initdb</></> options <option>--noclean</> and <option>--nosync</> to be spelled <option>--no-clean</>
and <option>--no-sync</> (Vik Fearing, Peter Eisentraut)
</para>
<para>
The old spellings are still supported.
</para>
</listitem>
</itemizedlist>
<sect4>
<title><link linkend="APP-PGDUMP"><application>pg_dump</></>, <link linkend="APP-PG-DUMPALL"><application>pg_dumpall</></>.
<link linkend="APP-PGRESTORE"><application>pg_restore</></></title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-20 [46b55e7f8] pg_restore: Add -N option to exclude schemas
-->
<para>
Allow <application>pg_restore</> to exclude schemas (Michael Banck)
</para>
<para>
This added a new <option>-N</>/<option>--exclude-schema</> option.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2016-11-29 [4fafa579b] Add \-\-no-blobs option to pg_dump
-->
<para>
Add <application>pg_dump</> <option>--no-blobs</> option to
<application>pg_dump</> (Guillaume Lelarge)
</para>
<para>
This suppresses the dumping of large objects.
</para>
</listitem>
<listitem>
<!--
Author: Simon Riggs <simon@2ndQuadrant.com>
2017-03-07 [9a83d56b3] Allow pg_dumpall to dump roles w/o user passwords
-->
<para>
Add <application>pg_dumpall</> option <option>--no-role-passwords</> to dump roles without user
passwords (Robins Tharakan, Simon Riggs)
</para>
<para>
This allows easier dumping for less-privileged users.
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-03-22 [96a7128b7] Sync pg_dump and pg_dumpall output
-->
<para>
Issue fsync on the output files generated by <application>pg_dump</> and <application>pg_dumpall</>(Michael Paquier)
</para>
<para>
This can be disabled with the <option>--no-sync</> option.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><xref linkend="app-pgbasebackup"></title>
<itemizedlist>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2016-10-23 [56c7d8d45] Allow pg_basebackup to stream transaction log in tar mod
Author: Fujii Masao <fujii@postgresql.org>
2016-12-21 [ecbdc4c55] Forbid invalid combination of options in pg_basebackup.
-->
<para>
Allow <application>pg_basebackup</> to stream transaction log in tar mode (Magnus
Hagander)
</para>
<para>
The <acronym>WAL</> will be stored in a separate tar file from the base backup.
</para>
</listitem>
<listitem>
<!--
Author: Magnus Hagander <magnus@hagander.net>
2017-01-16 [e7b020f78] Make pg_basebackup use temporary replication slots
-->
<para>
Make <application>pg_basebackup</> use temporary replication slots (Magnus Hagander)
</para>
<para>
Temporary replication slots will be used by default when <application>pg_basebackup</>
uses wal streaming with default options.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-29 [bc34223bc] pg_basebackup pg_receivexlog: Issue fsync more carefully
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-29 [6ed2d8584] pg_basebackup: Add - option-->
<para>
Improve fsync handling of <application>pg_basebackup</> and <application>pg_receivewal</> (Michael Paquier)
</para>
<para>
Also add <option>-nosync</> option to disable fsync.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-28 [6ad8ac602] Exclude additional directories in pg_basebackup
-->
<para>
Improve <application>pg_basebackup</>'s handling of which directories to skip (David
Steele)
</para>
<para>
Also improve the documentation of skipped directories.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title><application><xref linkend="app-pg-ctl"></></title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-09-21 [e7010ce47] pg_ctl: Add wait option to promote action
-->
<para>
Add wait option for <application><xref linkend="app-pg-ctl"></>'s promote operation (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-10-19 [0be22457d] pg_ctl: Add long options for -w and -W
-->
<para>
Add log options for <application>pg_ctl</> wait (<option>--wait</>) and no-wait (<option>--no-wait</>) (Vik Fearing)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-10-19 [caf936b09] pg_ctl: Add long option for -o
-->
<para>
Add long options flag for <application>pg_ctl</> <literal>options</> (Peter Eisentraut)
</para>
<para>
It is called <option>--options</>.
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Source Code</title>
<itemizedlist>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-23 [eccfef81e] ICU support
-->
<para>
Allow the <link linkend="configure"><acronym>ICU</></> library to optionally be used for collation support (Peter
Eisentraut)
</para>
<para>
The <acronym>ICU</> library has versioning that allows detection of collation
changes between versions. It is enabled via configure option
<option>--with-icu</>. The default still uses the operating system's native
collation library.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-08-15 [ca9112a42] Stamp HEAD as 10devel.
-->
<para>
New major version numbering (Peter Eisentraut, Tom Lane)
</para>
<para>
Major versions will now increase just the first number, and minor
releases will increase just the second number. A third number will no
longer be used in Postgres version numbers.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-04 [c8ead2a39] Provide DLLEXPORT markers for C functions via PG_FUNCTIO
-->
<para>
Automatically mark all <link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></> functions as <literal>DLLEXPORT</>-ed on
<systemitem class="osname">Windows</> (Laurenz Albe)
</para>
<para>
If third-party code is using <literal>extern</> function declarations, they should
also add <literal>DLLEXPORT</> markers to those declarations.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-12-02 [13e14a78e] Management of free memory pages.
Author: Robert Haas <rhaas@postgresql.org>
2016-12-02 [13df76a53] Introduce dynamic shared memory areas.
Author: Robert Haas <rhaas@postgresql.org>
2016-12-19 [e13029a5c] Provide a DSA area for all parallel queries.
-->
<para>
Allow shared memory to be dynamically allocated (Thomas Munro, Robert Haas)
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-02-27 [58b25e981] Add "Slab" MemoryContext implementation for efficient eq
-->
<para>
Add slab-like memory allocator for efficient fixed-size allocations
(Tomas Vondra)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-10-09 [ecb0d20a9] Use unnamed POSIX semaphores, if available, on Linux and
-->
<para>
Use <acronym>POSIX</> semaphores rather than SysV semaphores on <systemitem
class="osname">Linux</> and <systemitem class="osname">FreeBSD</>
(Tom Lane)
</para>
</listitem>
<listitem>
<para>
This avoids some limits on SysV semaphores usage.
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-04-07 [e8fdbd58f] Improve 64bit atomics support.
-->
<para>
Improve support for 64-bit atomics (Andres Freund)
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-03-10 [f8f1430ae] Enable 64 bit atomics on ARM64.
-->
<para>
Enable 64-bit atomic operations on <acronym>ARM64</> (Roman Shaposhnik)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-01-02 [1d63f7d2d] Use clock_gettime(), if available, in instr_time measure
-->
<para>
Switch to using <function>clock_gettime()</>, if available, for duration measurements
(Tom Lane)
</para>
<para>
<function>gettimeofday()</> is used if <function>clock_gettime()</> is not available.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-12-05 [fe0a0b599] Replace PostmasterRandom() with a stronger source, secon
-->
<para>
Add more robust random number generators to be used for
cryptographic secure uses (Magnus Hagander, Michael Paquier, Heikki
Linnakangas)
</para>
<para>
If no strong random number generator can be found, configure will fail
unless the <link linkend="configure">configure</> <option>--disable-strong-random</> is used. However, with
this option, pgcrypto functions requiring a strong random number
generator will be disabled.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-08-18 [e8306745e] doc: Speed up XSLT builds
Author: Peter Eisentraut <peter_e@gmx.net>
2016-08-24 [0e4cc1fc5] doc: Fix XSLT speedup with older upstream stylesheet ver
-->
<para>
Overhaul documentation <link linkend="docguide-toolsets">build process</> (Alexander Lakhin, Alexander Law)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-04-06 [510074f9f] Remove use of Jade and DSSSL
-->
<para>
Use <acronym>XSLT</> to build the Postgres documentation (Peter Eisentraut)
</para>
<para>
Previously <application>Jade</>, <acronym>DSSSL,</> and <application>JadeTex</> were used.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2016-11-15 [e36ddab11] Build HTML documentation using XSLT stylesheets by defau
-->
<para>
Build <acronym>HTML</> documentation using <acronym>XSLT</> stylesheets by default (Peter
Eisentraut)
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Additional Modules</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-29 [8e91e12bc] Allow contrib/file_fdw to read from a program, like COPY
-->
<para>
Allow <link linkend="file-fdw"><application>file_fdw</></> to read from program output as well as files (Corey Huinker, Adam Gomaa)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-10-21 [7012b132d] postgres_fdw: Push down aggregates to remote servers.
-->
<para>
Push aggregates to foreign data wrapper servers, where possible (Jeevan
Chalke, Ashutosh Bapat)
</para>
<para>
This reduces the amount of data that must be passed from the foreign
data wrapper server, and offloads aggregate computation from the
requesting server. The <link linkend="postgres-fdw"><application>postgres_fdw</></> is able to perform this
optimization.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-08-26 [ae025a159] Support OID system column in postgres_fdw.
-->
<para>
Properly support <type>OID</> columns in <application>postgres_fdw</> tables (Etsuro Fujita)
</para>
<para>
Previously <type>OID</> columns always returned zeros.
</para>
</listitem>
<listitem>
<!--
Author: Andrew Dunstan <andrew@dunslane.net>
2017-03-21 [f7946a92b] Add btree_gist support for enum types.
-->
<para>
Allow <link linkend="btree-gist"><application>btree_gist</></> and <link linkend="btree-gin"><application>btree_gin</></> to index enum types
(Andrew Dunstan)
</para>
<para>
This allows enums to be used in exclusion constraints.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-11-29 [11da83a0e] Add uuid to the set of types supported by contrib/btree_
-->
<para>
Add indexing support to <application>btree_gist</> for the <type>UUID</> data type (Paul
Jungwirth)
</para>
</listitem>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2017-03-09 [3717dc149] Add amcheck extension to contrib.
-->
<para>
Add <link linkend="amcheck"><application>amcheck</></> which can check the validity of btree indexes (Peter
Geoghegan)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2017-03-27 [a6f22e835] Show ignored constants as "$N" rather than "?" in pg_sta
-->
<para>
Show ignored constants as <literal>$N</> rather than <literal>?</> in
<link linkend="pgstatstatements"><application>pg_stat_statements</></> (Lukas Fittl)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2016-09-27 [f31a931fa] Improve contrib/cube's handling of zero-D cubes, infinit
-->
<para>
Improve <link linkend="cube"><application>cube</></>'s handling of zero-dimensional cubes (Tom Lane)
</para>
<para>
This also improves handling of <literal>infinite</> and <literal>NaN</> values.
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2016-09-29 [6e654546f] Don't bother to lock bufmgr partitions in pg_buffercache
-->
<para>
Allow <link linkend="pgbuffercache"><application>pg_buffercache</></> to run without fewer locks (Ivan Kartyshov)
</para>
<para>
This allows it be less disruptive when run on production systems.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-03 [e759854a0] pgstattuple: Add pgstathashindex.
-->
<para>
Add <function>pgstathashindex()</> function to <link linkend="pgstattuple"><application>pgstattuple</></> to view hash index
statistics (Ashutosh Sharma)
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2016-09-29 [fd321a1df] Remove superuser checks in pgstattuple
-->
<para>
Allow <link linkend="pgstattuple"><application>pgstattuple</></> to use <command>GRANT</> permissions (Stephen Frost)
</para>
<para>
This allows non-superusers to run these functions if permissions allow.
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2016-10-28 [d4b5d4cad] pgstattuple: Don't take heavyweight locks when examining
-->
<para>
Reduce locking when <link linkend="pgstattuple"><application>pgstattuple</></> examines hash indexes (Amit Kapila)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-03-17 [fef2bcdcb] pageinspect: Add page_checksum function
-->
<para>
Add <function>page_checksum()</> function to <link linkend="pageinspect"><application>pageinspect</></> (Tomas Vondra)
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2017-02-02 [08bf6e529] pageinspect: Support hash indexes.
-->
<para>
Add hash index support to <link linkend="pageinspect"><application>pageinspect</></> (Jesper Pedersen, Ashutosh
Sharma)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter_e@gmx.net>
2017-04-04 [193f5f9e9] pageinspect: Add bt_page_items function with bytea argum
-->
<para>
Add <link linkend="pageinspect"><application>pageinspect</></> function <function>bt_page_items()</> to print page items
from a page image (Tomas Vondra)
</para>
<para>
Previously only block numbers were supported.
</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>
...@@ -74,6 +74,7 @@ For new features, add links to the documentation sections. ...@@ -74,6 +74,7 @@ For new features, add links to the documentation sections.
The reason for splitting the release notes this way is so that appropriate The reason for splitting the release notes this way is so that appropriate
subsets can easily be copied into back branches. subsets can easily be copied into back branches.
--> -->
&release-10;
&release-9.6; &release-9.6;
&release-9.5; &release-9.5;
&release-9.4; &release-9.4;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment