From b6a4d0498757a6e345e07b2a84eb8333f5e5235e Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 7 Sep 2019 11:21:24 -0400 Subject: [PATCH] Doc: make an editing pass over the v12 release notes. Copy-edit or rewrite some items, add some items that I thought deserved documenting, remove some others that didn't (notably, I'm not on board with documenting documentation changes), fix some poorly-pointed links, move some items to other sections, etc etc. --- doc/src/sgml/release-12.sgml | 1177 ++++++++++++++++++---------------- 1 file changed, 615 insertions(+), 562 deletions(-) diff --git a/doc/src/sgml/release-12.sgml b/doc/src/sgml/release-12.sgml index 12a60242a66..bf32b200bf6 100644 --- a/doc/src/sgml/release-12.sgml +++ b/doc/src/sgml/release-12.sgml @@ -52,7 +52,7 @@ - Reduction of WAL overhead for updates of + Reduction of WAL overhead for creation of GiST, GIN, and SP-GiST indexes @@ -61,7 +61,7 @@ Support for covering GiST indexes, via - the INCLUDE + the INCLUDE clause @@ -112,20 +112,20 @@ Support for the SQL/JSON - path language + path language - Stored generated columns + Stored generated columns Nondeterministic ICU - collations, enabling + collations, enabling case-insensitive and accent-insensitive grouping and ordering @@ -193,19 +193,26 @@ Author: Andres Freund Remove the special behavior of OID columns (Andres Freund, + linkend="datatype-oid">oid columns (Andres Freund, John Naylor) - Previously, a normally-invisible OID column could be - specified during table creation using WITH OIDS; - that ability has been removed. Columns can still be explicitly - specified as type OID. Operations on tables that - have columns named OID (created using WITH - OIDS) will need adjustment. SELECT * - will now output those columns for the many system tables which - have them. Previously, the columns had to be selected explicitly. + Previously, a normally-invisible oid + column could be specified during table creation using WITH + OIDS; that ability has been removed. Columns can still be + explicitly declared as type OID. Operations on tables + that have columns created using WITH OIDS will + need adjustment. + + + + The system catalogs that previously had + hidden oid columns now have + ordinary oid columns. + Hence, SELECT * will now output those columns, + whereas previously they would be displayed only if selected + explicitly. @@ -219,6 +226,11 @@ Author: Andres Freund Remove data types abstime, reltime, and tinterval (Andres Freund) + + + These are obsoleted by SQL-standard types such + as timestamp. + @@ -228,7 +240,7 @@ Author: Andres Freund --> - Remove the timetravel extension + Remove the timetravel extension (Andres Freund) @@ -247,11 +259,11 @@ Author: Peter Eisentraut recovery.conf is no longer used, - and the server will not start if the file exists. recovery.signal - and standby.signal are now used to switch into non-primary - mode. trigger_file has been renamed - to . The + and standby.signal files are now used to switch + into non-primary mode. trigger_file has been + renamed to . The standby_mode setting has been removed. @@ -273,9 +285,9 @@ Author: Peter Eisentraut linkend="guc-recovery-target"/>, , , - , , and . Previously, multiple different - instances of the variables above could be specified, and the last one + instances of these parameters could be specified, and the last one was honored. Now, only one can be specified, though the same one can be specified multiple times and the last specification is honored. @@ -303,61 +315,76 @@ Author: Peter Eisentraut - Refactor geometric - functions and operators (Emre Hasegeli) + Refactor code for geometric + functions and operators (Emre Hasegeli) This could lead to more accurate, but slightly different, results - from previous releases. + compared to previous releases. Notably, cases involving NaN, + underflow, overflow, and division by zero are handled more + consistently than before. - Restructure geometric - types to handle NaN, underflow, overflow and division by - zero more consistently (Emre Hasegeli) + Improve performance by using a new algorithm for output + of real + and double precision values (Andrew Gierth) - - - + + Previously, displayed floating-point values were rounded to 6 + (for real) or 15 (for double precision) + digits by default, adjusted by the value of + . Now, + whenever extra_float_digits is more than zero (as + it now is by default), only the minimum number of digits required to + preserve the exact binary value are output. The behavior is the + same as before when extra_float_digits is set to + zero or less. + - Improve behavior and error reporting for the line data type (Emre Hasegeli) + Also, formatting of floating-point exponents is now uniform across + platforms: two digits are used unless three are necessary. In + previous releases, Windows builds always printed three digits. - Improve performance by changing the default number of trailing digits - output for REAL - and DOUBLE PRECISION values (Andrew Gierth) + random() + and setseed() now behave uniformly across + platforms (Tom Lane) - Previously, float values were output rounded to 6 or 15 decimals - by default. Now, only the number of digits required to preserve - the exact binary value is output. The previous behavior can be - restored by setting to zero. + The sequence of random() values generated + following a setseed() call with a particular + seed value is likely to be different now than before. However, it + will also be repeatable, which was not previously guaranteed because + of interference from other uses of random numbers inside the server. + The SQL random() function now has its own + private per-session state to forestall that. @@ -368,8 +395,9 @@ Author: Tom Lane --> - Change SQL-style substring() to have - standard-compliant greediness behavior (Tom Lane) + Change SQL-style + substring() + to have standard-compliant greediness behavior (Tom Lane) @@ -388,14 +416,16 @@ Author: Tom Lane --> - Change XML - functions like xpath() to never pretty-print - their output (Tom Lane) + Do not pretty-print the result + of xpath() + or the XMLTABLE construct (Tom Lane) - Previously, this happened in some rare cases. ACCURATE? HOW TO - GET PRETTY PRINT OUTPUT? + In some cases, these functions would insert extra whitespace + (newlines and/or spaces) in nodeset values. This is undesirable + since depending on usage, the whitespace might be considered + semantically significant. @@ -419,13 +449,14 @@ Author: Alvaro Herrera --> - Require specification of - -f - to send the dump contents to stdout + In , require specification of + -f - to send the dump contents to standard output (Euler Taveira) - The previous behavior was considered confusing. + Previously, this happened by default if no destination was + specified, but that was deemed to be unfriendly. @@ -438,25 +469,34 @@ Author: Tom Lane --> - Disallow psql's \pset - format command from using non-unique abbreviations - (Daniel Vérité) + Disallow non-unique abbreviations + in psql's \pset format + command (Daniel Vérité) - Previously, \pset format a chose - aligned; it will now error. + Previously, for example, \pset format a chose + aligned; it will now fail since that could + equally well mean asciidoc. - The maximum btree index entry length is now reduced by eight bytes; - thus a operation could potentially fail. + In new btree indexes, the maximum index entry length is + reduced by eight bytes, to improve handling of duplicate entries + (Peter Geoghegan) + + + + This means that a operation on an + index pg_upgrade'd from a previous + release could potentially fail. @@ -475,11 +515,13 @@ Author: Tom Lane - It still uses the "C" collation by default, rather than defaulting - to the database collation. Regular expression operations on - data type name columns will now use the "C" collation; you will - need to override the collation if you want to use locale-specific - regular expression patterns, e.g., \w. + Type name still uses the C collation by + default, rather than defaulting to the database collation. + Regular-expression operators on name columns will now + use the C collation by default. If you want non-C + behavior for locale-dependent regular expression patterns (such + as \w), attach an + explicit COLLATE clause. @@ -492,7 +534,7 @@ Author: Tom Lane Cause DROP IF EXISTS FUNCTION/PROCEDURE/AGGREGATE/ROUTINE - to generate an error if no arguments are supplied and there are + to generate an error if no argument list is supplied and there are multiple matching objects (David Rowley) @@ -509,9 +551,11 @@ Author: Tomas Vondra --> - Split the pg_statistic_ext catalog into two - catalogs, and add the pg_stats_ext view of - it (Dean Rasheed, Tomas Vondra) + Split the pg_statistic_ext + catalog into two catalogs, and add the pg_stats_ext + view of it (Dean Rasheed, Tomas Vondra) @@ -523,7 +567,7 @@ Author: Tomas Vondra @@ -641,13 +685,13 @@ Author: Peter Eisentraut --> - Allow partitions bounds to be any expression (Kyotaro Horiguchi, + Allow partition bounds to be any expression (Kyotaro Horiguchi, Tom Lane, Amit Langote) - Expressions are evaluated at partitioned table creation time. - Previously, only constants were allowed as partitions bounds. + Such expressions are evaluated at partitioned-table creation time. + Previously, only simple constants were allowed as partition bounds. @@ -683,7 +727,7 @@ Author: Robert Haas --> - ATTACH + ALTER TABLE ATTACH PARTITION is now performed with reduced locking requirements (Robert Haas) @@ -705,7 +749,7 @@ Author: Michael Paquier - New function pg_partition_root() returns the top-most parent of a partition tree, pg_partition_ancestors() @@ -765,8 +809,10 @@ Author: Tom Lane Fix bugs that could cause ALTER TABLE DETACH - PARTITION to not drop objects that should be dropped, - such as automatically-created child indexes (Tom Lane) + PARTITION to leave behind incorrect dependency state, + allowing subsequent operations to misbehave, for example by not + dropping a former partition child index when its table is dropped + (Tom Lane) @@ -797,13 +843,13 @@ Author: Peter Geoghegan Previously, duplicate index entries were stored unordered within their duplicate groups. This caused overhead during index - inserts, wasted space due to excessive page splits, and reduced + inserts, wasted space due to excessive page splits, and it reduced VACUUM's ability to recycle entire pages. Duplicate index entries are now sorted in heap-storage order. - Indexes pg_upgraded from previous + Indexes pg_upgrade'd from previous releases will not have these benefits. @@ -825,7 +871,7 @@ see commits above - Indexes pg_upgraded from previous + Indexes pg_upgrade'd from previous releases will not have these benefits. @@ -850,7 +896,7 @@ Author: Alexander Korotkov Support INCLUDE columns + linkend="indexes-index-only-scans">INCLUDE columns in GiST indexes (Andrey Borodin) @@ -953,9 +999,11 @@ Author: Tomas Vondra - This improves optimization for columns with non-uniform - distributions that often appear in WHERE - clauses. + This improves optimization for queries that test several columns, + requiring an estimate of the combined effect of + several WHERE clauses. If the columns are + correlated and have non-uniform distributions then multi-column + statistics will allow much better estimates. @@ -969,15 +1017,16 @@ Author: Tom Lane Allow common table expressions - (CTE) to be inlined in later parts of the query + (CTEs) to be inlined into the outer query (Andreas Karlsson, Andrew Gierth, David Fetter, Tom Lane) - Specifically, CTEs are inlined - if they are not recursive and are referenced only - once later in the query. Inlining can be prevented by - specifying MATERIALIZED, and forced by + Specifically, CTEs are automatically inlined if + they have no side-effects, are not recursive, and are referenced + only once in the query. Inlining can be prevented by + specifying MATERIALIZED, or forced for + multiply-referenced CTEs by specifying NOT MATERIALIZED. Previously, CTEs were never inlined and were always evaluated before the rest of the query. @@ -997,20 +1046,7 @@ Author: Peter Eisentraut This is controlled by the - server variable. - - - - - - - - Improve optimization of self-joins involving columns of type tid (Tom Lane) + server parameter. @@ -1033,9 +1069,13 @@ Author: Tom Lane --> - Improve optimizations for domains that have no check - constraints (Tom Lane) + Improve processing of domains that + have no check constraints (Tom Lane) + + + + Domains that are being used purely as type aliases no longer cause + optimization difficulties. @@ -1046,10 +1086,10 @@ Author: Tom Lane --> - Inline calls to LEAST - and GREATEST to improve optimization (Vik - Fearing) + and GREATEST when their arguments are constants + (Vik Fearing) @@ -1057,23 +1097,20 @@ Author: Tom Lane - Allow IS NOT NULL with mismatching types to - use partial indexes more frequently (Tom Lane) + Improve optimizer's ability to verify that partial indexes + with IS NOT NULL conditions are usable in + queries (Tom Lane, James Coleman) - - - - - Allow IN comparisons with arrays to use IS NOT - NULL partial indexes more frequently (James Coleman) + Usability can now be recognized in more cases where the calling + query involves casts or + large x IN + (array) clauses. @@ -1084,13 +1121,13 @@ Author: Tom Lane --> - Store statistics using the collation defined for each column - (Tom Lane) + Compute ANALYZE statistics using the collation + defined for each column (Tom Lane) - Previously, the default collation was used for all statistics - storage. This potentially gives better optimizer behavior for + Previously, the database's default collation was used for all + statistics. This potentially gives better optimizer behavior for columns with non-default collations. @@ -1102,9 +1139,29 @@ Author: Tom Lane --> - Improve optimizer estimates for tid inequality - comparisons (Edmund Horner) + Improve selectivity estimates for inequality comparisons + on ctid + columns (Edmund Horner) + + + + + + + + Improve optimization of joins on columns of type tid + (Tom Lane) + + + + These changes primarily improve the efficiency of self-joins + on ctid columns. @@ -1115,11 +1172,13 @@ Author: Tom Lane --> - Fix the btree leakproof designation of some functions (Tom Lane) + Fix the leakproofness designations of some btree comparison support + functions (Tom Lane) - This allows for more complex optimizations. + This allows some optimizations that previously would not have been + applied. @@ -1140,21 +1199,13 @@ Author: Bruce Momjian Enable Just-in-Time - (JIT) compilation by default (Andres Freund) + (JIT) compilation by default, if the server + has been built with support for it (Andres Freund) - - - - - Greatly reduce memory consumption of - and function calls (Andres Freund, Tomas Vondra, Tom Lane) + Note that this support is not built by default, but has to be + selected explicitly while configuring the build. @@ -1178,7 +1229,8 @@ Author: Heikki Linnakangas --> - Improve search performance for multi-byte characters (Heikki + Improve search performance for multi-byte characters + in position() and related functions (Heikki Linnakangas) @@ -1190,13 +1242,13 @@ Author: Stephen Frost --> - Allow TOAST + Allow TOASTed values to be minimally decompressed (Paul Ramsey) - This is useful for routines that only look at values at the start - of the TOAST field. + This is useful for routines that only need to examine the initial + portion of a toasted field. @@ -1208,12 +1260,13 @@ Author: Robert Haas Allow ALTER TABLE .. SET - NOT NULL to avoid unnecessary checking (Sergei + NOT NULL to avoid unnecessary table scans (Sergei Kornilov) - This can happen if column constraints already prevent nulls. + This can be optimized when the table's column constraints can be + recognized as disallowing nulls. @@ -1224,13 +1277,14 @@ Author: Noah Misch --> - Allow ALTER TABLE .. SET DATA TYPE - timestamp/timestamptz to avoid a table rewrite when - the session time zone is UTC (Noah Misch) + Allow ALTER TABLE .. SET DATA TYPE changing between + timestamp and timestamptz to avoid a + table rewrite when the session time zone is UTC + (Noah Misch) - In the UTC time zone, the data types are + In the UTC time zone, these two data types are binary compatible. @@ -1243,7 +1297,7 @@ Author: Andres Freund Improve speed in converting strings to - int2/int4 integers (Andres Freund) + int2 or int4 integers (Andres Freund) @@ -1255,7 +1309,7 @@ Author: Thomas Munro Allow parallelized queries when in SERIALIZABLE + linkend="xact-serializable">SERIALIZABLE isolation mode (Thomas Munro) @@ -1278,8 +1332,7 @@ Author: Thomas Munro - This reduces the number of system calls required. - + This reduces the number of system calls required for I/O. @@ -1338,7 +1391,7 @@ Author: Peter Eisentraut Progress is reported in the pg_stat_progress_create_index + linkend="create-index-progress-reporting">pg_stat_progress_create_index system view @@ -1356,7 +1409,7 @@ Author: Robert Haas Progress is reported in the pg_stat_progress_cluster + linkend="cluster-progress-reporting">pg_stat_progress_cluster system view. @@ -1449,15 +1502,16 @@ Author: Peter Eisentraut --> - Add information about the client certificate to the system view - pg_stat_ssl (Peter Eisentraut) + Add information about the client certificate to the system view pg_stat_ssl + (Peter Eisentraut) The new columns are client_serial and issuer_dn. Column clientdn has been renamed to - client_dn, for clarity. + client_dn for clarity. @@ -1468,9 +1522,8 @@ Author: Peter Eisentraut --> - Restrict visibility of rows in pg_stat_ssl - by unprivileged users (Peter Eisentraut) + Restrict visibility of rows in pg_stat_ssl + for unprivileged users (Peter Eisentraut) @@ -1481,8 +1534,8 @@ Author: Peter Eisentraut --> - Add the version number to the server startup log message - (Christoph Berg) + At server start, emit a log message including the server + version number (Christoph Berg) @@ -1493,7 +1546,12 @@ Author: Andrew Dunstan --> - Prevent logging of empty "incomplete" startup packets (Tom Lane) + Prevent logging incomplete startup packet if a new + connection is immediately closed (Tom Lane) + + + + This avoids log spam from certain forms of monitoring. @@ -1504,8 +1562,8 @@ Author: Stephen Frost --> - Unconditionally include - in server log authentication messages (Don Seiler) + Include the , if set, + in log messages (Don Seiler) @@ -1516,7 +1574,7 @@ Author: Peter Eisentraut --> - Have the walreceiver set its application name to the cluster name, + Make the walreceiver set its application name to the cluster name, if set (Peter Eisentraut) @@ -1541,7 +1599,7 @@ Author: Michael Paquier --> - Add wait event for fsync + Add a wait event for fsync of WAL segments (Konstantin Knizhnik) @@ -1549,7 +1607,7 @@ Author: Michael Paquier - <link linkend="infoschema-tables">Information Schema</link> + <link linkend="information-schema">Information Schema</link> @@ -1572,15 +1630,16 @@ Author: Tom Lane --> - Use "C" collation for information_schema - and the system tables (Tom Lane) + Use C collation for name-type columns in + information_schema views and the system + catalogs (Tom Lane) This will produce more consistent behavior in databases with - different collations, but will also cause these tables to produce - results in "C" collation ordering, rather than the default - collation for the database. + different collations, but will also cause sorts on these columns + to produce results in C ordering, rather + than the database's default collation. @@ -1591,8 +1650,8 @@ Author: Tom Lane --> - Force information_schema outputs to honor - the system-defined maximum 63-byte identifier length (Tom Lane) + Ensure that information_schema outputs honor + the system-defined maximum identifier length (Tom Lane) @@ -1614,19 +1673,18 @@ Author: Stephen Frost Add GSSAPI - client and server-side encryption support (Robbie Harwood, + client- and server-side encryption support (Robbie Harwood, Stephen Frost) - Add pg_hba.conf - hostgssenc - and hostnogssenc record types. This would - typically use the gss authentication method. - This also adds a libpq - option, and a system view. + Add hostgssenc + and hostnogssenc record types in pg_hba.conf. + Such entries would typically use the gss + authentication method. This change also adds a libpq + option, and a + system view. @@ -1640,12 +1698,12 @@ Author: Magnus Hagander Allow the clientcert pg_hba.conf option to check that the database - user name matches the certificate common name (Julian Markwort, - Marius Timmer) + user name matches the client certificate's common name + (Julian Markwort, Marius Timmer) - The new check is enabled with + This new check is enabled with clientcert=verify-full. @@ -1657,7 +1715,7 @@ Author: Thomas Munro --> - Allow discovery of the LDAP server using DNS SRV records (Thomas Munro) @@ -1670,41 +1728,6 @@ Author: Thomas Munro - - - - - Prevent from requesting a lock on - tables for which the user lacks permission (Michaël Paquier) - - - - This prevents unauthorized locking, which could interfere with - user queries. - - - - - - - - Prevent VACUUM and ANALYZE - from requesting a lock on tables for which it lacks permission - (Michaël Paquier) - - - - This prevents unauthorized locking, which could interfere with - user queries. - - - @@ -1726,7 +1749,7 @@ Author: Michael Paquier - The cluster must be offline for these operations. + The cluster must be shut down for these operations. @@ -1740,6 +1763,10 @@ Author: Tom Lane Reduce the default value of to 2ms (Tom Lane) + + + This allows autovacuum operations to proceed faster by default. + @@ -1750,11 +1777,7 @@ Author: Tom Lane Allow to specify - sub-millisecond delays (Tom Lane) - - - - Floating-point values can also now be specified. + sub-millisecond delays, by accepting fractional values (Tom Lane) @@ -1765,8 +1788,9 @@ Author: Tom Lane --> - Allow time-based server variables to use micro-seconds (us) (Tom Lane) + Allow time-based server parameters to use units of microseconds + (us) (Tom Lane) @@ -1777,11 +1801,14 @@ Author: Tom Lane --> - Allow fractional input for integer server variables (Tom Lane) + Allow fractional input for integer server parameters (Tom Lane) - For example, SET work_mem = '30.1GB'. + For example, SET work_mem = '30.1GB' is now + allowed, even though work_mem is an integer + parameter. The value will be rounded to an integer after any + required units conversion. @@ -1792,7 +1819,7 @@ Author: Tom Lane --> - Allow units to be specified for floating-point server variables + Allow units to be defined for floating-point server parameters (Tom Lane) @@ -1805,13 +1832,13 @@ Author: Thomas Munro Add and server variables to avoid + linkend="guc-wal-init-zero"/> server parameters to control WAL file recycling (Jerry Jelinek) - This can be beneficial on copy-on-write file systems like - ZFS. + Avoiding file recycling can be beneficial on copy-on-write file + systems like ZFS. @@ -1822,12 +1849,8 @@ Author: Michael Paquier --> - Add parameter to control the server TCP timeout - (Ryohei Nagaura) - - - - The parameter is . + Add server parameter to + control the server's TCP timeout (Ryohei Nagaura) @@ -1838,12 +1861,12 @@ Author: Peter Eisentraut --> - Allow control of the minimum and maximum SSL> + Allow control of the minimum and maximum SSL protocol versions (Peter Eisentraut) - The server settings are and . @@ -1856,7 +1879,7 @@ Author: Peter Eisentraut --> - Add server variable to report + Add server parameter to report the SSL library version used by the server (Peter Eisentraut) @@ -1869,14 +1892,13 @@ Author: Thomas Munro --> - Add server variable to control the type of shared memory to use - (Andres Freund) + Add server parameter + to control the type of shared memory to use (Andres Freund) - The variable is . - Its purpose is to allow selection of System - V shared memory, if desired. + This allows selection of System V + shared memory, if desired. @@ -1958,7 +1980,7 @@ Author: Alvaro Herrera - The functions are pg_copy_physical_replication_slot() and pg_copy_logical_replication_slot(). @@ -1971,7 +1993,7 @@ Author: Michael Paquier --> - Have not count as part of + Make not count as part of (Alexander Kukushkin) @@ -1995,14 +2017,14 @@ Author: Michael Paquier --> - Have recovery fail if a two-phase transaction status file is corrupt (Michaël Paquier) - Previously, only a warning was issued in the logs and recovery - continued. + Previously, a warning was logged and recovery continued, + allowing the transaction to be lost. @@ -2023,13 +2045,13 @@ Author: Peter Eisentraut Add CONCURRENTLY - to allow reindexing concurrently (Michaël Paquier, Andreas - Karlsson, Peter Eisentraut) + option to allow reindexing without locking out writes (Michaël + Paquier, Andreas Karlsson, Peter Eisentraut) This is also controlled by the - option. + application's option. @@ -2040,7 +2062,7 @@ Author: Peter Eisentraut --> - Add support for generated + Add support for generated columns (Peter Eisentraut) @@ -2060,9 +2082,13 @@ Author: Tomas Vondra Add a WHERE clause to COPY - FROM which controls which rows are output (Surafel + FROM to control which rows are accepted (Surafel Temesgen) + + + This provides a simple way to filter incoming data. + @@ -2092,7 +2118,7 @@ Author: Peter Eisentraut --> - Add command to end a transaction and start a new one (Peter + Add commands to end a transaction and start a new one (Peter Eisentraut) @@ -2104,28 +2130,6 @@ Author: Peter Eisentraut - - - Allow the creation of collations that report - string equality for strings that are not byte-wise equal (Peter - Eisentraut) - - - - This feature supports nondeterministic collations - that can define case- and accent-agnostic equality comparisons. - Thus, for example, a case-insensitive uniqueness constraint on a - text column can be made more easily than before. This is only - supported for ICU collations. - - - - - - Allow vacuum to avoid index cleanup with the - INDEX_CLEANUP option (Masahiko Sawada) + Allow VACUUM to skip index cleanup + (Masahiko Sawada) + + + + This change adds a VACUUM command + option INDEX_CLEANUP as well as a table storage + option vacuum_index_cleanup. Use of this option + reduces the ability to reclaim space and can lead to index bloat, + but it is helpful when the main goal is to freeze old tuples. @@ -2190,6 +2203,26 @@ Author: Robert Haas + + + Prevent , + VACUUM and ANALYZE + from requesting a lock on + tables for which the user lacks permission (Michaël Paquier) + + + + This prevents unauthorized locking, which could interfere with + user queries. + + + + + @@ -2201,7 +2234,7 @@ Author: Tomas Vondra - This can also be output in auto-explain via .log_settings. @@ -2213,12 +2246,9 @@ Author: Andrew Gierth --> - Allow aggregates to be replaced (Andrew Gierth) - - - - The command is CREATE - OR REPLACE AGGREGATE. + Add OR REPLACE option to + + (Andrew Gierth) @@ -2229,7 +2259,7 @@ Author: Peter Eisentraut --> - Allow modifications of system table options using (Peter Eisentraut) @@ -2241,31 +2271,18 @@ Author: Peter Eisentraut - - - Allow RECORD and RECORD[] to be used - as column types in a query's column definition list for a table function that is declared - to return RECORD (Elvis Pranskevichus) - - - - - - Use all column names when creating default foreign key constraint - names (Peter Eisentraut) + Use all key columns' names when selecting default constraint + names for foreign keys (Peter Eisentraut) - Previously, only the first column name was used. + Previously, only the first column name was used, resulting in + ambiguity for multi-column foreign keys. @@ -2280,6 +2297,25 @@ Author: Peter Eisentraut + + + Update assorted knowledge about Unicode to match Unicode 12.1.0 + (Peter Eisentraut) + + + + This fixes, for example, cases + where psql would misformat output + involving combining characters. + + + + + @@ -2290,8 +2326,31 @@ Author: Tom Lane - This adds stemming for Arabic, Indonesian, Irish, Lithuanian, Nepali, - and Tamil to full text search. + This adds word stemming support for Arabic, Indonesian, Irish, + Lithuanian, Nepali, and Tamil to full + text search. + + + + + + + + Allow creation of collations that report + string equality for strings that are not byte-wise equal (Peter + Eisentraut) + + + + This feature supports nondeterministic collations + that can define case- and accent-agnostic equality comparisons. + Thus, for example, a case-insensitive uniqueness constraint on a + text column can be made more easily than before. This is only + supported for ICU collations. @@ -2302,12 +2361,12 @@ Author: Peter Eisentraut --> - Add support for ICU collation customization - attributes (Peter Eisentraut) + Add support for ICU collation attributes + (Peter Eisentraut) - This allow modification of the collation rules. DETAILS? + This allows customization of the collation rules. @@ -2318,8 +2377,15 @@ Author: Tom Lane --> - Allow data type name to more - seamlessly be compared to other text types (Tom Lane) + Allow data + type name + to more seamlessly be compared to other text types (Tom Lane) + + + + Type name now behaves much like a domain over + type text that has default collation C. + This allows cross-type comparisons to be processed more efficiently. @@ -2344,7 +2410,7 @@ Author: Alexander Korotkov Add support for the SQL/JSON path language + linkend="functions-sqljson-path">path language (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov, Liudmila Mantrova) @@ -2367,7 +2433,7 @@ Author: Tom Lane - Also add log10() as alias for + Also add log10() as an alias for log(), for standards compliance. @@ -2419,7 +2485,6 @@ Author: Alexander Korotkov This new behavior more closely matches the Oracle functions of the same name. - DETAILS? @@ -2430,14 +2495,17 @@ Author: Alvaro Herrera --> - Improve node detection and escaping of XML functions (Pavel Stehule, Markus Winand, Chapman Flack) Specifically, in XMLTABLE, - xpath(), and xmlexists(). + xpath(), and xmlexists(), + fix some cases where nothing was output for a node, or an + unexpected error was thrown, or necessary escaping of XML special + characters was omitted. @@ -2448,11 +2516,15 @@ Author: Alvaro Herrera --> - Allow the XML BY VALUE clause (Chapman Flack) + Allow the BY VALUE clause + in XMLEXISTS and XMLTABLE + (Chapman Flack) - The clause has no effect. + This SQL-standard clause has no effect + in PostgreSQL's implementation, but it + was unnecessarily being rejected. @@ -2466,7 +2538,21 @@ Author: Michael Paquier Prevent current_schema() and current_schemas() from being run by - parallel workers (Michaël Paquier) + parallel workers, as they are not parallel-safe (Michaël Paquier) + + + + + + + + Allow RECORD and RECORD[] to be used + as column types in a query's column definition list for a table function that is declared + to return RECORD (Elvis Pranskevichus) @@ -2486,13 +2572,15 @@ Author: Tom Lane --> - Allow commands and variables with the same name as commands to - be used in the same PL/pgSQL function (Tom Lane) + Allow SQL commands and variables with the same names as those + commands to be used in the same PL/pgSQL function (Tom Lane) - For example, allow a variable called comment to exist in the same - function that calls the comment SQL command. + For example, allow a variable called comment to + exist in a function that calls + the COMMENT SQL command. + Previously this combination caused a parse error. @@ -2524,110 +2612,103 @@ Author: Tomas Vondra - Allow to create variables of data type - bytea (Ryo Matsumura) - - - - This allows to interaction with bytea data directly, - rather than using a binary encoding. + Add connection parameter + to control libpq's TCP timeout (Ryohei Nagaura) - Add DECLARE STATEMENT support to - ECPG (Takeshi Ideriha, Hayato Kuroda) - - - - This allows statements to be associated with named connections, - so future operations like cursors don't need to re-reference the - connection name. + Allow libpq (and thus psql) to report only + the SQLSTATE value in error messages (Didier + Gautheron) - Add PREPARE AS support to - ECPG (Matsumura Ryo) + Add libpq + function PQresultMemorySize() + to report the memory used by a query result (Lars Kanis, Tom Lane) - Add parameter to control libpq's TCP timeout - (Ryohei Nagaura) + Remove the no-display/debug flag from libpq's + options connection parameter (Peter Eisentraut) - The parameter is . + This allows this parameter to be set by + postgres_fdw. - Allow libpq to report the SQLSTATE to output - only this value (Didier Gautheron) + Allow to create variables of data type + bytea (Matsumura Ryo) + + + + This allows ECPG clients to interact with bytea data + directly, rather than using an encoded form. - Add libpq function to report the memory size of the query result - (Lars Kanis, Tom Lane) + Add DECLARE STATEMENT support to + ECPG (Takeshi Ideriha, Hayato Kuroda) - The function is PQresultMemorySize(). + This allows statements to be associated with named connections, + so future operations like cursors don't need to re-reference the + connection name. - Remove the no-display/debug flag from the libpq - options parameter (Peter Eisentraut) - - - - This allows the option to be used by - postgres_fdw. + Add PREPARE AS support to + ECPG (Matsumura Ryo) @@ -2659,6 +2740,23 @@ Author: Michael Paquier + + + Allow vacuumdb to disable waiting for locks or skipping all-visible + pages (Nathan Bossart) + + + + The options are and + . + + + + + @@ -2675,7 +2773,7 @@ Author: Peter Eisentraut adjusted by setting the environment variable PG_COLORS, using ANSI escape codes for colors. For example, the default behavior is equivalent to - PG_COLORS="error=01;31:warning=01;35:locus=01" + PG_COLORS="error=01;31:warning=01;35:locus=01". @@ -2779,12 +2877,13 @@ Author: Alvaro Herrera --> - Allow values produced by queries to be assigned to pgbench - variables (Fabien Coelho, Álvaro Herrera) + Allow values produced by queries to be assigned + to pgbench variables (Fabien Coelho, + Álvaro Herrera) - The commands is \gset. + The command for this is \gset. @@ -2806,7 +2905,7 @@ Author: Peter Eisentraut 2018-10-15 [5b75a4f82] pgbench: Report errors during run better --> - Improve pgbench error reporting with clearer messages and return + Improve pgbench's error reporting with clearer messages and return codes (Peter Eisentraut) @@ -2824,23 +2923,6 @@ Author: Peter Eisentraut - - - Allow vacuumdb to disable waiting for locks or skipping all-visible - pages (Nathan Bossart) - - - - The options are and - . - - - - - @@ -2880,8 +2962,8 @@ Author: Peter Eisentraut --> - Allow to use the file system cloning - feature (Peter Eisentraut) + Allow to use the file system's cloning + feature, if there is one (Peter Eisentraut) @@ -2898,12 +2980,12 @@ Author: Tom Lane --> - Allow specification of the pg_upgrade - socket directory (Daniel Gustafsson) + Allow specification of the socket directory to use + in pg_upgrade (Daniel Gustafsson) - This is controlled by ; the default + This is controlled by ; the default is the current directory. @@ -2936,6 +3018,20 @@ Author: Michael Paquier + + + + + Fix to report accurate + open_datasync durations on + Windows (Laurenz Albe) + + + @@ -2953,25 +3049,15 @@ Author: Alvaro Herrera --> - Allow control over the number of rows each - pg_dump INSERT - statement uses (Surafel Temesgen, David Rowley) + When pg_dump emits data + with INSERT commands rather + than COPY, allow more than one data row to be + included in each INSERT (Surafel Temesgen, + David Rowley) - The option is . - - - - - - - - Add option to - pg_dumpall (Andrew Dunstan) + The option controlling this is . @@ -2982,14 +3068,13 @@ Author: Thomas Munro --> - Allow pg_dump to emit INSERT ... ON CONFLICT DO - NOTHING (Surafel Temesgen) + Allow pg_dump to emit INSERT + ... ON CONFLICT DO NOTHING (Surafel Temesgen) This avoids conflict failures during restore. - The pg_dump option is - . + The option is . @@ -3000,14 +3085,18 @@ Author: Tom Lane --> - Decouple the order of parallel pg_dump - from the order used by pg_restore - (Tom Lane) + Decouple the order of operations in a + parallel pg_dump from the order used by + a subsequent parallel pg_restore (Tom + Lane) - This allows pg_restore to perform more - efficient parallel restores. + This allows pg_restore to perform + more-fully-parallelized parallel restores, especially in cases + where the original dump was not done in parallel. Scheduling of a + parallel pg_dump is also somewhat + improved. @@ -3018,29 +3107,30 @@ Author: Andrew Dunstan --> - Allow the number of float digits to be specified - for pg_dump and + Allow the setting to be + specified for pg_dump and pg_dumpall (Andrew Dunstan) - This allows the float digit output to match previous dumps. + This is primarily useful for making dumps that are exactly + comparable across different source server versions. It is not + recommended for normal use, as it may result in loss of precision + when the dump is restored. - + - - Fix to report accurate - open_datasync durations on - Windows (Laurenz Albe) - - + + Add option to + pg_dumpall (Andrew Dunstan) + + @@ -3094,12 +3184,13 @@ existin - Add support function capability to improve optimizer estimates, + Add planner support + function interfaces to improve optimizer estimates, inlining, and indexing for functions (Tom Lane) @@ -3114,13 +3205,35 @@ Author: Tom Lane - Reserve a range of OIDs (9000-9999) to be used for external - extensions (Andres Freund) + Simplify renumbering manually-assigned OIDs, and establish a new + project policy for management of such OIDs (John Naylor, Tom Lane) + + + + Patches that manually assign OIDs for new built-in objects (such as + new functions) should now randomly choose OIDs in the range + 8000—9999. At the end of a development cycle, the OIDs used + by committed patches will be renumbered down to lower numbers, + currently somewhere in the 4xxx range, + using the new renumber_oids.pl + script. This approach should greatly reduce the odds of OID + collisions between different in-process patches. + + + + While there is no specific policy reserving any OIDs for external + use, it is recommended that forks and other projects needing + private manually-assigned OIDs use numbers in the high + 7xxx range. This will avoid conflicts + with recently-merged patches, and it should be a long time before + the core project reaches that range. @@ -3148,19 +3261,33 @@ Author: Michael Paquier - A strong random source is now required. + A strong random-number source is now required. - Properly report Winsock errors on - Windows (Tom Lane) + printf-family functions, as well + as strerror + and strerror_r, now behave uniformly across + platforms within Postgres code (Tom Lane) + + + + Notably, printf + understands %m everywhere; on + Windows, strerror copes with Winsock error + codes (it used to do so in backend but not frontend code); + and strerror_r always follows the GNU return + convention. @@ -3171,81 +3298,42 @@ Author: Andres Freund --> - Require a C99-supported compiler, and MSVC + Require a C99-compliant compiler, and MSVC 2013 or later on Windows (Andres Freund) - - - - - - Documentation - - - - Add images to the PostgreSQL - documentation (Jürgen Purtz) + Use pandoc, + not lynx, for generating plain-text + documentation output files (Peter Eisentraut) - - - - - More clearly document the problems of server failure during exclusive base - backups (David Steele, Robert Haas) - - - - - - - - Document that the B/bytes units can be specified - for server variables - (Greg Stark) - - - - - - - - Add documentation - for aclitem functions and operators (Fabien Coelho, - John Naylor) + This affects only the INSTALL file generated + during make dist and the seldom-used + plain-text postgres.txt output file. + Pandoc produces better output than lynx and avoids some + locale/encoding issues. Pandoc version 1.13 or later is required. - Update documentation on the use of NFS - (Peter Eisentraut) + Support use of images in the PostgreSQL + documentation (Jürgen Purtz) @@ -3267,10 +3355,10 @@ Author: Etsuro Fujita --> - Allow more ORDER BY sorts and - LIMIT clauses to be pushed to - postgres_fdw foreign tables (Etsuro - Fujita) + Allow ORDER BY sorts + and LIMIT clauses to be pushed + to foreign servers in more + cases (Etsuro Fujita) @@ -3285,13 +3373,8 @@ Author: Etsuro Fujita --> - Improve optimizer cost accounting for pushdown of aggregates to - tables (Etsuro Fujita) - - - - This release also improves costing of - postgres_fdw target list generation. + Improve optimizer cost accounting for + postgres_fdw queries (Etsuro Fujita) @@ -3360,7 +3443,7 @@ Author: Michael Paquier --> - Update unaccent rules with new + Update rules with new punctuation and symbols (Hugh Ranalli, Michaël Paquier) @@ -3372,8 +3455,8 @@ Author: Thomas Munro --> - Allow to handle some accents encoded - as combining characters (Hugh Ranalli) + Allow unaccent to handle some accents + encoded as combining characters (Hugh Ranalli) @@ -3391,45 +3474,15 @@ Author: Thomas Munro - - - Add 64-bit hash function to (Amul Sul) - - - - The function citext_hash_extended() also - requires a seed value. NO DOCS? - - - - - - - - Add 64-bit hash function to (Amul Sul) - - - - The function hstore_hash_extended() also - requires a seed value. NO DOCS? - - - - - - Add a parameter to a function to check - each index tuple from the root of the tree. + Add a parameter to + 's bt_index_parent_check() + function to check each index tuple from the root of the tree + (Peter Geoghegan) -- 2.39.5