diff options
-rw-r--r-- | doc/src/sgml/filelist.sgml | 1 | ||||
-rw-r--r-- | doc/src/sgml/release-11.sgml | 2630 | ||||
-rw-r--r-- | doc/src/sgml/release.sgml | 1 |
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 (Á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 (Á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 (Á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 (Á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 < from <= and > from >=. +--> + + <para> + Improve selectivity estimates for >= and <= when the constants are not + common values (Tom Lane) + </para> + + <para> + Previously such cases used the same selectivity as > and <, + 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úl + Marín Rodrí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 < and & in SGML +2017-10-17 [c29c57890] Don't use SGML empty tags +2017-10-20 [1ff01b390] Convert SGML IDs to lower case +2017-11-23 [3c49c6fac] Convert documentation to DocBook XML +--> + + <para> + Convert documentation to DocBook XML (Peter Eisentraut, Alexander + Lakhin, Jü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 ~> (cube, int) operator +--> + + <para> + Allow retrieval of negative cube coordinates using the ~> 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; |