<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-08-08 [20e7e1fe3] Remove <@ from contrib/intarray's GiST operator classes.
-->
-<para>
-Prevent the containment operators (<@ and @>) for <xref linkend="intarray"/> from using GiST indexes (Tom Lane)
-</para>
+ <para>
+ Prevent the containment operators (<@ and @>) for <xref
+ linkend="intarray"/> from using GiST indexes (Tom Lane)
+ </para>
-<para>
-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.
-</para>
-</listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-03 [2f70fdb06] Remove deprecated containment operators for built-in typ
2021-03-05 [112d411fb] Remove deprecated containment operators for contrib type
-->
-<para>
-Remove deprecated containment operators @ and ~ for built-in <link linkend="functions-geometry">geometric data types</link> and contrib modules <xref linkend="cube"/>, <xref linkend="hstore"/>,
-<xref linkend="intarray"/>, and <xref linkend="seg"/> (Justin Pryzby)
-</para>
+ <para>
+ Remove deprecated containment operators @ and ~ for built-in
+ <link linkend="functions-geometry">geometric data types</link> and
+ contrib modules <xref linkend="cube"/>, <xref linkend="hstore"/>,
+ <xref linkend="intarray"/>, and <xref linkend="seg"/> (Justin Pryzby)
+ </para>
-<para>
-The more consistent <@ and @> have been recommended for many years.
-</para>
-</listitem>
+ <para>
+ The more consistent <@ and @> have been recommended for
+ many years.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-31 [0c4f355c6] Fix parsing of complex morphs to tsquery
-->
-<para>
-Fix <link linkend="functions-textsearch"><function>to_tsquery()</function></link> and <function>websearch_to_tsquery()</function> to properly parse query text containing discarded tokens (Alexander Korotkov)
-</para>
+ <para>
+ Fix <link
+ linkend="functions-textsearch"><function>to_tsquery()</function></link>
+ and <function>websearch_to_tsquery()</function> to properly parse
+ query text containing discarded tokens (Alexander Korotkov)
+ </para>
-<para>
-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'.
-</para>
-</listitem>
+ <para>
+ 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'.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-05-03 [eb086056f] Make websearch_to_tsquery() parse text in quotes as a si
-->
-<para>
-Fix <link linkend="functions-textsearch"><function>websearch_to_tsquery()</function></link> to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov)
-</para>
+ <para>
+ Fix <link
+ linkend="functions-textsearch"><function>websearch_to_tsquery()</function></link>
+ to properly parse multiple adjacent discarded tokens in quotes
+ (Alexander Korotkov)
+ </para>
-<para>
-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'.
-</para>
-</listitem>
+ <para>
+ 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'.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256
2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256
-->
-<para>
-Change the default of the <xref linkend="guc-password-encryption"/> server parameter to <literal>scram-sha-256</literal> (Peter Eisentraut)
-</para>
+ <para>
+ Change the default of the <xref linkend="guc-password-encryption"/>
+ server parameter to <literal>scram-sha-256</literal> (Peter
+ Eisentraut)
+ </para>
-<para>
-Previously it was <literal>md5</literal>. 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 <literal>md5</literal> are no longer accepted.
-</para>
-</listitem>
+ <para>
+ Previously it was <literal>md5</literal>. 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 <literal>md5</literal> are no longer accepted.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API
-->
-<para>
-Overhaul the specification of <literal>clientcert</literal> in <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link> (Kyotaro Horiguchi)
-</para>
+ <para>
+ Overhaul the specification of <literal>clientcert</literal> in <link
+ linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
+ (Kyotaro Horiguchi)
+ </para>
-<para>
-Values <literal>1</literal>/<literal>0</literal>/<literal>no-verify</literal> are no longer supported; only the strings <literal>verify-ca</literal> and <literal>verify-full</literal> can be used. Also, disallow <literal>verify-ca</literal> if cert
-authentication is enabled since cert requires <literal>verify-full</literal> checking.
-</para>
-</listitem>
+ <para>
+ Values
+ <literal>1</literal>/<literal>0</literal>/<literal>no-verify</literal>
+ are no longer supported; only the strings
+ <literal>verify-ca</literal> and <literal>verify-full</literal>
+ can be used. Also, disallow <literal>verify-ca</literal> if cert
+ authentication is enabled since cert requires
+ <literal>verify-full</literal> checking.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-09 [f9264d152] Remove support for SSL compression
2021-03-10 [0ba71107e] Revert changes for SSL compression in libpq
-->
-<para>
-Remove support for <link linkend="runtime-config-connection-ssl"><acronym>SSL</acronym></link> compression (Daniel Gustafsson, Michael Paquier)
-</para>
+ <para>
+ Remove support for <link
+ linkend="runtime-config-connection-ssl"><acronym>SSL</acronym></link>
+ compression (Daniel Gustafsson, Michael Paquier)
+ </para>
-<para>
-This was already disabled by default in previous Postgres releases, and most modern OpenSSL and <acronym>TLS</acronym> versions no longer support it.
-</para>
-</listitem>
+ <para>
+ This was already disabled by default in previous Postgres releases,
+ and most modern OpenSSL and <acronym>TLS</acronym> versions no
+ longer support it.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-04 [3174d69fb] Remove server and libpq support for old FE/BE protocol v
-->
-<para>
-Remove server and <link linkend="libpq">libpq</link> support for the version 2 <link linkend="protocol">wire protocol</link> (Heikki Linnakangas)
-</para>
+ <para>
+ Remove server and <link linkend="libpq">libpq</link> support
+ for the version 2 <link linkend="protocol">wire protocol</link>
+ (Heikki Linnakangas)
+ </para>
-<para>
-This was last used as the default in Postgres 7.2 (year 2002).
-</para>
-</listitem>
+ <para>
+ This was last used as the default in Postgres 7.2 (year 2002).
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-06 [a2da77cdb] Change return type of EXTRACT to numeric
-->
-<para>
-Change <link linkend="functions-datetime"><function>EXTRACT</function></link> to return the <type>NUMERIC</type> data type (Peter Eisentraut)
-</para>
+ <para>
+ Change <link
+ linkend="functions-datetime"><function>EXTRACT</function></link>
+ to return the <type>NUMERIC</type> data type (Peter Eisentraut)
+ </para>
-<para>
-<function>EXTRACT(date)</function> now throws an error for units that are not part of the date data type.
-</para>
-</listitem>
+ <para>
+ <function>EXTRACT(date)</function> now throws an error for units
+ that are not part of the date data type.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-20 [a4faef8f8] Fix some corner cases for window ranges with infinite of
-->
-<para>
-Fix handling of infinite <link linkend="syntax-window-functions">window function</link> ranges (Tom Lane)
-</para>
+ <para>
+ Fix handling of infinite <link
+ linkend="syntax-window-functions">window function</link> ranges
+ (Tom Lane)
+ </para>
-<para>
-Previously window frame clauses like <literal>'inf' PRECEDING AND 'inf' FOLLOWING</literal> returned incorrect results.
-</para>
-</listitem>
+ <para>
+ Previously window frame clauses like <literal>'inf' PRECEDING AND
+ 'inf' FOLLOWING</literal> returned incorrect results.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-25 [f73999262] tablefunc: Reject negative number of tuples passed to no
-->
-<para>
-Prevent <xref linkend="tablefunc"/>'s function <function>normal_rand()</function> from accepting negative values (Ashutosh Bapat)
-</para>
+ <para>
+ Prevent <xref linkend="tablefunc"/>'s function
+ <function>normal_rand()</function> from accepting negative values
+ (Ashutosh Bapat)
+ </para>
-<para>
-Negative values produced undesirable results.
-</para>
-</listitem>
+ <para>
+ Negative values produced undesirable results.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-13 [23cbeda50] Sync behavior of var_samp and stddev_samp for single NaN
-->
-<para>
-Change <link linkend="functions-aggregate"><function>var_samp()</function></link> and <function>stddev_samp()</function> with numeric parameters to return NULL for a single NaN value (Tom Lane)
-</para>
+ <para>
+ Change <link
+ linkend="functions-aggregate"><function>var_samp()</function></link>
+ and <function>stddev_samp()</function> with numeric parameters to
+ return NULL for a single NaN value (Tom Lane)
+ </para>
-<para>
-Previously <literal>NaN</literal> was returned.
-</para>
-</listitem>
+ <para>
+ Previously <literal>NaN</literal> was returned.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial()
-->
-<para>
-Remove factorial operators <literal>!</literal> and <literal>!!</literal> (Mark Dilger)
-</para>
+ <para>
+ Remove factorial operators <literal>!</literal> and
+ <literal>!!</literal> (Mark Dilger)
+ </para>
-<para>
-The <link linkend="functions-math"><function>factorial()</function></link> function is still supported. Also remove function <function>numeric_fac()</function>.
-</para>
-</listitem>
+ <para>
+ The <link
+ linkend="functions-math"><function>factorial()</function></link>
+ function is still supported. Also remove function
+ <function>numeric_fac()</function>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-18 [0a40563ea] Disallow factorial of negative numbers
-->
-<para>
-Disallow <function>factorial()</function> of negative numbers (Peter Eisentraut)
-</para>
+ <para>
+ Disallow <function>factorial()</function> of negative numbers
+ (Peter Eisentraut)
+ </para>
-<para>
-Previously such cases returned 1.
-</para>
-</listitem>
+ <para>
+ Previously such cases returned 1.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators.
-->
-<para>
-Remove support for <link linkend="sql-createoperator">postfix</link> (right-unary) operators (Mark Dilger)
-</para>
+ <para>
+ Remove support for <link linkend="sql-createoperator">postfix</link>
+ (right-unary) operators (Mark Dilger)
+ </para>
-<para>
-<application>pg_dump</application> and <application>pg_upgrade</application> will warn if postfix operators are being dumped.
-</para>
-</listitem>
+ <para>
+ <application>pg_dump</application> and
+ <application>pg_upgrade</application> will warn if postfix operators
+ are being dumped.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-25 [7dc13a0f0] Change regex \D and \W shorthands to always match newlin
-->
-<para>
-Allow <literal>\D</literal> and <literal>\W</literal> shorthands to match newlines in <link linkend="functions-similarto-regexp">regular expression</link> newline-sensitive mode (Tom Lane)
-</para>
+ <para>
+ Allow <literal>\D</literal> and <literal>\W</literal> shorthands to
+ match newlines in <link linkend="functions-similarto-regexp">regular
+ expression</link> newline-sensitive mode (Tom Lane)
+ </para>
-<para>
-Previously they did not match; <literal>[^[:digit:]]</literal> or <literal>[^[:word:]]</literal> can be used to get the old behavior.
-</para>
-</listitem>
+ <para>
+ Previously they did not match; <literal>[^[:digit:]]</literal> or
+ <literal>[^[:word:]]</literal> can be used to get the old behavior.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-02 [4aea704a5] Fix semantics of regular expression back-references.
-->
-<para>
-Improve handling of regular expression back-references (Tom Lane)
-</para>
+ <para>
+ Improve handling of regular expression back-references (Tom Lane)
+ </para>
-<para>
-For example, disregard <literal>^</literal> in its expansion in <literal>\1</literal> in <literal>(^\d+).*\1</literal>.
-</para>
-</listitem>
+ <para>
+ For example, disregard <literal>^</literal> in its expansion in
+ <literal>\1</literal> in <literal>(^\d+).*\1</literal>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
-->
-<para>
-Disallow <literal>\w</literal> as range start/end in character classes (Tom Lane)
-</para>
+ <para>
+ Disallow <literal>\w</literal> as range start/end in character
+ classes (Tom Lane)
+ </para>
-<para>
-This previously was allowed but produced incorrect results.
-</para>
-</listitem>
+ <para>
+ This previously was allowed but produced incorrect results.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [3db826bd5] Tighten up allowed names for custom GUC parameters.
-->
-<para>
-Require <link linkend="runtime-config-custom">custom server variable</link> names to match the pattern used for unquoted <acronym>SQL</acronym> identifiers (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Require <link linkend="runtime-config-custom">custom server
+ variable</link> names to match the pattern used for unquoted
+ <acronym>SQL</acronym> identifiers (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-10 [9f3665fbf] Don't consider newly inserted tuples in nbtree VACUUM.
2021-03-11 [effdd3f3b] Add back vacuum_cleanup_index_scale_factor parameter.
-->
-<para>
-Remove server variable <varname>vacuum_cleanup_index_scale_factor</varname> (Peter Geoghegan)
-</para>
+ <para>
+ Remove server variable
+ <varname>vacuum_cleanup_index_scale_factor</varname> (Peter Geoghegan)
+ </para>
-<para>
-This setting was ignored starting in <productname>PostgreSQL</productname> version 13.3.
-</para>
-</listitem>
+ <para>
+ This setting was ignored starting in
+ <productname>PostgreSQL</productname> version 13.3.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-31 [b12bd4869] Fix has_column_privilege function corner case
-->
-<para>
-Return false for <link linkend="functions-info"><function>has_column_privilege()</function></link> checks on non-existent or dropped columns when using attribute numbers (Joe Conway)
-</para>
+ <para>
+ Return false for <link
+ linkend="functions-info"><function>has_column_privilege()</function></link>
+ checks on non-existent or dropped columns when using attribute
+ numbers (Joe Conway)
+ </para>
-<para>
-Previously such attribute numbers returned an invalid column error.
-</para>
-</listitem>
+ <para>
+ Previously such attribute numbers returned an invalid column error.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-22 [3dfb1942d] Avoid premature de-doubling of quote marks in ECPG strin
2020-10-22 [c16a1bbcf] Add documentation and tests for quote marks in ECPG lite
-->
-<para>
-Pass doubled quote marks in <xref linkend="ecpg"/> <acronym>SQL</acronym> command strings literally (Tom Lane)
-</para>
+ <para>
+ Pass doubled quote marks in <xref linkend="ecpg"/>
+ <acronym>SQL</acronym> command strings literally (Tom Lane)
+ </para>
-<para>
-Previously <literal>'abc''def'</literal> was passed to the server as <literal>'abc'def'</literal>, and <literal>"abc""def"</literal> was passed as <literal>"abc"def"</literal>.
-</para>
-</listitem>
+ <para>
+ Previously <literal>'abc''def'</literal> was passed to the server
+ as <literal>'abc'def'</literal>, and <literal>"abc""def"</literal>
+ was passed as <literal>"abc"def"</literal>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-11 [5333e014a] Remove deprecated syntax from CREATE/DROP LANGUAGE
-->
-<para>
-Disallow single-quoting of the language name in the <link linkend="sql-createlanguage"><command>CREATE/DROP LANGUAGE</command></link> command (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Disallow single-quoting of the language name in the
+ <link linkend="sql-createlanguage"><command>CREATE/DROP
+ LANGUAGE</command></link> command (Peter Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-29 [514b411a2] Retire pg_standby.
-->
-<para>
-Remove contrib program <application>pg_standby</application> (Justin Pryzby)
-</para>
-</listitem>
+ <para>
+ Remove contrib program <application>pg_standby</application>
+ (Justin Pryzby)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-07 [f3faf35f3] Don't create pg_type entries for sequences or toast tabl
-->
-<para>
-Remove <link linkend="xfunc-sql-composite-functions">composite types</link> for sequences or toast tables (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Remove <link linkend="xfunc-sql-composite-functions">composite
+ types</link> for sequences or toast tables (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-08 [a676386b5] Remove operator_precedence_warning.
-->
-<para>
-Remove <varname>operator_precedence_warning</varname> setting (Tom Lane)
-</para>
+ <para>
+ Remove <varname>operator_precedence_warning</varname> setting
+ (Tom Lane)
+ </para>
-<para>
-This was needed for warning applications about <productname>PostgreSQL</productname> 9.5 changes.
-</para>
-</listitem>
+ <para>
+ This was needed for warning applications about
+ <productname>PostgreSQL</productname> 9.5 changes.
+ </para>
+ </listitem>
</itemizedlist>
<title>Changes</title>
<para>
- Below you will find a detailed account of the changes between
+ Below you will find a detailed account of the changes between
<productname>PostgreSQL</productname> 14 and the previous major
- release.
+ release.
</para>
<sect3>
<title>Server</title>
- <itemizedlist>
+ <itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles
-->
-<para>
-Add predefined roles <link linkend="predefined-roles"><structname>pg_read_all_data</structname></link> and <structname>pg_write_all_data</structname> (Stephen Frost)
-</para>
+ <para>
+ Add predefined roles <link
+ linkend="predefined-roles"><structname>pg_read_all_data</structname></link>
+ and <structname>pg_write_all_data</structname> (Stephen Frost)
+ </para>
-<para>
-These non-login roles can be used to give read or write permission to all tables, views, and sequences.
-</para>
-</listitem>
+ <para>
+ These non-login roles can be used to give read or write permission
+ to all tables, views, and sequences.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-26 [a14a0118a] Add "pg_database_owner" default role.
-->
-<para>
-Add a predefined role to match the database owner (Noah Misch)
-</para>
+ <para>
+ Add a predefined role to match the database owner (Noah Misch)
+ </para>
-<para>
-It is called <link linkend="predefined-roles"><literal>pg_database_owner</literal></link>; this is useful in template databases.
-</para>
-</listitem>
+ <para>
+ It is called <link
+ linkend="predefined-roles"><literal>pg_database_owner</literal></link>;
+ this is useful in template databases.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-18 [cd91de0d1] Remove temporary files after backend crash
-->
-<para>
-Remove temporary files after backend crashes (Euler Taveira)
-</para>
+ <para>
+ Remove temporary files after backend crashes (Euler Taveira)
+ </para>
-<para>
-These files were previously retained for debugging purposes; deletion can be disabled with <xref linkend="guc-remove-temp-files-after-crash"/>.
-</para>
-</listitem>
+ <para>
+ These files were previously retained for debugging
+ purposes; deletion can be disabled with <xref
+ linkend="guc-remove-temp-files-after-crash"/>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries.
-->
-<para>
-Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
-</para>
+ <para>
+ Allow long-running queries to be canceled if the client disconnects
+ (Sergey Cherkashin, Thomas Munro)
+ </para>
-<para>
-The server variable <xref linkend="guc-client-connection-check-interval"/> allows some supported operating systems to automatically cancel queries by disconnected clients.
-</para>
-</listitem>
+ <para>
+ The server variable <xref
+ linkend="guc-client-connection-check-interval"/> allows some
+ supported operating systems to automatically cancel queries by
+ disconnected clients.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-08 [aaf043257] Add functions to wait for backend termination
-->
-<para>
-Add function <link linkend="functions-admin-signal"><function>pg_wait_for_backend_termination()</function></link> that waits for session exit (Bharath Rupireddy)
-</para>
+ <para>
+ Add function <link
+ linkend="functions-admin-signal"><function>pg_wait_for_backend_termination()</function></link>
+ that waits for session exit (Bharath Rupireddy)
+ </para>
-<para>
-Also add a similar optional wait parameter to <link linkend="functions-admin-signal"><function>pg_terminate_backend()</function></link>
-</para>
-</listitem>
+ <para>
+ Also add a similar optional wait parameter to <link
+ linkend="functions-admin-signal"><function>pg_terminate_backend()</function></link>
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger than fill
-->
-<para>
-Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee)
-</para>
+ <para>
+ Allow wide tuples to be always added to almost-empty heap pages
+ (John Naylor, Floris van Nee)
+ </para>
-<para>
-Previously tuples whose insertion would have exceeded the page's <link linkend="sql-createtable">fill factor</link> were instead added to new pages.
-</para>
-</listitem>
+ <para>
+ Previously tuples whose insertion would have exceeded the page's
+ <link linkend="sql-createtable">fill factor</link> were instead
+ added to new pages.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [5c55dc8b4] libpq: Set Server Name Indication (SNI) for SSL connecti
-->
-<para>
-Add Set Server Name Indication (<acronym>SNI</acronym>) for <acronym>SSL</acronym> connection packets (Peter Eisentraut)
-</para>
+ <para>
+ Add Set Server Name Indication (<acronym>SNI</acronym>) for
+ <acronym>SSL</acronym> connection packets (Peter Eisentraut)
+ </para>
-<para>
-This can be disabled by turning off client option <link linkend="libpq-paramkeywords"><literal>sslsni</literal></link>.
-</para>
-</listitem>
+ <para>
+ This can be disabled by turning off client option <link
+ linkend="libpq-paramkeywords"><literal>sslsni</literal></link>.
+ </para>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
<sect4>
<title><link linkend="routine-vacuuming">Vacuuming</link></title>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-07 [5100010ee] Teach VACUUM to bypass unnecessary index vacuuming.
-->
-<para>
-Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
-</para>
-</listitem>
+ <para>
+ Allow vacuum to skip index vacuuming when the number of removable
+ index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-21 [9dd963ae2] Recycle nbtree pages deleted during same VACUUM.
-->
-<para>
-Allow vacuum to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan)
-</para>
+ <para>
+ Allow vacuum to eagerly add newly deleted btree pages to the free
+ space map (Peter Geoghegan)
+ </para>
-<para>
-Previously vacuum could only place preexisting deleted pages in the free space map.
-</para>
-</listitem>
+ <para>
+ Previously vacuum could only place preexisting deleted pages in
+ the free space map.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM.
-->
-<para>
-Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan)
-</para>
-</listitem>
+ <para>
+ Allow vacuum to deallocate space reserved by trailing unused heap
+ line pointers (Matthias van de Meent, Peter Geoghegan)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-08 [e2ac3fed3] Speed up rechecking if relation needs to be vacuumed or
-->
-<para>
-Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)
-</para>
-</listitem>
+ <para>
+ Speed up vacuuming of databases with many relations (Tatsuhito
+ Kasahara)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-27 [e19594c5c] Reduce the default value of vacuum_cost_page_miss.
-->
-<para>
-Reduce the default value of <xref linkend="guc-vacuum-cost-page-miss"/> to better reflects current hardware capabilities (Peter Geoghegan)
-</para>
-</listitem>
+ <para>
+ Reduce the default value of <xref
+ linkend="guc-vacuum-cost-page-miss"/> to better reflects current
+ hardware capabilities (Peter Geoghegan)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-09 [7cb3048f3] Add option PROCESS_TOAST to VACUUM
-->
-<para>
-Add ability to skip vacuuming of <acronym>TOAST</acronym> tables (Nathan Bossart)
-</para>
+ <para>
+ Add ability to skip vacuuming of <acronym>TOAST</acronym> tables
+ (Nathan Bossart)
+ </para>
-<para>
-<link linkend="sql-vacuum"><command>VACUUM</command></link> now has a <literal>PROCESS_TOAST</literal> which can be set to false to disable <acronym>TOAST</acronym> processing, and
-<link linkend="app-vacuumdb"><application>vacuumdb</application></link> has a <option>--no-process-toast</option> option.
-</para>
-</listitem>
+ <para>
+ <link linkend="sql-vacuum"><command>VACUUM</command></link>
+ now has a <literal>PROCESS_TOAST</literal> which can be set to
+ false to disable <acronym>TOAST</acronym> processing, and <link
+ linkend="app-vacuumdb"><application>vacuumdb</application></link>
+ has a <option>--no-process-toast</option> option.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-17 [7db0cd214] Set PD_ALL_VISIBLE and visibility map bits in COPY FREEZ
-->
-<para>
-Have <link linkend="sql-copy"><command>COPY FREEZE</command></link> appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes)
-</para>
-</listitem>
+ <para>
+ Have <link linkend="sql-copy"><command>COPY FREEZE</command></link>
+ appropriately update page visibility bits (Anastasia Lubennikova,
+ Pavan Deolasee, Jeff Janes)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [1e55e7d17] Add wraparound failsafe to VACUUM.
-->
-<para>
-Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
-</para>
+ <para>
+ Cause vacuum operations to be aggressive if the table is near
+ xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
+ </para>
-<para>
-This is controlled by <xref linkend="guc-vacuum-failsafe-age"/> and <xref linkend="guc-multixact-failsafe-age"/>.
-</para>
-</listitem>
+ <para>
+ This is controlled by <xref linkend="guc-vacuum-failsafe-age"/>
+ and <xref linkend="guc-multixact-failsafe-age"/>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-08-01 [cd5e82256] Change XID and mxact limits to warn at 40M and stop at 3
-->
-<para>
-Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch)
-</para>
+ <para>
+ Increase warning time and hard limit before transaction id and
+ multi-transaction wraparound (Noah Misch)
+ </para>
-<para>
-This should reduce the possibility of failures that occur without having issued warnings about wraparound.
-</para>
-</listitem>
+ <para>
+ This should reduce the possibility of failures that occur without
+ having issued warnings about wraparound.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-08 [0827e8af7] autovacuum: handle analyze for partitioned tables
-->
-<para>
-<link linkend="autovacuum">Autovacuum</link> now analyzes partitioned tables (Yuzuko Hosoya, Álvaro Herrera)
-</para>
+ <para>
+ <link linkend="autovacuum">Autovacuum</link> now analyzes
+ partitioned tables (Yuzuko Hosoya, Álvaro Herrera)
+ </para>
-<para>
-Insert, update, and delete tuple counts from partitions are now propagated to their parent tables so autovacuum knows when to process them.
-</para>
-</listitem>
+ <para>
+ Insert, update, and delete tuple counts from partitions are now
+ propagated to their parent tables so autovacuum knows when to
+ process them.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-23 [5aed6a1fc] Add per-index stats information in verbose logs of autov
-->
-<para>
-Add per-index information to <link linkend="guc-log-autovacuum-min-duration">autovacuum logging output</link> (Masahiko Sawada)
-</para>
-</listitem>
+ <para>
+ Add per-index information to <link
+ linkend="guc-log-autovacuum-min-duration">autovacuum logging
+ output</link> (Masahiko Sawada)
+ </para>
+ </listitem>
</itemizedlist>
</sect4>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-31 [86dc90056] Rework planning and execution of UPDATE and DELETE.
2021-04-06 [c5b7ba4e6] Postpone some stuff out of ExecInitModifyTable.
-->
-<para>
-Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane)
-</para>
+ <para>
+ Improve the performance of updates/deletes on partitioned tables
+ when only a few partitions are affected (Amit Langote, Tom Lane)
+ </para>
-<para>
-This also allows updates/deletes on partitioned tables to use execution-time partition pruning.
-</para>
-</listitem>
+ <para>
+ This also allows updates/deletes on partitioned tables to use
+ execution-time partition pruning.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY
-->
-<para>
-Allow partitions to be <link linkend="sql-altertable">detached</link> in a non-blocking manner (Álvaro Herrera)
-</para>
+ <para>
+ Allow partitions to be <link
+ linkend="sql-altertable">detached</link> in a non-blocking manner
+ (Álvaro Herrera)
+ </para>
-<para>
-The syntax is <command>ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY</command>, and <command>FINALIZE</command>.
-</para>
-</listitem>
+ <para>
+ The syntax is <command>ALTER TABLE ... DETACH PARTITION
+ ... CONCURRENTLY</command>, and <command>FINALIZE</command>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-28 [2dfa3fea8] Remove complaints about COLLATE clauses in partition bou
-->
-<para>
-Allow the arbitrary collations of partition boundary values (Tom Lane)
-</para>
+ <para>
+ Allow the arbitrary collations of partition boundary values
+ (Tom Lane)
+ </para>
-<para>
-Previously it had to match the collation of the partition key.
-</para>
-</listitem>
+ <para>
+ Previously it had to match the collation of the partition key.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-01-13 [9dc718bdf] Pass down "logically unchanged index" hint.
2021-01-13 [d168b6668] Enhance nbtree index tuple deletion.
-->
-<para>
-Allow btree index additions to <link linkend="btree-deletion">remove expired index entries</link> to prevent page splits (Peter Geoghegan)
-</para>
+ <para>
+ Allow btree index additions to <link
+ linkend="btree-deletion">remove expired index entries</link>
+ to prevent page splits (Peter Geoghegan)
+ </para>
-<para>
-This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.
-</para>
-</listitem>
+ <para>
+ This is particularly helpful for reducing index bloat on tables
+ whose indexed columns are frequently updated.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-26 [ab596105b] BRIN minmax-multi indexes
-->
-<para>
-Allow <link linkend="brin"><acronym>BRIN</acronym></link> indexes to record multiple min/max values per range (Tomas Vondra)
-</para>
+ <para>
+ Allow <link linkend="brin"><acronym>BRIN</acronym></link> indexes
+ to record multiple min/max values per range (Tomas Vondra)
+ </para>
-<para>
-This is useful if there are groups of values in each page range.
-</para>
-</listitem>
+ <para>
+ This is useful if there are groups of values in each page range.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-26 [77b88cd1b] BRIN bloom indexes
-->
-<para>
-Allow <acronym>BRIN</acronym> indexes to use bloom filters (Tomas Vondra)
-</para>
+ <para>
+ Allow <acronym>BRIN</acronym> indexes to use bloom filters
+ (Tomas Vondra)
+ </para>
-<para>
-This allows bloom indexes to be used effectively with data that is not physically localized in the heap.
-</para>
-</listitem>
+ <para>
+ This allows bloom indexes to be used effectively with data that
+ is not physically localized in the heap.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting.
-->
-<para>
-Allow some <link linkend="gist">GiST</link> indexes to be built by presorting the data (Andrey Borodin)
-</para>
+ <para>
+ Allow some <link linkend="gist">GiST</link> indexes to be built
+ by presorting the data (Andrey Borodin)
+ </para>
-<para>
-Presorting happens automatically and allows for faster index creation and smaller indexes.
-</para>
-</listitem>
+ <para>
+ Presorting happens automatically and allows for faster index
+ creation and smaller indexes.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST.
-->
-<para>
-Allow <link linkend="spgist">SP-GiST</link> to use <literal>INCLUDE</literal>'d columns (Pavel Borisov)
-</para>
-</listitem>
+ <para>
+ Allow <link linkend="spgist">SP-GiST</link> to use
+ <literal>INCLUDE</literal>'d columns (Pavel Borisov)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-08 [50e17ad28] Speedup ScalarArrayOpExpr evaluation
-->
-<para>
-Allow hash lookup of <literal>IN</literal> clause with many constants (James Coleman, David Rowley)
-</para>
+ <para>
+ Allow hash lookup of <literal>IN</literal> clause with many
+ constants (James Coleman, David Rowley)
+ </para>
-<para>
-Previously the only option was to sequentially scan the list of constants.
-</para>
-</listitem>
+ <para>
+ Previously the only option was to sequentially scan the list
+ of constants.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-03 [25a9e54d2] Improve estimation of OR clauses using extended statisti
2020-12-08 [4f5760d4a] Improve estimation of ANDs under ORs using extended stat
-->
-<para>
-Increase the number of places <link linkend="planner-stats-extended">extended statistics</link> can be used for <literal>OR</literal> clause estimation (Tomas Vondra, Dean Rasheed)
-</para>
-</listitem>
+ <para>
+ Increase the number of places <link
+ linkend="planner-stats-extended">extended statistics</link> can
+ be used for <literal>OR</literal> clause estimation (Tomas Vondra,
+ Dean Rasheed)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-27 [a4d75c86b] Extended statistics on expressions
-->
-<para>
-Allow extended statistics on expressions (Tomas Vondra)
-</para>
+ <para>
+ Allow extended statistics on expressions (Tomas Vondra)
+ </para>
-<para>
-This allows statistics on a group of expressions and columns, rather than only columns like previously. System view <link linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link>
-reports such statistics. <link linkend="sql-altertable"><literal>ALTER TABLE ... ALTER COLUMN ... TYPE RESETS STASTISTICS</literal></link>?
-</para>
-</listitem>
+ <para>
+ This allows statistics on a group of expressions and columns,
+ rather than only columns like previously. System view <link
+ linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link>
+ reports such statistics. <link
+ linkend="sql-altertable"><literal>ALTER TABLE ... ALTER COLUMN
+ ... TYPE RESETS STASTISTICS</literal></link>?
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-27 [bb437f995] Add TID Range Scans to support efficient scanning ranges
-->
-<para>
-Allow efficient heap scanning of a range of <link linkend="datatype-oid-table"><type>TIDs</type></link> (Edmund Horner, David Rowley)
-</para>
+ <para>
+ Allow efficient heap scanning of a range of <link
+ linkend="datatype-oid-table"><type>TIDs</type></link> (Edmund
+ Horner, David Rowley)
+ </para>
-<para>
-Previously a sequential scan was required for non-equality <type>TID</type> specifications.
-</para>
-</listitem>
+ <para>
+ Previously a sequential scan was required for non-equality
+ <type>TID</type> specifications.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-30 [e665769e6] Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews
-->
-<para>
-Fix <link linkend="sql-explain"><command>EXPLAIN CREATE TABLE AS</command></link> and <command>EXPLAIN CREATE MATERIALIZED VIEW</command> to honor <literal>IF NOT EXISTS</literal> (Bharath Rupireddy)
-</para>
+ <para>
+ Fix <link linkend="sql-explain"><command>EXPLAIN CREATE TABLE
+ AS</command></link> and <command>EXPLAIN CREATE MATERIALIZED
+ VIEW</command> to honor <literal>IF NOT EXISTS</literal>
+ (Bharath Rupireddy)
+ </para>
-<para>
-Previously, if the object already exists, <command>EXPLAIN</command> would fail.
-</para>
-</listitem>
+ <para>
+ Previously, if the object already exists,
+ <command>EXPLAIN</command> would fail.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-08-12 [dc7420c2c] snapshot scalability: Don't compute global horizons whil
2020-08-17 [623a9ba79] snapshot scalability: cache snapshots using a xact compl
-->
-<para>
-Improve the speed of computing <acronym>MVCC</acronym> <link linkend="mvcc">visibility snapshots</link> on systems with many CPUs and high session counts (Andres Freund)
-</para>
+ <para>
+ Improve the speed of computing <acronym>MVCC</acronym> <link
+ linkend="mvcc">visibility snapshots</link> on systems with many
+ CPUs and high session counts (Andres Freund)
+ </para>
-<para>
-This also improves performance when there are many idle sessions.
-</para>
-</listitem>
+ <para>
+ This also improves performance when there are many idle sessions.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-02 [9eacee2e6] Add Result Cache executor node (take 2)
-->
-<para>
-Add executor method to cache results from the inner-side of nested loop joins (David Rowley)
-</para>
+ <para>
+ Add executor method to cache results from the inner-side of nested
+ loop joins (David Rowley)
+ </para>
-<para>
-This is useful if only a small percentage of rows is checked on the inner side.
-</para>
-</listitem>
+ <para>
+ This is useful if only a small percentage of rows is checked on
+ the inner side.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions
-->
-<para>
-Allow <link linkend="functions-window">window functions</link> to perform incremental sorts (David Rowley)
-</para>
-</listitem>
+ <para>
+ Allow <link linkend="functions-window">window functions</link>
+ to perform incremental sorts (David Rowley)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans
-->
-<para>
-Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)
-</para>
+ <para>
+ Improve the I/O performance of parallel sequential scans (Thomas
+ Munro, David Rowley)
+ </para>
-<para>
-This was done by allocating blocks in groups to <link linkend="guc-max-parallel-workers">parallel workers</link>.
-</para>
-</listitem>
+ <para>
+ This was done by allocating blocks in groups to <link
+ linkend="guc-max-parallel-workers">parallel workers</link>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-31 [27e1f1456] Add support for asynchronous execution.
-->
-<para>
-Allow a query referencing multiple <link linkend="sql-createforeigntable">foreign tables</link> to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)
-</para>
+ <para>
+ Allow a query referencing multiple <link
+ linkend="sql-createforeigntable">foreign tables</link> to perform
+ foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi,
+ Thomas Munro, Etsuro Fujita)
+ </para>
-<para>
-The <link linkend="postgres-fdw"><application>postgres_fdw</application></link> supports these type of scans if <literal>async_capable</literal> is set.
-</para>
-</listitem>
+ <para>
+ The <link
+ linkend="postgres-fdw"><application>postgres_fdw</application></link>
+ supports these type of scans if <literal>async_capable</literal>
+ is set.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE
-->
-<para>
-Allow <link linkend="vacuum-for-statistics">analyze</link> to do page prefetching (Stephen Frost)
-</para>
+ <para>
+ Allow <link linkend="vacuum-for-statistics">analyze</link> to do
+ page prefetching (Stephen Frost)
+ </para>
-<para>
-This is controlled by <xref linkend="guc-maintenance-io-concurrency"/>.
-</para>
-</listitem>
+ <para>
+ This is controlled by <xref
+ linkend="guc-maintenance-io-concurrency"/>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-20 [08c0d6ad6] Invent "rainbow" arcs within the regex engine.
2021-05-03 [f68970e33] Fix performance issue in new regex match-all detection c
-->
-<para>
-Improve the performance of <link linkend="functions-similarto-regexp">regular expression</link> comparisons (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Improve the performance of <link
+ linkend="functions-similarto-regexp">regular expression</link>
+ comparisons (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-11 [80f8eb79e] Use perfect hash for NFC and NFKC Unicode Normalization
2020-10-23 [783f0cc64] Improve performance of Unicode {de,re}composition in the
-->
-<para>
-Dramatically improve Unicode normalization (John Naylor)
-</para>
+ <para>
+ Dramatically improve Unicode normalization (John Naylor)
+ </para>
-<para>
-This speeds <link linkend="functions-string"><function>normalize()</function></link> and <literal>IS NORMALIZED</literal>.
-</para>
-</listitem>
+ <para>
+ This speeds <link
+ linkend="functions-string"><function>normalize()</function></link>
+ and <literal>IS NORMALIZED</literal>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-19 [bbe0a81db] Allow configurable LZ4 TOAST compression.
-->
-<para>
-Add ability to use <link linkend="sql-createtable">LZ4 compression</link> on <acronym>TOAST</acronym> data (Dilip Kumar)
-</para>
+ <para>
+ Add ability to use <link linkend="sql-createtable">LZ4
+ compression</link> on <acronym>TOAST</acronym> data (Dilip Kumar)
+ </para>
-<para>
-This can be set at the column level, or set as a default via server setting <xref linkend="guc-default-toast-compression"/>. The server must be compiled with <link linkend="configure-options-features"><option>--with-lz4</option></link> to support this feature; the default is still pglz.
-</para>
-</listitem>
+ <para>
+ This can be set at the column level, or set as a default via server
+ setting <xref linkend="guc-default-toast-compression"/>.
+ The server must be compiled with <link
+ linkend="configure-options-features"><option>--with-lz4</option></link>
+ to support this feature; the default is still pglz.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-07 [4f0b0966c] Make use of in-core query id added by commit 5fd9dfa5f5
2021-05-15 [cafde58b3] Allow compute_query_id to be set to 'auto' and make it d
-->
-<para>
-If server variable <xref linkend="guc-compute-query-id"/> is enabled, display the query id in <link linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>,
-<link linkend="sql-explain"><command>EXPLAIN VERBOSE</command></link>, <link linkend="runtime-config-logging">csvlog</link>, and optionally in <xref linkend="guc-log-line-prefix"/>
-(Julien Rouhaud)
-</para>
+ <para>
+ If server variable <xref linkend="guc-compute-query-id"/>
+ is enabled, display the query id in <link
+ linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>,
+ <link linkend="sql-explain"><command>EXPLAIN
+ VERBOSE</command></link>, <link
+ linkend="runtime-config-logging">csvlog</link>, and optionally in
+ <xref linkend="guc-log-line-prefix"/> (Julien Rouhaud)
+ </para>
-<para>
-A query id computed by an extension will also be displayed.
-</para>
-</listitem>
+ <para>
+ A query id computed by an extension will also be displayed.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-08-19 [3e98c0baf] Add pg_backend_memory_contexts system view.
2020-08-26 [29dd6d8bc] Prevent non-superusers from reading pg_backend_memory_co
-->
-<para>
-Add system view <link linkend="view-pg-backend-memory-contexts"><structname>pg_backend_memory_contexts</structname></link> to report session memory usage (Atsushi Torikoshi, Fujii Masao)
-</para>
-</listitem>
+ <para>
+ Add system view <link
+ linkend="view-pg-backend-memory-contexts"><structname>pg_backend_memory_contexts</structname></link>
+ to report session memory usage (Atsushi Torikoshi, Fujii Masao)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-06 [43620e328] Add function to log the memory contexts of specified bac
-->
-<para>
-Add function <link linkend="functions-admin-signal"><function>pg_log_backend_memory_contexts()</function></link> to output the memory contexts of arbitrary backends (Atsushi Torikoshi)
-</para>
-</listitem>
+ <para>
+ Add function <link
+ linkend="functions-admin-signal"><function>pg_log_backend_memory_contexts()</function></link>
+ to output the memory contexts of arbitrary backends (Atsushi
+ Torikoshi)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze
-->
-<para>
-Improve logging of <link linkend="autovacuum">auto-vacuum</link> and auto-analyze (Stephen Frost, Jakub Wartak)
-</para>
+ <para>
+ Improve logging of <link linkend="autovacuum">auto-vacuum</link>
+ and auto-analyze (Stephen Frost, Jakub Wartak)
+ </para>
-<para>
-This reports I/O timings for auto-vacuum and auto-analyze if <xref linkend="guc-track-io-timing"/> is enabled. Also, report buffer read and dirty rates for auto-analyze.
-</para>
-</listitem>
+ <para>
+ This reports I/O timings for auto-vacuum and auto-analyze if <xref
+ linkend="guc-track-io-timing"/> is enabled. Also, report buffer
+ read and dirty rates for auto-analyze.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [9afffcb83] Add some information about authenticated identity via lo
-->
-<para>
-Add information about the original user name supplied by the client to the output of <xref linkend="guc-log-connections"/> (Jacob Champion)
-</para>
-</listitem>
+ <para>
+ Add information about the original user name supplied by the
+ client to the output of <xref linkend="guc-log-connections"/>
+ (Jacob Champion)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-01-06 [8a4f618e7] Report progress of COPY commands
2021-03-09 [9d2d45700] Add support for more progress reporting in COPY
-->
-<para>
-Add view <link linkend="copy-progress-reporting"><structname>pg_stat_progress_copy</structname></link> to report <command>COPY</command> progress (Josef Šimánek, Matthias van de Meent)
-</para>
-</listitem>
+ <para>
+ Add view <link
+ linkend="copy-progress-reporting"><structname>pg_stat_progress_copy</structname></link>
+ to report <command>COPY</command> progress (Josef Šimánek,
+ Matthias van de Meent)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-17 [960869da0] Add pg_stat_database counters for sessions and session t
-->
-<para>
-Add session statistics to the <link linkend="monitoring-pg-stat-database-view"><structname>pg_stat_database</structname></link> system view (Laurenz Albe)
-</para>
-</listitem>
+ <para>
+ Add session statistics to the <link
+ linkend="monitoring-pg-stat-database-view"><structname>pg_stat_database</structname></link>
+ system view (Laurenz Albe)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-20 [d05b172a7] Add generic_plans and custom_plans fields into pg_prepar
-->
-<para>
-Add columns to <link linkend="view-pg-prepared-statements"><structname>pg_prepared_statements</structname></link> to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)
-</para>
-</listitem>
+ <para>
+ Add columns to <link
+ linkend="view-pg-prepared-statements"><structname>pg_prepared_statements</structname></link>
+ to report generic and custom plan counts (Atsushi Torikoshi,
+ Kyotaro Horiguchi)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-15 [46d6e5f56] Display the time when the process started waiting for th
-->
-<para>
-Add lock wait start time to <link linkend="view-pg-locks"><structname>pg_locks</structname></link> (Atsushi Torikoshi)
-</para>
-</listitem>
+ <para>
+ Add lock wait start time to <link
+ linkend="view-pg-locks"><structname>pg_locks</structname></link>
+ (Atsushi Torikoshi)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-02 [8d9a93596] Add pg_stat_wal statistics view.
2021-03-09 [ff99918c6] Track total amounts of times spent writing and syncing W
-->
-<para>
-Add system view <link linkend="monitoring-pg-stat-wal-view"><structname>pg_stat_wal</structname></link> which reports <acronym>WAL</acronym> activity (Masahiro Ikeda)
-</para>
-</listitem>
+ <para>
+ Add system view <link
+ linkend="monitoring-pg-stat-wal-view"><structname>pg_stat_wal</structname></link>
+ which reports <acronym>WAL</acronym> activity (Masahiro Ikeda)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-08 [986816750] Track statistics for spilling of changes from ReorderBuf
2021-04-16 [f5fc2f5b2] Add information of total data processed to replication s
-->
-<para>
-Add system view <link linkend="monitoring-pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> to report replication slot activity (Sawada Masahiko, Amit Kapila, Vignesh C)
-</para>
+ <para>
+ Add system view <link
+ linkend="monitoring-pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link>
+ to report replication slot activity (Sawada Masahiko, Amit Kapila,
+ Vignesh C)
+ </para>
-<para>
-Function <link linkend="monitoring-stats-functions"><function>pg_stat_reset_replication_slot()</function></link> resets slot statistics.
-</para>
-</listitem>
+ <para>
+ Function <link
+ linkend="monitoring-stats-functions"><function>pg_stat_reset_replication_slot()</function></link>
+ resets slot statistics.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-14 [f560209c6] Make walsenders show their replication commands in pg_st
-->
-<para>
-Improve <link linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link> reporting of walsender processes (Tom Lane)
-</para>
+ <para>
+ Improve <link
+ linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>
+ reporting of walsender processes (Tom Lane)
+ </para>
-<para>
-Previously only <acronym>SQL</acronym> commands were reported.
-</para>
-</listitem>
+ <para>
+ Previously only <acronym>SQL</acronym> commands were reported.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-15 [d75288fb2] Make archiver process an auxiliary process.
-->
-<para>
-Make the archiver process visible in <structname>pg_stat_activity</structname> (Kyotaro Horiguchi)
-</para>
-</listitem>
+ <para>
+ Make the archiver process visible in
+ <structname>pg_stat_activity</structname> (Kyotaro Horiguchi)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-24 [84007043f] Rename wait event WalrcvExit to WalReceiverExit.
-->
-<para>
-Add wait event <link linkend="monitoring-pg-stat-activity-view"><literal>WalReceiverExit</literal></link> to report <acronym>WAL</acronym> receiver exit wait time (Fujii Masao)
-</para>
-</listitem>
+ <para>
+ Add wait event <link
+ linkend="monitoring-pg-stat-activity-view"><literal>WalReceiverExit</literal></link>
+ to report <acronym>WAL</acronym> receiver exit wait time (Fujii
+ Masao)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-17 [f40c6969d] Routine usage information schema tables
-->
-<para>
-Implement information schema view <link linkend="infoschema-routine-column-usage"><structname>routine_column_usage</structname></link> to track columns referenced by function and procedure default expressions (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Implement information schema view <link
+ linkend="infoschema-routine-column-usage"><structname>routine_column_usage</structname></link>
+ to track columns referenced by function and procedure default
+ expressions (Peter Eisentraut)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-29 [6d7a6feac] Allow matching the DN of a client certificate for authen
-->
-<para>
-Allow the certificate's distinguished name (<acronym>DN</acronym>) to be matched for client certificate authentication (Andrew Dunstan)
-</para>
+ <para>
+ Allow the certificate's distinguished name (<acronym>DN</acronym>)
+ to be matched for client certificate authentication (Andrew
+ Dunstan)
+ </para>
-<para>
-The new <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link> keyword <literal>clientname=DN</literal> allows comparison with certificate attributes beyond the <literal>CN</literal> and can be combined with ident maps.
-</para>
-</listitem>
+ <para>
+ The new <link
+ linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
+ keyword <literal>clientname=DN</literal> allows comparison with
+ certificate attributes beyond the <literal>CN</literal> and can
+ be combined with ident maps.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-03 [8f8154a50] Allow records to span multiple lines in pg_hba.conf and
-->
-<para>
-Allow <filename>pg_hba.conf</filename> and <link linkend="auth-username-maps"><filename>pg_ident.conf</filename></link> records to span multiple lines (Fabien Coelho)
-</para>
+ <para>
+ Allow <filename>pg_hba.conf</filename> and <link
+ linkend="auth-username-maps"><filename>pg_ident.conf</filename></link>
+ records to span multiple lines (Fabien Coelho)
+ </para>
-<para>
-A backslash at the end of a line allows record contents to be continued on the next line.
-</para>
-</listitem>
+ <para>
+ A backslash at the end of a line allows record contents to be
+ continued on the next line.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-18 [f5465fade] Allow specifying CRL directory
-->
-<para>
-Allow the specification of a certificate revocation list (<acronym>CRL</acronym>) directory (Kyotaro Horiguchi)
-</para>
+ <para>
+ Allow the specification of a certificate revocation list
+ (<acronym>CRL</acronym>) directory (Kyotaro Horiguchi)
+ </para>
-<para>
-This is controlled by server variable <xref linkend="guc-ssl-crl-dir"/> and libpq connection option sslcrldir. Previously only <acronym>CRL</acronym> files could be specified.
-</para>
-</listitem>
+ <para>
+ This is controlled by server variable <xref
+ linkend="guc-ssl-crl-dir"/> and libpq connection option sslcrldir.
+ Previously only <acronym>CRL</acronym> files could be specified.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-03 [67a472d71] Remove arbitrary restrictions on password length.
-->
-<para>
-Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
-</para>
-</listitem>
+ <para>
+ Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-01-06 [9877374be] Add idle_session_timeout.
-->
-<para>
-Add server setting <xref linkend="guc-idle-session-timeout"/> to close idle sessions (Li Japin)
-</para>
+ <para>
+ Add server setting <xref linkend="guc-idle-session-timeout"/>
+ to close idle sessions (Li Japin)
+ </para>
-<para>
-This is similar to <xref linkend="guc-idle-in-transaction-session-timeout"/>.
-</para>
-</listitem>
+ <para>
+ This is similar to <xref
+ linkend="guc-idle-in-transaction-session-timeout"/>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-24 [bbcc4eb2e] Change checkpoint_completion_target default to 0.9
-->
-<para>
-Change <xref linkend="guc-checkpoint-completion-target"/> default to 0.9 (Stephen Frost)
-</para>
+ <para>
+ Change <xref linkend="guc-checkpoint-completion-target"/> default
+ to 0.9 (Stephen Frost)
+ </para>
-<para>
-The previous default was 0.5.
-</para>
-</listitem>
+ <para>
+ The previous default was 0.5.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader
-->
-<para>
-Allow %P in <xref linkend="guc-log-line-prefix"/> to report the parallel group leader (Justin Pryzby)
-</para>
-</listitem>
+ <para>
+ Allow %P in <xref linkend="guc-log-line-prefix"/> to report the
+ parallel group leader (Justin Pryzby)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir
-->
-<para>
-Allow <xref linkend="guc-unix-socket-directories"/> to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick)
-</para>
+ <para>
+ Allow <xref linkend="guc-unix-socket-directories"/> to specify
+ paths as individual, comma-separated quoted strings (Ian Lawrence
+ Barwick)
+ </para>
-<para>
-Previously all the paths had to be in a single quoted string.
-</para>
-</listitem>
+ <para>
+ Previously all the paths had to be in a single quoted string.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-31 [84b1c63ad] Preallocate some DSM space at startup.
-->
-<para>
-Allow startup allocation of dynamic shared memory (Thomas Munro)
-</para>
+ <para>
+ Allow startup allocation of dynamic shared memory (Thomas Munro)
+ </para>
-<para>
-This is controlled by <xref linkend="guc-min-dynamic-shared-memory"/>. This allows more use of huge pages.
-</para>
-</listitem>
+ <para>
+ This is controlled by <xref
+ linkend="guc-min-dynamic-shared-memory"/>. This allows more
+ use of huge pages.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux.
-->
-<para>
-Add setting <xref linkend="guc-huge-page-size"/> to control the size of huge pages used on Linux (Odin Ugedal)
-</para>
-</listitem>
+ <para>
+ Add setting <xref linkend="guc-huge-page-size"/> to control the
+ size of huge pages used on Linux (Odin Ugedal)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy
-->
-<para>
-Allow standby servers to be rewound via <link linkend="app-pgrewind"><application>pg_rewind</application></link> (Heikki Linnakangas)
-</para>
-</listitem>
+ <para>
+ Allow standby servers to be rewound via <link
+ linkend="app-pgrewind"><application>pg_rewind</application></link>
+ (Heikki Linnakangas)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-02 [942305a36] Allow restore_command parameter to be changed with reloa
-->
-<para>
-Allow <xref linkend="guc-restore-command"/> setting to be changed during a server reload (Sergei Kornilov)
-</para>
+ <para>
+ Allow <xref linkend="guc-restore-command"/> setting to be changed
+ during a server reload (Sergei Kornilov)
+ </para>
-<para>
-You can also set <varname>restore_command</varname> to an empty string and reload to force recovery to only read from the <link linkend="storage-file-layout"><filename>pg_wal</filename></link> directory.
-</para>
-</listitem>
+ <para>
+ You can also set <varname>restore_command</varname> to an empty
+ string and reload to force recovery to only read from the <link
+ linkend="storage-file-layout"><filename>pg_wal</filename></link>
+ directory.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-08 [0650ff230] Add GUC to log long wait times on recovery conflicts.
2021-01-13 [39b03690b] Log long wait time on recovery conflict when it's resolv
-->
-<para>
-Add server variable <xref linkend="guc-log-recovery-conflict-waits"/> to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
-</para>
-</listitem>
+ <para>
+ Add server variable <xref
+ linkend="guc-log-recovery-conflict-waits"/> to report long recovery
+ conflict wait times (Bertrand Drouvot, Masahiko Sawada)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-18 [15251c0a6] Pause recovery for insufficient parameter settings
-->
-<para>
-Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut)
-</para>
+ <para>
+ Pause recovery if the primary changes its parameters in a way that
+ prevents replay on the hot standby (Peter Eisentraut)
+ </para>
-<para>
-Previously the standby would shut down immediately.
-</para>
-</listitem>
+ <para>
+ Previously the standby would shut down immediately.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect
-->
-<para>
-Add function <link linkend="functions-recovery-control"><function>pg_get_wal_replay_pause_state()</function></link> to report the recovery state (Dilip Kumar)
-</para>
+ <para>
+ Add function <link
+ linkend="functions-recovery-control"><function>pg_get_wal_replay_pause_state()</function></link>
+ to report the recovery state (Dilip Kumar)
+ </para>
-<para>
-It gives more detailed information than <link linkend="functions-recovery-control"><function>pg_is_wal_replay_paused()</function></link>, which still exists.
-</para>
-</listitem>
+ <para>
+ It gives more detailed information than <link
+ linkend="functions-recovery-control"><function>pg_is_wal_replay_paused()</function></link>,
+ which still exists.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby".
-->
-<para>
-Add new server-side variable <xref linkend="guc-in-hot-standby"/> (Haribabu Kommi, Greg Nancarrow, Tom Lane)
-</para>
-</listitem>
+ <para>
+ Add new server-side variable <xref linkend="guc-in-hot-standby"/>
+ (Haribabu Kommi, Greg Nancarrow, Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-12 [d6ad34f34] Optimize DropRelFileNodeBuffers() for recovery.
-->
-<para>
-Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)
-</para>
-</listitem>
+ <para>
+ Speed truncation of small tables during recovery on clusters with
+ a large number of shared buffers (Kirk Jamison)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs.
-->
-<para>
-Allow file system sync at the start of crash recovery on Linux (Thomas Munro)
-</para>
+ <para>
+ Allow file system sync at the start of crash recovery on Linux
+ (Thomas Munro)
+ </para>
-<para>
-By default, Postgres opens and fsyncs every data file at the start of crash recovery.
-This new setting, <xref linkend="guc-recovery-init-sync-method"/><literal>=syncfs</literal>, instead syncs each filesystem used by the database cluster.
-This allows for faster recovery on systems with many database files.
-</para>
-</listitem>
+ <para>
+ By default, Postgres opens and fsyncs every data file
+ at the start of crash recovery. This new setting, <xref
+ linkend="guc-recovery-init-sync-method"/><literal>=syncfs</literal>,
+ instead syncs each filesystem used by the database cluster.
+ This allows for faster recovery on systems with many database files.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
-->
-<para>
-Add function <link linkend="functions-info"><function>pg_xact_commit_timestamp_origin()</function></link> to return the commit timestamp and replication origin of the specified transaction (Movead Li)
-</para>
-</listitem>
+ <para>
+ Add function <link
+ linkend="functions-info"><function>pg_xact_commit_timestamp_origin()</function></link>
+ to return the commit timestamp and replication origin of the
+ specified transaction (Movead Li)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
-->
-<para>
-Add the replication origin to the record returned by <link linkend="functions-info"><function>pg_last_committed_xact()</function></link> (Movead Li)
-</para>
-</listitem>
+ <para>
+ Add the replication origin to the record returned by <link
+ linkend="functions-info"><function>pg_last_committed_xact()</function></link>
+ (Movead Li)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f
-->
-<para>
-Allow replication <link linkend="functions-replication">origin functions</link> to be controlled using standard function permission controls (Martín Marqués)
-</para>
+ <para>
+ Allow replication <link linkend="functions-replication">origin
+ functions</link> to be controlled using standard function permission
+ controls (Martín Marqués)
+ </para>
-<para>
-Previously these functions could only be executed by super-users, and this is still the default.
-</para>
-</listitem>
+ <para>
+ Previously these functions could only be executed by super-users,
+ and this is still the default.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-16 [2945a488a] Make the standby server promptly handle interrupt signal
OTHER COMMITS
-->
-<para>
-Improve signal handling reliability (Fujii Masao)
-</para>
+ <para>
+ Improve signal handling reliability (Fujii Masao)
+ </para>
-<para>
-GENERAL ENOUGH?
-</para>
-</listitem>
+ <para>
+ GENERAL ENOUGH?
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-09-03 [464824323] Add support for streaming to built-in logical replicatio
2020-08-08 [7259736a6] Implement streaming mode in ReorderBuffer.
-->
-<para>
-Allow logical replication to stream long in-progress transactions to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin Cherian, Nikhil Sontakke, Stas Kelvich)
-</para>
+ <para>
+ Allow logical replication to stream long in-progress transactions
+ to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin
+ Cherian, Nikhil Sontakke, Stas Kelvich)
+ </para>
-<para>
-Previously transactions that exceeded <xref linkend="guc-logical-decoding-work-mem"/> were written to disk until the transaction completed.
-</para>
-</listitem>
+ <para>
+ Previously transactions that exceeded <xref
+ linkend="guc-logical-decoding-work-mem"/> were written to disk
+ until the transaction completed.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-28 [45fdc9738] Extend the logical decoding output plugin API with strea
-->
-<para>
-Enhance the logical replication <acronym>API</acronym> to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)
-</para>
+ <para>
+ Enhance the logical replication <acronym>API</acronym> to allow
+ streaming large in-progress transactions (Tomas Vondra, Dilip
+ Kumar, Amit Kapila)
+ </para>
-<para>
-The output functions begin with <link linkend="logicaldecoding-output-plugin-stream-start"><literal>stream</literal></link>. <application>test_decoding</application> also supports these.
-</para>
-</listitem>
+ <para>
+ The output functions begin with <link
+ linkend="logicaldecoding-output-plugin-stream-start"><literal>stream</literal></link>.
+ <application>test_decoding</application> also supports these.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic
-->
-<para>
-Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
-</para>
-</listitem>
+ <para>
+ Allow multiple transactions during table sync in logical
+ replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass
-->
-<para>
-Immediately <acronym>WAL</acronym>-log subtransaction and top-level <type>XID</type> association (Tomas Vondra, Dilip Kumar, Amit Kapila)
-</para>
+ <para>
+ Immediately <acronym>WAL</acronym>-log subtransaction and top-level
+ <type>XID</type> association (Tomas Vondra, Dilip Kumar, Amit
+ Kapila)
+ </para>
-<para>
-This is useful for logical decoding.
-</para>
-</listitem>
+ <para>
+ This is useful for logical decoding.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar
2021-03-03 [19890a064] Add option to enable two_phase commits via pg_create_log
-->
-<para>
-Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
-</para>
+ <para>
+ Enhance logical decoding APIs to handle two-phase commits (Ajin
+ Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
+ </para>
-<para>
-This is controlled via <link linkend="functions-replication"><function>pg_create_logical_replication_slot()</function></link>.
-</para>
-</listitem>
+ <para>
+ This is controlled via <link
+ linkend="functions-replication"><function>pg_create_logical_replication_slot()</function></link>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-23 [c55040ccd] WAL Log invalidations at command end with wal_level=logi
-->
-<para>
-Generate <acronym>WAL</acronym> invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila)
-</para>
+ <para>
+ Generate <acronym>WAL</acronym> invalidations message during
+ command completion when using logical replication (Dilip Kumar,
+ Tomas Vondra, Amit Kapila)
+ </para>
-<para>
-When logical replication is disabled, <acronym>WAL</acronym> invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions.
-</para>
-</listitem>
+ <para>
+ When logical replication is disabled, <acronym>WAL</acronym>
+ invalidation messages are generated at transaction completion.
+ This allows logical streaming of in-progress transactions.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-15 [d7eb52d71] Execute invalidation messages for each XLOG_XACT_INVALID
-->
-<para>
-Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar)
-</para>
+ <para>
+ Allow logical decoding to more efficiently process cache
+ invalidation messages (Dilip Kumar)
+ </para>
-<para>
-This allows <link linkend="logicaldecoding">logical decoding</link> to work efficiently in presence of a large amount of <acronym>DDL</acronym>.
-</para>
-</listitem>
+ <para>
+ This allows <link linkend="logicaldecoding">logical decoding</link>
+ to work efficiently in presence of a large amount of
+ <acronym>DDL</acronym>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-06 [ac4645c01] Allow pgoutput to send logical decoding messages.
-->
-<para>
-Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)
-</para>
-</listitem>
+ <para>
+ Allow control over whether logical decoding messages are sent to
+ the replication stream (David Pirotte, Euler Taveira)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-18 [9de77b545] Allow logical replication to transfer data in binary for
-->
-<para>
-Allow logical replication subscriptions to use binary transfer mode (Dave Cramer)
-</para>
+ <para>
+ Allow logical replication subscriptions to use binary transfer mode
+ (Dave Cramer)
+ </para>
-<para>
-This is faster than text mode, but slightly less robust.
-</para>
-</listitem>
+ <para>
+ This is faster than text mode, but slightly less robust.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-30 [f64ea6dc5] Add a xid argument to the filter_prepare callback for ou
-->
-<para>
-Allow logical decoding to be filtered by xid (Markus Wanner)
-</para>
-</listitem>
+ <para>
+ Allow logical decoding to be filtered by xid (Markus Wanner)
+ </para>
+ </listitem>
</itemizedlist>
</sect4>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-09-18 [06a7c3154] Allow most keywords to be used as column labels without
-->
-<para>
-Reduce the number of keywords that can't be used as column labels without <literal>AS</literal> (Mark Dilger)
-</para>
+ <para>
+ Reduce the number of keywords that can't be used as column labels
+ without <literal>AS</literal> (Mark Dilger)
+ </para>
-<para>
-There are now 90% fewer restricted keywords.
-</para>
-</listitem>
+ <para>
+ There are now 90% fewer restricted keywords.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-31 [055fee7eb] Allow an alias to be attached to a <literal>JOIN ... USING</literal>
-->
-<para>
-Allow an alias to be specified for <literal>JOIN</literal>'s <literal>USING</literal> clause (Peter Eisentraut)
-</para>
+ <para>
+ Allow an alias to be specified for <literal>JOIN</literal>'s
+ <literal>USING</literal> clause (Peter Eisentraut)
+ </para>
-<para>
-The alias is created by using <literal>AS</literal> after the <literal>USING</literal> clause and represents an alias for the <literal>USING</literal> columns.
-</para>
-</listitem>
+ <para>
+ The alias is created by using <literal>AS</literal> after the
+ <literal>USING</literal> clause and represents an alias for the
+ <literal>USING</literal> columns.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-18 [be45be9c3] Implement GROUP BY DISTINCT
-->
-<para>
-Allow <literal>DISTINCT</literal> to be added to <literal>GROUP BY</literal> to remove duplicate <literal>GROUPING SET</literal> combinations (Vik Fearing)
-</para>
+ <para>
+ Allow <literal>DISTINCT</literal> to be added to <literal>GROUP
+ BY</literal> to remove duplicate <literal>GROUPING SET</literal>
+ combinations (Vik Fearing)
+ </para>
-<para>
-For example, <literal>GROUP BY CUBE (a,b), CUBE (b,c)</literal> will generate duplicate grouping combinations without <literal>DISTINCT</literal>.
-</para>
-</listitem>
+ <para>
+ For example, <literal>GROUP BY CUBE (a,b), CUBE (b,c)</literal>
+ will generate duplicate grouping combinations without
+ <literal>DISTINCT</literal>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-22 [17958972f] Allow a multi-row <command>INSERT</command> to specify DEFAULTs for a gener
-->
-<para>
-Properly handle <literal>DEFAULT</literal> values for columns in multi-column inserts (Dean Rasheed)
-</para>
+ <para>
+ Properly handle <literal>DEFAULT</literal> values for columns in
+ multi-column inserts (Dean Rasheed)
+ </para>
-<para>
-This used to throw an error.
-</para>
-</listitem>
+ <para>
+ This used to throw an error.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-01 [3696a600e] SEARCH and CYCLE clauses
2021-02-27 [f4adc41c4] Enhanced cycle mark values
-->
-<para>
-Add <acronym>SQL</acronym>-standard <literal>SEARCH</literal> and <literal>CYCLE</literal> clauses for <link linkend="queries-with">common table expressions</link> (Peter Eisentraut)
-</para>
+ <para>
+ Add <acronym>SQL</acronym>-standard <literal>SEARCH</literal>
+ and <literal>CYCLE</literal> clauses for <link
+ linkend="queries-with">common table expressions</link> (Peter
+ Eisentraut)
+ </para>
-<para>
-This could be accomplished previously using existing syntax.
-</para>
-</listitem>
+ <para>
+ This could be accomplished previously using existing syntax.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ...
-->
-<para>
-Allow the <literal>WHERE</literal> clause of <literal>ON CONFLICT</literal> to be table-qualified (Tom Lane)
-</para>
+ <para>
+ Allow the <literal>WHERE</literal> clause of <literal>ON
+ CONFLICT</literal> to be table-qualified (Tom Lane)
+ </para>
-<para>
-Only the target table can be referenced.
-</para>
-</listitem>
+ <para>
+ Only the target table can be referenced.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-17 [9e7ccd9ef] Enable parallelism in REFRESH MATERIALIZED VIEW.
-->
-<para>
-Allow <link linkend="sql-refreshmaterializedview"><command>REFRESH MATERIALIZED VIEW</command></link> to use parallelism (Bharath Rupireddy)
-</para>
-</listitem>
+ <para>
+ Allow <link linkend="sql-refreshmaterializedview"><command>REFRESH
+ MATERIALIZED VIEW</command></link> to use parallelism (Bharath
+ Rupireddy)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-04 [c5b286047] Add TABLESPACE option to REINDEX
-->
-<para>
-Allow <link linkend="sql-reindex"><command>REINDEX</command></link> to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby)
-</para>
+ <para>
+ Allow <link linkend="sql-reindex"><command>REINDEX</command></link>
+ to change the tablespace of the new index (Alexey Kondratov,
+ Michael Paquier, Justin Pryzby)
+ </para>
-<para>
-This is done by specifying a <literal>TABLESPACE</literal> clause.
-</para>
-</listitem>
+ <para>
+ This is done by specifying a <literal>TABLESPACE</literal> clause.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-08 [a6642b3ae] Add support for partitioned tables and indexes in REINDE
-->
-<para>
-Allow <command>REINDEX</command> to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
-</para>
-</listitem>
+ <para>
+ Allow <command>REINDEX</command> to process all child tables or
+ indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-25 [0a0727ccf] Improve performance of binary COPY FROM through better b
-->
-<para>
-Improve the performance of <link linkend="sql-copy"><command>COPY FROM</command></link> in binary mode (Bharath Rupireddy, Amit Langote)
-</para>
-</listitem>
+ <para>
+ Improve the performance of <link linkend="sql-copy"><command>COPY
+ FROM</command></link> in binary mode (Bharath Rupireddy, Amit
+ Langote)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-04 [40c24bfef] Improve our ability to regurgitate SQL-syntax function c
-->
-<para>
-Preserve <acronym>SQL</acronym> standard syntax in <link linkend="sql-createview">view definitions</link>, if possible (Tom Lane)
-</para>
+ <para>
+ Preserve <acronym>SQL</acronym> standard syntax in <link
+ linkend="sql-createview">view definitions</link>, if possible
+ (Tom Lane)
+ </para>
-<para>
-Previously non-function call <acronym>SQL</acronym> standard syntax, e.g. <link linkend="functions-formatting"><function>EXTRACT</function></link>, were converted to non-<acronym>SQL</acronym> standard function calls.
-</para>
-</listitem>
+ <para>
+ Previously non-function call
+ <acronym>SQL</acronym> standard syntax, e.g. <link
+ linkend="functions-formatting"><function>EXTRACT</function></link>,
+ were converted to non-<acronym>SQL</acronym> standard function
+ calls.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-30 [6aaaa76bb] Allow GRANTED BY clause in normal GRANT and REVOKE state
-->
-<para>
-Add the <acronym>SQL</acronym>-standard clause <literal>GRANTED BY</literal> to <link linkend="sql-grant"><command>GRANT</command></link> and <link linkend="sql-revoke"><command>REVOKE</command></link> (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Add the <acronym>SQL</acronym>-standard
+ clause <literal>GRANTED BY</literal> to <link
+ linkend="sql-grant"><command>GRANT</command></link> and <link
+ linkend="sql-revoke"><command>REVOKE</command></link> (Peter
+ Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-14 [92bf7e2d0] Provide the OR REPLACE option for CREATE TRIGGER.
-->
-<para>
-Add <literal>OR REPLACE</literal> for <link linkend="sql-createtrigger"><command>CREATE TRIGGER</command></link> (Takamichi Osumi)
-</para>
+ <para>
+ Add <literal>OR REPLACE</literal> for <link
+ linkend="sql-createtrigger"><command>CREATE TRIGGER</command></link>
+ (Takamichi Osumi)
+ </para>
-<para>
-This allows pre-existing triggers to be conditionally replaced.
-</para>
-</listitem>
+ <para>
+ This allows pre-existing triggers to be conditionally replaced.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-08 [8ff1c9464] Allow TRUNCATE command to truncate foreign tables.
-->
-<para>
-Allow <link linkend="sql-truncate"><command>TRUNCATE</command></link> to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
-</para>
+ <para>
+ Allow <link
+ linkend="sql-truncate"><command>TRUNCATE</command></link> to
+ operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
+ </para>
-<para>
-The <link linkend="postgres-fdw"><application>postgres_fdw</application></link> module also now supports this.
-</para>
-</listitem>
+ <para>
+ The <link
+ linkend="postgres-fdw"><application>postgres_fdw</application></link>
+ module also now supports this.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-06 [82ed7748b] ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION
-->
-<para>
-Allow publications to be more easily added and removed (Japin Li)
-</para>
+ <para>
+ Allow publications to be more easily added and removed (Japin Li)
+ </para>
-<para>
-The new syntax is <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION</command></link>. This avoids having to specify all publications to add/remove entries.
-</para>
-</listitem>
+ <para>
+ The new syntax is <link
+ linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION
+ ... ADD/DROP PUBLICATION</command></link>. This avoids having to
+ specify all publications to add/remove entries.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-30 [dfb75e478] Add primary keys and unique constraints to system catalo
2021-02-02 [62f34097c] Build in some knowledge about foreign-key relationships
-->
-<para>
-Add primary keys, unique constraints, and foreign keys to <link linkend="catalogs">system catalogs</link> (Peter Eisentraut)
-</para>
+ <para>
+ Add primary keys, unique constraints, and foreign keys to <link
+ linkend="catalogs">system catalogs</link> (Peter Eisentraut)
+ </para>
-<para>
-This helps <acronym>GUI</acronym> tools analyze the system tables.
-</para>
-</listitem>
+ <para>
+ This helps <acronym>GUI</acronym> tools analyze the system tables.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-17 [45b980570] Allow CURRENT_ROLE where CURRENT_USER is accepted
-->
-<para>
-Allow <link linkend="functions-info"><literal>CURRENT_ROLE</literal></link> every place <literal>CURRENT_USER</literal> is accepted (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Allow <link
+ linkend="functions-info"><literal>CURRENT_ROLE</literal></link>
+ every place <literal>CURRENT_USER</literal> is accepted (Peter
+ Eisentraut)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-12-09 [c7aba7c14] Support subscripting of arbitrary types, not only arrays
-->
-<para>
-Allow extensions and built-in data types to implement <link linkend="sql-altertype">subscripting</link> (Dmitry Dolgov)
-</para>
+ <para>
+ Allow extensions and built-in data types to implement <link
+ linkend="sql-altertype">subscripting</link> (Dmitry Dolgov)
+ </para>
-<para>
-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.
-</para>
-</listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-31 [676887a3b] Implementation of subscripting for jsonb
2021-01-31 [aa6e46daf] Throw error when assigning jsonb scalar instead of a com
-->
-<para>
-Allow subscripting of <link linkend="datatype-json"><type>JSONB</type></link> (Dmitry Dolgov)
-</para>
+ <para>
+ Allow subscripting of <link
+ linkend="datatype-json"><type>JSONB</type></link> (Dmitry Dolgov)
+ </para>
-<para>
-<type>JSONB</type> subscripting can be used to extract and assign to portions of <type>JSONB</type> documents.
-</para>
-</listitem>
+ <para>
+ <type>JSONB</type> subscripting can be used to extract and assign
+ to portions of <type>JSONB</type> documents.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-20 [6df7a9698] Multirange datatypes
2020-12-30 [62097a4cc] Fix selectivity estimation @> (anymultirange, anyrange)
-->
-<para>
-Add support for <link linkend="rangetypes">multirange data types</link> (Paul Jungwirth, Alexander Korotkov)
-</para>
+ <para>
+ Add support for <link linkend="rangetypes">multirange data
+ types</link> (Paul Jungwirth, Alexander Korotkov)
+ </para>
-<para>
-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.
-</para>
-</listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-23 [0cc993278] Rename the "point is strictly above/below point" compari
-->
-<para>
-Add <link linkend="functions-geometry">point operators</link> <<| and |>> to be strictly above/below geometry (Emre Hasegeli)
-</para>
+ <para>
+ Add <link linkend="functions-geometry">point operators</link>
+ <<| and |>> to be strictly above/below geometry
+ (Emre Hasegeli)
+ </para>
-<para>
-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?
-</para>
-</listitem>
+ <para>
+ 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?
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-08 [cbcc8726b] Update snowball
2021-02-19 [678d0e239] Update snowball
-->
-<para>
-Add support for the <link linkend="textsearch-snowball-dictionary">stemming</link> of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Add support for the <link
+ linkend="textsearch-snowball-dictionary">stemming</link> of
+ languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish
+ (Peter Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-23 [83b61319a] Improve behavior of tsearch_readline(), and remove t_rea
-->
-<para>
-Allow <link linkend="textsearch-intro-configurations">tsearch data files</link> to have unlimited line lengths (Tom Lane)
-</para>
+ <para>
+ Allow <link linkend="textsearch-intro-configurations">tsearch data
+ files</link> to have unlimited line lengths (Tom Lane)
+ </para>
-<para>
-The previous limit was 4k bytes. Also remove function <function>t_readline()</function>.
-</para>
-</listitem>
+ <para>
+ The previous limit was 4k bytes. Also remove function
+ <function>t_readline()</function>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-22 [a57d312a7] Support infinity and -infinity in the numeric data type.
-->
-<para>
-Add support for infinity and <literal>-infinity</literal> values to the <link linkend="datatype-numeric">numeric data type</link> (Tom Lane)
-</para>
+ <para>
+ Add support for infinity and <literal>-infinity</literal> values
+ to the <link linkend="datatype-numeric">numeric data type</link>
+ (Tom Lane)
+ </para>
-<para>
-Floating point data types already supported these.
-</para>
-</listitem>
+ <para>
+ Floating point data types already supported these.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-21 [8597a48d0] Fix FPeq() and friends to get the right answers for infi
-->
-<para>
-Improve the accuracy of floating point computations involving infinity (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Improve the accuracy of floating point computations involving
+ infinity (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-04 [fac83dbd6] Remove underflow error in float division with infinite d
-->
-<para>
-Have non-zero <link linkend="datatype-float">float values</link> divided by infinity return zero (Kyotaro Horiguchi)
-</para>
+ <para>
+ Have non-zero <link linkend="datatype-float">float values</link>
+ divided by infinity return zero (Kyotaro Horiguchi)
+ </para>
-<para>
-Previously such operations produced underflow errors.
-</para>
-</listitem>
+ <para>
+ Previously such operations produced underflow errors.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-20 [4fb6aeb4f] Make floating-point "NaN / 0" return NaN instead of rais
-->
-<para>
-Cause floating-point division of NaN by zero to return NaN (Tom Lane)
-</para>
+ <para>
+ Cause floating-point division of NaN by zero to return NaN
+ (Tom Lane)
+ </para>
-<para>
-Previously this returned an error. Division with Numerics always returned NaN.
-</para>
-</listitem>
+ <para>
+ Previously this returned an error. Division with Numerics always
+ returned NaN.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-30 [9bae7e4cd] Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators.
-->
-<para>
-Add operators to add and subtract <link linkend="datatype-pg-lsn"><type>LSN</type></link> and numeric (byte) values (Fujii Masao)
-</para>
-</listitem>
+ <para>
+ Add operators to add and subtract <link
+ linkend="datatype-pg-lsn"><type>LSN</type></link> and numeric
+ (byte) values (Fujii Masao)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-21 [670c0a1d4] Weaken type-OID-matching checks in array_recv and record
-->
-<para>
-Allow <link linkend="protocol-format-codes">binary data transfer</link> to be more forgiving of array and record <type>OID</type> mismatches (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Allow <link linkend="protocol-format-codes">binary data
+ transfer</link> to be more forgiving of array and record
+ <type>OID</type> mismatches (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-06 [f7f70d5e2] Create composite array types for initdb-created relation
-->
-<para>
-Create composite array types for most system relations (Wenjing Zeng)
-</para>
-</listitem>
+ <para>
+ Create composite array types for most system relations (Wenjing
+ Zeng)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-07 [e717a9a18] SQL-standard function body
-->
-<para>
-Allow <acronym>SQL</acronym>-language <link linkend="sql-createfunction">functions</link> and <link linkend="sql-createprocedure">procedures</link> to use <acronym>SQL</acronym>-standard function bodies (Peter Eisentraut)
-</para>
+ <para>
+ Allow <acronym>SQL</acronym>-language <link
+ linkend="sql-createfunction">functions</link> and <link
+ linkend="sql-createprocedure">procedures</link> to use
+ <acronym>SQL</acronym>-standard function bodies (Peter Eisentraut)
+ </para>
-<para>
-Previously only single-quoted or $$-quoted function bodies were supported.
-</para>
-</listitem>
+ <para>
+ Previously only single-quoted or $$-quoted function bodies were
+ supported.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-05 [2453ea142] Support for OUT parameters in procedures
2020-10-27 [9213462c5] Make procedure OUT parameters work with JDBC
-->
-<para>
-Allow <link linkend="sql-createprocedure">procedures</link> to have <literal>OUT</literal> parameters (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Allow <link linkend="sql-createprocedure">procedures</link> to have
+ <literal>OUT</literal> parameters (Peter Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not
-->
-<para>
-Allow some array functions to operate on a mix of compatible data types (Tom Lane)
-</para>
+ <para>
+ Allow some array functions to operate on a mix of compatible data
+ types (Tom Lane)
+ </para>
-<para>
-The functions are <link linkend="functions-array"><function>array_append()</function></link>, <function>array_prepend()</function>, <function>array_cat()</function>, <function>array_position()</function>,
-<function>array_positions()</function>, <function>array_remove()</function>, <function>array_replace()</function>, and
-<link linkend="functions-math"><function>width_bucket()</function></link>. Previously only identical data types could be used.
-</para>
-</listitem>
+ <para>
+ The functions are <link
+ linkend="functions-array"><function>array_append()</function></link>,
+ <function>array_prepend()</function>,
+ <function>array_cat()</function>,
+ <function>array_position()</function>,
+ <function>array_positions()</function>,
+ <function>array_remove()</function>,
+ <function>array_replace()</function>, and <link
+ linkend="functions-math"><function>width_bucket()</function></link>.
+ Previously only identical data types could be used.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-03 [0a687c8f1] Add trim_array() function.
-->
-<para>
-Add <acronym>SQL</acronym>-standard <link linkend="functions-array"><function>trim_array()</function></link> function (Vik Fearing)
-</para>
+ <para>
+ Add <acronym>SQL</acronym>-standard <link
+ linkend="functions-array"><function>trim_array()</function></link>
+ function (Vik Fearing)
+ </para>
-<para>
-This can already be done with array slices.
-</para>
-</listitem>
+ <para>
+ This can already be done with array slices.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim().
-->
-<para>
-Add bytea equivalents of <link linkend="functions-binarystring"><function>ltrim()</function></link> and <function>rtrim()</function> (Joel Jacobson)
-</para>
-</listitem>
+ <para>
+ Add bytea equivalents of <link
+ linkend="functions-binarystring"><function>ltrim()</function></link>
+ and <function>rtrim()</function> (Joel Jacobson)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-13 [ec0294fb2] Support negative indexes in split_part().
-->
-<para>
-Support negative indexes in <link linkend="functions-string"><function>split_part()</function></link> (Nikhil Benesch)
-</para>
+ <para>
+ Support negative indexes in <link
+ linkend="functions-string"><function>split_part()</function></link>
+ (Nikhil Benesch)
+ </para>
-<para>
-Negative values start from the last field and count backward.
-</para>
-</listitem>
+ <para>
+ Negative values start from the last field and count backward.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-02 [66f163068] Add string_to_table() function.
-->
-<para>
-Add <link linkend="functions-string"><function>string_to_table()</function></link> function to split a string on delimiters (Pavel Stehule)
-</para>
+ <para>
+ Add <link
+ linkend="functions-string"><function>string_to_table()</function></link>
+ function to split a string on delimiters (Pavel Stehule)
+ </para>
-<para>
-This is similar to the <link linkend="functions-string"><function>regexp_split_to_table()</function></link> function.
-</para>
-</listitem>
+ <para>
+ This is similar to the <link
+ linkend="functions-string"><function>regexp_split_to_table()</function></link>
+ function.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-29 [f37fec837] Add unistr function
-->
-<para>
-Add <link linkend="functions-string"><function>unistr()</function></link> function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule)
-</para>
+ <para>
+ Add <link
+ linkend="functions-string"><function>unistr()</function></link>
+ function to allow Unicode characters to be specified as
+ backslash-hex escapes in strings (Pavel Stehule)
+ </para>
-<para>
-This is similar to how Unicode can be specified in literal string.
-</para>
-</listitem>
+ <para>
+ This is similar to how Unicode can be specified in literal string.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-06 [f9a0392e1] Add bit_xor aggregate function
-->
-<para>
-Add <link linkend="functions-aggregate"><function>bit_xor()</function></link> XOR aggregate function (Alexey Bashtanov)
-</para>
-</listitem>
+ <para>
+ Add <link
+ linkend="functions-aggregate"><function>bit_xor()</function></link>
+ XOR aggregate function (Alexey Bashtanov)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-23 [a6715af1e] Add bit_count SQL function
-->
-<para>
-Add function <link linkend="functions-binarystring"><function>bit_count()</function></link> to return the number of bits set in a bit or byte string (David Fetter)
-</para>
-</listitem>
+ <para>
+ Add function <link
+ linkend="functions-binarystring"><function>bit_count()</function></link>
+ to return the number of bits set in a bit or byte string (David
+ Fetter)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-24 [49ab61f0b] Add date_bin function
2021-04-10 [496e58bb0] Improve behavior of date_bin with origin in the future
-->
-<para>
-Add <link linkend="functions-datetime-bin"><function>date_bin()</function></link> function (John Naylor)
-</para>
+ <para>
+ Add <link
+ linkend="functions-datetime-bin"><function>date_bin()</function></link>
+ function (John Naylor)
+ </para>
-<para>
-The function <function>date_bin()</function> "bins" the input timestamp into a specified interval aligned with a specified origin.
-</para>
-</listitem>
+ <para>
+ The function <function>date_bin()</function> "bins" the input
+ timestamp into a specified interval aligned with a specified origin.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-29 [a094c8ff5] Fix make_timestamp[tz] to accept negative years as meani
-->
-<para>
-Allow <link linkend="functions-datetime"><function>make_timestamp()</function></link>/<function>make_timestamptz()</function> to accept negative years (Peter Eisentraut)
-</para>
+ <para>
+ Allow <link
+ linkend="functions-datetime"><function>make_timestamp()</function></link>/<function>make_timestamptz()</function>
+ to accept negative years (Peter Eisentraut)
+ </para>
-<para>
-They are interpreted as <literal>BC</literal> years.
-</para>
-</listitem>
+ <para>
+ They are interpreted as <literal>BC</literal> years.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-29 [78c887679] Add current substring regular expression syntax
-->
-<para>
-Add newer regular expression <link linkend="functions-string"><function>substring()</function></link> syntax (Peter Eisentraut)
-</para>
+ <para>
+ Add newer regular expression <link
+ linkend="functions-string"><function>substring()</function></link>
+ syntax (Peter Eisentraut)
+ </para>
-<para>
-The new syntax is <literal>SUBSTRING(text SIMILAR pattern ESCAPE escapechar)</literal>. The previous standard syntax was <literal>SUBSTRING(text FROM pattern FOR escapechar)</literal>, and is still supported by Postgres.
-</para>
-</listitem>
+ <para>
+ The new syntax is <literal>SUBSTRING(text SIMILAR pattern ESCAPE
+ escapechar)</literal>. The previous standard syntax was
+ <literal>SUBSTRING(text FROM pattern FOR escapechar)</literal>,
+ and is still supported by Postgres.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
-->
-<para>
-Allow complemented character class escapes <link linkend="posix-escape-sequences">\D</link>, <literal>\S</literal>, and <literal>\W</literal> within regex brackets (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Allow complemented character class escapes <link
+ linkend="posix-escape-sequences">\D</link>, <literal>\S</literal>,
+ and <literal>\W</literal> within regex brackets (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
-->
-<para>
-Add <link linkend="posix-escape-sequences"><literal>[[:word:]]</literal></link> as a character class to match \w (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Add <link
+ linkend="posix-escape-sequences"><literal>[[:word:]]</literal></link>
+ as a character class to match \w (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-04 [5c292e6b9] Declare lead() and lag() using anycompatible not anyelem
-->
-<para>
-Allow more flexible data types for default values of <link linkend="functions-window"><function>lead()</function></link> and <function>lag()</function> window functions (Vik Fearing)
-</para>
-</listitem>
+ <para>
+ Allow more flexible data types for default values of <link
+ linkend="functions-window"><function>lead()</function></link>
+ and <function>lag()</function> window functions (Vik Fearing)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-14 [decbe2bfb] Fix behavior of exp() and power() for infinity inputs.
2020-06-15 [5674eb987] Fix power() for large inputs yet more.
-->
-<para>
-Cause <link linkend="functions-math"><function>exp()</function></link> and <function>power()</function> for negative-infinity exponents to return zero (Tom Lane)
-</para>
+ <para>
+ Cause <link
+ linkend="functions-math"><function>exp()</function></link> and
+ <function>power()</function> for negative-infinity exponents to
+ return zero (Tom Lane)
+ </para>
-<para>
-Previously they often returned underflow errors.
-</para>
-</listitem>
+ <para>
+ Previously they often returned underflow errors.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-25 [8a37951ee] Mark built-in coercion functions as leakproof where poss
-->
-<para>
-Mark built-in type coercion functions as leakproof where possible (Tom Lane)
-</para>
+ <para>
+ Mark built-in type coercion functions as leakproof where possible
+ (Tom Lane)
+ </para>
-<para>
-This allows more use of functions that require type conversion in security-sensitive situations.
-</para>
-</listitem>
+ <para>
+ This allows more use of functions that require type conversion in
+ security-sensitive situations.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-08 [fed10d4ee] Properly mark pg_stat_get_subscription() as returning a
-->
-<para>
-Mark <function>pg_stat_get_subscription()</function> as returning a set (Tom Lane)
-</para>
+ <para>
+ Mark <function>pg_stat_get_subscription()</function> as returning
+ a set (Tom Lane)
+ </para>
-<para>
-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.
-</para>
-</listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-13 [5a6f9bce8] Mark inet_server_addr() and inet_server_port() as parall
-->
-<para>
-Prevent <link linkend="functions-info"><function>inet_server_addr()</function></link> and <function>inet_server_port()</function> from being run by parallel workers (Masahiko Sawada)
-</para>
-</listitem>
+ <para>
+ Prevent <link
+ linkend="functions-info"><function>inet_server_addr()</function></link>
+ and <function>inet_server_port()</function> from being run by
+ parallel workers (Masahiko Sawada)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec
-->
-<para>
-Change <link linkend="functions-info"><function>pg_describe_object()</function></link>, <function>pg_identify_object()</function>, and
-<function>pg_identify_object_as_address()</function> to always report helpful error messages for non-existent objects (Michael Paquier)
-</para>
-</listitem>
+ <para>
+ Change <link
+ linkend="functions-info"><function>pg_describe_object()</function></link>,
+ <function>pg_identify_object()</function>, and
+ <function>pg_identify_object_as_address()</function> to always report
+ helpful error messages for non-existent objects (Michael Paquier)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-01-04 [c9d529848] Re-implement pl/pgsql's expression and assignment parsin
-->
-<para>
-Improve PL/pgSQL's <link linkend="plpgsql-expressions">expression</link> and <link linkend="plpgsql-statements-assignment">assignment</link> parsing (Tom Lane)
-</para>
+ <para>
+ Improve PL/pgSQL's <link
+ linkend="plpgsql-expressions">expression</link> and <link
+ linkend="plpgsql-statements-assignment">assignment</link> parsing
+ (Tom Lane)
+ </para>
-<para>
-This adds nested record and array slicing support.
-</para>
-</listitem>
+ <para>
+ This adds nested record and array slicing support.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-12 [2f48ede08] Avoid using a cursor in plpgsql's RETURN QUERY statement
-->
-<para>
-Allow plpgsql's <link linkend="plpgsql-control-structures"><literal>RETURN QUERY</literal></link> to execute its query using parallelism (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Allow plpgsql's <link
+ linkend="plpgsql-control-structures"><literal>RETURN
+ QUERY</literal></link> to execute its query using parallelism
+ (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-25 [ee895a655] Improve performance of repeated CALLs within plpgsql pro
-->
-<para>
-Improve performance of repeated <link linkend="plpgsql-transactions">CALL</link>s within plpgsql procedures (Pavel Stehule, Tom Lane)
-</para>
-</listitem>
+ <para>
+ Improve performance of repeated <link
+ linkend="plpgsql-transactions">CALL</link>s within plpgsql
+ procedures (Pavel Stehule, Tom Lane)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-15 [acb7e4eb6] Implement pipeline mode in libpq
-->
-<para>
-Add <link linkend="libpq-pipeline-sending">pipeline</link> mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)
-</para>
+ <para>
+ Add <link linkend="libpq-pipeline-sending">pipeline</link> mode
+ to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)
+ </para>
-<para>
-This allows multiple queries to be sent and only wait for completion when a specific synchronization message is sent.
-</para>
-</listitem>
+ <para>
+ This allows multiple queries to be sent and only wait for completion
+ when a specific synchronization message is sent.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-02 [d16f8c8e4] Mark default_transaction_read_only as GUC_REPORT.
2021-03-02 [ee28cacf6] Extend the abilities of libpq's target_session_attrs par
-->
-<para>
-Enhance libpq's <link linkend="libpq-paramkeywords"><option>target_session_attrs</option></link> parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
-</para>
+ <para>
+ Enhance libpq's <link
+ linkend="libpq-paramkeywords"><option>target_session_attrs</option></link>
+ parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C,
+ Tom Lane)
+ </para>
-<para>
-New options are <literal>read-only</literal>, <literal>primary</literal>, <literal>standby</literal>, and <literal>prefer-standby</literal>.
-</para>
-</listitem>
+ <para>
+ New options are <literal>read-only</literal>,
+ <literal>primary</literal>, <literal>standby</literal>, and
+ <literal>prefer-standby</literal>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-30 [198b3716d] Improve PQtrace() output format
-->
-<para>
-Improve the output format of libpq's <link linkend="libpq-control"><function>PQtrace()</function></link> (Aya Iwata, Álvaro Herrera)
-</para>
-</listitem>
+ <para>
+ Improve the output format of libpq's <link
+ linkend="libpq-control"><function>PQtrace()</function></link>
+ (Aya Iwata, Álvaro Herrera)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-22 [c0cb87fbb] Remove arbitrary line length limit for libpq service fil
-->
-<para>
-Allow the libpq <link linkend="libpq-pgservice">service file</link> to have unlimited line lengths (Daniel Gustafsson)
-</para>
+ <para>
+ Allow the libpq <link linkend="libpq-pgservice">service file</link>
+ to have unlimited line lengths (Daniel Gustafsson)
+ </para>
-<para>
-The previous limit was 255 bytes.
-</para>
-</listitem>
+ <para>
+ The previous limit was 255 bytes.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-24 [ad8305a43] Add DECLARE STATEMENT command to ECPG
-->
-<para>
-Allow an <literal>ECPG SQL</literal> identifier to be linked to a specific connection (Hayato Kuroda)
-</para>
+ <para>
+ Allow an <literal>ECPG SQL</literal> identifier to be linked to
+ a specific connection (Hayato Kuroda)
+ </para>
-<para>
-This is done via <link linkend="ecpg-sql-declare-statement"><literal>DECLARE ... STATEMENT</literal></link>.
-</para>
-</listitem>
+ <para>
+ This is done via <link
+ linkend="ecpg-sql-declare-statement"><literal>DECLARE
+ ... STATEMENT</literal></link>.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-03 [57e6db706] Add - -tablespace option to reindexdb
-->
-<para>
-Allow <link linkend="app-reindexdb"><application>reindexdb</application></link> to change the tablespace of the new index (Michael Paquier)
-</para>
+ <para>
+ Allow <link
+ linkend="app-reindexdb"><application>reindexdb</application></link>
+ to change the tablespace of the new index (Michael Paquier)
+ </para>
-<para>
-This is done by specifying <option>--tablespace</option>.
-</para>
-</listitem>
+ <para>
+ This is done by specifying <option>--tablespace</option>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-22 [9550ea302] Add - -no-index-cleanup and - -no-truncate to vacuumdb.
-->
-<para>
-Allow <link linkend="app-vacuumdb"><application>vacuumdb</application></link> to skip index cleanup and truncation (Nathan Bossart)
-</para>
+ <para>
+ Allow <link
+ linkend="app-vacuumdb"><application>vacuumdb</application></link>
+ to skip index cleanup and truncation (Nathan Bossart)
+ </para>
-<para>
-The options are <option>--no-index-cleanup</option> and <option>--no-truncate</option>.
-</para>
-</listitem>
+ <para>
+ The options are <option>--no-index-cleanup</option> and
+ <option>--no-truncate</option>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-31 [6568cef26] Add support for - -extension in pg_dump
-->
-<para>
-Allow <link linkend="app-pgdump"><application>pg_dump</application></link> to dump only certain extensions (Guillaume Lelarge)
-</para>
+ <para>
+ Allow <link
+ linkend="app-pgdump"><application>pg_dump</application></link>
+ to dump only certain extensions (Guillaume Lelarge)
+ </para>
-<para>
-This is controlled by option <option>--extension</option>.
-</para>
-</listitem>
+ <para>
+ This is controlled by option <option>--extension</option>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-06 [6b258e3d6] pgbench: Function to generate random permutations.
-->
-<para>
-Add <link linkend="pgbench"><application>pgbench</application></link> <function>permute()</function> function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
-</para>
-</listitem>
+ <para>
+ Add <link
+ linkend="pgbench"><application>pgbench</application></link>
+ <function>permute()</function> function to randomly shuffle values
+ (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-17 [99175141c] Improve common/logging.c's support for multiple verbosit
-->
-<para>
-Allow multiple verbose option specifications (<option>-v</option>) to increase the logging verbosity (Tom Lane)
-</para>
+ <para>
+ Allow multiple verbose option specifications (<option>-v</option>)
+ to increase the logging verbosity (Tom Lane)
+ </para>
-<para>
-This is now supported by <link linkend="app-pgdump"><application>pg_dump</application></link>, <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
-and <link linkend="app-pgrestore"><application>pg_restore</application></link>.
-</para>
-</listitem>
+ <para>
+ This is now supported by <link
+ linkend="app-pgdump"><application>pg_dump</application></link>,
+ <link
+ linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
+ and <link
+ linkend="app-pgrestore"><application>pg_restore</application></link>.
+ </para>
+ </listitem>
</itemizedlist>
<sect4>
- <title><xref linkend="app-psql"/></title>
+ <title><xref linkend="app-psql"/></title>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty
-->
-<para>
-Allow <application>psql</application>'s \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane)
-</para>
+ <para>
+ Allow <application>psql</application>'s \df and \do commands to
+ specify function and operator argument types (Greg Sabino Mullane,
+ Tom Lane)
+ </para>
-<para>
-This helps reduce the number of matches for overloaded entries.
-</para>
-</listitem>
+ <para>
+ This helps reduce the number of matches for overloaded entries.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-02 [07f386ede] Add access method names to \d[i|m|t]+ in psql
-->
-<para>
-Add an access method column to <application>psql</application>'s \d[i|m|t]+ output (Georgios Kokolatos)
-</para>
-</listitem>
+ <para>
+ Add an access method column to <application>psql</application>'s
+ \d[i|m|t]+ output (Georgios Kokolatos)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-05 [7d80441d2] Allow psql's \dt and \di to show TOAST tables and their
-->
-<para>
-Allow <application>psql</application>'s \dt and \di to show <acronym>TOAST</acronym> tables and their indexes (Justin Pryzby)
-</para>
-</listitem>
+ <para>
+ Allow <application>psql</application>'s \dt and \di to show
+ <acronym>TOAST</acronym> tables and their indexes (Justin Pryzby)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-20 [ad600bba0] psql \dX: list extended statistics objects
-->
-<para>
-Add <application>psql</application> command \dX to list extended statistics objects (Tatsuro Yamada)
-</para>
-</listitem>
+ <para>
+ Add <application>psql</application> command \dX to list extended
+ statistics objects (Tatsuro Yamada)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty
-->
-<para>
-Fix <application>psql</application>'s \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane)
-</para>
-</listitem>
+ <para>
+ Fix <application>psql</application>'s \dT to understand array
+ syntax and backend grammar aliases, like "int" for "integer"
+ (Greg Sabino Mullane, Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-03 [55873a00e] Improve psql's behavior when the editor is exited withou
-->
-<para>
-When editing the previous query or a file with <application>psql</application>'s \e, or using \ef and \ev, ignore the contents if the editor exits without saving (Laurenz Albe)
-</para>
+ <para>
+ When editing the previous query or a file with
+ <application>psql</application>'s \e, or using \ef and \ev, ignore
+ the contents if the editor exits without saving (Laurenz Albe)
+ </para>
-<para>
-Previously, such edits would still execute the editor contents.
-</para>
-</listitem>
+ <para>
+ Previously, such edits would still execute the editor contents.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-22 [94929f1cf] Clean up some unpleasant behaviors in psql's \connect co
-->
-<para>
-Improve <application>psql</application>'s handling of \connect with <option>-reuse-previous</option> (Tom Lane)
-</para>
+ <para>
+ Improve <application>psql</application>'s handling of \connect
+ with <option>-reuse-previous</option> (Tom Lane)
+ </para>
-<para>
-Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed.
-</para>
-</listitem>
+ <para>
+ Specifically, properly reuse the password previously specified,
+ and prompt for a new password if the previous one failed.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-21 [c273d9d8c] Rework tab completion of COPY and \copy in psql
2021-05-13 [1906cc07d] Make saner the tab completion of INSERT and DELETE in ps
-->
-<para>
-Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
-</para>
-</listitem>
+ <para>
+ Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby,
+ Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-03-12 [970609283] Add pg_amcheck, a CLI for contrib/amcheck.
-->
-<para>
-Add command-line utility <link linkend="app-pgamcheck"><application>pg_amcheck</application></link> to simplify running contrib/amcheck operations on many relations (Mark Dilger)
-</para>
-</listitem>
+ <para>
+ Add command-line utility <link
+ linkend="app-pgamcheck"><application>pg_amcheck</application></link>
+ to simplify running contrib/amcheck operations on many relations
+ (Mark Dilger)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-17 [e09155bd6] Add - -no-instructions parameter to initdb
-->
-<para>
-Add <option>--no-instructions</option> option to <link linkend="app-initdb"><application>initdb</application></link> (Magnus Hagander)
-</para>
+ <para>
+ Add <option>--no-instructions</option> option to <link
+ linkend="app-initdb"><application>initdb</application></link>
+ (Magnus Hagander)
+ </para>
-<para>
-This removes the server start instructions that are normally output.
-</para>
-</listitem>
+ <para>
+ This removes the server start instructions that are normally output.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-09 [8f113698b] Remove analyze_new_cluster script from pg_upgrade
-->
-<para>
-Stop <link linkend="pgupgrade"><application>pg_upgrade</application></link> from creating <filename>analyze_new_cluster</filename> script (Michael Paquier)
-</para>
+ <para>
+ Stop <link
+ linkend="pgupgrade"><application>pg_upgrade</application></link>
+ from creating <filename>analyze_new_cluster</filename> script
+ (Michael Paquier)
+ </para>
-<para>
-Instead, give comparable <link linkend="app-vacuumdb"><application>vacuumdb</application></link> instructions.
-</para>
-</listitem>
+ <para>
+ Instead, give comparable <link
+ linkend="app-vacuumdb"><application>vacuumdb</application></link>
+ instructions.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-10 [d2e4bf688] Remove -o option to postmaster
-->
-<para>
-Remove support for the <link linkend="app-postgres"><application>postmaster</application></link> <option>-o</option> option (Magnus Hagander)
-</para>
+ <para>
+ Remove support for the <link
+ linkend="app-postgres"><application>postmaster</application></link>
+ <option>-o</option> option (Magnus Hagander)
+ </para>
-<para>
-This option was unnecessary since all passed options could already be specified directly.
-</para>
-</listitem>
+ <para>
+ This option was unnecessary since all passed options could already
+ be specified directly.
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-01 [c9c41c7a3] Rename Default Roles to Predefined Roles
-->
-<para>
-Rename "Default Roles" to <link linkend="predefined-roles">"Predefined Roles"</link> (Bruce Momjian, Stephen Frost)
-</para>
-</listitem>
+ <para>
+ Rename "Default Roles" to <link
+ linkend="predefined-roles">"Predefined Roles"</link> (Bruce Momjian,
+ Stephen Frost)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-16 [4c5cf5431] doc: Document factorial function
-->
-<para>
-Add documentation for the <link linkend="function-factorial"><function>factorial()</function></link> function (Peter Eisentraut)
-</para>
+ <para>
+ Add documentation for the <link
+ linkend="function-factorial"><function>factorial()</function></link>
+ function (Peter Eisentraut)
+ </para>
-<para>
-With the removal of the ! operator in this release, <function>factorial()</function> is the only built-in way to compute a factorial.
-</para>
-</listitem>
+ <para>
+ With the removal of the ! operator in this release,
+ <function>factorial()</function> is the only built-in way to compute
+ a factorial.
+ </para>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Source Code</title>
+ <sect3>
+ <title>Source Code</title>
- <itemizedlist>
+ <itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-02-01 [fe61df7f8] Introduce - -with-ssl={openssl} as a configure option
-->
-<para>
-Add configure option <link linkend="configure-options-features"><literal>--with-ssl={openssl}</literal></link> to behave like <option>--with-openssl</option> (Daniel Gustafsson, Michael Paquier)
-</para>
+ <para>
+ Add configure option <link
+ linkend="configure-options-features"><literal>--with-ssl={openssl}</literal></link>
+ to behave like <option>--with-openssl</option> (Daniel Gustafsson,
+ Michael Paquier)
+ </para>
-<para>
-The option <option>--with-openssl</option> is kept for compatibility.
-</para>
-</listitem>
+ <para>
+ The option <option>--with-openssl</option> is kept for
+ compatibility.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-25 [c9f0624bc] Add support for abstract Unix-domain sockets
-->
-<para>
-Add support for <link linkend="guc-unix-socket-directories">abstract Unix-domain sockets</link> (Peter Eisentraut)
-</para>
+ <para>
+ Add support for <link linkend="guc-unix-socket-directories">abstract
+ Unix-domain sockets</link> (Peter Eisentraut)
+ </para>
-<para>
-This is currently supported on <productname>Linux</productname> and <productname>Windows</productname>.
-</para>
-</listitem>
+ <para>
+ This is currently supported on <productname>Linux</productname>
+ and <productname>Windows</productname>.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-06 [4656e3d66] Replace CLOBBER_CACHE_ALWAYS with run-time GUC
-->
-<para>
-Add <xref linkend="guc-debug-invalidate-system-caches-always"/> to control cache overwriting (Craig Ringer)
-</para>
+ <para>
+ Add <xref linkend="guc-debug-invalidate-system-caches-always"/>
+ to control cache overwriting (Craig Ringer)
+ </para>
-<para>
-Previously this could only be controlled at compile time and is enabled only in assert builds.
-</para>
-</listitem>
+ <para>
+ Previously this could only be controlled at compile time and is
+ enabled only in assert builds.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-17 [1e0dfd166] Add Valgrind buffer access instrumentation.
2020-07-19 [a766d6ca2] Avoid harmless Valgrind no-buffer-pin errors.
-->
-<para>
-Various improvements in <productname>valgrind</productname> detection (Álvaro Herrera, Peter Geoghegan)
-</para>
-</listitem>
+ <para>
+ Various improvements in <productname>valgrind</productname>
+ detection (Álvaro Herrera, Peter Geoghegan)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-06 [ca8217c10] Add a test module for the regular expression package.
-->
-<para>
-Add a test module for the regular expression package (Tom Lane)
-</para>
-</listitem>
+ <para>
+ Add a test module for the regular expression package (Tom Lane)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-09 [6c57f2ed1] jit: Add support for LLVM 12.
-->
-<para>
-Add support for <productname>LLVM</productname> version 12 (Andres Freund)
-</para>
-</listitem>
+ <para>
+ Add support for <productname>LLVM</productname> version 12
+ (Andres Freund)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-12-04 [4f48a6fbe] Change SHA2 implementation based on OpenSSL to use EVP d
2021-04-03 [e6bdfd970] Refactor HMAC implementations
-->
-<para>
-Change SHA1, SHA2, and MD5 hash computations to use the <productname>OpenSSL</productname> <acronym>EVP API</acronym> (Michael Paquier)
-</para>
+ <para>
+ Change SHA1, SHA2, and MD5 hash computations to use the
+ <productname>OpenSSL</productname> <acronym>EVP API</acronym>
+ (Michael Paquier)
+ </para>
-<para>
-This is more modern and supports <acronym>FIPS</acronym> mode.
-</para>
-</listitem>
+ <para>
+ This is more modern and supports <acronym>FIPS</acronym> mode.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-20 [16f96c74d] Remove ability to independently select random number gen
-->
-<para>
-Remove build control over the random library used (Daniel Gustafsson)
-</para>
-</listitem>
+ <para>
+ Remove build control over the random library used (Daniel
+ Gustafsson)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-28 [6c5576075] Add direct conversion routines between EUC_TW and Big5.
-->
-<para>
-Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas)
-</para>
-</listitem>
+ <para>
+ Add direct conversion routines between EUC_TW and Big5 (Heikki
+ Linnakangas)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-20 [ca051d8b1] Add collation versions for FreeBSD.
-->
-<para>
-Add collation versions for <productname>FreeBSD</productname> (Thomas Munro)
-</para>
-</listitem>
+ <para>
+ Add collation versions for <productname>FreeBSD</productname>
+ (Thomas Munro)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-08-01 [9f9682783] Invent "amadjustmembers" AM method for validating opclas
-->
-<para>
-Add <link linkend="index-api"><structfield>amadjustmembers</structfield></link> to the index access method <acronym>API</acronym> (Tom Lane)
-</para>
+ <para>
+ Add <link
+ linkend="index-api"><structfield>amadjustmembers</structfield></link>
+ to the index access method <acronym>API</acronym> (Tom Lane)
+ </para>
-<para>
-REMOVE?
-</para>
-</listitem>
+ <para>
+ REMOVE?
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2020-12-11 [0ec5f7e78] Allow subscripting of hstore values.
-->
-<para>
-Allow subscripting of <link linkend="hstore"><application>hstore</application></link> values (Tom Lane, Dmitry Dolgov)
-</para>
-</listitem>
+ <para>
+ Allow subscripting of <link
+ linkend="hstore"><application>hstore</application></link> values
+ (Tom Lane, Dmitry Dolgov)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-15 [935f66665] Handle equality operator in contrib/pg_trgm
-->
-<para>
-Allow GiST/GIN <link linkend="pgtrgm"><application>pg_trgm</application></link> indexes to do equality lookups (Julien Rouhaud)
-</para>
+ <para>
+ Allow GiST/GIN <link
+ linkend="pgtrgm"><application>pg_trgm</application></link> indexes
+ to do equality lookups (Julien Rouhaud)
+ </para>
-<para>
-This is similar to <literal>LIKE</literal> except no wildcards are honored.
-</para>
-</listitem>
+ <para>
+ This is similar to <literal>LIKE</literal> except no wildcards
+ are honored.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-03-06 [1265a9c8f] Add binary I/O capability for cube datatype.
-->
-<para>
-Allow the <link linkend="cube"><application>cube</application></link> data type to be transferred in binary mode (KaiGai Kohei)
-</para>
-</listitem>
+ <para>
+ Allow the <link
+ linkend="cube"><application>cube</application></link> data type
+ to be transferred in binary mode (KaiGai Kohei)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-06-30 [ee0202d55] pgstattuple: Have pgstattuple_approx accept TOAST tables
-->
-<para>
-Allow <function>pgstattuple_approx()</function> to report on <acronym>TOAST</acronym> tables (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Allow <function>pgstattuple_approx()</function> to report on
+ <acronym>TOAST</acronym> tables (Peter Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-10 [34a947ca1] New contrib module, pg_surgery, with heap surgery functi
-->
-<para>
-Add contrib module <link linkend="pgsurgery"><application>pg_surgery</application></link> which allows changes to row visibility (Ashutosh Sharma)
-</para>
+ <para>
+ Add contrib module <link
+ linkend="pgsurgery"><application>pg_surgery</application></link>
+ which allows changes to row visibility (Ashutosh Sharma)
+ </para>
-<para>
-This is useful for correcting database corruption.
-</para>
-</listitem>
+ <para>
+ This is useful for correcting database corruption.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-09-24 [aecf5ee2b] Add new 'old_snapshot' contrib module.
-->
-<para>
-Add contrib module <link linkend="oldsnapshot"><application>old_snapshot</application></link> to report the <type>XID</type>/time mapping used by an active <xref linkend="guc-old-snapshot-threshold"/> (Robert Haas)
-</para>
-</listitem>
+ <para>
+ Add contrib module <link
+ linkend="oldsnapshot"><application>old_snapshot</application></link>
+ to report the <type>XID</type>/time mapping used by an active
+ <xref linkend="guc-old-snapshot-threshold"/> (Robert Haas)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-22 [866e24d47] Extend amcheck to check heap pages.
-->
-<para>
-Allow <link linkend="amcheck"><application>amcheck</application></link> to also check heap pages (Mark Dilger)
-</para>
+ <para>
+ Allow <link
+ linkend="amcheck"><application>amcheck</application></link> to
+ also check heap pages (Mark Dilger)
+ </para>
-<para>
-Previously it only checked B-Tree index pages.
-</para>
-</listitem>
+ <para>
+ Previously it only checked B-Tree index pages.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-13 [756ab2912] Add functions to 'pageinspect' to inspect GiST indexes.
2021-02-14 [9e596b65f] Add "LP_DEAD item?" column to GiST pageinspect functions
-->
-<para>
-Allow <link linkend="pageinspect"><application>pageinspect</application></link> to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
-</para>
-</listitem>
+ <para>
+ Allow <link
+ linkend="pageinspect"><application>pageinspect</application></link>
+ to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-19 [f18aa1b20] pageinspect: Change block number arguments to bigint
-->
-<para>
-Change <application>pageinspect</application> block numbers to be <link linkend="datatype-int"><type>bigints</type></link> (Peter Eisentraut)
-</para>
-</listitem>
+ <para>
+ Change <application>pageinspect</application> block numbers
+ to be <link linkend="datatype-int"><type>bigints</type></link>
+ (Peter Eisentraut)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-20 [d98c08cdc] Update btree_gist extension for parallel query
-->
-<para>
-Mark <link linkend="btree-gist"><application>btree_gist</application></link> functions as parallel safe (Steven Winfield)
-</para>
-</listitem>
+ <para>
+ Mark <link
+ linkend="btree-gist"><application>btree_gist</application></link>
+ functions as parallel safe (Steven Winfield)
+ </para>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- <sect4>
- <title><link linkend="pgstatstatements">pg_stat_statements</link></title>
+ <sect4>
+ <title><link linkend="pgstatstatements">pg_stat_statements</link></title>
- <itemizedlist>
+ <itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-04-07 [5fd9dfa5f] Move pg_stat_statements query jumbling to core.
-->
-<para>
-Move query hash computation from <application>pg_stat_statements</application> to the core server (Julien Rouhaud)
-</para>
+ <para>
+ Move query hash computation from
+ <application>pg_stat_statements</application> to the core server
+ (Julien Rouhaud)
+ </para>
-<para>
-The new server variable <xref linkend="guc-compute-query-id"/>'s default of <literal>auto</literal> will automatically enable query id computation when this extension is loaded.
-</para>
-</listitem>
+ <para>
+ The new server variable <xref linkend="guc-compute-query-id"/>'s
+ default of <literal>auto</literal> will automatically enable query
+ id computation when this extension is loaded.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-08 [6b4d23fee] Track identical top vs nested queries independently in p
-->
-<para>
-Allow <application>pg_stat_statements</application> to track top and nested statements independently (Julien Rohaud)
-</para>
+ <para>
+ Allow <application>pg_stat_statements</application> to track top
+ and nested statements independently (Julien Rohaud)
+ </para>
-<para>
-Previously, when tracking all statements, identical top and nested statements were tracked together.
-</para>
-</listitem>
+ <para>
+ Previously, when tracking all statements, identical top and nested
+ statements were tracked together.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-07-29 [6023b7ea7] pg_stat_statements: track number of rows processed by so
2020-11-12 [b62e6056a] pg_stat_statements: track number of rows processed by RE
-->
-<para>
-Add row counts for utility commands to <structname>pg_stat_statements</structname>> (Fujii Masao, Katsuragi Yuta, Seino Yuki)
-</para>
-</listitem>
+ <para>
+ Add row counts for utility commands to
+ <structname>pg_stat_statements</structname>> (Fujii Masao, Katsuragi
+ Yuta, Seino Yuki)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-11-26 [9fbc3f318] pg_stat_statements: Track number of times pgss entries w
2020-12-18 [2e0fedf03] pg_stat_statements: Track time at which all statistics w
-->
-<para>
-Add <structname>pg_stat_statements_info</structname> system view to show <structname>pg_stat_statements</structname> activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
-</para>
-</listitem>
+ <para>
+ Add <structname>pg_stat_statements_info</structname> system view
+ to show <structname>pg_stat_statements</structname> activity
+ (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
+ </para>
+ </listitem>
</itemizedlist>
<itemizedlist>
-<listitem>
+ <listitem>
<!--
2021-01-20 [b663a4136] Implement support for bulk inserts in postgres_fdw
2021-02-18 [927f453a9] Fix tuple routing to initialize batching only for insert
-->
-<para>
-Allow <application>postgres_fdw</application> to <command>INSERT</command> rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)
-</para>
-</listitem>
+ <para>
+ Allow <application>postgres_fdw</application> to
+ <command>INSERT</command> rows in bulk (Takayuki Tsunakawa, Tomas
+ Vondra, Amit Langote)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-07 [a3740c48e] postgres_fdw: Allow partitions specified in LIMIT TO to
-->
-<para>
-Allow <application>postgres_fdw</application> to import table partitions if specified by <link linkend="sql-importforeignschema"><command>IMPORT FOREIGN SCHEMA ... LIMIT TO</command></link> (Matthias van de Meent)
-</para>
+ <para>
+ Allow <application>postgres_fdw</application>
+ to import table partitions if specified by <link
+ linkend="sql-importforeignschema"><command>IMPORT FOREIGN SCHEMA
+ ... LIMIT TO</command></link> (Matthias van de Meent)
+ </para>
-<para>
-By default, only the root of partitioned tables is imported.
-</para>
-</listitem>
+ <para>
+ By default, only the root of partitioned tables is imported.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-18 [708d165dd] postgres_fdw: Add function to list cached connections to
-->
-<para>
-Add <application>postgres_fdw</application> function <function>postgres_fdw_get_connections()</function> to report open foreign server connections (Bharath Rupireddy)
-</para>
-</listitem>
+ <para>
+ Add <application>postgres_fdw</application> function
+ <function>postgres_fdw_get_connections()</function> to report open
+ foreign server connections (Bharath Rupireddy)
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-04-02 [b1be3074a] postgres_fdw: Add option to control whether to keep conn
-->
-<para>
-Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)
-</para>
+ <para>
+ Allow control over whether foreign servers keep connections open
+ after transaction completion (Bharath Rupireddy)
+ </para>
-<para>
-This is controlled by <varname>keep_connections</varname> and defaults to on.
-</para>
-</listitem>
+ <para>
+ This is controlled by <varname>keep_connections</varname> and
+ defaults to on.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2020-10-06 [32a9c0bdf] postgres_fdw: reestablish new connection if cached one i
2020-10-16 [7fc1a81e4] postgres_fdw: Restructure connection retry logic.
-->
-<para>
-Allow <application>postgres_fdw</application> to reestablish foreign server connections if necessary (Bharath Rupireddy)
-</para>
+ <para>
+ Allow <application>postgres_fdw</application> to reestablish
+ foreign server connections if necessary (Bharath Rupireddy)
+ </para>
-<para>
-Previously foreign server restarts could cause foreign table access errors.
-</para>
-</listitem>
+ <para>
+ Previously foreign server restarts could cause foreign table
+ access errors.
+ </para>
+ </listitem>
-<listitem>
+ <listitem>
<!--
2021-01-26 [411ae6499] postgres_fdw: Add functions to discard cached connection
-->
-<para>
-Add <application>postgres_fdw</application> functions to discard cached connections (Bharath Rupireddy)
-</para>
-</listitem>
+ <para>
+ Add <application>postgres_fdw</application> functions to discard
+ cached connections (Bharath Rupireddy)
+ </para>
+ </listitem>
</itemizedlist>
<title>Acknowledgments</title>
<para>
- The following individuals (in alphabetical order) have contributed to this
- release as patch authors, committers, reviewers, testers, or reporters of
- issues.
+ The following individuals (in alphabetical order) have contributed
+ to this release as patch authors, committers, reviewers, testers,
+ or reporters of issues.
</para>
<simplelist>