doc: word-wrap and indent PG 14 relnotes
authorBruce Momjian
Sun, 23 May 2021 02:25:05 +0000 (22:25 -0400)
committerBruce Momjian
Sun, 23 May 2021 02:25:13 +0000 (22:25 -0400)
doc/src/sgml/release-14.sgml

index 372abff0ac37b834e4d9e9daf9734d1e6d6356d1..08cb0676805e61a55a5c5cbaa345839219659d7c 100644 (file)
 
    
 
-
+    
 
 
-
-Prevent the containment operators (<@ and @>) for  from using GiST indexes (Tom Lane)
-
+     
+      Prevent the containment operators (<@ and @>) for 
+      linkend="intarray"/> from using GiST indexes (Tom Lane)
+     
 
-
-Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster.  Indexes created for this purpose should be removed.
-
-
+     
+      Previously a full GiST index scan was required, so just avoid
+      that and scan the heap, which is faster.  Indexes created for this
+      purpose should be removed.
+     
+    
 
-
+    
 
 
-
-Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules ,
-, and  (Justin Pryzby)
-
+     
+      Remove deprecated containment operators @ and ~ for built-in
+      geometric data types and
+      contrib modules ,
+      , and  (Justin Pryzby)
+     
 
-
-The more consistent <@ and @> have been recommended for many years.
-
-
+     
+      The more consistent <@ and @> have been recommended for
+      many years.
+     
+    
 
-
+    
 
 
-
-Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens (Alexander Korotkov)
-
+     
+      Fix 
+      linkend="functions-textsearch">to_tsquery()
+      and websearch_to_tsquery() to properly parse
+      query text containing discarded tokens (Alexander Korotkov)
+     
 
-
-Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both websearch_to_tsquery('"pg_class pg"') and to_tsquery('pg_class <->
-pg') used to output '( pg & class ) <-> pg', but now both output 'pg <-> class <-> pg'.
-
-
+     
+      Certain discarded tokens, like underscore, caused the output of
+      these functions to produce incorrect tsquery output, e.g., both
+      websearch_to_tsquery('"pg_class pg"') and to_tsquery('pg_class
+      <-> pg') used to output '( pg & class ) <-> pg',
+      but now both output 'pg <-> class <-> pg'.
+     
+    
 
-
+    
 
 
-
-Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov)
-
+     
+      Fix 
+      linkend="functions-textsearch">websearch_to_tsquery()
+      to properly parse multiple adjacent discarded tokens in quotes
+      (Alexander Korotkov)
+     
 
-
-Previously, quoted text that contained multiple adjacent discarded tokens were treated as multiple tokens, causing incorrect tsquery output, e.g., websearch_to_tsquery('"aaa: bbb"') used to output 
-'aaa <2> bbb', but now  outputs 'aaa <-> bbb'.
-
-
+     
+      Previously, quoted text that contained multiple adjacent discarded
+      tokens were treated as multiple tokens, causing incorrect tsquery
+      output, e.g., websearch_to_tsquery('"aaa: bbb"') used to output
+      'aaa <2> bbb', but now  outputs 'aaa <-> bbb'.
+     
+    
 
-
+    
 
 
-
-Change the default of the  server parameter to scram-sha-256 (Peter Eisentraut)
-
+     
+      Change the default of the 
+      server parameter to scram-sha-256 (Peter
+      Eisentraut)
+     
 
-
-Previously it was md5.  All new passwords will be stored as SHA256 unless this server variable is changed or the password is specified in md5 format.
-Also, the legacy (and undocumented) boolean-like values which were previously synonyms for md5 are no longer accepted.
-
-
+     
+      Previously it was md5.  All new passwords will
+      be stored as SHA256 unless this server variable is changed or
+      the password is specified in md5 format.  Also, the legacy (and
+      undocumented) boolean-like values which were previously synonyms
+      for md5 are no longer accepted.
+     
+    
 
-
+    
 
 
-
-Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi)
-
+     
+      Overhaul the specification of clientcert in 
+      linkend="auth-pg-hba-conf">pg_hba.conf
+      (Kyotaro Horiguchi)
+     
 
-
-Values 1/0/no-verify are no longer supported;  only the strings verify-ca and verify-full can be used.  Also, disallow verify-ca if cert
-authentication is enabled since cert requires verify-full checking.
-
-
+     
+      Values
+     1/0/no-verify
+      are no longer supported;  only the strings
+     verify-ca and verify-full
+      can be used.  Also, disallow verify-ca if cert
+      authentication is enabled since cert requires
+     verify-full checking.
+     
+    
 
-
+    
 
 
-
-Remove support for SSL compression (Daniel Gustafsson, Michael Paquier)
-
+     
+      Remove support for 
+      linkend="runtime-config-connection-ssl">SSL
+      compression (Daniel Gustafsson, Michael Paquier)
+     
 
-
-This was already disabled by default in previous Postgres releases, and most modern OpenSSL and TLS versions no longer support it.
-
-
+     
+      This was already disabled by default in previous Postgres releases,
+      and most modern OpenSSL and TLS versions no
+      longer support it.
+     
+    
 
-
+    
 
 
-
-Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas)
-
+     
+      Remove server and libpq support
+      for the version 2 wire protocol
+      (Heikki Linnakangas)
+     
 
-
-This was last used as the default in Postgres 7.2 (year 2002).
-
-
+     
+      This was last used as the default in Postgres 7.2 (year 2002).
+     
+    
 
-
+    
 
 
-
-Change EXTRACT to return the NUMERIC data type (Peter Eisentraut)
-
+     
+      Change 
+      linkend="functions-datetime">EXTRACT
+      to return the NUMERIC data type (Peter Eisentraut)
+     
 
-
-EXTRACT(date) now throws an error for units that are not part of the date data type.
-
-
+     
+     EXTRACT(date) now throws an error for units
+      that are not part of the date data type.
+     
+    
 
-
+    
 
 
-
-Fix handling of infinite window function ranges (Tom Lane)
-
+     
+      Fix handling of infinite 
+      linkend="syntax-window-functions">window function ranges
+      (Tom Lane)
+     
 
-
-Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.
-
-
+     
+      Previously window frame clauses like 'inf' PRECEDING AND
+      'inf' FOLLOWING returned incorrect results.
+     
+    
 
-
+    
 
 
-
-Prevent 's function normal_rand() from accepting negative values (Ashutosh Bapat)
-
+     
+      Prevent 's function
+     normal_rand() from accepting negative values
+      (Ashutosh Bapat)
+     
 
-
-Negative values produced undesirable results.
-
-
+     
+      Negative values produced undesirable results.
+     
+    
 
-
+    
 
 
-
-Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane)
-
+     
+      Change 
+      linkend="functions-aggregate">var_samp()
+      and stddev_samp() with numeric parameters to
+      return NULL for a single NaN value (Tom Lane)
+     
 
-
-Previously NaN was returned.
-
-
+     
+      Previously NaN was returned.
+     
+    
 
-
+    
 
 
-
-Remove factorial operators ! and !! (Mark Dilger)
-
+     
+      Remove factorial operators ! and
+     !! (Mark Dilger)
+     
 
-
-The factorial() function is still supported.  Also remove function numeric_fac().
-
-
+     
+      The 
+      linkend="functions-math">factorial()
+      function is still supported.  Also remove function
+     numeric_fac().
+     
+    
 
-
+    
 
 
-
-Disallow factorial() of negative numbers (Peter Eisentraut)
-
+     
+      Disallow factorial() of negative numbers
+      (Peter Eisentraut)
+     
 
-
-Previously such cases returned 1.
-
-
+     
+      Previously such cases returned 1.
+     
+    
 
-
+    
 
 
-
-Remove support for postfix (right-unary) operators (Mark Dilger)
-
+     
+      Remove support for postfix
+      (right-unary) operators (Mark Dilger)
+     
 
-
-pg_dump and pg_upgrade will warn if postfix operators are being dumped.
-
-
+     
+     pg_dump and
+     pg_upgrade will warn if postfix operators
+      are being dumped.
+     
+    
 
-
+    
 
 
-
-Allow \D and \W shorthands to match newlines in regular expression newline-sensitive mode (Tom Lane)
-
+     
+      Allow \D and \W shorthands to
+      match newlines in regular
+      expression newline-sensitive mode (Tom Lane)
+     
 
-
-Previously they did not match;  [^[:digit:]] or [^[:word:]] can be used to get the old behavior.
-
-
+     
+      Previously they did not match;  [^[:digit:]] or
+      [^[:word:]] can be used to get the old behavior.
+     
+    
 
-
+    
 
 
-
-Improve handling of regular expression back-references (Tom Lane)
-
+     
+      Improve handling of regular expression back-references (Tom Lane)
+     
 
-
-For example, disregard ^ in its expansion in \1 in (^\d+).*\1.
-
-
+     
+      For example, disregard ^ in its expansion in
+     \1 in (^\d+).*\1.
+     
+    
 
-
+    
 
 
-
-Disallow \w as range start/end in character classes (Tom Lane)
-
+     
+      Disallow \w as range start/end in character
+      classes (Tom Lane)
+     
 
-
-This previously was allowed but produced incorrect results.
-
-
+     
+      This previously was allowed but produced incorrect results.
+     
+    
 
-
+    
 
 
-
-Require custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane)
-
-
+     
+      Require custom server
+      variable names to match the pattern used for unquoted
+     SQL identifiers (Tom Lane)
+     
+    
 
-
+    
 
 
-
-Remove server variable vacuum_cleanup_index_scale_factor (Peter Geoghegan)
-
+     
+      Remove server variable
+     vacuum_cleanup_index_scale_factor (Peter Geoghegan)
+     
 
-
-This setting was ignored starting in PostgreSQL version 13.3.
-
-
+     
+      This setting was ignored starting in
+     PostgreSQL version 13.3.
+     
+    
 
-
+    
 
 
-
-Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway)
-
+     
+      Return false for 
+      linkend="functions-info">has_column_privilege()
+      checks on non-existent or dropped columns when using attribute
+      numbers (Joe Conway)
+     
 
-
-Previously such attribute numbers returned an invalid column error.
-
-
+     
+      Previously such attribute numbers returned an invalid column error.
+     
+    
 
-
+    
 
 
-
-Pass doubled quote marks in  SQL command strings literally (Tom Lane)
-
+     
+      Pass doubled quote marks in 
+     SQL command strings literally (Tom Lane)
+     
 
-
-Previously 'abc''def' was passed to the server as 'abc'def', and "abc""def" was passed as "abc"def".
-
-
+     
+      Previously 'abc''def' was passed to the server
+      as 'abc'def', and "abc""def"
+      was passed as "abc"def".
+     
+    
 
-
+    
 
 
-
-Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut)
-
-
+     
+      Disallow single-quoting of the language name in the
+     CREATE/DROP
+      LANGUAGE command (Peter Eisentraut)
+     
+    
 
-
+    
 
 
-
-Remove contrib program pg_standby (Justin Pryzby)
-
-
+     
+      Remove contrib program pg_standby
+      (Justin Pryzby)
+     
+    
 
-
+    
 
 
-
-Remove composite types for sequences or toast tables (Tom Lane)
-
-
+     
+      Remove composite
+      types for sequences or toast tables (Tom Lane)
+     
+    
 
-
+    
 
 
-
-Remove operator_precedence_warning setting (Tom Lane)
-
+     
+      Remove operator_precedence_warning setting
+      (Tom Lane)
+     
 
-
-This was needed for warning applications about PostgreSQL 9.5 changes.
-
-
+     
+      This was needed for warning applications about
+     PostgreSQL 9.5 changes.
+     
+    
 
    
 
@@ -448,269 +523,310 @@ This was needed for warning applications about PostgreSQL
    Changes
 
      
-       Below you will find a detailed account of the changes between
+        Below you will find a detailed account of the changes between
        PostgreSQL 14 and the previous major
-       release.
+        release.
      
 
    
     Server
 
-   
+    
 
-
+     
 
 
-
-Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost)
-
+      
+       Add predefined roles 
+       linkend="predefined-roles">pg_read_all_data
+       and pg_write_all_data (Stephen Frost)
+      
 
-
-These non-login roles can be used to give read or write permission to all tables, views, and sequences.
-
-
+      
+       These non-login roles can be used to give read or write permission
+       to all tables, views, and sequences.
+      
+     
 
-
+     
 
 
-
-Add a predefined role to match the database owner (Noah Misch)
-
+      
+       Add a predefined role to match the database owner (Noah Misch)
+      
 
-
-It is called pg_database_owner; this is useful in template databases.
-
-
+      
+       It is called 
+       linkend="predefined-roles">pg_database_owner;
+       this is useful in template databases.
+      
+     
 
-
+     
 
 
-
-Remove temporary files after backend crashes (Euler Taveira)
-
+      
+       Remove temporary files after backend crashes (Euler Taveira)
+      
 
-
-These files were previously retained for debugging purposes;  deletion can be disabled with .
-
-
+      
+       These files were previously retained for debugging
+       purposes;  deletion can be disabled with 
+       linkend="guc-remove-temp-files-after-crash"/>.
+      
+     
 
-
+     
 
 
-
-Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
-
+      
+       Allow long-running queries to be canceled if the client disconnects
+       (Sergey Cherkashin, Thomas Munro)
+      
 
-
-The server variable  allows some supported operating systems to automatically cancel queries by disconnected clients.
-
-
+      
+       The server variable 
+       linkend="guc-client-connection-check-interval"/> allows some
+       supported operating systems to automatically cancel queries by
+       disconnected clients.
+      
+     
 
-
+     
 
 
-
-Add function pg_wait_for_backend_termination() that waits for session exit (Bharath Rupireddy)
-
+      
+       Add function 
+       linkend="functions-admin-signal">pg_wait_for_backend_termination()
+       that waits for session exit (Bharath Rupireddy)
+      
 
-
-Also add a similar optional wait parameter to pg_terminate_backend()
-
-
+      
+       Also add a similar optional wait parameter to 
+       linkend="functions-admin-signal">pg_terminate_backend()
+      
+     
 
-
+     
 
 
-
-Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee)
-
+      
+       Allow wide tuples to be always added to almost-empty heap pages
+       (John Naylor, Floris van Nee)
+      
 
-
-Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.
-
-
+      
+       Previously tuples whose insertion would have exceeded the page's
+      fill factor were instead
+       added to new pages.
+      
+     
 
-
+     
 
 
-
-Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut)
-
+      
+       Add Set Server Name Indication (SNI) for
+      SSL connection packets (Peter Eisentraut)
+      
 
-
-This can be disabled by turning off client option sslsni.
-
-
+      
+       This can be disabled by turning off client option 
+       linkend="libpq-paramkeywords">sslsni.
+      
+     
 
-   
+    
 
     
      <link linkend="routine-vacuuming">Vacuuming</link>
 
      
 
-
+      
 
 
-
-Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
-
-
+       
+        Allow vacuum to skip index vacuuming when the number of removable
+        index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
+       
+      
 
-
+      
 
 
-
-Allow vacuum to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan)
-
+       
+        Allow vacuum to eagerly add newly deleted btree pages to the free
+        space map (Peter Geoghegan)
+       
 
-
-Previously vacuum could only place preexisting deleted pages in the free space map.
-
-
+       
+        Previously vacuum could only place preexisting deleted pages in
+        the free space map.
+       
+      
 
-
+      
 
 
-
-Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan)
-
-
+       
+        Allow vacuum to deallocate space reserved by trailing unused heap
+        line pointers (Matthias van de Meent, Peter Geoghegan)
+       
+      
 
-
+      
 
 
-
-Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)
-
-
+       
+        Speed up vacuuming of databases with many relations (Tatsuhito
+        Kasahara)
+       
+      
 
-
+      
 
 
-
-Reduce the default value of  to better reflects current hardware capabilities (Peter Geoghegan)
-
-
+       
+        Reduce the default value of 
+        linkend="guc-vacuum-cost-page-miss"/> to better reflects current
+        hardware capabilities (Peter Geoghegan)
+       
+      
 
-
+      
 
 
-
-Add ability to skip vacuuming of TOAST tables (Nathan Bossart)
-
+       
+        Add ability to skip vacuuming of TOAST tables
+        (Nathan Bossart)
+       
 
-
-VACUUM now has a PROCESS_TOAST which can be set to false to disable TOAST processing, and
-vacuumdb has a  option.
-
-
+       
+       VACUUM
+        now has a PROCESS_TOAST which can be set to
+        false to disable TOAST processing, and 
+        linkend="app-vacuumdb">vacuumdb
+        has a  option.
+       
+      
 
-
+      
 
 
-
-Have COPY FREEZE appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes)
-
-
+       
+        Have COPY FREEZE
+        appropriately update page visibility bits (Anastasia Lubennikova,
+        Pavan Deolasee, Jeff Janes)
+       
+      
 
-
+      
 
 
-
-Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
-
+       
+        Cause vacuum operations to be aggressive if the table is near
+        xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
+       
 
-
-This is controlled by  and .
-
-
+       
+        This is controlled by 
+        and .
+       
+      
 
-
+      
 
 
-
-Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch)
-
+       
+        Increase warning time and hard limit before transaction id and
+        multi-transaction wraparound (Noah Misch)
+       
 
-
-This should reduce the possibility of failures that occur without having issued warnings about wraparound.
-
-
+       
+        This should reduce the possibility of failures that occur without
+        having issued warnings about wraparound.
+       
+      
 
-
+      
 
 
-
-Autovacuum now analyzes partitioned tables (Yuzuko Hosoya, Álvaro Herrera)
-
+       
+       Autovacuum now analyzes
+        partitioned tables (Yuzuko Hosoya, Álvaro Herrera)
+       
 
-
-Insert, update, and delete tuple counts from partitions are now propagated to their parent tables so autovacuum knows when to process them.
-
-
+       
+        Insert, update, and delete tuple counts from partitions are now
+        propagated to their parent tables so autovacuum knows when to
+        process them.
+       
+      
 
-
+      
 
 
-
-Add per-index information to autovacuum logging output (Masahiko Sawada)
-
-
+       
+        Add per-index information to 
+        linkend="guc-log-autovacuum-min-duration">autovacuum logging
+        output (Masahiko Sawada)
+       
+      
 
      
     
@@ -720,7 +836,7 @@ Add per-index information to aut
 
      
 
-
+      
 
 
-
-Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane)
-
+       
+        Improve the performance of updates/deletes on partitioned tables
+        when only a few partitions are affected (Amit Langote, Tom Lane)
+       
 
-
-This also allows updates/deletes on partitioned tables to use execution-time partition pruning.
-
-
+       
+        This also allows updates/deletes on partitioned tables to use
+        execution-time partition pruning.
+       
+      
 
-
+      
 
 
-
-Allow partitions to be detached in a non-blocking manner (Álvaro Herrera)
-
+       
+        Allow partitions to be 
+        linkend="sql-altertable">detached in a non-blocking manner
+        (Álvaro Herrera)
+       
 
-
-The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.
-
-
+       
+        The syntax is ALTER TABLE ... DETACH PARTITION
+        ... CONCURRENTLY, and FINALIZE.
+       
+      
 
-
+      
 
 
-
-Allow the arbitrary collations of partition boundary values (Tom Lane)
-
+       
+        Allow the arbitrary collations of partition boundary values
+        (Tom Lane)
+       
 
-
-Previously it had to match the collation of the partition key.
-
-
+       
+        Previously it had to match the collation of the partition key.
+       
+      
 
      
 
@@ -778,7 +900,7 @@ Previously it had to match the collation of the partition key.
 
      
 
-
+      
 
 
-
-Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan)
-
+       
+        Allow btree index additions to 
+        linkend="btree-deletion">remove expired index entries
+        to prevent page splits (Peter Geoghegan)
+       
 
-
-This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.
-
-
+       
+        This is particularly helpful for reducing index bloat on tables
+        whose indexed columns are frequently updated.
+       
+      
 
-
+      
 
 
-
-Allow BRIN indexes to record multiple min/max values per range (Tomas Vondra)
-
+       
+        Allow BRIN indexes
+        to record multiple min/max values per range (Tomas Vondra)
+       
 
-
-This is useful if there are groups of values in each page range.
-
-
+       
+        This is useful if there are groups of values in each page range.
+       
+      
 
-
+      
 
 
-
-Allow BRIN indexes to use bloom filters (Tomas Vondra)
-
+       
+        Allow BRIN indexes to use bloom filters
+        (Tomas Vondra)
+       
 
-
-This allows bloom indexes to be used effectively with data that is not physically localized in the heap.
-
-
+       
+        This allows bloom indexes to be used effectively with data that
+        is not physically localized in the heap.
+       
+      
 
-
+      
 
 
-
-Allow some GiST indexes to be built by presorting the data (Andrey Borodin)
-
+       
+        Allow some GiST indexes to be built
+        by presorting the data (Andrey Borodin)
+       
 
-
-Presorting happens automatically and allows for faster index creation and smaller indexes.
-
-
+       
+        Presorting happens automatically and allows for faster index
+        creation and smaller indexes.
+       
+      
 
-
+      
 
 
-
-Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov)
-
-
+       
+        Allow SP-GiST to use
+       INCLUDE'd columns (Pavel Borisov)
+       
+      
 
      
 
@@ -860,22 +991,24 @@ Allow SP-GiST to use INCLUDE'd
 
      
 
-
+      
 
 
-
-Allow hash lookup of IN clause with many constants (James Coleman, David Rowley)
-
+       
+        Allow hash lookup of IN clause with many
+        constants (James Coleman, David Rowley)
+       
 
-
-Previously the only option was to sequentially scan the list of constants.
-
-
+       
+        Previously the only option was to sequentially scan the list
+        of constants.
+       
+      
 
-
+      
 
 
-
-Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed)
-
-
+       
+        Increase the number of places 
+        linkend="planner-stats-extended">extended statistics can
+        be used for OR clause estimation (Tomas Vondra,
+        Dean Rasheed)
+       
+      
 
-
+      
 
 
-
-Allow extended statistics on expressions (Tomas Vondra)
-
+       
+        Allow extended statistics on expressions (Tomas Vondra)
+       
 
-
-This allows statistics on a group of expressions and columns, rather than only columns like previously.  System view pg_stats_ext_exprs
-reports such statistics. ALTER TABLE ... ALTER COLUMN ... TYPE RESETS STASTISTICS?
-
-
+       
+        This allows statistics on a group of expressions and columns,
+        rather than only columns like previously.  System view 
+        linkend="view-pg-stats-ext-exprs">pg_stats_ext_exprs
+        reports such statistics. 
+        linkend="sql-altertable">ALTER TABLE ... ALTER COLUMN
+        ... TYPE RESETS STASTISTICS?
+       
+      
 
-
+      
 
 
-
-Allow efficient heap scanning of a range of TIDs (Edmund Horner, David Rowley)
-
+       
+        Allow efficient heap scanning of a range of 
+        linkend="datatype-oid-table">TIDs (Edmund
+        Horner, David Rowley)
+       
 
-
-Previously a sequential scan was required for non-equality TID specifications.
-
-
+       
+        Previously a sequential scan was required for non-equality
+       TID specifications.
+       
+      
 
-
+      
 
 
-
-Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy)
-
+       
+        Fix EXPLAIN CREATE TABLE
+        AS and EXPLAIN CREATE MATERIALIZED
+        VIEW to honor IF NOT EXISTS
+        (Bharath Rupireddy)
+       
 
-
-Previously, if the object already exists, EXPLAIN would fail.
-
-
+       
+        Previously, if the object already exists,
+        EXPLAIN would fail.
+       
+      
 
      
 
@@ -945,7 +1092,7 @@ Previously, if the object already exists, EXPLAIN would fail.
 
      
 
-
+      
 
 
-
-Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund)
-
+       
+        Improve the speed of computing MVCC 
+        linkend="mvcc">visibility snapshots on systems with many
+        CPUs and high session counts (Andres Freund)
+       
 
-
-This also improves performance when there are many idle sessions.
-
-
+       
+        This also improves performance when there are many idle sessions.
+       
+      
 
-
+      
 
 
-
-Add executor method to cache results from the inner-side of nested loop joins (David Rowley)
-
+       
+        Add executor method to cache results from the inner-side of nested
+        loop joins (David Rowley)
+       
 
-
-This is useful if only a small percentage of rows is checked on the inner side.
-
-
+       
+        This is useful if only a small percentage of rows is checked on
+        the inner side.
+       
+      
 
-
+      
 
 
-
-Allow window functions to perform incremental sorts (David Rowley)
-
-
+       
+        Allow window functions
+        to perform incremental sorts (David Rowley)
+       
+      
 
-
+      
 
 
-
-Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)
-
+       
+        Improve the I/O performance of parallel sequential scans (Thomas
+        Munro, David Rowley)
+       
 
-
-This was done by allocating blocks in groups to parallel workers.
-
-
+       
+        This was done by allocating blocks in groups to 
+        linkend="guc-max-parallel-workers">parallel workers.
+       
+      
 
-
+      
 
 
-
-Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)
-
+       
+        Allow a query referencing multiple 
+        linkend="sql-createforeigntable">foreign tables to perform
+        foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi,
+        Thomas Munro, Etsuro Fujita)
+       
 
-
-The postgres_fdw supports these type of scans if async_capable is set.
-
-
+       
+        The 
+        linkend="postgres-fdw">postgres_fdw
+        supports these type of scans if async_capable
+        is set.
+       
+      
 
-
+      
 
 
-
-Allow analyze to do page prefetching (Stephen Frost)
-
+       
+        Allow analyze to do
+        page prefetching (Stephen Frost)
+       
 
-
-This is controlled by .
-
-
+       
+        This is controlled by 
+        linkend="guc-maintenance-io-concurrency"/>.
+       
+      
 
-
+      
 
 
-
-Improve the performance of regular expression comparisons (Tom Lane)
-
-
+       
+        Improve the performance of 
+        linkend="functions-similarto-regexp">regular expression
+        comparisons (Tom Lane)
+       
+      
 
-
+      
 
 
-
-Dramatically improve Unicode normalization (John Naylor)
-
+       
+        Dramatically improve Unicode normalization (John Naylor)
+       
 
-
-This speeds normalize() and IS NORMALIZED.
-
-
+       
+        This speeds 
+        linkend="functions-string">normalize()
+        and IS NORMALIZED.
+       
+      
 
-
+      
 
 
-
-Add ability to use LZ4 compression on TOAST data (Dilip Kumar)
-
+       
+        Add ability to use LZ4
+        compression on TOAST data (Dilip Kumar)
+       
 
-
-This can be set at the column level, or set as a default via server setting .  The server must be compiled with  to support this feature;  the default is still pglz.
-
-
+       
+        This can be set at the column level, or set as a default via server
+        setting .
+        The server must be compiled with 
+        linkend="configure-options-features">
+        to support this feature;  the default is still pglz.
+       
+      
 
      
 
@@ -1113,7 +1284,7 @@ This can be set at the column level, or set as a default via server setting 
 
      
 
-
+      
 
 
-
-If server variable  is enabled, display the query id in pg_stat_activity,
-EXPLAIN VERBOSEcsvlog, and optionally in 
-(Julien Rouhaud)
-
+       
+        If server variable 
+        is enabled, display the query id in 
+        linkend="monitoring-pg-stat-activity-view">pg_stat_activity,
+       EXPLAIN
+        VERBOSE, 
+        linkend="runtime-config-logging">csvlog, and optionally in
+        (Julien Rouhaud)
+       
 
-
-A query id computed by an extension will also be displayed.
-
-
+       
+        A query id computed by an extension will also be displayed.
+       
+      
 
-
+      
 
 
-
-Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao)
-
-
+       
+        Add system view 
+        linkend="view-pg-backend-memory-contexts">pg_backend_memory_contexts
+        to report session memory usage (Atsushi Torikoshi, Fujii Masao)
+       
+      
 
-
+      
 
 
-
-Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi)
-
-
+       
+        Add function 
+        linkend="functions-admin-signal">pg_log_backend_memory_contexts()
+        to output the memory contexts of arbitrary backends (Atsushi
+        Torikoshi)
+       
+      
 
-
+      
 
 
-
-Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak)
-
+       
+        Improve logging of auto-vacuum
+        and auto-analyze (Stephen Frost, Jakub Wartak)
+       
 
-
-This reports I/O timings for auto-vacuum and auto-analyze if  is enabled.  Also, report buffer read and dirty rates for auto-analyze.
-
-
+       
+        This reports I/O timings for auto-vacuum and auto-analyze if 
+        linkend="guc-track-io-timing"/> is enabled.  Also, report buffer
+        read and dirty rates for auto-analyze.
+       
+      
 
-
+      
 
 
-
-Add information about the original user name supplied by the client to the output of  (Jacob Champion)
-
-
+       
+        Add information about the original user name supplied by the
+        client to the output of 
+        (Jacob Champion)
+       
+      
 
      
 
@@ -1197,7 +1382,7 @@ Add information about the original user name supplied by the client to the outpu
 
      
 
-
+      
 
 
-
-Add view pg_stat_progress_copy to report COPY progress (Josef Šimánek, Matthias van de Meent)
-
-
+       
+        Add view 
+        linkend="copy-progress-reporting">pg_stat_progress_copy
+        to report COPY progress (Josef Šimánek,
+        Matthias van de Meent)
+       
+      
 
-
+      
 
 
-
-Add session statistics to the pg_stat_database system view (Laurenz Albe)
-
-
+       
+        Add session statistics to the 
+        linkend="monitoring-pg-stat-database-view">pg_stat_database
+        system view (Laurenz Albe)
+       
+      
 
-
+      
 
 
-
-Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)
-
-
+       
+        Add columns to 
+        linkend="view-pg-prepared-statements">pg_prepared_statements
+        to report generic and custom plan counts (Atsushi Torikoshi,
+        Kyotaro Horiguchi)
+       
+      
 
-
+      
 
 
-
-Add lock wait start time to pg_locks (Atsushi Torikoshi)
-
-
+       
+        Add lock wait start time to 
+        linkend="view-pg-locks">pg_locks
+        (Atsushi Torikoshi)
+       
+      
 
-
+      
 
 
-
-Add system view pg_stat_wal which reports WAL activity (Masahiro Ikeda)
-
-
+       
+        Add system view 
+        linkend="monitoring-pg-stat-wal-view">pg_stat_wal
+        which reports WAL activity (Masahiro Ikeda)
+       
+      
 
-
+      
 
 
-
-Add system view pg_stat_replication_slots to report replication slot activity (Sawada Masahiko, Amit Kapila, Vignesh C)
-
+       
+        Add system view 
+        linkend="monitoring-pg-stat-replication-slots-view">pg_stat_replication_slots
+        to report replication slot activity (Sawada Masahiko, Amit Kapila,
+        Vignesh C)
+       
 
-
-Function pg_stat_reset_replication_slot() resets slot statistics.
-
-
+       
+        Function 
+        linkend="monitoring-stats-functions">pg_stat_reset_replication_slot()
+        resets slot statistics.
+       
+      
 
-
+      
 
 
-
-Improve pg_stat_activity reporting of walsender processes (Tom Lane)
-
+       
+        Improve 
+        linkend="monitoring-pg-stat-activity-view">pg_stat_activity
+        reporting of walsender processes (Tom Lane)
+       
 
-
-Previously only SQL commands were reported.
-
-
+       
+        Previously only SQL commands were reported.
+       
+      
 
-
+      
 
 
-
-Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)
-
-
+       
+        Make the archiver process visible in
+       pg_stat_activity (Kyotaro Horiguchi)
+       
+      
 
-
+      
 
 
-
-Add wait event WalReceiverExit to report WAL receiver exit wait time (Fujii Masao)
-
-
+       
+        Add wait event 
+        linkend="monitoring-pg-stat-activity-view">WalReceiverExit
+        to report WAL receiver exit wait time (Fujii
+        Masao)
+       
+      
 
-
+      
 
 
-
-Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions (Peter Eisentraut)
-
-
+       
+        Implement information schema view 
+        linkend="infoschema-routine-column-usage">routine_column_usage
+        to track columns referenced by function and procedure default
+        expressions (Peter Eisentraut)
+       
+      
 
      
 
@@ -1336,61 +1547,73 @@ Implement information schema view 
 
      
 
-
+      
 
 
-
-Allow the certificate's distinguished name (DN) to be matched for client certificate authentication (Andrew Dunstan)
-
+       
+        Allow the certificate's distinguished name (DN)
+        to be matched for client certificate authentication (Andrew
+        Dunstan)
+       
 
-
-The new pg_hba.conf keyword clientname=DN allows comparison with certificate attributes beyond the CN and can be combined with ident maps.
-
-
+       
+        The new 
+        linkend="auth-pg-hba-conf">pg_hba.conf
+        keyword clientname=DN allows comparison with
+        certificate attributes beyond the CN and can
+        be combined with ident maps.
+       
+      
 
-
+      
 
 
-
-Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho)
-
+       
+        Allow pg_hba.conf and 
+        linkend="auth-username-maps">pg_ident.conf
+        records to span multiple lines (Fabien Coelho)
+       
 
-
-A backslash at the end of a line allows record contents to be continued on the next line.
-
-
+       
+        A backslash at the end of a line allows record contents to be
+        continued on the next line.
+       
+      
 
-
+      
 
 
-
-Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi)
-
+       
+        Allow the specification of a certificate revocation list
+        (CRL) directory (Kyotaro Horiguchi)
+       
 
-
-This is controlled by server variable  and libpq connection option sslcrldir.  Previously only CRL files could be specified.
-
-
+       
+        This is controlled by server variable 
+        linkend="guc-ssl-crl-dir"/> and libpq connection option sslcrldir.
+        Previously only CRL files could be specified.
+       
+      
 
-
+      
 
 
-
-Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
-
-
+       
+        Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
+       
+      
 
      
 
@@ -1401,87 +1624,96 @@ Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
 
      
 
-
+      
 
 
-
-Add server setting  to close idle sessions (Li Japin)
-
+       
+        Add server setting 
+        to close idle sessions (Li Japin)
+       
 
-
-This is similar to .
-
-
+       
+        This is similar to 
+        linkend="guc-idle-in-transaction-session-timeout"/>.
+       
+      
 
-
+      
 
 
-
-Change  default to 0.9 (Stephen Frost)
-
+       
+        Change  default
+        to 0.9 (Stephen Frost)
+       
 
-
-The previous default was 0.5.
-
-
+       
+        The previous default was 0.5.
+       
+      
 
-
+      
 
 
-
-Allow %P in  to report the parallel group leader (Justin Pryzby)
-
-
+       
+        Allow %P in  to report the
+        parallel group leader (Justin Pryzby)
+       
+      
 
-
+      
 
 
-
-Allow  to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick)
-
+       
+        Allow  to specify
+        paths as individual, comma-separated quoted strings (Ian Lawrence
+        Barwick)
+       
 
-
-Previously all the paths had to be in a single quoted string.
-
-
+       
+        Previously all the paths had to be in a single quoted string.
+       
+      
 
-
+      
 
 
-
-Allow startup allocation of dynamic shared memory (Thomas Munro)
-
+       
+        Allow startup allocation of dynamic shared memory (Thomas Munro)
+       
 
-
-This is controlled by .   This allows more use of huge pages.
-
-
+       
+        This is controlled by 
+        linkend="guc-min-dynamic-shared-memory"/>.   This allows more
+        use of huge pages.
+       
+      
 
-
+      
 
 
-
-Add setting  to control the size of huge pages used on Linux (Odin Ugedal)
-
-
+       
+        Add setting  to control the
+        size of huge pages used on Linux (Odin Ugedal)
+       
+      
 
      
 
@@ -1494,33 +1726,39 @@ Add setting  to control the size of huge pag
 
     
 
-
+     
 
 
-
-Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)
-
-
+      
+       Allow standby servers to be rewound via 
+       linkend="app-pgrewind">pg_rewind
+       (Heikki Linnakangas)
+      
+     
 
-
+     
 
 
-
-Allow  setting to be changed during a server reload (Sergei Kornilov)
-
+      
+       Allow  setting to be changed
+       during a server reload (Sergei Kornilov)
+      
 
-
-You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory.
-
-
+      
+       You can also set restore_command to an empty
+       string and reload to force recovery to only read from the 
+       linkend="storage-file-layout">pg_wal
+       directory.
+      
+     
 
-
+     
 
 
-
-Add server variable  to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
-
-
+      
+       Add server variable 
+       linkend="guc-log-recovery-conflict-waits"/> to report long recovery
+       conflict wait times (Bertrand Drouvot, Masahiko Sawada)
+      
+     
 
-
+     
 
 
-
-Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut)
-
+      
+       Pause recovery if the primary changes its parameters in a way that
+       prevents replay on the hot standby (Peter Eisentraut)
+      
 
-
-Previously the standby would shut down immediately.
-
-
+      
+       Previously the standby would shut down immediately.
+      
+     
 
-
+     
 
 
-
-Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar)
-
+      
+       Add function 
+       linkend="functions-recovery-control">pg_get_wal_replay_pause_state()
+       to report the recovery state (Dilip Kumar)
+      
 
-
-It gives more detailed information than pg_is_wal_replay_paused(), which still exists.
-
-
+      
+       It gives more detailed information than 
+       linkend="functions-recovery-control">pg_is_wal_replay_paused(),
+       which still exists.
+      
+     
 
-
+     
 
 
-
-Add new server-side variable  (Haribabu Kommi, Greg Nancarrow, Tom Lane)
-
-
+      
+       Add new server-side variable 
+       (Haribabu Kommi, Greg Nancarrow, Tom Lane)
+      
+     
 
-
+     
 
 
-
-Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)
-
-
+      
+       Speed truncation of small tables during recovery on clusters with
+       a large number of shared buffers (Kirk Jamison)
+      
+     
 
-
+     
 
 
-
-Allow file system sync at the start of crash recovery on Linux (Thomas Munro)
-
+      
+       Allow file system sync at the start of crash recovery on Linux
+       (Thomas Munro)
+      
 
-
-By default, Postgres opens and fsyncs every data file at the start of crash recovery.
-This new setting, =syncfs, instead syncs each filesystem used by the database cluster.
-This allows for faster recovery on systems with many database files.
-
-
+      
+       By default, Postgres opens and fsyncs every data file
+       at the start of crash recovery.  This new setting, 
+       linkend="guc-recovery-init-sync-method"/>=syncfs,
+       instead syncs each filesystem used by the database cluster.
+       This allows for faster recovery on systems with many database files.
+      
+     
 
-
+     
 
 
-
-Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)
-
-
+      
+       Add function 
+       linkend="functions-info">pg_xact_commit_timestamp_origin()
+       to return the commit timestamp and replication origin of the
+       specified transaction (Movead Li)
+      
+     
 
-
+     
 
 
-
-Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)
-
-
+      
+       Add the replication origin to the record returned by 
+       linkend="functions-info">pg_last_committed_xact()
+       (Movead Li)
+      
+     
 
-
+     
 
 
-
-Allow replication origin functions to be controlled using standard function permission controls (Martín Marqués)
-
+      
+       Allow replication origin
+       functions to be controlled using standard function permission
+       controls (Martín Marqués)
+      
 
-
-Previously these functions could only be executed by super-users, and this is still the default.
-
-
+      
+       Previously these functions could only be executed by super-users,
+       and this is still the default.
+      
+     
 
-
+     
 
 
-
-Improve signal handling reliability (Fujii Masao)
-
+      
+       Improve signal handling reliability (Fujii Masao)
+      
 
-
-GENERAL ENOUGH?
-
-
+      
+       GENERAL ENOUGH?
+      
+     
 
     
 
@@ -1662,7 +1920,7 @@ GENERAL ENOUGH?
 
      
 
-
+      
 
 
-
-Allow logical replication to stream long in-progress transactions to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin Cherian, Nikhil Sontakke, Stas Kelvich)
-
+       
+        Allow logical replication to stream long in-progress transactions
+        to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin
+        Cherian, Nikhil Sontakke, Stas Kelvich)
+       
 
-
-Previously transactions that exceeded  were written to disk until the transaction completed.
-
-
+       
+        Previously transactions that exceeded 
+        linkend="guc-logical-decoding-work-mem"/> were written to disk
+        until the transaction completed.
+       
+      
 
-
+      
 
 
-
-Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)
-
+       
+        Enhance the logical replication API to allow
+        streaming large in-progress transactions (Tomas Vondra, Dilip
+        Kumar, Amit Kapila)
+       
 
-
-The output functions begin with stream.  test_decoding also supports these.
-
-
+       
+        The output functions begin with 
+        linkend="logicaldecoding-output-plugin-stream-start">stream.
+       test_decoding also supports these.
+       
+      
 
-
+      
 
 
-
-Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
-
-
+       
+        Allow multiple transactions during table sync in logical
+        replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
+       
+      
 
-
+      
 
 
-
-Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila)
-
+       
+        Immediately WAL-log subtransaction and top-level
+       XID association (Tomas Vondra, Dilip Kumar, Amit
+        Kapila)
+       
 
-
-This is useful for logical decoding.
-
-
+       
+        This is useful for logical decoding.
+       
+      
 
-
+      
 
 
-
-Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
-
+       
+        Enhance logical decoding APIs to handle two-phase commits (Ajin
+        Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
+       
 
-
-This is controlled via pg_create_logical_replication_slot().
-
-
+       
+        This is controlled via 
+        linkend="functions-replication">pg_create_logical_replication_slot().
+       
+      
 
-
+      
 
 
-
-Generate WAL invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila)
-
+       
+        Generate WAL invalidations message during
+        command completion when using logical replication (Dilip Kumar,
+        Tomas Vondra, Amit Kapila)
+       
 
-
-When logical replication is disabled, WAL invalidation messages are generated at transaction completion.  This allows logical streaming of in-progress transactions.
-
-
+       
+        When logical replication is disabled, WAL
+        invalidation messages are generated at transaction completion.
+        This allows logical streaming of in-progress transactions.
+       
+      
 
-
+      
 
 
-
-Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar)
-
+       
+        Allow logical decoding to more efficiently process cache
+        invalidation messages (Dilip Kumar)
+       
 
-
-This allows logical decoding to work efficiently in presence of a large amount of DDL.
-
-
+       
+        This allows logical decoding
+        to work efficiently in presence of a large amount of
+       DDL.
+       
+      
 
-
+      
 
 
-
-Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)
-
-
+       
+        Allow control over whether logical decoding messages are sent to
+        the replication stream (David Pirotte, Euler Taveira)
+       
+      
 
-
+      
 
 
-
-Allow logical replication subscriptions to use binary transfer mode (Dave Cramer)
-
+       
+        Allow logical replication subscriptions to use binary transfer mode
+        (Dave Cramer)
+       
 
-
-This is faster than text mode, but slightly less robust.
-
-
+       
+        This is faster than text mode, but slightly less robust.
+       
+      
 
-
+      
 
 
-
-Allow logical decoding to be filtered by xid (Markus Wanner)
-
-
+       
+        Allow logical decoding to be filtered by xid (Markus Wanner)
+       
+      
 
      
     
@@ -1820,67 +2100,76 @@ Allow logical decoding to be filtered by xid (Markus Wanner)
 
     
 
-
+     
 
 
-
-Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger)
-
+      
+       Reduce the number of keywords that can't be used as column labels
+       without AS (Mark Dilger)
+      
 
-
-There are now 90% fewer restricted keywords.
-
-
+      
+       There are now 90% fewer restricted keywords.
+      
+     
 
-
+     
 
 
-
-Allow an alias to be specified for JOIN's USING clause (Peter Eisentraut)
-
+      
+       Allow an alias to be specified for JOIN's
+      USING clause (Peter Eisentraut)
+      
 
-
-The alias is created by using AS after the USING clause and represents an alias for the USING columns.
-
-
+      
+       The alias is created by using AS after the
+      USING clause and represents an alias for the
+      USING columns.
+      
+     
 
-
+     
 
 
-
-Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations (Vik Fearing)
-
+      
+       Allow DISTINCT to be added to GROUP
+       BY to remove duplicate GROUPING SET
+       combinations (Vik Fearing)
+      
 
-
-For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping combinations without DISTINCT.
-
-
+      
+       For example, GROUP BY CUBE (a,b), CUBE (b,c)
+       will generate duplicate grouping combinations without
+      DISTINCT.
+      
+     
 
-
+     
 
 
-
-Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed)
-
+      
+       Properly handle DEFAULT values for columns in
+       multi-column inserts (Dean Rasheed)
+      
 
-
-This used to throw an error.
-
-
+      
+       This used to throw an error.
+      
+     
 
-
+     
 
 
-
-Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut)
-
+      
+       Add SQL-standard SEARCH
+       and CYCLE clauses for 
+       linkend="queries-with">common table expressions (Peter
+       Eisentraut)
+      
 
-
-This could be accomplished previously using existing syntax.
-
-
+      
+       This could be accomplished previously using existing syntax.
+      
+     
 
-
+     
 
 
-
-Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane)
-
+      
+       Allow the WHERE clause of ON
+       CONFLICT to be table-qualified (Tom Lane)
+      
 
-
-Only the target table can be referenced.
-
-
+      
+       Only the target table can be referenced.
+      
+     
 
     
 
@@ -1921,126 +2214,152 @@ Only the target table can be referenced.
 
     
 
-
+     
 
 
-
-Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy)
-
-
+      
+       Allow REFRESH
+       MATERIALIZED VIEW to use parallelism (Bharath
+       Rupireddy)
+      
+     
 
-
+     
 
 
-
-Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby)
-
+      
+       Allow REINDEX
+       to change the tablespace of the new index (Alexey Kondratov,
+       Michael Paquier, Justin Pryzby)
+      
 
-
-This is done by specifying a TABLESPACE clause.
-
-
+      
+       This is done by specifying a TABLESPACE clause.
+      
+     
 
-
+     
 
 
-
-Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
-
-
+      
+       Allow REINDEX to process all child tables or
+       indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
+      
+     
 
-
+     
 
 
-
-Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote)
-
-
+      
+       Improve the performance of COPY
+       FROM in binary mode (Bharath Rupireddy, Amit
+       Langote)
+      
+     
 
-
+     
 
 
-
-Preserve SQL standard syntax in view definitions, if possible (Tom Lane)
-
+      
+       Preserve SQL standard syntax in 
+       linkend="sql-createview">view definitions, if possible
+       (Tom Lane)
+      
 
-
-Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls.
-
-
+      
+       Previously non-function call
+      SQL standard syntax, e.g. 
+       linkend="functions-formatting">EXTRACT,
+       were converted to non-SQL standard function
+       calls.
+      
+     
 
-
+     
 
 
-
-Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut)
-
-
+      
+       Add the SQL-standard
+       clause GRANTED BY to 
+       linkend="sql-grant">GRANT and 
+       linkend="sql-revoke">REVOKE (Peter
+       Eisentraut)
+      
+     
 
-
+     
 
 
-
-Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi)
-
+      
+       Add OR REPLACE for 
+       linkend="sql-createtrigger">CREATE TRIGGER
+       (Takamichi Osumi)
+      
 
-
-This allows pre-existing triggers to be conditionally replaced.
-
-
+      
+       This allows pre-existing triggers to be conditionally replaced.
+      
+     
 
-
+     
 
 
-
-Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
-
+      
+       Allow 
+       linkend="sql-truncate">TRUNCATE to
+       operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
+      
 
-
-The postgres_fdw module also now supports this.
-
-
+      
+       The 
+       linkend="postgres-fdw">postgres_fdw
+       module also now supports this.
+      
+     
 
-
+     
 
 
-
-Allow publications to be more easily added and removed (Japin Li)
-
+      
+       Allow publications to be more easily added and removed (Japin Li)
+      
 
-
-The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION.  This avoids having to specify all publications to add/remove entries.
-
-
+      
+       The new syntax is 
+       linkend="sql-altersubscription">ALTER SUBSCRIPTION
+       ... ADD/DROP PUBLICATION.  This avoids having to
+       specify all publications to add/remove entries.
+      
+     
 
-
+     
 
 
-
-Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut)
-
+      
+       Add primary keys, unique constraints, and foreign keys to 
+       linkend="catalogs">system catalogs (Peter Eisentraut)
+      
 
-
-This helps GUI tools analyze the system tables.
-
-
+      
+       This helps GUI tools analyze the system tables.
+      
+     
 
-
+     
 
 
-
-Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut)
-
-
+      
+       Allow 
+       linkend="functions-info">CURRENT_ROLE
+       every place CURRENT_USER is accepted (Peter
+       Eisentraut)
+      
+     
 
     
 
@@ -2077,23 +2400,26 @@ Allow CURRENT_ROLE ever
 
     
 
-
+     
 
 
-
-Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov)
-
+      
+       Allow extensions and built-in data types to implement 
+       linkend="sql-altertype">subscripting (Dmitry Dolgov)
+      
 
-
-Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types.  This change allows subscript notation to be used to extract or
-assign portions of a value of any type for which the concept makes sense.
-
-
+      
+       Previously subscript handling was hard-coded into the server, so
+       that subscripting could only be applied to array types.  This change
+       allows subscript notation to be used to extract or assign portions
+       of a value of any type for which the concept makes sense.
+      
+     
 
-
+     
 
 
-
-Allow subscripting of JSONB (Dmitry Dolgov)
-
+      
+       Allow subscripting of 
+       linkend="datatype-json">JSONB (Dmitry Dolgov)
+      
 
-
-JSONB subscripting can be used to extract and assign to portions of JSONB documents.
-
-
+      
+      JSONB subscripting can be used to extract and assign
+       to portions of JSONB documents.
+      
+     
 
-
+     
 
 
-
-Add support for multirange data types (Paul Jungwirth, Alexander Korotkov)
-
+      
+       Add support for multirange data
+       types (Paul Jungwirth, Alexander Korotkov)
+      
 
-
-These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges.
-All existing range types now also support multirange versions.
-
-
+      
+       These are like range data types, but they allow the specification
+       of multiple, ordered, non-overlapping ranges.  All existing range
+       types now also support multirange versions.
+      
+     
 
-
+     
 
 
-
-Add point operators <<| and |>> to be strictly above/below geometry (Emre Hasegeli)
-
+      
+       Add point operators
+       <<| and |>> to be strictly above/below geometry
+       (Emre Hasegeli)
+      
 
-
-Previously >^ and <^ were marked as performing this test, but non-point geometric operators used these operators for non-strict comparisons, leading to confusion.  The old operators still exist but will be eventually removed.  ACCURATE?
-
-
+      
+       Previously >^ and <^ were marked as performing this test, but
+       non-point geometric operators used these operators for non-strict
+       comparisons, leading to confusion.  The old operators still exist
+       but will be eventually removed.  ACCURATE?
+      
+     
 
-
+     
 
 
-
-Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
-
-
+      
+       Add support for the 
+       linkend="textsearch-snowball-dictionary">stemming of
+       languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish
+       (Peter Eisentraut)
+      
+     
 
-
+     
 
 
-
-Allow tsearch data files to have unlimited line lengths (Tom Lane)
-
+      
+       Allow tsearch data
+       files to have unlimited line lengths (Tom Lane)
+      
 
-
-The previous limit was 4k bytes.  Also remove function t_readline().
-
-
+      
+       The previous limit was 4k bytes.  Also remove function
+      t_readline().
+      
+     
 
-
+     
 
 
-
-Add support for infinity and -infinity values to the numeric data type (Tom Lane)
-
+      
+       Add support for infinity and -infinity values
+       to the numeric data type
+       (Tom Lane)
+      
 
-
-Floating point data types already supported these.
-
-
+      
+       Floating point data types already supported these.
+      
+     
 
-
+     
 
 
-
-Improve the accuracy of floating point computations involving infinity (Tom Lane)
-
-
+      
+       Improve the accuracy of floating point computations involving
+       infinity (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Have non-zero float values divided by infinity return zero (Kyotaro Horiguchi)
-
+      
+       Have non-zero float values
+       divided by infinity return zero (Kyotaro Horiguchi)
+      
 
-
-Previously such operations produced underflow errors.
-
-
+      
+       Previously such operations produced underflow errors.
+      
+     
 
-
+     
 
 
-
-Cause floating-point division of NaN by zero to return NaN (Tom Lane)
-
+      
+       Cause floating-point division of NaN by zero to return NaN
+       (Tom Lane)
+      
 
-
-Previously this returned an error.  Division with Numerics always returned NaN.
-
-
+      
+       Previously this returned an error.  Division with Numerics always
+       returned NaN.
+      
+     
 
-
+     
 
 
-
-Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)
-
-
+      
+       Add operators to add and subtract 
+       linkend="datatype-pg-lsn">LSN and numeric
+       (byte) values (Fujii Masao)
+      
+     
 
-
+     
 
 
-
-Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)
-
-
+      
+       Allow binary data
+       transfer to be more forgiving of array and record
+      OID mismatches (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Create composite array types for most system relations (Wenjing Zeng)
-
-
+      
+       Create composite array types for most system relations (Wenjing
+       Zeng)
+      
+     
 
     
 
@@ -2275,22 +2626,26 @@ Create composite array types for most system relations (Wenjing Zeng)
 
     
 
-
+     
 
 
-
-Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut)
-
+      
+       Allow SQL-language 
+       linkend="sql-createfunction">functions and 
+       linkend="sql-createprocedure">procedures to use
+      SQL-standard function bodies (Peter Eisentraut)
+      
 
-
-Previously only single-quoted or $$-quoted function bodies were supported.
-
-
+      
+       Previously only single-quoted or $$-quoted function bodies were
+       supported.
+      
+     
 
-
+     
 
 
-
-Allow procedures to have OUT parameters (Peter Eisentraut)
-
-
+      
+       Allow procedures to have
+      OUT parameters (Peter Eisentraut)
+      
+     
 
-
+     
 
 
-
-Allow some array functions to operate on a mix of compatible data types (Tom Lane)
-
+      
+       Allow some array functions to operate on a mix of compatible data
+       types (Tom Lane)
+      
 
-
-The functions are array_append()array_prepend()array_cat()array_position(),
-array_positions()array_remove()array_replace(), and
-width_bucket().  Previously only identical data types could be used.
-
-
+      
+       The functions are 
+       linkend="functions-array">array_append(),
+      array_prepend(),
+      array_cat(),
+      array_position(),
+      array_positions(),
+      array_remove(),
+      array_replace(), and 
+       linkend="functions-math">width_bucket().
+       Previously only identical data types could be used.
+      
+     
 
-
+     
 
 
-
-Add SQL-standard trim_array() function (Vik Fearing)
-
+      
+       Add SQL-standard 
+       linkend="functions-array">trim_array()
+       function (Vik Fearing)
+      
 
-
-This can already be done with array slices.
-
-
+      
+       This can already be done with array slices.
+      
+     
 
-
+     
 
 
-
-Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)
-
-
+      
+       Add bytea equivalents of 
+       linkend="functions-binarystring">ltrim()
+       and rtrim() (Joel Jacobson)
+      
+     
 
-
+     
 
 
-
-Support negative indexes in split_part() (Nikhil Benesch)
-
+      
+       Support negative indexes in 
+       linkend="functions-string">split_part()
+       (Nikhil Benesch)
+      
 
-
-Negative values start from the last field and count backward.
-
-
+      
+       Negative values start from the last field and count backward.
+      
+     
 
-
+     
 
 
-
-Add string_to_table() function to split a string on delimiters (Pavel Stehule)
-
+      
+       Add 
+       linkend="functions-string">string_to_table()
+       function to split a string on delimiters (Pavel Stehule)
+      
 
-
-This is similar to the regexp_split_to_table() function.
-
-
+      
+       This is similar to the 
+       linkend="functions-string">regexp_split_to_table()
+       function.
+      
+     
 
-
+     
 
 
-
-Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule)
-
+      
+       Add 
+       linkend="functions-string">unistr()
+       function to allow Unicode characters to be specified as
+       backslash-hex escapes in strings (Pavel Stehule)
+      
 
-
-This is similar to how Unicode can be specified in literal string.
-
-
+      
+       This is similar to how Unicode can be specified in literal string.
+      
+     
 
-
+     
 
 
-
-Add bit_xor() XOR aggregate function (Alexey Bashtanov)
-
-
+      
+       Add 
+       linkend="functions-aggregate">bit_xor()
+       XOR aggregate function (Alexey Bashtanov)
+      
+     
 
-
+     
 
 
-
-Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)
-
-
+      
+       Add function 
+       linkend="functions-binarystring">bit_count()
+       to return the number of bits set in a bit or byte string (David
+       Fetter)
+      
+     
 
-
+     
 
 
-
-Add date_bin() function (John Naylor)
-
+      
+       Add 
+       linkend="functions-datetime-bin">date_bin()
+       function (John Naylor)
+      
 
-
-The function date_bin() "bins" the input timestamp into a specified interval aligned with a specified origin.
-
-
+      
+       The function date_bin() "bins" the input
+       timestamp into a specified interval aligned with a specified origin.
+      
+     
 
-
+     
 
 
-
-Allow make_timestamp()/make_timestamptz() to accept negative years (Peter Eisentraut)
-
+      
+       Allow 
+       linkend="functions-datetime">make_timestamp()/make_timestamptz()
+       to accept negative years (Peter Eisentraut)
+      
 
-
-They are interpreted as BC years.
-
-
+      
+       They are interpreted as BC years.
+      
+     
 
-
+     
 
 
-
-Add newer regular expression substring() syntax (Peter Eisentraut)
-
+      
+       Add newer regular expression 
+       linkend="functions-string">substring()
+       syntax (Peter Eisentraut)
+      
 
-
-The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar).  The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), and is still supported by Postgres.
-
-
+      
+       The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE
+       escapechar).  The previous standard syntax was
+      SUBSTRING(text FROM pattern FOR escapechar),
+       and is still supported by Postgres.
+      
+     
 
-
+     
 
 
-
-Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane)
-
-
+      
+       Allow complemented character class escapes 
+       linkend="posix-escape-sequences">\D, \S,
+       and \W within regex brackets (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Add [[:word:]] as a character class to match \w (Tom Lane)
-
-
+      
+       Add 
+       linkend="posix-escape-sequences">[[:word:]]
+       as a character class to match \w (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)
-
-
+      
+       Allow more flexible data types for default values of 
+       linkend="functions-window">lead()
+       and lag() window functions (Vik Fearing)
+      
+     
 
-
+     
 
 
-
-Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane)
-
+      
+       Cause 
+       linkend="functions-math">exp() and
+      power() for negative-infinity exponents to
+       return zero (Tom Lane)
+      
 
-
-Previously they often returned underflow errors.
-
-
+      
+       Previously they often returned underflow errors.
+      
+     
 
-
+     
 
 
-
-Mark built-in type coercion functions as leakproof where possible (Tom Lane)
-
+      
+       Mark built-in type coercion functions as leakproof where possible
+       (Tom Lane)
+      
 
-
-This allows more use of functions that require type conversion in security-sensitive situations.
-
-
+      
+       This allows more use of functions that require type conversion in
+       security-sensitive situations.
+      
+     
 
-
+     
 
 
-
-Mark pg_stat_get_subscription() as returning a set (Tom Lane)
-
+      
+       Mark pg_stat_get_subscription() as returning
+       a set (Tom Lane)
+      
 
-
-While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list.  FUNCTION NOT DOCUMENTED.
-
-
+      
+       While it worked in previous releases, it didn't report proper
+       optimizer statistics and couldn't be used in the target list.
+       FUNCTION NOT DOCUMENTED.
+      
+     
 
-
+     
 
 
-
-Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada)
-
-
+      
+       Prevent 
+       linkend="functions-info">inet_server_addr()
+       and inet_server_port() from being run by
+       parallel workers (Masahiko Sawada)
+      
+     
 
-
+     
 
 
-
-Change pg_describe_object()pg_identify_object(), and 
-pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier)
-
-
+      
+       Change 
+       linkend="functions-info">pg_describe_object(),
+      pg_identify_object(), and
+      pg_identify_object_as_address() to always report
+       helpful error messages for non-existent objects (Michael Paquier)
+      
+     
 
     
 
@@ -2574,42 +2986,50 @@ Change pg_describe_object()<
 
     
 
-
+     
 
 
-
-Improve PL/pgSQL's expression and assignment parsing (Tom Lane)
-
+      
+       Improve PL/pgSQL's 
+       linkend="plpgsql-expressions">expression and 
+       linkend="plpgsql-statements-assignment">assignment parsing
+       (Tom Lane)
+      
 
-
-This adds nested record and array slicing support.
-
-
+      
+       This adds nested record and array slicing support.
+      
+     
 
-
+     
 
 
-
-Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane)
-
-
+      
+       Allow plpgsql's 
+       linkend="plpgsql-control-structures">RETURN
+       QUERY to execute its query using parallelism
+       (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane)
-
-
+      
+       Improve performance of repeated 
+       linkend="plpgsql-transactions">CALLs within plpgsql
+       procedures (Pavel Stehule, Tom Lane)
+      
+     
 
     
 
@@ -2620,22 +3040,24 @@ Improve performance of repeated CALL
 
     
 
-
+     
 
 
-
-Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)
-
+      
+       Add pipeline mode
+       to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)
+      
 
-
-This allows multiple queries to be sent and only wait for completion when a specific synchronization message is sent.
-
-
+      
+       This allows multiple queries to be sent and only wait for completion
+       when a specific synchronization message is sent.
+      
+     
 
-
+     
 
 
-
-Enhance libpq's  parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
-
+      
+       Enhance libpq's 
+       linkend="libpq-paramkeywords">
+       parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C,
+       Tom Lane)
+      
 
-
-New options are read-onlyprimarystandby, and prefer-standby.
-
-
+      
+       New options are read-only,
+      primarystandby, and
+      prefer-standby.
+      
+     
 
-
+     
 
 
-
-Improve the output format of libpq's PQtrace() (Aya Iwata, Álvaro Herrera)
-
-
+      
+       Improve the output format of libpq's 
+       linkend="libpq-control">PQtrace()
+       (Aya Iwata, Álvaro Herrera)
+      
+     
 
-
+     
 
 
-
-Allow the libpq service file to have unlimited line lengths (Daniel Gustafsson)
-
+      
+       Allow the libpq service file
+       to have unlimited line lengths (Daniel Gustafsson)
+      
 
-
-The previous limit was 255 bytes.
-
-
+      
+       The previous limit was 255 bytes.
+      
+     
 
-
+     
 
 
-
-Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda)
-
+      
+       Allow an ECPG SQL identifier to be linked to
+       a specific connection (Hayato Kuroda)
+      
 
-
-This is done via DECLARE ... STATEMENT.
-
-
+      
+       This is done via 
+       linkend="ecpg-sql-declare-statement">DECLARE
+       ... STATEMENT.
+      
+     
 
     
 
@@ -2702,175 +3135,201 @@ This is done via DECLARE ...
 
     
 
-
+     
 
 
-
-Allow reindexdb to change the tablespace of the new index (Michael Paquier)
-
+      
+       Allow 
+       linkend="app-reindexdb">reindexdb
+       to change the tablespace of the new index (Michael Paquier)
+      
 
-
-This is done by specifying .
-
-
+      
+       This is done by specifying .
+      
+     
 
-
+     
 
 
-
-Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart)
-
+      
+       Allow 
+       linkend="app-vacuumdb">vacuumdb
+       to skip index cleanup and truncation (Nathan Bossart)
+      
 
-
-The options are  and .
-
-
+      
+       The options are  and
+      .
+      
+     
 
-
+     
 
 
-
-Allow pg_dump to dump only certain extensions (Guillaume Lelarge)
-
+      
+       Allow 
+       linkend="app-pgdump">pg_dump
+       to dump only certain extensions (Guillaume Lelarge)
+      
 
-
-This is controlled by option .
-
-
+      
+       This is controlled by option .
+      
+     
 
-
+     
 
 
-
-Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
-
-
+      
+       Add 
+       linkend="pgbench">pgbench
+      permute() function to randomly shuffle values
+       (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
+      
+     
 
-
+     
 
 
-
-Allow multiple verbose option specifications () to increase the logging verbosity (Tom Lane)
-
+      
+       Allow multiple verbose option specifications ()
+       to increase the logging verbosity (Tom Lane)
+      
 
-
-This is now supported by pg_dumppg_dumpall
-and pg_restore.
-
-
+      
+       This is now supported by 
+       linkend="app-pgdump">pg_dump,
+       
+       linkend="app-pg-dumpall">pg_dumpall,
+       and 
+       linkend="app-pgrestore">pg_restore.
+      
+     
 
     
 
     
-     <xref linkend="app-psql"/>
+    <xref linkend="app-psql"/>
 
      
 
-
+      
 
 
-
-Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane)
-
+       
+        Allow psql's \df and \do commands to
+        specify function and operator argument types (Greg Sabino Mullane,
+        Tom Lane)
+       
 
-
-This helps reduce the number of matches for overloaded entries.
-
-
+       
+        This helps reduce the number of matches for overloaded entries.
+       
+      
 
-
+      
 
 
-
-Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos)
-
-
+       
+        Add an access method column to psql's
+        \d[i|m|t]+ output (Georgios Kokolatos)
+       
+      
 
-
+      
 
 
-
-Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby)
-
-
+       
+        Allow psql's \dt and \di to show
+       TOAST tables and their indexes (Justin Pryzby)
+       
+      
 
-
+      
 
 
-
-Add psql command \dX to list extended statistics objects (Tatsuro Yamada)
-
-
+       
+        Add psql command \dX to list extended
+        statistics objects (Tatsuro Yamada)
+       
+      
 
-
+      
 
 
-
-Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane)
-
-
+       
+        Fix psql's \dT to understand array
+        syntax and backend grammar aliases, like "int" for "integer"
+        (Greg Sabino Mullane, Tom Lane)
+       
+      
 
-
+      
 
 
-
-When editing the previous query or a file with psql's \e, or using \ef and \ev, ignore the contents if the editor exits without saving (Laurenz Albe)
-
+       
+        When editing the previous query or a file with
+       psql's \e, or using \ef and \ev, ignore
+        the contents if the editor exits without saving (Laurenz Albe)
+       
 
-
-Previously, such edits would still execute the editor contents.
-
-
+       
+        Previously, such edits would still execute the editor contents.
+       
+      
 
-
+      
 
 
-
-Improve psql's handling of \connect with  (Tom Lane)
-
+       
+        Improve psql's handling of \connect
+        with  (Tom Lane)
+       
 
-
-Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed.
-
-
+       
+        Specifically, properly reuse the password previously specified,
+        and prompt for a new password if the previous one failed.
+       
+      
 
-
+      
 
 
-
-Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
-
-
+       
+        Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby,
+        Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
+       
+      
 
      
 
@@ -2926,61 +3386,74 @@ Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Koko
 
     
 
-
+     
 
 
-
-Add command-line utility pg_amcheck to simplify running contrib/amcheck operations on many relations (Mark Dilger)
-
-
+      
+       Add command-line utility 
+       linkend="app-pgamcheck">pg_amcheck
+       to simplify running contrib/amcheck operations on many relations
+       (Mark Dilger)
+      
+     
 
-
+     
 
 
-
-Add  option to initdb (Magnus Hagander)
-
+      
+       Add  option to 
+       linkend="app-initdb">initdb
+       (Magnus Hagander)
+      
 
-
-This removes the server start instructions that are normally output.
-
-
+      
+       This removes the server start instructions that are normally output.
+      
+     
 
-
+     
 
 
-
-Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier)
-
+      
+       Stop 
+       linkend="pgupgrade">pg_upgrade
+       from creating analyze_new_cluster script
+       (Michael Paquier)
+      
 
-
-Instead, give comparable vacuumdb instructions.
-
-
+      
+       Instead, give comparable 
+       linkend="app-vacuumdb">vacuumdb
+       instructions.
+      
+     
 
-
+     
 
 
-
-Remove support for the postmaster  option (Magnus Hagander)
-
+      
+       Remove support for the 
+       linkend="app-postgres">postmaster
+       option (Magnus Hagander)
+      
 
-
-This option was unnecessary since all passed options could already be specified directly.
-
-
+      
+       This option was unnecessary since all passed options could already
+       be specified directly.
+      
+     
 
     
 
@@ -2991,87 +3464,101 @@ This option was unnecessary since all passed options could already be specified
 
     
 
-
+     
 
 
-
-Rename "Default Roles" to "Predefined Roles" (Bruce Momjian, Stephen Frost)
-
-
+      
+       Rename "Default Roles" to 
+       linkend="predefined-roles">"Predefined Roles" (Bruce Momjian,
+       Stephen Frost)
+      
+     
 
-
+     
 
 
-
-Add documentation for the factorial() function (Peter Eisentraut)
-
+      
+       Add documentation for the 
+       linkend="function-factorial">factorial()
+       function (Peter Eisentraut)
+      
 
-
-With the removal of the ! operator in this release, factorial() is the only built-in way to compute a factorial.
-
-
+      
+       With the removal of the ! operator in this release,
+      factorial() is the only built-in way to compute
+       a factorial.
+      
+     
 
-    
+     
 
-   
+  
 
-   
-    Source Code
+  
+  Source Code
 
-    
+  
 
-
+    
 
 
-
-Add configure option --with-ssl={openssl} to behave like  (Daniel Gustafsson, Michael Paquier)
-
+      
+       Add configure option 
+       linkend="configure-options-features">--with-ssl={openssl}
+       to behave like  (Daniel Gustafsson,
+       Michael Paquier)
+      
 
-
-The option  is kept for compatibility.
-
-
+      
+       The option  is kept for
+       compatibility.
+      
+     
 
-
+     
 
 
-
-Add support for abstract Unix-domain sockets (Peter Eisentraut)
-
+      
+       Add support for abstract
+       Unix-domain sockets (Peter Eisentraut)
+      
 
-
-This is currently supported on Linux and Windows.
-
-
+      
+       This is currently supported on Linux
+       and Windows.
+      
+     
 
-
+     
 
 
-
-Add  to control cache overwriting (Craig Ringer)
-
+      
+       Add 
+       to control cache overwriting (Craig Ringer)
+      
 
-
-Previously this could only be controlled at compile time and is enabled only in assert builds.
-
-
+      
+       Previously this could only be controlled at compile time and is
+       enabled only in assert builds.
+      
+     
 
-
+     
 
 
-
-Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan)
-
-
+      
+       Various improvements in valgrind
+       detection (Álvaro Herrera, Peter Geoghegan)
+      
+     
 
-
+     
 
 
-
-Add a test module for the regular expression package (Tom Lane)
-
-
+      
+       Add a test module for the regular expression package (Tom Lane)
+      
+     
 
-
+     
 
 
-
-Add support for LLVM version 12 (Andres Freund)
-
-
+      
+       Add support for LLVM version 12
+       (Andres Freund)
+      
+     
 
-
+     
 
 
-
-Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier)
-
+      
+       Change SHA1, SHA2, and MD5 hash computations to use the
+      OpenSSL EVP API
+       (Michael Paquier)
+      
 
-
-This is more modern and supports FIPS mode.
-
-
+      
+       This is more modern and supports FIPS mode.
+      
+     
 
-
+     
 
 
-
-Remove build control over the random library used (Daniel Gustafsson)
-
-
+      
+       Remove build control over the random library used (Daniel
+       Gustafsson)
+      
+     
 
-
+     
 
 
-
-Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas)
-
-
+      
+       Add direct conversion routines between EUC_TW and Big5 (Heikki
+       Linnakangas)
+      
+     
 
-
+     
 
 
-
-Add collation versions for FreeBSD (Thomas Munro)
-
-
+      
+       Add collation versions for FreeBSD
+       (Thomas Munro)
+      
+     
 
-
+     
 
 
-
-Add amadjustmembers to the index access method API (Tom Lane)
-
+      
+       Add 
+       linkend="index-api">amadjustmembers
+       to the index access method API (Tom Lane)
+      
 
-
-REMOVE?
-
-
+      
+       REMOVE?
+      
+     
 
     
 
@@ -3186,96 +3682,111 @@ REMOVE?
 
     
 
-
+     
 
 
-
-Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov)
-
-
+      
+       Allow subscripting of 
+       linkend="hstore">hstore values
+       (Tom Lane, Dmitry Dolgov)
+      
+     
 
-
+     
 
 
-
-Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud)
-
+      
+       Allow GiST/GIN 
+       linkend="pgtrgm">pg_trgm indexes
+       to do equality lookups (Julien Rouhaud)
+      
 
-
-This is similar to LIKE except no wildcards are honored.
-
-
+      
+       This is similar to LIKE except no wildcards
+       are honored.
+      
+     
 
-
+     
 
 
-
-Allow the cube data type to be transferred in binary mode (KaiGai Kohei)
-
-
+      
+       Allow the 
+       linkend="cube">cube data type
+       to be transferred in binary mode (KaiGai Kohei)
+      
+     
 
-
+     
 
 
-
-Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut)
-
-
+      
+       Allow pgstattuple_approx() to report on
+      TOAST tables (Peter Eisentraut)
+      
+     
 
-
+     
 
 
-
-Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma)
-
+      
+       Add contrib module 
+       linkend="pgsurgery">pg_surgery
+       which allows changes to row visibility (Ashutosh Sharma)
+      
 
-
-This is useful for correcting database corruption.
-
-
+      
+       This is useful for correcting database corruption.
+      
+     
 
-
+     
 
 
-
-Add contrib module old_snapshot to report the XID/time mapping used by an active  (Robert Haas)
-
-
+      
+       Add contrib module 
+       linkend="oldsnapshot">old_snapshot
+       to report the XID/time mapping used by an active
+        (Robert Haas)
+      
+     
 
-
+     
 
 
-
-Allow amcheck to also check heap pages (Mark Dilger)
-
+      
+       Allow 
+       linkend="amcheck">amcheck to
+       also check heap pages (Mark Dilger)
+      
 
-
-Previously it only checked B-Tree index pages.
-
-
+      
+       Previously it only checked B-Tree index pages.
+      
+     
 
-
+     
 
 
-
-Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
-
-
+      
+       Allow 
+       linkend="pageinspect">pageinspect
+       to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
+      
+     
 
-
+     
 
 
-
-Change pageinspect block numbers to be bigints (Peter Eisentraut)
-
-
+      
+       Change pageinspect block numbers
+       to be bigints
+       (Peter Eisentraut)
+      
+     
 
-
+     
 
 
-
-Mark btree_gist functions as parallel safe (Steven Winfield)
-
-
+      
+       Mark 
+       linkend="btree-gist">btree_gist
+       functions as parallel safe (Steven Winfield)
+      
+     
 
-    
+     
 
-    
-     <link linkend="pgstatstatements">pg_stat_statements</link>
+     
+      <link linkend="pgstatstatements">pg_stat_statements</link>
 
-     
+      
 
-
+     
 
 
-
-Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud)
-
+      
+       Move query hash computation from
+      pg_stat_statements to the core server
+       (Julien Rouhaud)
+      
 
-
-The new server variable 's default of auto will automatically enable query id computation when this extension is loaded.
-
-
+      
+       The new server variable 's
+       default of auto will automatically enable query
+       id computation when this extension is loaded.
+      
+     
 
-
+     
 
 
-
-Allow pg_stat_statements to track top and nested statements independently (Julien Rohaud)
-
+      
+       Allow pg_stat_statements to track top
+       and nested statements independently (Julien Rohaud)
+      
 
-
-Previously, when tracking all statements, identical top and nested statements were tracked together.
-
-
+      
+       Previously, when tracking all statements, identical top and nested
+       statements were tracked together.
+      
+     
 
-
+     
 
 
-
-Add row counts for utility commands to pg_stat_statements> (Fujii Masao, Katsuragi Yuta, Seino Yuki)
-
-
+      
+       Add row counts for utility commands to
+      pg_stat_statements> (Fujii Masao, Katsuragi
+       Yuta, Seino Yuki)
+      
+     
 
-
+     
 
 
-
-Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
-
-
+      
+       Add pg_stat_statements_info system view
+       to show pg_stat_statements activity
+       (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
+      
+     
 
     
 
@@ -3382,7 +3909,7 @@ Add pg_stat_statements_info system view to show 
 
      
 
-
+      
 
 
-
-Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)
-
-
+       
+        Allow postgres_fdw to
+       INSERT rows in bulk (Takayuki Tsunakawa, Tomas
+        Vondra, Amit Langote)
+       
+      
 
-
+      
 
 
-
-Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent)
-
+       
+        Allow postgres_fdw
+        to import table partitions if specified by 
+        linkend="sql-importforeignschema">IMPORT FOREIGN SCHEMA
+        ... LIMIT TO (Matthias van de Meent)
+       
 
-
-By default, only the root of partitioned tables is imported.
-
-
+       
+        By default, only the root of partitioned tables is imported.
+       
+      
 
-
+      
 
 
-
-Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections (Bharath Rupireddy)
-
-
+       
+        Add postgres_fdw function
+       postgres_fdw_get_connections() to report open
+        foreign server connections (Bharath Rupireddy)
+       
+      
 
-
+      
 
 
-
-Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)
-
+       
+        Allow control over whether foreign servers keep connections open
+        after transaction completion (Bharath Rupireddy)
+       
 
-
-This is controlled by keep_connections and defaults to on.
-
-
+       
+        This is controlled by keep_connections and
+        defaults to on.
+       
+      
 
-
+      
 
 
-
-Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy)
-
+       
+        Allow postgres_fdw to reestablish
+        foreign server connections if necessary (Bharath Rupireddy)
+       
 
-
-Previously foreign server restarts could cause foreign table access errors.
-
-
+       
+        Previously foreign server restarts could cause foreign table
+        access errors.
+       
+      
 
-
+      
 
 
-
-Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)
-
-
+       
+        Add postgres_fdw functions to discard
+        cached connections (Bharath Rupireddy)
+       
+      
 
      
 
@@ -3476,9 +4015,9 @@ Add postgres_fdw functions to discard cached connecti
    Acknowledgments
 
    
-    The following individuals (in alphabetical order) have contributed to this
-    release as patch authors, committers, reviewers, testers, or reporters of
-    issues.
+    The following individuals (in alphabetical order) have contributed
+    to this release as patch authors, committers, reviewers, testers,
+    or reporters of issues.