aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/filelist.sgml1
-rw-r--r--doc/src/sgml/release-11.sgml2630
-rw-r--r--doc/src/sgml/release.sgml1
3 files changed, 2632 insertions, 0 deletions
diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 56b8da04488..f010cd4c3bc 100644
--- a/doc/src/sgml/filelist.sgml
+++ b/doc/src/sgml/filelist.sgml
@@ -166,6 +166,7 @@
<!ENTITY sourcerepo SYSTEM "sourcerepo.sgml">
<!ENTITY release SYSTEM "release.sgml">
+<!ENTITY release-11 SYSTEM "release-11.sgml">
<!ENTITY release-10 SYSTEM "release-10.sgml">
<!ENTITY release-9.6 SYSTEM "release-9.6.sgml">
<!ENTITY release-9.5 SYSTEM "release-9.5.sgml">
diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml
new file mode 100644
index 00000000000..1b5db2912c9
--- /dev/null
+++ b/doc/src/sgml/release-11.sgml
@@ -0,0 +1,2630 @@
+<!-- doc/src/sgml/release-11.sgml -->
+<!-- See header comment in release.sgml about typical markup -->
+
+ <sect1 id="release-11">
+ <title>Release 11</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2018-??-?? (CURRENT AS OF 2018-05-01)</para>
+ </formalpara>
+
+ <sect2>
+ <title>Overview</title>
+
+ <para>
+ Major enhancements in <productname>PostgreSQL</productname> 11 include:
+ </para>
+
+ <!-- Items in this list summarize one or more items below -->
+
+ <itemizedlist>
+
+ <listitem><para>XXX</para></listitem>
+ </itemizedlist>
+
+ <para>
+ The above items are explained in more detail in the sections below.
+ </para>
+
+ </sect2>
+
+ <sect2>
+
+ <title>Migration to Version 11</title>
+
+ <para>
+ A dump/restore using <xref linkend="app-pg-dumpall"/>, or use of <xref
+ linkend="pgupgrade"/>, is required for those wishing to migrate data
+ from any previous release.
+ </para>
+
+ <para>
+ Version 11 contains a number of changes that may affect compatibility
+ with previous releases. Observe the following incompatibilities:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-01-22 [b3f840120] Move handling of database properties from pg_dumpall int
+2018-01-23 [160a4f62e] In pg_dump, force reconnection after issuing ALTER DATAB
+2018-01-25 [0d4e6ed30] Clean up some aspects of pg_dump/pg_restore item-selecti
+-->
+
+ <para>
+ Have pg_dump dump all aspects of a database (Haribabu Kommi)
+ </para>
+
+ <para>
+ Previously database attributes like GRANT/REVOKE permissions and ALTER
+ DATABASE SET and ALTER ROLE IN DATABASE SET variable settings were only
+ dumped by pg_dumpall. Now pg_dump --create and pg_restore --create
+ will restore all database aspects. pg_dumpall -g will now only output
+ role and tablespace-related attributes. pg_dumpall's output (without
+ -g) is unchanged.
+ </para>
+
+ <para>
+ pg_dump and pg_restore, without --clean, no longer dump/restore database
+ comments and security labels.
+ </para>
+
+ <para>
+ pg_dumpall --clean now restores the "postgres" and "template1" databases
+ with the original locale and encoding settings.
+ </para>
+
+ <para>
+ A restore of pg_dumpall will now create databases with their original
+ locale and encoding, and will fail if the creation fails. Previously
+ CREATE DATABASE would be dumped without such specifications if the
+ database locale and encoding matched the old cluster's defaults.
+ </para>
+
+ <para>
+ DID I GET EVERYTHING?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-16 [9b5140fb5] Correct representation of foreign tables in information
+-->
+
+ <para>
+ Correct information schema column tables.table_type to return 'FOREIGN'
+ instead of 'FOREIGN TABLE' (Peter Eisentraut)
+ </para>
+
+ <para>
+ This new output matches the SQL standard.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-20 [be87b70b6] Sync process names between ps and pg_stat_activity
+-->
+
+ <para>
+ Change the ps process display labels to match the
+ pg_stat_activity.backend_type labels (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-17 [e87d4965b] Prevent to_number() from losing data when template doesn
+-->
+
+ <para>
+ Prevent to_number() from consuming characters when the template
+ separator does not match (Oliver Ford)
+ </para>
+
+ <para>
+ Specifically, SELECT to_number('1234', '9,999') used to return '134'. It
+ will now return '1234'. "L" and "TH" now only consume characters that
+ are not digits, positive/negative signs, decimal points, and commas.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-18 [976a1a48f] Improve to_date/to_number/to_timestamp behavior with mul
+-->
+
+ <para>
+ Fix to_date(), to_number(), and to_timestamp() to skip a character for
+ each template character (Tom Lane)
+ </para>
+
+ <para>
+ Previously _bytes_ were skipped.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-18 [63ca86318] Fix quoted-substring handling in format parsing for to_c
+-->
+
+ <para>
+ Adjust the handling of backslashes inside double-quotes in template
+ strings for to_char(), to_number(), and to_timestamp().
+ </para>
+
+ <para>
+ Such a backslash now escapes the character after it, particularly
+ a double-quote or another backslash.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-27 [1944cdc98] libpq: PQhost to return active connected host or hostadd
+-->
+
+ <para>
+ Have libpq's PQhost() always return the actual connected host (Hari
+ Babu)
+ </para>
+
+ <para>
+ Previously PQhost() often returned the supplied host parameters, which
+ could contain several hosts. The same is true of PQport(), which now
+ returns the actual port number, not the multiple supplied port numbers.
+ ACCURATE?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-14 [f66e8bf87] Remove pg_class.relhaspkey
+-->
+
+ <para>
+ Remove relhaspkey column from system table pg_class (Peter Eisentraut)
+ </para>
+
+ <para>
+ Applications needing to check for a primary key should consult pg_index.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-02 [fd1a421fe] Add prokind column, replacing proisagg and proiswindow
+-->
+
+ <para>
+ Replace system table pg_proc's proisagg and proiswindow with prokind
+ (Peter Eisentraut)
+ </para>
+
+ <para>
+ This new column more clearly identifies functions, procedures,
+ aggregates, and window functions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-09 [ae20b23a9] Refactor permissions checks for large objects.
+2017-11-14 [6d776522d] Document changes in large-object privilege checking.
+-->
+
+ <para>
+ Cause large object permission checks to happen on large object open,
+ lo_open(), not read/write (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-06 [11523e860] Support new default roles with adminpack
+-->
+
+ <para>
+ Remove deprecated contrib/adminpack functions pg_file_read(),
+ pg_file_length(), and pg_logfile_rotate() (Stephen Frost)
+ </para>
+
+ <para>
+ These function are now present by default. Old adminpack installs will
+ continue to have access to these functions until they are updated via
+ ALTER EXTENSION ... UPDATE.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-26 [fb8697b31] Avoid unnecessary use of pg_strcasecmp for already-downc
+-->
+
+ <para>
+ Honor the capitalization of double-quoted command options (Daniel
+ Gustafsson)
+ </para>
+
+ <para>
+ Previously index options names like ("FillFactor" = 50) were
+ automatically lower-cased. This quoted capitalization will now generate
+ an error.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-26 [4971d2a32] Remove the obsolete WITH clause of CREATE FUNCTION.
+-->
+
+ <para>
+ Remove WITH clause in CREATE FUNCTION (Michael Paquier)
+ </para>
+
+ <para>
+ Postgres has long supported a more standard-compliant syntax for this
+ capability.
+ </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>Partitioning</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-02-02 [9aef17316] Refactor code for partition bound searching
+2018-02-23 [f724022d0] Revise API for partition bound search functions.
+2018-04-06 [9fdb675fc] Faster partition pruning
+2018-04-23 [055fb8d33] Add GUC enable_partition_pruning
+-->
+
+ <para>
+ Allow faster partition elimination during query processing (Amit Langote,
+ David Rowley, Dilip Kumar)
+ </para>
+
+ <para>
+ This speeds access to partitioned tables with many partitions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-07 [499be013d] Support partition pruning at execution time
+-->
+
+ <para>
+ Allow partition elimination during query execution (David Rowley, Beena
+ Emerson)
+ </para>
+
+ <para>
+ Previously partition elimination could only happen at planning time,
+ meaning many joins and prepared queries could not use partition
+ elimination.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-09 [1aba8e651] Add hash partitioning.
+-->
+
+ <para>
+ Allow the creation of partitions based on hashing a key (Amul Sul)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-19 [2f1784410] Allow UPDATE to move rows between partitions.
+-->
+
+ <para>
+ Allow updated rows to automatically move to new partitions based on the
+ new row contents (Amit Khandekar)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-08 [6f6b99d13] Allow a partitioned table to have a default partition.
+2018-04-11 [72cf7f310] Fix ALTER TABLE .. ATTACH PARTITION ... DEFAULT
+-->
+
+ <para>
+ Allow partitioned tables to have a default partition (Jeevan Ladhe,
+ Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas)
+ </para>
+
+ <para>
+ The default partition can store rows that don't match any of the other
+ defined partitions, and is searched accordingly.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-02-19 [eb7ed3f30] Allow UNIQUE indexes on partitioned tables
+2018-03-26 [555ee77a9] Handle INSERT .. ON CONFLICT with partitioned tables
+-->
+
+ <para>
+ Allow UNIQUE indexes on partitioned tables if the partition key
+ guarantees uniqueness (&Aacute;lvaro Herrera, Amit Langote)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-19 [8b08f7d48] Local partitioned indexes
+-->
+
+ <para>
+ Allow indexes on a partitioned table to be automatically created in any
+ child partitions (&Aacute;lvaro Herrera)
+ </para>
+
+ <para>
+ The new command ALTER INDEX ATTACH PARTITION allows indexes to be attached
+ to partitions. This does not behave as a global index since the
+ contents are private to each index. WARN WHEN USING AN EXISTING INDEX?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-04 [3de241dba] Foreign keys on partitioned tables
+-->
+
+ <para>
+ Allow foreign keys on partitioned tables (&Aacute;lvaro Herrera)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-06 [3d956d956] Allow insert and update tuple routing and COPY for forei
+-->
+
+ <para>
+ Allow INSERTs, UPDATEs, and COPY on partitioned tables to properly route
+ rows to foreign partitions (Etsuro Fujita, Amit Langote)
+ </para>
+
+ <para>
+ This is supported by postgres_fdw foreign tables.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-23 [86f575948] Allow FOR EACH ROW triggers on partitioned tables
+-->
+
+ <para>
+ Allow FOR EACH ROW triggers on partitioned tables (&Aacute;lvaro Herrera)
+ </para>
+
+ <para>
+ Creation of a trigger on partitioned tables automatically creates
+ triggers on all partition tables, and on newly-created ones. This also
+ allows deferred unique constraints on partitioned tables.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-15 [e139f1953] Assorted preparatory refactoring for partition-wise join
+2017-10-06 [f49842d1e] Basic partition-wise join functionality.
+2018-02-16 [2fb1abaeb] Rename enable_partition_wise_join to enable_partitionwis
+-->
+
+ <para>
+ Allow equality joins between partitioned tables with identically
+ partitioned child tables to join the child tables directly (Ashutosh
+ Bapat)
+ </para>
+
+ <para>
+ This features is disabled by default but can be enabled by changing
+ enable_partitionwise_join.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-26 [9fd8b7d63] Factor some code out of create_grouping_paths.
+2018-03-22 [e2f1eb0ee] Implement partition-wise grouping/aggregation.
+-->
+
+ <para>
+ Perform aggregation on each partition, and then merge the results
+ (Jeevan Chalke, Ashutosh Bapat, Robert Haas)
+ </para>
+
+ <para>
+ This features is disabled by default but can be enabled by changing
+ enable_partitionwise_aggregate.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-02 [7e0d64c7a] postgres_fdw: Push down partition-wise aggregation.
+-->
+
+ <para>
+ Allow postgres_fdw to push down aggregates to foreign tables that are
+ partitions (Jeevan Chalke)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Parallel Queries</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-02-02 [9da0cc352] Support parallel btree index builds.
+-->
+
+ <para>
+ Allow indexes to be built in parallel (Peter
+ Geoghegan, Rushabh Lathia, Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-21 [180428404] Add parallel-aware hash joins.
+-->
+
+ <para>
+ Allow hash joins to be performed in parallel using a shared hash table
+ (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-05 [ab7271677] Support Parallel Append plan nodes.
+2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
+-->
+
+ <para>
+ Allow UNION to run each SELECT in parallel if the individual SELECTs cannot be
+ parallelized (Amit Khandekar, Robert Haas, Amul Sul)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+same commits as above
+2017-12-05 [ab7271677] Support Parallel Append plan nodes.
+2018-03-22 [88ba0ae2a] Consider Parallel Append of partial paths for UNION [ALL
+-->
+
+ <para>
+ Allow partition scans to more efficiently use parallel workers (Amit Khandekar, Robert
+ Haas, Amul Sul)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-29 [3452dc524] Push tuple limits through Gather and Gather Merge.
+-->
+
+ <para>
+ Allow LIMIT to be passed to parallel workers (Robert Haas, Tom Lane)
+ </para>
+
+ <para>
+ This allows workers to reduce returned results and use targeted index
+ scans.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-15 [e5253fdc4] Add parallel_leader_participation GUC.
+-->
+
+ <para>
+ Add server option parallel_leader_participation to control if the leader
+ executes subplans (Thomas Munro)
+ </para>
+
+ <para>
+ The default is enabled, meaning the leader will execute subplans.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-05 [e9baa5e9f] Allow DML commands that create tables to use parallel qu
+-->
+
+ <para>
+ Allow parallelization of commands CREATE TABLE .. AS, SELECT INTO, and CREATE
+ MATERIALIZED VIEW (Haribabu Kommi)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-29 [bf11e7ee2] Propagate sort instrumentation from workers back to lead
+-->
+
+ <para>
+ Add reporting of parallel worker sort activity to EXPLAIN (Robert Haas, Tom Lane)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Indexes</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-04-07 [8224de4f4] Indexes with INCLUDE columns and their support in B-tree
+-->
+
+ <para>
+ Allow indexes to INCLUDE columns that are not part of the unique
+ constraint but are available for index-only scans (Anastasia
+ Lubennikova, Alexander Korotkov, Teodor Sigaev)
+ </para>
+
+ <para>
+ This is also useful for including columns that don't have btree support.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-26 [2b2727343] Optimize btree insertions for common case of increasing
+2018-04-10 [074251db6] Adjustments to the btree fastpath optimization.
+-->
+
+ <para>
+ Remember the highest btree index page to optimize future monotonically
+ increasing index additions (Pavan Deolasee, Peter Geoghegan)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-22 [7c75ef571] hash: Implement page-at-a-time scan.
+-->
+
+ <para>
+ Allow entire hash index pages to be scanned (Ashutosh Sharma)
+ </para>
+
+ <para>
+ Previously each hash index entry has to be locked and scanned
+ separately.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-27 [3ad55863e] Add predicate locking for GiST
+2018-03-30 [43d1ed60f] Predicate locking in GIN index
+2018-04-07 [b508a56f2] Predicate locking in hash indexes.
+-->
+
+ <para>
+ Add predicate locking for Hash, GiST and GIN indexes (Shubham Barai)
+ </para>
+
+ <para>
+ This reduces the likelyhood of serialization conflicts. ACCURATE?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-27 [c203d6cf8] Allow HOT updates for some expression indexes
+-->
+
+ <para>
+ Allow heap-only-tuple (HOT) updates for expression indexes when the
+ values of the expressions are unchanged (Konstantin Knizhnik)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ <sect5>
+ <title>SP-Gist</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-04-03 [710d90da1] Add prefix operator for TEXT type.
+-->
+
+ <para>
+ Add TEXT prefix operator ^@ which is supported by SP-GiST (Ildus
+ Kurbangaliev)
+ </para>
+
+ <para>
+ This is similar to using LIKE 'word%' with btree indexes, but is more efficient.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-25 [ff963b393] Add polygon opclass for SP-GiST
+-->
+
+ <para>
+ Allow polygons to be indexed with SP-GiST (Nikita Glukhov, Alexander
+ Korotkov)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-22 [854823fa3] Add optional compression method to SP-GiST
+-->
+
+ <para>
+ Allow SP-GiST indexes to optionally use compression (Teodor Sigaev,
+ Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect5>
+
+ </sect4>
+
+ <sect4>
+ <title>Optimizer</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-03-22 [b5db1d93d] Improve ANALYZE's strategy for finding MCVs.
+-->
+
+ <para>
+ Improve the selection of the optimizer statistics' most-common-values
+ (Jeff Janes, Dean Rasheed)
+ </para>
+
+ <para>
+ Previously most-common-values (MCV) were chosen based on their
+ significance compared to all column values. Now, MCV are chosen based
+ on their significance compared to the non-MCV values. This improves the
+ statistics for uniform (fewer) and non-uniform (more) distributions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-13 [7d08ce286] Distinguish selectivity of &lt; from &lt;= and &gt; from &gt;=.
+-->
+
+ <para>
+ Improve selectivity estimates for &gt;= and &lt;= when the constants are not
+ common values (Tom Lane)
+ </para>
+
+ <para>
+ Previously such cases used the same selectivity as &gt; and &lt;,
+ respectively. This change is particularly useful for BETWEEN with
+ small ranges.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-08 [8ec5429e2] Reduce "X = X" to "X IS NOT NULL", if it's easy to do so
+-->
+
+ <para>
+ Optimize var = var to var IS NOT NULL where equivalent (Tom Lane)
+ </para>
+
+ <para>
+ This leads to better selectivity estimates.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-29 [7ca25b7de] Fix neqjoinsel's behavior for semi/anti join cases.
+-->
+
+ <para>
+ Improve row count optimizer estimates for EXISTS and NOT EXISTS queries (Tom
+ Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-02 [7b6c07547] Teach planner to account for HAVING quals in aggregation
+-->
+
+ <para>
+ Add optimizer selectivity costs for HAVING clauses (Tom Lane)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>General Performance</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-03-21 [432bb9e04] Basic JIT provider and error handling infrastructure.
+2018-03-22 [b96d550eb] Support for optimizing and emitting code in LLVM JIT pro
+2018-03-22 [cc415a56d] Basic planner and executor integration for JIT.
+2018-03-26 [32af96b2b] JIT tuple deforming in LLVM JIT provider.
+2018-03-27 [f4f5845b3] Quick adaption of JIT tuple deforming to the fast defaul
+2018-03-28 [9370462e9] Add inlining support to LLVM JIT provider.
+-->
+
+ <para>
+ Add Just-In-time (JIT) compilation of plans run the by the executor
+(Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-01 [7c70996eb] Allow bitmap scans to operate as index-only scans when p
+-->
+
+ <para>
+ Allow bitmap scans to perform index-only scans when possible (Alexander
+ Kuzmenkov)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-29 [851a26e26] While vacuuming a large table, update upper-level FSM da
+2018-03-30 [c79f6df75] Do index FSM vacuuming sooner.
+-->
+
+ <para>
+ Update the free space map during vacuum (Claudio Freire)
+ </para>
+
+ <para>
+ This allows free space to be reused more quickly.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-01 [baaf272ac] Use group updates when setting transaction status in clo
+-->
+
+ <para>
+ Improve performance of committing multiple concurrent transactions (Amit Kapila)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-08 [84ad4b036] Reduce memory usage of targetlist SRFs.
+-->
+
+ <para>
+ Reduce memory usage for queries using set-returning functions in their
+ target lists (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-02-07 [1bc0100d2] postgres_fdw: Push down UPDATE/DELETE joins to remote se
+-->
+
+ <para>
+ Allow postgres_fdw to push UPDATEs and DELETEs using joins to foreign
+ servers (Etsuro Fujita)
+ </para>
+
+ <para>
+ Previously only non-join UPDATEs and DELETEs were pushed.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Monitoring</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-01 [c039ba071] Add memory info to getrusage output
+-->
+
+ <para>
+ Show memory usage in log_statement_stats, log_parser_stats,
+ log_planner_stats, log_executor_stats (Justin Pryzby, Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-29 [5373bc2a0] Add background worker type
+-->
+
+ <para>
+ Add pg_stat_activity.backend_type now shows the type of background worker
+(Peter Eisentraut)
+ </para>
+
+ <para>
+ Add bgw_type to the background worker C structure (Peter Eisentraut)
+ </para>
+
+ <para>
+ This is displayed to the user in pg_stat_activity.backend_type and ps
+ output.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-04 [ab6eaee88] When VACUUM or ANALYZE skips a concurrently dropped tabl
+-->
+
+ <para>
+ Have log_autovacuum_min_duration log skipped tables that are
+ concurrently being dropped (Nathan Bossart)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ <sect5>
+ <title>Information Schema</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-02-07 [32ff26911] Add more information_schema columns
+-->
+
+ <para>
+ Add information_schema columns related to table constraints and triggers
+ (Michael Paquier)
+ </para>
+
+ <para>
+ Specifically, table_constraints.enforced, triggers.action_order,
+ triggers.action_reference_old_table, and
+ triggers.action_reference_new_table.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect5>
+ </sect4>
+
+ <sect4>
+ <title><acronym>Authentication</acronym></title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-11-18 [9288d62bb] Support channel binding 'tls-unique' in SCRAM
+2017-12-19 [4bbf110d2] Add libpq connection parameter "scram_channel_binding"
+2018-01-04 [d3fb72ea6] Implement channel binding tls-server-end-point for SCRAM
+-->
+
+ <para>
+ Add libpq option to support channel binding when using SCRAM
+ authentication (Michael Paquier)
+ </para>
+
+ <para>
+ Channel binding requires the server end of the TLS connection to prove
+ that it knows the password. The options are
+ 'scram_channel_binding=tls-unique' and
+ 'scram_channel_binding=tls-server-end-point'.
+ </para>
+
+ <para>
+ WHAT DOES THIS DOC TEXT MEAN? "An empty value specifies that the client will not
+ use channel binding. The default value is tls-unique."
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-12 [83aaac41c] Allow custom search filters to be configured for LDAP au
+-->
+
+ <para>
+ Allow the server to specify more complex LDAP specifications in
+ search+bind mode (Thomas Munro)
+ </para>
+
+ <para>
+ Specifically, "ldapsearchfilter" allows pattern matching using
+ combinations of LDAP attributes.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-03 [35c0754fa] Allow ldaps when using ldap authentication
+2018-01-04 [3ad2afc2e] Define LDAPS_PORT if it's missing and disable implicit L
+-->
+
+ <para>
+ Allow LDAP authentication to use ldaps (Thomas Munro)
+ </para>
+
+ <para>
+ We already supported LDAP over TLS by using ldaptls=1. This new TLS
+ LDAP method of encrypted LDAP is enabled with ldapscheme=ldaps or
+ ldapurl=ldaps://.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-12 [cf1238cd9] Log diagnostic messages if errors occur during LDAP auth
+-->
+
+ <para>
+ Improve LDAP logging of errors (Thomas Munro)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Permissions</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-04-06 [0fdc8495b] Add default roles for file/program access
+2018-04-07 [da9b580d8] Refactor dir/file permissions
+-->
+
+ <para>
+ Add default roles which controls file system access (Stephen Frost)
+ </para>
+
+ <para>
+ Specifically, the new roles are: pg_read_server_files,
+ pg_write_server_files, pg_execute_server_program. These roles now also
+ control who can use COPY and extension file_fdw. Previously only
+ super-users could use these functions, and that is still the default
+ behavior.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-06 [e79350fef] Remove explicit superuser checks in favor of ACLs
+-->
+
+ <para>
+ Allow access to file system functions to be controlled by GRANT/REVOKE
+ permissions, rather than super-user checks (Michael Paquier)
+ </para>
+
+ <para>
+ Specifically, these functions were modified: pg_ls_dir(), pg_read_file(),
+ pg_read_binary_file(), pg_stat_file().
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-09 [5ecc0d738] Restrict lo_import()/lo_export() via SQL permissions not
+2017-11-14 [6d776522d] Document changes in large-object privilege checking.
+-->
+
+ <para>
+ Use GRANT/REVOKE to control access to lo_import() and lo_export()
+ (Michael Paquier)
+ </para>
+
+ <para>
+ Previously super users were exclusively granted to access these
+ functions.
+ </para>
+
+ <para>
+ Compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS has been removed.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-05 [ab3f008a2] postgres_fdw: Judge password use by run-as user, not ses
+-->
+
+ <para>
+ Use view owner not session owner when preventing non-password access to
+ postgres_fdw tables (Robert Haas)
+ </para>
+
+ <para>
+ Postgres only allows super-users to access postgres_fdw tables without
+ passwords, e.g. via peer. Previously the session owner had to be a
+ super-user to allow such access; now the view owner is checked instead.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-14 [50c6bb022] Fix enforcement of SELECT FOR UPDATE permissions with ne
+-->
+
+ <para>
+ Fix invalid locking permission check in SELECT FOR UPDATE on views (Tom
+ Lane)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title>Server Configuration</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-03-17 [8a3d94252] Add ssl_passphrase_command setting
+-->
+
+ <para>
+ Add server setting ssl_passphrase_command to allow supplying of the the
+ passphrase for SSL key files (Peter Eisentraut)
+ </para>
+
+ <para>
+ Also add ssl_passphrase_command_supports_reload to specify whether the
+ the SSL configuration should be reloaded and ssl_passphrase_command
+ called during a server configuration reload.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-20 [c2513365a] Parameter toast_tuple_target controls TOAST for new rows
+-->
+
+ <para>
+ Add server variable toast_tuple_target to control the minimum length
+ before TOAST storage will be considered for new rows (Simon Riggs)
+ </para>
+
+ <para>
+ The default TOAST threshold has not been changed.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-12 [6e7baa322] Introduce BYTES unit for GUCs.
+-->
+
+ <para>
+ Allow bytes to be specified for server variable sizes (Beena Emerson)
+ </para>
+
+ <para>
+ The specification is "B".
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><link linkend="wal">Write-Ahead Log</link> (<acronym>WAL</acronym>)</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-19 [fc49e24fa] Make WAL segment size configurable at initdb time.
+-->
+
+ <para>
+ Allow the WAL file size to be set via initdb (Beena Emerson)
+ </para>
+
+ <para>
+ Previously the 16MB default could only be changed at compile time.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-07 [4b0d28de0] Remove secondary checkpoint
+-->
+
+ <para>
+ No longer retain WAL that spans two checkpoints (Simon Riggs)
+ </para>
+
+ <para>
+ The retention of WAL records for only one checkpoint is required.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-30 [4a33bb59d] Ensure that WAL pages skipped by a forced WAL switch are
+-->
+
+ <para>
+ Fill the unused portion of force-switched WAL segment files with zeros
+ for improved compressibility (Chapman Flack)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Base Backup and Streaming Replication</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-04-07 [5dfd1e5a6] Logical decoding of TRUNCATE
+2018-04-07 [039eb6e92] Logical replication support for TRUNCATE
+-->
+
+ <para>
+ Replicate TRUNCATE activity when using logical replication (Simon Riggs,
+ Marco Nenciarini, Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-28 [1eb6d6527] Store 2PC GID in commit/abort WAL recs for logical decod
+-->
+
+ <para>
+ Pass prepared transaction information to logical replication subscribers
+ (Nikhil Sontakke, Stas Kelvich)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-23 [8694cc96b] Exclude unlogged tables from base backups
+2018-03-27 [920a5e500] Skip temp tables from basebackup.
+-->
+
+ <para>
+ Exclude unlogged and temporary tables from streaming base backups (David
+ Steele)
+ </para>
+
+ <para>
+ There is no need to copy such files.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-03 [4eb77d50c] Validate page level checksums in base backups
+-->
+
+ <para>
+ Allow heap pages checksums to be checked during streaming base backup
+ (Michael Banck)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-17 [9c7d06d60] Ability to advance replication slots
+-->
+
+ <para>
+ Allow replication slots to be advanced programatically, rather than be
+ consumed by subscribers (Petr Jelinek)
+ </para>
+
+ <para>
+ This allows efficient advancement replication slots when the contents do
+ not need to be consumed. This is performed by pg_replication_slot_advance().
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-06 [6271fceb8] Add TIMELINE to backup_label file
+-->
+
+ <para>
+ Add timeline information to the backup_label file (Simon Riggs)
+ </para>
+
+ <para>
+ Also add a check that the WAL timeline matches the backup_label file's
+ timeline.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-31 [9a895462d] Enhance pg_stat_wal_receiver view to display host and po
+-->
+
+ <para>
+ Add host and port connection information to the pg_stat_wal_receiver
+ system view (Haribabu Kommi)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-07 [98267ee83] Exclude pg_internal.init from BASE_BACKUP
+-->
+
+ <para>
+ Document that pg_internal.init files do not need to be included in the
+ base backup (David Steele)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Window Functions</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-02-07 [0a459cec9] Support all SQL:2011 options for window frame clauses.
+2018-02-24 [8b29e88cd] Add window RANGE support for float4, float8, numeric.
+-->
+
+ <para>
+ Add window function features to complete SQL:2011 compliance (Oliver
+ Ford, Tom Lane)
+ </para>
+
+ <para>
+ Specifically, allow RANGE mode to use PRECEDING and FOLLOWING to specify
+ peer groups with values plus or minus the specified offset. Add
+ GROUPS mode to include plus or minus the number of peer groups. Frame
+ exclusion syntax was also added.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Utility Commands</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-03-28 [16828d5c0] Fast ALTER TABLE ADD COLUMN with a non-NULL default
+-->
+
+ <para>
+ Allow NOT NULL to be added to columns without requiring a table rewrite
+ (Andrew Dunstan, Serge Rielau)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-30 [34c20de4d] Allow to lock views.
+2018-03-31 [1b26bd408] Fix bug with view locking code.
+-->
+
+ <para>
+ Allow views to be locked by locking the underlying tables (Yugo Nagata)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-06 [5b6d13eec] Allow SET STATISTICS on expression indexes
+-->
+
+ <para>
+ Allow ALTER INDEX to set statistics-gathering targets for expression
+ indexes (Alexander Korotkov, Adrien nayrat)
+ </para>
+
+ <para>
+ In psql, \d+ now shows the statistics target for indexes.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-03 [11d8d72c2] Allow multiple tables to be specified in one VACUUM or A
+-->
+
+ <para>
+ Allow multiple tables to be specified in one VACUUM or ANALYZE command
+ (Nathan Bossart)
+ </para>
+
+ <para>
+ Also, if any table mentioned in VACUUM uses a column list, then ANALYZE
+ keyword must be supplied; previously ANALYZE was implied in such cases.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-05 [854dd8cff] Add parenthesized options syntax for ANALYZE.
+-->
+
+ <para>
+ Add parenthesized options syntax to ANALYZE (Nathan Bossart)
+ </para>
+
+ <para>
+ This is similar to the syntax supported by VACUUM.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-14 [4de2d4fba] Explicitly track whether aggregate final functions modif
+2017-10-16 [be0ebb65f] Allow the built-in ordered-set aggregates to share trans
+-->
+
+ <para>
+ Add CREATE AGGREGATE option to specify the behavior of the aggregate
+ finalization function (Tom Lane)
+ </para>
+
+ <para>
+ This is useful for allowing aggregate functions be optimized and to work
+ as window functions.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Data Types</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-30 [c12d570fa] Support arrays over domains.
+-->
+
+ <para>
+ Allow the creation of arrays of domains (Tom Lane)
+ </para>
+
+ <para>
+ This also allows array_agg() to be used on domains.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-26 [37a795a60] Support domains over composite types.
+2017-10-26 [820c0305f] Support domains over composite types in PL/Tcl.
+2017-10-28 [60651e4cd] Support domains over composite types in PL/Perl.
+2017-11-16 [687f096ea] Make PL/Python handle domain-type conversions correctly.
+-->
+
+ <para>
+ Support domains over composite types (Tom Lane)
+ </para>
+
+ <para>
+ Also allow PL/PL/Perl, PL/Python, and PL/Tcl to handle composite-domain
+ function arguments and results. Also improve PL/Python domain handling.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-29 [c0cbe00fe] Add casts from jsonb
+-->
+
+ <para>
+ Add casts from jsonb scalars to numeric and boolean data types
+(Anastasia Lubennikova)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Functions</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-02-22 [10cfce34c] Add user-callable SHA-2 functions
+-->
+
+ <para>
+ Add SHA-2 family of hash functions (Peter Eisentraut)
+ </para>
+
+ <para>
+ Specifically, sha224(), sha256(), sha384(), sha512() were added.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-31 [81c5e46c4] Introduce 64-bit hash functions with a 64-bit seed.
+-->
+
+ <para>
+ Add support for 64-bit non-cryptographic hash functions (Robert Haas, Amul Sul)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-09 [11b623dd0] Implement TZH and TZM timestamp format patterns
+-->
+
+ <para>
+ Allow to_char() and to_timestamp() to specify the time zone's hours and
+ minutes from UTC (Nikita Glukhov, Andrew Dunstan)
+ </para>
+
+ <para>
+ This is done with format specifications TZH and TZM.
+
+<!--
+2018-01-09 [69c3936a1] Expression evaluation based aggregate transition invocat
+-->
+ </para>
+
+ <para>
+ Improve the speed of aggregate computations (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-05 [1664ae197] Add websearch_to_tsquery
+-->
+
+ <para>
+ Add text search function websearch_to_tsquery() that supports a queries
+ syntax similar to that used by web search engines (Victor Drobny, Dmitry
+ Ivanov)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-07 [1c1791e00] Add json(b)_to_tsvector function
+-->
+
+ <para>
+ Add functionjson(b)_to_tsvector to create usable text search queries
+ matching JSON/JSONB values (Dmitry Dolgov)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Server-Side Languages</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-11-30 [e4128ee76] SQL procedures
+2018-02-22 [76b6aa41f] Support parameters in CALL
+2018-03-14 [33803f67f] Support INOUT arguments in procedures
+2018-04-14 [a8677e3ff] Support named and default arguments in CALL
+-->
+
+ <para>
+ Add SQL procedures, which can start and commit their own transactions
+(Peter Eisentraut)
+ </para>
+
+ <para>
+ They are created with the new CREATE PROCEDURE command and invoked via
+ CALL. The new ALTER/DROP ROUTINE commands allows altering/dropping of
+ procedures, functions, and aggregates.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-22 [8561e4840] Transaction control in PL procedures
+2018-03-28 [d92bc83c4] PL/pgSQL: Nested CALL with transactions
+2018-03-28 [056a5a3f6] Allow committing inside cursor loop
+2018-04-05 [b981275b6] PL/pgSQL: Add support for SET TRANSACTION
+-->
+
+ <para>
+ Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl, and SPI
+ server-side languages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Transaction control is only available to top-transaction-level CALLs or
+ in nested PL/pgSQL DO and CALL blocks that only contain other PL/pgSQL
+ DO and CALL blocks. ACCURATE?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-02-13 [f9263006d] Support CONSTANT/NOT NULL/initial value for plpgsql comp
+-->
+
+ <para>
+ Add the ability to define PL/pgSQL record types as not null, constant, or
+ with initial values (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-28 [3f44e3db7] Transforms for jsonb to PL/Python
+-->
+
+ <para>
+ Add extension jsonb_plpython to transform JSONB to/from PL/Python
+ types (Anthony Bykov)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-03 [341e16618] Transforms for jsonb to PL/Perl
+-->
+
+ <para>
+ Add extension jsonb_plpython to transform JSONB to/from PL/Perl types
+ (Anthony Bykov)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Client Interfaces</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-03-06 [0c2c81b40] doc: Add replication parameter to libpq documentation
+-->
+
+ <para>
+ Add libpq parameter to allow physical and logical replication
+ connections (Michael Paquier)
+ </para>
+
+ <para>
+ The libpq connection parameter is called replication.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-17 [e3bdb2d92] Set libpq sslcompression to off by default
+-->
+
+ <para>
+ Change libpq to disable compression by default (Peter Eisentraut)
+ </para>
+
+ <para>
+ Compression is already disabled in modern OpenSSL versions and the libpq
+ setting had no effect in that case.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-25 [d22e9d530] Implement DO CONTINUE action for ECPG WHENEVER statement
+-->
+
+ <para>
+ Add DO CONTINUE action to the ECPG WHENEVER statement (Vinayak Pokale)
+ </para>
+
+ <para>
+ This generates a C 'continue' statement, causing a return to the top of
+ the contained loop when the specified condition occurs.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-14 [3b7ab4380] Add Oracle like handling of char arrays.
+-->
+
+ <para>
+ Add ecpg mode to enable Oracle Pro*C handling of char arrays.
+ </para>
+
+ <para>
+ This mode is enabled with -C.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Client Applications</title>
+
+ <sect4>
+ <title><xref linkend="app-psql"/></title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-05 [49ca462eb] Add \gdesc psql command.
+-->
+
+ <para>
+ Add psql command \gdesc to display the column names and types of the
+ query output (Pavel Stehule)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-12 [69835bc89] Add psql variables to track success/failure of SQL queri
+-->
+
+ <para>
+ Add psql variables to report query activity and errors (Fabien Coelho)
+ </para>
+
+ <para>
+ Specifically, the new variables are ERROR, SQLSTATE, ROW_COUNT,
+ LAST_ERROR_MESSAGE, and LAST_ERROR_SQLSTATE.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-21 [d57c7a7c5] Provide a test for variable existence in psql
+-->
+
+ <para>
+ Allow psql to test for the existence of a variable (Fabien Coelho)
+ </para>
+
+ <para>
+ Specifically , the syntax :{?variable_name} allows a variable's
+ existence to be tested in an \if statement.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-05 [5e8304fdc] In psql, use PSQL_PAGER in preference to PAGER, if it's
+-->
+
+ <para>
+ Add PSQL_PAGER to control psql's pager (Pavel Stehule)
+ </para>
+
+ <para>
+ This allows psql's default pager to be specified as a separate environment
+ variable from the pager for other applications. PAGER is still honored
+ if PSQL_PAGER is not set.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-23 [05b6ec39d] Show partition info from psql \d+
+-->
+
+ <para>
+ Have psql \d+ show a partition count of zero (Amit Langote)
+ </para>
+
+ <para>
+ Previously no partition information would be displayed for such tables.
+ Also indicate which partitions are themselves partitioned.
+ ACCURATE?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-29 [15be27460] Avoid misleading psql password prompt when username is m
+-->
+
+ <para>
+ Have psql report the proper user name before the password prompt (Tom
+ Lane)
+ </para>
+
+ <para>
+ Previously, combinations of -U and a user name embedded in a URI caused
+ incorrect reporting. Also suppress the user name before the password
+ prompt when --password is specified.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-02-01 [df9f599bc] psql: Add quit/help behavior/hint, for other tool porta
+-->
+
+ <para>
+ Allow 'quit' and 'exit' to exit psql when used in an empty buffer (Bruce
+ Momjian)
+ </para>
+
+ <para>
+ Also add hints of how to exit when 'quit' and 'exit' are used alone on a
+ line in a non-empty buffer. Add a similar hint for 'help'.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-02-12 [91389228a] psql: give ^D hint for \q in place where \q is ignored
+-->
+
+ <para>
+ Have psql hint at using control-D when \q is entered alone on a line but
+ ignored (Bruce Momjian)
+ </para>
+
+ <para>
+ For example, \q does not exit when supplied in character strings.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-03 [2b8c94e1b] Improve tab-completion for ALTER INDEX RESET/SET.
+-->
+
+ <para>
+ Improve tab-completion for ALTER INDEX RESET/SET (Masahiko Sawada)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-05 [722408bcd] Add infrastructure to support server-version-dependent t
+-->
+
+ <para>
+ Add infrastructure to allow psql to customize tab completion queries
+ based on the server version (Tom Lane)
+ </para>
+
+ <para>
+ Previously tab completion queries could fail.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4>
+ <title><xref linkend="pgbench"/></title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-01-09 [bc7fa0c15] Improve scripting language in pgbench
+-->
+
+ <para>
+ Add major scripting features to pgbench (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-22 [f67b113ac] Add \if support to pgbench
+-->
+
+ <para>
+ Add \if macro support to pgbench (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-04 [9d36a3866] Adjust pgbench to allow non-ASCII characters in variable
+-->
+
+ <para>
+ Allow the use of non-ASCII characters in pgbench variable names (Fabien
+ Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-13 [591c504fa] Allow running just selected steps of pgbench's initializ
+-->
+
+ <para>
+ Add pgbench option --init-steps to control the initialization steps
+ performed (Masahiko Sawada)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-14 [1fcd0adeb] Add approximated Zipfian-distributed random generator to
+-->
+
+ <para>
+ Add approximated Zipfian-distributed random generator to pgbench (Alik
+ Khilazhev)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-26 [64f85894a] Set random seed for pgbench.
+-->
+
+ <para>
+ Allow the random seed to be set in pgbench (Fabien Coelho)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-12-27 [7a727c180] Add pow(), aka power(), function to pgbench.
+-->
+
+ <para>
+ Allow pgbench to do exponentiation with pow() and power() (Ra&uacute;l
+ Mar&iacute;n Rodr&iacute;guez)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-21 [e51a04840] Add general purpose hasing functions to pgbench.
+-->
+
+ <para>
+ Add hashing functions to pgbench (Ildar Musin)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-04 [c23bb6bad] Fix some subtle problems in pgbench transaction stats co
+2017-11-21 [16827d442] pgbench: fix stats reporting when some transactions are
+-->
+
+ <para>
+ Make pgbench statistics more accurate when using --latency-limit and
+ --rate (Fabien Coelho)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Server Applications</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-27 [3709ca1cf] pg_basebackup: Add option to create replication slot
+-->
+
+ <para>
+ Add pg_basebackup option to create a named replication slot (Michael Banck)
+ </para>
+
+ <para>
+ The option --create-slot creates the named replication slot (--slot)
+ when the WAL streaming method (-wal-method=stream) is used.
+ </para>
+
+ <para>
+ IS IT CLEAR FROM THE DOCS THAT THE REPLICATION SLOT IS NOT TEMPORARY?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-07 [c37b3d08c] Allow group access on PGDATA
+-->
+
+ <para>
+ Allow initdb to set group read access to the data directory (David
+ Steele)
+ </para>
+
+ <para>
+ This is accomplished with the initdb --allow-group-access flag.
+ Administrators can also set group permissions on the empty data
+ directory before running initdb. Server variable data_directory_mode
+ allows reading of data directory group permissions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-05 [1fde38bea] Allow on-line enabling and disabling of data checksums
+2018-04-09 [a228cc13a] Revert "Allow on-line enabling and disabling of data che
+-->
+
+ <para>
+ Add pg_verify_checksums tool to verify database checksums while offline
+ (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-25 [bf4a8676c] pg_resetwal: Allow users to change the WAL segment size
+-->
+
+ <para>
+ Allow pg_resetwal to change the WAL segment size via --wal-segsize (Nathan
+ Bossart)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-24 [e22b27f0c] Add long options to pg_resetwal and pg_controldata
+-->
+
+ <para>
+ Add long options to pg_resetwal and pg_controldata (Nathan Bossart,
+ Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-29 [5f3971291] pg_receivewal: Add - -no-sync option.
+-->
+
+ <para>
+ Add pg_receivewal option --no-sync to prevent synchronous WAL writes
+ (Michael Paquier)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-11 [6d9fa5264] pg_receivewal: Add - -endpos option
+-->
+
+ <para>
+ Add pg_receivewal option --endpos to specify when WAL receiving should
+ stop (Michael Paquier)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-01 [2e83db3ad] Allow pg_ctl kill to send SIGKILL.
+-->
+
+ <para>
+ Allow pg_ctl to send the SIGKILL signal to processes (Andres Freund)
+ </para>
+
+ <para>
+ This was originally unsupported due to concerns over its misuse.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-29 [266b6acb3] Make pg_rewind skip files and directories that are remov
+-->
+
+ <para>
+ Reduce the number of files copied by pg_rewind (Michael Paquier)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-09 [5d5aeddab] Make sure pg_rewind can't run as root
+-->
+
+ <para>
+ Prevent pg_rewind from running as root (Magnus Hagander)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ <sect4>
+ <title><link linkend="app-pgdump"><application>pg_dump</application></link>,
+ <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
+ <link linkend="app-pgrestore"><application>pg_restore</application></link></title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-09-01 [84be67181] pg_dumpall: Add a -E flag to set the encoding, like pg_d
+-->
+
+ <para>
+ Add pg_dumpall option --encoding to control encoding (Michael Paquier)
+ </para>
+
+ <para>
+ pg_dump already had this option.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-14 [23d7680d0] pg_dump: Add a - -load-via-partition-root option.
+-->
+
+ <para>
+ Add pg_dump option --load-via-partition-root to force loading of data
+ into the partition's root table, rather than the original partitions
+(Rushabh Lathia)
+ </para>
+
+ <para>
+ This is useful if the system to be loaded has a different collation
+ definitions or endianness, requiring the rows to be stored in different partitions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-25 [1368e92e1] Support - -no-comments in pg_dump, pg_dumpall, pg_restore
+-->
+
+ <para>
+ Add ability to suppress dumping and restoring of comments (Robins Tharakan)
+ </para>
+
+ <para>
+ The new pg_dump, pg_dumpall, and pg_restore option is --no-comments.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </sect3>
+
+ <sect3>
+ <title>Source Code</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2018-01-21 [1cc4f536e] Support huge pages on Windows
+-->
+
+ <para>
+ Add support for with huge(large) pages on Windows (Takayuki Tsunakawa,
+ Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-04 [f044d71e3] Use ARMv8 CRC instructions where available.
+-->
+
+ <para>
+ Add support for ARMv8 hardware CRC calculations (Yuqi Gu, Heikki Linnakangas)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-20 [5b2526c83] Add configure infrastructure (- -with-llvm) to enable LLV
+-->
+
+ <para>
+ Add configure flag --with-llvm to test for LLVM support (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-20 [6869b4f25] Add C++ support to configure.
+-->
+
+ <para>
+ Have configure check for the availability of a C++ compiler (Andres
+ Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-06 [1c53f612b] Escape &lt; and &amp; in SGML
+2017-10-17 [c29c57890] Don't use SGML empty tags
+2017-10-20 [1ff01b390] Convert SGML IDs to lower case
+2017-11-23 [3c49c6fac] Convert documentation to DocBook XML
+-->
+
+ <para>
+ Convert documentation to DocBook XML (Peter Eisentraut, Alexander
+ Lakhin, J&uuml;rgen Purtz)
+ </para>
+
+ <para>
+ The file names still use an 'sgml' extension for compatibility with back
+ branches.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-03 [a351679c8] Trivial adjustments in preparation for bootstrap data co
+2018-04-08 [372728b0d] Replace our traditional initial-catalog-data format with
+2018-04-26 [a0854f107] Avoid parsing catalog data twice during BKI file constru
+-->
+
+ <para>
+ Overhaul the way system tables are defined for bootstrap use (John
+ Naylor)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-05 [eed1ce72e] Allow background workers to bypass datallowconn
+-->
+
+ <para>
+ Allow background workers to attach to databases that normally disallow
+ connections (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-04 [212e6f34d] Replace binary search in fmgr_isbuiltin with a lookup ar
+-->
+
+ <para>
+ Speed up lookups of builtin function names matching oids (Andres Freund)
+ </para>
+
+ <para>
+ The previous binary search now uses a lookup array.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-11 [1de09ad8e] Add more efficient functions to pqformat API.
+-->
+
+ <para>
+ Speed up construction of query results (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-13 [141fd1b66] Improve sys/catcache performance.
+-->
+
+ <para>
+ Improve access speed to system caches (Andres Freund)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-23 [a4ccc1cef] Generational memory allocator
+-->
+
+ <para>
+ Add a generational memory allocator which is optimized for serial
+ allocation/deallocation (Tomas Vondra)
+ </para>
+
+ <para>
+ This reduces memory usage for logical decoding.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-22 [7c91a0364] Sync up our various ways of estimating pg_class.reltuple
+-->
+
+ <para>
+ Make the computation of system column pg_class.reltuples consistent
+(Tomas Vondra)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-25 [46cda5bf7] Change pgindent/README to specify that we use perltidy v
+-->
+
+ <para>
+ Update to use perltidy version 20170521 (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-29 [8b304b8b7] Remove replacement selection sort.
+-->
+
+ <para>
+ Remove the ability to perform replacement sorts (Peter Geoghegan)
+ </para>
+
+ <para>
+ Replacement sorts were determined to be no longer useful. Also remove
+ server variable replacement sorts.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Additional Modules</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+2017-08-21 [79ccd7cbd] pg_prewarm: Add automatic prewarm feature.
+-->
+
+ <para>
+ Allow extension pg_prewarm to restore the previous shared buffer
+ contents on startup (Mithun Cy, Robert Haas)
+ </para>
+
+ <para>
+ This is accomplished by having pg_prewarm store the shared buffer
+ relation/offset values to disk occasionally during server operation and
+ shutdown.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-21 [be8a7a686] Add strict_word_similarity to pg_trgm module
+-->
+
+ <para>
+ Add pgtrgm function strict_word_similarity() to compute the similarity
+ of whole words (Alexander Korotkov)
+ </para>
+
+ <para>
+ The function word_similarity() already existed for this purpose, but it
+ was designed to find similar parts of words, while
+ strict_word_similarity() computes the similarity to whole words.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-19 [f24649976] Add citext_pattern_ops for citext contrib module
+-->
+
+ <para>
+ Allow creation of indexes on citext-extension columns that can be used
+ by LIKE comparisons (Alexey Chernyshov)
+ </para>
+
+ <para>
+ Specifically, indexes must be created using the citext_pattern_ops
+ operator class.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-05 [f4cd7102b] Add support of bool, bpchar, name and uuid to btree_gin
+-->
+
+ <para>
+ Allow btree_gin to index bool, bpchar, name and uuid data types (Matheus
+ Oliveira)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-20 [de1d042f5] Support index-only scans in contrib/cube and contrib/seg
+-->
+
+ <para>
+ Allow cube and seg extensions using GiST indexes to perform index-only
+ scans (Andrey Borodin)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-01-11 [f50c80dbb] llow negative coordinate for ~&gt; (cube, int) operator
+-->
+
+ <para>
+ Allow retrieval of negative cube coordinates using the ~&gt; operator
+ (Alexander Korotkov)
+ </para>
+
+ <para>
+ This is useful for knn-gist searches. HOW?
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-08-16 [ec0a69e49] Extend the default rules file for contrib/unaccent with
+-->
+
+ <para>
+ Add Vietnamese letter detection to the unaccent extension (Dang Minh Huong, Michael Paquier)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-31 [7f563c09f] Add amcheck verification of heap relations belonging to
+-->
+
+ <para>
+ Enhance contrib/amcheck to check that each heap tuple has an index entry
+(Peter Geoghegan)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-06 [11523e860] Support new default roles with adminpack
+-->
+
+ <para>
+ Have contrib/adminpack use the new default file system access roles
+ (Stephen Frost)
+ </para>
+
+ <para>
+ Previously only super-users could call adminpack functions; now role
+ permissions are checked.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-10-11 [cff440d36] pg_stat_statements: Widen query IDs from 32 bits to 64 b
+-->
+
+ <para>
+ Increase pg_stat_statement's query id to 64 bits (Robert Haas)
+ </para>
+
+ <para>
+ This greatly reduces the chance of query id hash collisions. The query
+ id can now potentially display as a negative value.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-04-05 [1fd869066] Install errcodes.txt for use by extensions.
+-->
+
+ <para>
+ Install errcodes.txt to provide access to the error codes reported by
+ Postgres (Thomas Munro)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2018-03-21 [846b5a525] Prevent extensions from creating custom GUCs that are GU
+-->
+
+ <para>
+ Prevent extensions from creating custom server variables that take a
+ quoted list of values (Tom Lane)
+ </para>
+
+ <para>
+ This was never intended to be supported.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-11-17 [527878635] Remove contrib/start-scripts/osx/.
+-->
+
+ <para>
+ Remove contrib/start-scripts/osx since they are no longer recommended
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+2017-09-22 [5d3cad564] Remove contrib/chkpass
+-->
+
+ <para>
+ Remove extension chkpass (Peter Eisentraut)
+ </para>
+
+ <para>
+ This extension no longer served as a usable security tool or example of
+ how to write an extension.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ </sect2>
+
+ <sect2>
+ <title>Acknowledgments</title>
+
+ <para>
+ The following individuals (in alphabetical order) have contributed to this
+ release as patch authors, committers, reviewers, testers, or reporters of
+ issues.
+ </para>
+
+ <simplelist>
+ <member>XXX</member>
+ </simplelist>
+ </sect2>
+
+ </sect1>
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml
index 646d252b0c3..11a7f171c60 100644
--- a/doc/src/sgml/release.sgml
+++ b/doc/src/sgml/release.sgml
@@ -76,6 +76,7 @@ For new features, add links to the documentation sections.
The reason for splitting the release notes this way is so that appropriate
subsets can easily be copied into back branches.
-->
+&release-11;
&release-10;
&release-9.6;
&release-9.5;