1 <!-- doc/src/sgml/release-14.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id=
"release-14">
5 <title>Release
14</title>
8 <title>Release date:
</title>
9 <para>2021-??-?? (AS OF
2021-
05-
15)
</para>
13 <title>Overview
</title>
16 <productname>PostgreSQL
</productname> 14 contains many new features and
17 enhancements, including:
28 The above items and other new features
29 of
<productname>PostgreSQL
</productname> 14 are explained in more
30 detail in the sections below.
37 <title>Migration to Version
14</title>
40 A dump/restore using
<xref linkend=
"app-pg-dumpall"/> or use of
<xref
41 linkend=
"pgupgrade"/> or logical replication is required for those
42 wishing to migrate data from any previous release. See
<xref
43 linkend=
"upgrading"/> for general information on migrating to new major
48 Version
14 contains a number of changes that may affect compatibility
49 with previous releases. Observe the following incompatibilities:
56 Author: Tom Lane <tgl@sss.pgh.pa.us>
57 2020-08-08 [20e7e1fe3] Remove <@ from contrib/intarray's GiST operator classes.
61 Prevent the containment operators (
<@ and @
>) for
<xref linkend=
"intarray"/> from using GiST indexes (Tom Lane)
65 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.
71 Author: Peter Eisentraut <peter@eisentraut.org>
72 2020-11-03 [2f70fdb06] Remove deprecated containment operators for built-in typ
73 Author: Tom Lane <tgl@sss.pgh.pa.us>
74 2021-03-05 [112d411fb] Remove deprecated containment operators for contrib type
78 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"/>,
79 <xref linkend=
"intarray"/>, and
<xref linkend=
"seg"/> (Justin Pryzby)
83 The more consistent
<@ and @
> have been recommended for many years.
89 Author: Alexander Korotkov <akorotkov@postgresql.org>
90 2021-01-31 [0c4f355c6] Fix parsing of complex morphs to tsquery
94 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)
98 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
<-
>
99 pg') used to output '( pg
& class )
<-
> pg', but now both output 'pg
<-
> class
<-
> pg'.
105 Author: Alexander Korotkov <akorotkov@postgresql.org>
106 2021-05-03 [eb086056f] Make websearch_to_tsquery() parse text in quotes as a si
110 Fix
<link linkend=
"functions-textsearch"><function>websearch_to_tsquery()
</function></link> to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov)
114 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
115 'aaa
<2> bbb', but now outputs 'aaa
<-
> bbb'.
121 Author: Peter Eisentraut <peter@eisentraut.org>
122 2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256
123 Author: Peter Eisentraut <peter@eisentraut.org>
124 2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256
128 Change the default of the
<xref linkend=
"guc-password-encryption"/> server parameter to
<literal>scram-sha-
256</literal> (Peter Eisentraut)
132 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.
133 Also, the legacy (and undocumented) boolean-like values which were previously synonyms for
<literal>md5
</literal> are no longer accepted.
139 Author: Bruce Momjian <bruce@momjian.us>
140 2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API
144 Overhaul the specification of
<literal>clientcert
</literal> in
<link linkend=
"auth-pg-hba-conf"><filename>pg_hba.conf
</filename></link> (Kyotaro Horiguchi)
148 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
149 authentication is enabled since cert requires
<literal>verify-full
</literal> checking.
155 Author: Michael Paquier <michael@paquier.xyz>
156 2021-03-09 [f9264d152] Remove support for SSL compression
157 Author: Michael Paquier <michael@paquier.xyz>
158 2021-03-10 [0ba71107e] Revert changes for SSL compression in libpq
162 Remove support for
<link linkend=
"runtime-config-connection-ssl"><acronym>SSL
</acronym></link> compression (Daniel Gustafsson, Michael Paquier)
166 This was already disabled by default in previous Postgres releases, and most modern OpenSSL and
<acronym>TLS
</acronym> versions no longer support it.
172 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
173 2021-03-04 [3174d69fb] Remove server and libpq support for old FE/BE protocol v
177 Remove server and
<link linkend=
"libpq">libpq
</link> support for the version
2 <link linkend=
"protocol">wire protocol
</link> (Heikki Linnakangas)
181 This was last used as the default in Postgres
7.2 (year
2002).
187 Author: Peter Eisentraut <peter@eisentraut.org>
188 2021-04-06 [a2da77cdb] Change return type of EXTRACT to numeric
192 Change
<link linkend=
"functions-datetime"><function>EXTRACT
</function></link> to return the
<type>NUMERIC
</type> data type (Peter Eisentraut)
196 <function>EXTRACT(date)
</function> now throws an error for units that are not part of the date data type.
202 Author: Tom Lane <tgl@sss.pgh.pa.us>
203 2020-07-20 [a4faef8f8] Fix some corner cases for window ranges with infinite of
207 Fix handling of infinite
<link linkend=
"syntax-window-functions">window function
</link> ranges (Tom Lane)
211 Previously window frame clauses like
<literal>'inf' PRECEDING AND 'inf' FOLLOWING
</literal> returned incorrect results.
217 Author: Peter Eisentraut <peter@eisentraut.org>
218 2020-11-25 [f73999262] tablefunc: Reject negative number of tuples passed to no
222 Prevent
<xref linkend=
"tablefunc"/>'s function
<function>normal_rand()
</function> from accepting negative values (Ashutosh Bapat)
226 Negative values produced undesirable results.
232 Author: Tom Lane <tgl@sss.pgh.pa.us>
233 2020-06-13 [23cbeda50] Sync behavior of var_samp and stddev_samp for single NaN
237 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)
241 Previously
<literal>NaN
</literal> was returned.
247 Author: Tom Lane <tgl@sss.pgh.pa.us>
248 2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial()
252 Remove factorial operators
<literal>!
</literal> and
<literal>!!
</literal> (Mark Dilger)
256 The
<link linkend=
"functions-math"><function>factorial()
</function></link> function is still supported. Also remove function
<function>numeric_fac()
</function>.
262 Author: Peter Eisentraut <peter@eisentraut.org>
263 2020-06-18 [0a40563ea] Disallow factorial of negative numbers
267 Disallow
<function>factorial()
</function> of negative numbers (Peter Eisentraut)
271 Previously such cases returned
1.
277 Author: Tom Lane <tgl@sss.pgh.pa.us>
278 2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators.
282 Remove support for
<link linkend=
"sql-createoperator">postfix
</link> (right-unary) operators (Mark Dilger)
286 <application>pg_dump
</application> and
<application>pg_upgrade
</application> will warn if postfix operators are being dumped.
292 Author: Tom Lane <tgl@sss.pgh.pa.us>
293 2021-02-25 [7dc13a0f0] Change regex \D and \W shorthands to always match newlin
297 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)
301 Previously they did not match;
<literal>[^[:digit:]]
</literal> or
<literal>[^[:word:]]
</literal> can be used to get the old behavior.
307 Author: Tom Lane <tgl@sss.pgh.pa.us>
308 2021-03-02 [4aea704a5] Fix semantics of regular expression back-references.
312 Improve handling of regular expression back-references (Tom Lane)
316 For example, disregard
<literal>^
</literal> in its expansion in
<literal>\
1</literal> in
<literal>(^\d+).*\
1</literal>.
322 Author: Tom Lane <tgl@sss.pgh.pa.us>
323 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
327 Disallow
<literal>\w
</literal> as range start/end in character classes (Tom Lane)
331 This previously was allowed but produced incorrect results.
337 Author: Tom Lane <tgl@sss.pgh.pa.us>
338 2021-04-07 [3db826bd5] Tighten up allowed names for custom GUC parameters.
342 Require
<link linkend=
"runtime-config-custom">custom server variable
</link> names to match the pattern used for unquoted
<acronym>SQL
</acronym> identifiers (Tom Lane)
348 Author: Peter Geoghegan <pg@bowt.ie>
349 2021-03-10 [9f3665fbf] Don't consider newly inserted tuples in nbtree VACUUM.
350 Author: Peter Geoghegan <pg@bowt.ie>
351 2021-03-11 [effdd3f3b] Add back vacuum_cleanup_index_scale_factor parameter.
355 Remove server variable
<varname>vacuum_cleanup_index_scale_factor
</varname> (Peter Geoghegan)
359 This setting was ignored starting in
<productname>PostgreSQL
</productname> version
13.3.
365 Author: Joe Conway <mail@joeconway.com>
366 2021-03-31 [b12bd4869] Fix has_column_privilege function corner case
370 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)
374 Previously such attribute numbers returned an invalid column error.
380 Author: Tom Lane <tgl@sss.pgh.pa.us>
381 2020-10-22 [3dfb1942d] Avoid premature de-doubling of quote marks in ECPG strin
382 Author: Tom Lane <tgl@sss.pgh.pa.us>
383 2020-10-22 [c16a1bbcf] Add documentation and tests for quote marks in ECPG lite
387 Pass doubled quote marks in
<xref linkend=
"ecpg"/> <acronym>SQL
</acronym> command strings literally (Tom Lane)
391 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>.
397 Author: Peter Eisentraut <peter@eisentraut.org>
398 2020-06-11 [5333e014a] Remove deprecated syntax from CREATE/DROP LANGUAGE
402 Disallow single-quoting of the language name in the <link linkend="sql-createlanguage
"><command>CREATE/DROP LANGUAGE</command></link> command (Peter Eisentraut)
408 Author: Thomas Munro <tmunro@postgresql.org>
409 2021-01-29 [514b411a2] Retire pg_standby.
413 Remove contrib program <application>pg_standby</application> (Justin Pryzby)
419 Author: Tom Lane <tgl@sss.pgh.pa.us>
420 2020-07-07 [f3faf35f3] Don't create pg_type entries for sequences or toast tabl
424 Remove <link linkend="xfunc-sql-composite-functions
">composite types</link> for sequences or toast tables (Tom Lane)
430 Author: Tom Lane <tgl@sss.pgh.pa.us>
431 2020-12-08 [a676386b5] Remove operator_precedence_warning.
435 Remove <varname>operator_precedence_warning</varname> setting (Tom Lane)
439 This was needed for warning applications about <productname>PostgreSQL</productname> 9.5 changes.
448 <title>Changes</title>
451 Below you will find a detailed account of the changes between
452 <productname>PostgreSQL</productname> 14 and the previous major
457 <title>Server</title>
463 Author: Stephen Frost <sfrost@snowman.net>
464 2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles
468 Add predefined roles <link linkend="predefined-roles
"><structname>pg_read_all_data</structname></link> and <structname>pg_write_all_data</structname> (Stephen Frost)
472 These non-login roles give read-only/write-only access to all objects.
478 Author: Noah Misch <noah@leadboat.com>
479 2021-03-26 [a14a0118a] Add "pg_database_owner
" default role.
483 Add a predefined role to match the database owner (Noah Misch)
487 It is called <link linkend="predefined-roles
"><literal>pg_database_owner</literal></link>; this is useful in template databases.
493 Author: Tomas Vondra <tomas.vondra@postgresql.org>
494 2021-03-18 [cd91de0d1] Remove temporary files after backend crash
498 Remove temporary files after backend crashes (Euler Taveira)
502 These files were previously retained for debugging purposes; deletion can be disabled with <xref linkend="guc-remove-temp-files-after-crash
"/>.
508 Author: Thomas Munro <tmunro@postgresql.org>
509 2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries.
513 Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
517 The server variable <xref linkend="guc-client-connection-check-interval
"/> allows some supported operating systems to automatically cancel queries by disconnected clients.
523 Author: Magnus Hagander <magnus@hagander.net>
524 2021-04-08 [aaf043257] Add functions to wait for backend termination
528 Add function <link linkend="functions-admin-signal
"><function>pg_wait_for_backend_termination()</function></link> that waits for session exit (Bharath Rupireddy)
532 Also add a similar optional wait parameter to <link linkend="functions-admin-signal
"><function>pg_terminate_backend()</function></link>
538 Author: Noah Misch <noah@leadboat.com>
539 2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger than fill
543 Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee)
547 Previously tuples whose insertion would have exceeded the page's <link linkend="sql-createtable
">fill factor</link> were instead added to new pages.
553 Author: Peter Eisentraut <peter@eisentraut.org>
554 2021-04-07 [5c55dc8b4] libpq: Set Server Name Indication (SNI) for SSL connecti
558 Add Set Server Name Indication (<acronym>SNI</acronym>) for <acronym>SSL</acronym> connection packets (Peter Eisentraut)
562 This can be disabled by turning off client option <link linkend="libpq-paramkeywords
"><literal>sslsni</literal></link>.
569 <title><link linkend="routine-vacuuming
">Vacuuming</link></title>
575 Author: Peter Geoghegan <pg@bowt.ie>
576 2021-04-07 [5100010ee] Teach VACUUM to bypass unnecessary index vacuuming.
580 Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
586 Author: Peter Geoghegan <pg@bowt.ie>
587 2021-03-21 [9dd963ae2] Recycle nbtree pages deleted during same VACUUM.
591 Allow vacuum to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan)
595 Previously vacuum could only place preexisting deleted pages in the free space map.
601 Author: Peter Geoghegan <pg@bowt.ie>
602 2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM.
606 Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan)
612 Author: Fujii Masao <fujii@postgresql.org>
613 2020-12-08 [e2ac3fed3] Speed up rechecking if relation needs to be vacuumed or
617 Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)
623 Author: Peter Geoghegan <pg@bowt.ie>
624 2021-01-27 [e19594c5c] Reduce the default value of vacuum_cost_page_miss.
628 Reduce the default value of <xref linkend="guc-vacuum-cost-page-miss
"/> from 10 milliseconds to 2 (Peter Geoghegan)
632 This new default better reflects current hardware capabilities.
638 Author: Michael Paquier <michael@paquier.xyz>
639 2021-02-09 [7cb3048f3] Add option PROCESS_TOAST to VACUUM
643 Add ability to skip vacuuming of <acronym>TOAST</acronym> tables (Nathan Bossart)
647 <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
648 <link linkend="app-vacuumdb
"><application>vacuumdb</application></link> has a <option>--no-process-toast</option> option.
654 Author: Tomas Vondra <tomas.vondra@postgresql.org>
655 2021-01-17 [7db0cd214] Set PD_ALL_VISIBLE and visibility map bits in COPY FREEZ
659 Have <link linkend="sql-copy
"><command>COPY FREEZE</command></link> appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes)
665 Author: Peter Geoghegan <pg@bowt.ie>
666 2021-04-07 [1e55e7d17] Add wraparound failsafe to VACUUM.
670 Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
674 This is controlled by <xref linkend="guc-vacuum-failsafe-age
"/> and <xref linkend="guc-multixact-failsafe-age
"/>.
680 Author: Noah Misch <noah@leadboat.com>
681 2020-08-01 [cd5e82256] Change XID and mxact limits to warn at 40M and stop at 3
685 Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch)
689 This should reduce the possibility of failures that occur without having issued warnings about wraparound.
695 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
696 2021-04-08 [0827e8af7] autovacuum: handle analyze for partitioned tables
700 <link linkend="autovacuum
">Autovacuum</link> now analyzes partitioned tables (Yuzuko Hosoya, Álvaro Herrera)
704 Insert, update, and delete tuple counts from partitions are now propagated to their parent tables so autovacuum knows when to process them.
710 Author: Michael Paquier <michael@paquier.xyz>
711 2021-03-23 [5aed6a1fc] Add per-index stats information in verbose logs of autov
715 Add per-index information to <link linkend="guc-log-autovacuum-min-duration
">autovacuum logging output</link> (Masahiko Sawada)
723 <title><link linkend="ddl-partitioning
">Partitioning</link></title>
729 Author: Tom Lane <tgl@sss.pgh.pa.us>
730 2021-03-31 [86dc90056] Rework planning and execution of UPDATE and DELETE.
731 Author: Tom Lane <tgl@sss.pgh.pa.us>
732 2021-04-06 [a1115fa07] Postpone some more stuff out of ExecInitModifyTable.
733 Author: Tom Lane <tgl@sss.pgh.pa.us>
734 2021-04-06 [c5b7ba4e6] Postpone some stuff out of ExecInitModifyTable.
738 Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane)
742 This also allows updates/deletes on partitioned tables to use execution-time partition pruning.
748 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
749 2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY
753 Allow partitions to be <link linkend="sql-altertable
">detached</link> in a non-blocking manner (Álvaro Herrera)
757 The syntax is <command>ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY</command>, and <command>FINALIZE</command>.
763 Author: Tom Lane <tgl@sss.pgh.pa.us>
764 2020-09-28 [2dfa3fea8] Remove complaints about COLLATE clauses in partition bou
768 Allow the arbitrary collations of partition boundary values (Tom Lane)
772 Previously it had to match the collation of the partition key.
781 <title>Indexes</title>
787 Author: Peter Geoghegan <pg@bowt.ie>
788 2021-01-13 [9dc718bdf] Pass down "logically unchanged index
" hint.
789 Author: Peter Geoghegan <pg@bowt.ie>
790 2021-01-13 [d168b6668] Enhance nbtree index tuple deletion.
794 Allow btree index additions to <link linkend="btree-deletion
">remove expired index entries</link> to prevent page splits (Peter Geoghegan)
798 This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.
804 Author: Tomas Vondra <tomas.vondra@postgresql.org>
805 2021-03-26 [ab596105b] BRIN minmax-multi indexes
809 Allow <link linkend="brin
"><acronym>BRIN</acronym></link> indexes to record multiple min/max values per range (Tomas Vondra)
813 This is useful if there are groups of values in each page range.
819 Author: Tomas Vondra <tomas.vondra@postgresql.org>
820 2021-03-26 [77b88cd1b] BRIN bloom indexes
824 Allow <acronym>BRIN</acronym> indexes to use bloom filters (Tomas Vondra)
828 This allows bloom indexes to be used effectively with data that is not physically localized in the heap.
834 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
835 2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting.
839 Allow some <link linkend="gist
">GiST</link> indexes to be built by presorting the data (Andrey Borodin)
843 Presorting happens automatically and allows for faster index creation and smaller indexes.
849 Author: Tom Lane <tgl@sss.pgh.pa.us>
850 2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST.
854 Allow <link linkend="spgist
">SP-GiST</link> to use <literal>INCLUDE</literal>'d columns (Pavel Borisov)
863 <title>Optimizer</title>
869 Author: David Rowley <drowley@postgresql.org>
870 2021-04-08 [50e17ad28] Speedup ScalarArrayOpExpr evaluation
874 Allow hash lookup of <literal>IN</literal> clause with many constants (James Coleman, David Rowley)
878 Previously the only option was to sequentially scan the list of constants.
884 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
885 2020-12-03 [25a9e54d2] Improve estimation of OR clauses using extended statisti
886 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
887 2020-12-08 [88b0898fe] Improve estimation of OR clauses using multiple extended
888 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
889 2020-12-08 [4f5760d4a] Improve estimation of ANDs under ORs using extended stat
893 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)
899 Author: Tomas Vondra <tomas.vondra@postgresql.org>
900 2021-03-27 [a4d75c86b] Extended statistics on expressions
904 Allow extended statistics on expressions (Tomas Vondra)
908 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>
909 reports such statistics. <link linkend="sql-altertable
"><literal>ALTER TABLE ... ALTER COLUMN ... TYPE RESETS STASTISTICS</literal></link>?
915 Author: David Rowley <drowley@postgresql.org>
916 2021-02-27 [bb437f995] Add TID Range Scans to support efficient scanning ranges
920 Allow efficient heap scanning of a range of <link linkend="datatype-oid-table
"><type>TIDs</type></link> (Edmund Horner, David Rowley)
924 Previously a sequential scan was required for non-equality <type>TID</type> specifications.
930 Author: Michael Paquier <michael@paquier.xyz>
931 2020-12-30 [e665769e6] Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews
935 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)
939 Previously, if the object already exists, <command>EXPLAIN</command> would fail.
948 <title>General Performance</title>
954 Author: Andres Freund <andres@anarazel.de>
955 2020-08-12 [dc7420c2c] snapshot scalability: Don't compute global horizons whil
956 Author: Andres Freund <andres@anarazel.de>
957 2020-08-13 [1f51c17c6] snapshot scalability: Move PGXACT->xmin back to PGPROC.
958 Author: Andres Freund <andres@anarazel.de>
959 2020-08-14 [941697c3c] snapshot scalability: Introduce dense array of in-progre
960 Author: Andres Freund <andres@anarazel.de>
961 2020-08-14 [5788e258b] snapshot scalability: Move PGXACT->vacuumFlags to ProcGl
962 Author: Andres Freund <andres@anarazel.de>
963 2020-08-14 [73487a60f] snapshot scalability: Move subxact info to ProcGlobal, r
964 Author: Andres Freund <andres@anarazel.de>
965 2020-08-17 [623a9ba79] snapshot scalability: cache snapshots using a xact compl
969 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)
973 This also improves performance when there are many idle sessions.
979 Author: David Rowley <drowley@postgresql.org>
980 2021-04-02 [9eacee2e6] Add Result Cache executor node (take 2)
984 Add executor method to cache results from the inner-side of nested loop joins (David Rowley)
988 This is useful if only a small percentage of rows is checked on the inner side.
994 Author: David Rowley <drowley@postgresql.org>
995 2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions
999 Allow <link linkend="functions-window
">window functions</link> to perform incremental sorts (David Rowley)
1005 Author: David Rowley <drowley@postgresql.org>
1006 2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans
1010 Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)
1014 This was done by allocating blocks in groups to <link linkend="guc-max-parallel-workers
">parallel workers</link>.
1020 Author: Etsuro Fujita <efujita@postgresql.org>
1021 2021-03-31 [27e1f1456] Add support for asynchronous execution.
1025 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)
1029 The <link linkend="postgres-fdw
"><application>postgres_fdw</application></link> supports these type of scans if <literal>async_capable</literal> is set.
1035 Author: Stephen Frost <sfrost@snowman.net>
1036 2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE
1040 Allow <link linkend="vacuum-for-statistics
">analyze</link> to do page prefetching (Stephen Frost)
1044 This is controlled by <xref linkend="guc-maintenance-io-concurrency
"/>.
1050 Author: Tom Lane <tgl@sss.pgh.pa.us>
1051 2021-02-20 [08c0d6ad6] Invent "rainbow
" arcs within the regex engine.
1052 Author: Tom Lane <tgl@sss.pgh.pa.us>
1053 2021-02-20 [824bf7190] Recognize "match-all
" NFAs within the regex engine.
1054 Author: Tom Lane <tgl@sss.pgh.pa.us>
1055 2021-02-20 [cebc1d34e] Fix regex engine to suppress useless concatenation sub-R
1056 Author: Tom Lane <tgl@sss.pgh.pa.us>
1057 2021-02-20 [581043089] Convert regex engine's subre tree from binary to N-ary s
1058 Author: Tom Lane <tgl@sss.pgh.pa.us>
1059 2021-02-20 [ea1268f63] Avoid generating extra subre tree nodes for capturing pa
1060 Author: Tom Lane <tgl@sss.pgh.pa.us>
1061 2021-02-21 [190c79884] Simplify memory management for regex DFAs a little.
1062 Author: Tom Lane <tgl@sss.pgh.pa.us>
1063 2021-02-26 [0fc1af174] Improve memory management in regex compiler.
1064 Author: Tom Lane <tgl@sss.pgh.pa.us>
1065 2021-03-02 [0c3405cf1] Improve performance of regular expression back-reference
1066 Author: Tom Lane <tgl@sss.pgh.pa.us>
1067 2021-03-02 [4604f83fd] Suppress unnecessary regex subre nodes in a couple more
1068 Author: Tom Lane <tgl@sss.pgh.pa.us>
1069 2021-03-08 [6c20bdb2a] Further tweak memory management for regex DFAs.
1070 Author: Tom Lane <tgl@sss.pgh.pa.us>
1071 2021-05-03 [f68970e33] Fix performance issue in new regex match-all detection c
1075 Improve the performance of <link linkend="functions-similarto-regexp
">regular expression</link> comparisons (Tom Lane)
1081 Author: Michael Paquier <michael@paquier.xyz>
1082 2020-10-11 [80f8eb79e] Use perfect hash for NFC and NFKC Unicode Normalization
1083 Author: Michael Paquier <michael@paquier.xyz>
1084 2020-10-23 [783f0cc64] Improve performance of Unicode {de,re}composition in the
1088 Dramatically improve Unicode normalization (John Naylor)
1092 This speeds <link linkend="functions-string
"><function>normalize()</function></link> and <literal>IS NORMALIZED</literal>.
1098 Author: Robert Haas <rhaas@postgresql.org>
1099 2021-03-19 [bbe0a81db] Allow configurable LZ4 TOAST compression.
1103 Add ability to use <link linkend="sql-createtable
">LZ4 compression</link> on <acronym>TOAST</acronym> data (Dilip Kumar)
1107 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.
1116 <title>Monitoring</title>
1122 Author: Bruce Momjian <bruce@momjian.us>
1123 2021-04-07 [4f0b0966c] Make use of in-core query id added by commit 5fd9dfa5f5
1124 Author: Bruce Momjian <bruce@momjian.us>
1125 2021-04-07 [f57a2f5e0] Add csvlog output for the new query_id value
1126 Author: Bruce Momjian <bruce@momjian.us>
1127 2021-04-20 [9660834dd] adjust query id feature to use pg_stat_activity.query_id
1128 Author: Bruce Momjian <bruce@momjian.us>
1129 2021-05-03 [f7a97b6ec] Update query_id computation
1130 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1131 2021-05-15 [cafde58b3] Allow compute_query_id to be set to 'auto' and make it d
1135 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>,
1136 <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
"/>
1141 A query id computed by an extension will also be displayed.
1147 Author: Fujii Masao <fujii@postgresql.org>
1148 2020-08-19 [3e98c0baf] Add pg_backend_memory_contexts system view.
1149 Author: Fujii Masao <fujii@postgresql.org>
1150 2020-08-26 [29dd6d8bc] Prevent non-superusers from reading pg_backend_memory_co
1154 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)
1160 Author: Fujii Masao <fujii@postgresql.org>
1161 2021-04-06 [43620e328] Add function to log the memory contexts of specified bac
1165 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)
1171 Author: Stephen Frost <sfrost@snowman.net>
1172 2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze
1176 Improve logging of <link linkend="autovacuum
">auto-vacuum</link> and auto-analyze (Stephen Frost, Jakub Wartak)
1180 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.
1186 Author: Michael Paquier <michael@paquier.xyz>
1187 2021-04-07 [9afffcb83] Add some information about authenticated identity via lo
1191 Add information about the original user name supplied by the client to the output of <xref linkend="guc-log-connections
"/> (Jacob Champion)
1200 <title>System Views</title>
1206 Author: Tomas Vondra <tomas.vondra@postgresql.org>
1207 2021-01-06 [8a4f618e7] Report progress of COPY commands
1208 Author: Michael Paquier <michael@paquier.xyz>
1209 2021-03-09 [9d2d45700] Add support for more progress reporting in COPY
1213 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)
1219 Author: Magnus Hagander <magnus@hagander.net>
1220 2021-01-17 [960869da0] Add pg_stat_database counters for sessions and session t
1224 Add session statistics to the <link linkend="monitoring-pg-stat-database-view
"><structname>pg_stat_database</structname></link> system view (Laurenz Albe)
1230 Author: Fujii Masao <fujii@postgresql.org>
1231 2020-07-20 [d05b172a7] Add generic_plans and custom_plans fields into pg_prepar
1235 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)
1241 Author: Fujii Masao <fujii@postgresql.org>
1242 2021-02-15 [46d6e5f56] Display the time when the process started waiting for th
1246 Add lock wait start time to <link linkend="view-pg-locks
"><structname>pg_locks</structname></link> (Atsushi Torikoshi)
1252 Author: Fujii Masao <fujii@postgresql.org>
1253 2020-10-02 [8d9a93596] Add pg_stat_wal statistics view.
1254 Author: Fujii Masao <fujii@postgresql.org>
1255 2020-12-02 [01469241b] Track total number of WAL records, FPIs and bytes genera
1256 Author: Fujii Masao <fujii@postgresql.org>
1257 2021-03-09 [ff99918c6] Track total amounts of times spent writing and syncing W
1261 Add system view <link linkend="monitoring-pg-stat-wal-view
"><structname>pg_stat_wal</structname></link> which reports <acronym>WAL</acronym> activity (Masahiro Ikeda)
1267 Author: Amit Kapila <akapila@postgresql.org>
1268 2020-10-08 [986816750] Track statistics for spilling of changes from ReorderBuf
1269 Author: Amit Kapila <akapila@postgresql.org>
1270 2020-10-20 [03d51b776] Change the attribute name in pg_stat_replication_slots v
1271 Author: Amit Kapila <akapila@postgresql.org>
1272 2020-10-29 [8e90ec558] Track statistics for streaming of changes from ReorderBu
1273 Author: Amit Kapila <akapila@postgresql.org>
1274 2021-04-16 [f5fc2f5b2] Add information of total data processed to replication s
1278 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)
1282 Function <link linkend="monitoring-stats-functions
"><function>pg_stat_reset_replication_slot()</function></link> resets slot statistics.
1288 Author: Tom Lane <tgl@sss.pgh.pa.us>
1289 2020-09-14 [f560209c6] Make walsenders show their replication commands in pg_st
1293 Improve <link linkend="monitoring-pg-stat-activity-view
"><structname>pg_stat_activity</structname></link> reporting of walsender processes (Tom Lane)
1297 Previously only <acronym>SQL</acronym> commands were reported.
1303 Author: Fujii Masao <fujii@postgresql.org>
1304 2021-03-15 [d75288fb2] Make archiver process an auxiliary process.
1308 Make the archiver process visible in <structname>pg_stat_activity</structname> (Kyotaro Horiguchi)
1314 Author: Fujii Masao <fujii@postgresql.org>
1315 2021-03-24 [84007043f] Rename wait event WalrcvExit to WalReceiverExit.
1319 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)
1325 Author: Peter Eisentraut <peter@eisentraut.org>
1326 2021-02-17 [f40c6969d] Routine usage information schema tables
1330 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)
1339 <title><acronym>Authentication</acronym></title>
1345 Author: Andrew Dunstan <andrew@dunslane.net>
1346 2021-03-29 [6d7a6feac] Allow matching the DN of a client certificate for authen
1350 Allow the certificate's distinguished name (<acronym>DN</acronym>) to be matched for client certificate authentication (Andrew Dunstan)
1354 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.
1360 Author: Tom Lane <tgl@sss.pgh.pa.us>
1361 2020-09-03 [8f8154a50] Allow records to span multiple lines in pg_hba.conf and
1365 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)
1369 A backslash at the end of a line allows record contents to be continued on the next line.
1375 Author: Peter Eisentraut <peter@eisentraut.org>
1376 2021-02-18 [f5465fade] Allow specifying CRL directory
1380 Allow the specification of a certificate revocation list (<acronym>CRL</acronym>) directory (Kyotaro Horiguchi)
1384 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.
1390 Author: Tom Lane <tgl@sss.pgh.pa.us>
1391 2020-09-03 [67a472d71] Remove arbitrary restrictions on password length.
1395 Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
1404 <title>Server Configuration</title>
1410 Author: Tom Lane <tgl@sss.pgh.pa.us>
1411 2021-01-06 [9877374be] Add idle_session_timeout.
1415 Add server setting <xref linkend="guc-idle-session-timeout
"/> to close idle sessions (Li Japin)
1419 This is similar to <xref linkend="guc-idle-in-transaction-session-timeout
"/>.
1425 Author: Stephen Frost <sfrost@snowman.net>
1426 2021-03-24 [bbcc4eb2e] Change checkpoint_completion_target default to 0.9
1430 Change <xref linkend="guc-checkpoint-completion-target
"/> default to 0.9 (Stephen Frost)
1434 The previous default was 0.5.
1440 Author: Michael Paquier <michael@paquier.xyz>
1441 2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader
1445 Allow %P in <xref linkend="guc-log-line-prefix
"/> to report the parallel group leader (Justin Pryzby)
1451 Author: Michael Paquier <michael@paquier.xyz>
1452 2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir
1456 Allow <xref linkend="guc-unix-socket-directories
"/> to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick)
1460 Previously all the paths had to be in a single quoted string.
1466 Author: Thomas Munro <tmunro@postgresql.org>
1467 2020-07-31 [84b1c63ad] Preallocate some DSM space at startup.
1471 Allow startup allocation of dynamic shared memory (Thomas Munro)
1475 This is controlled by <xref linkend="guc-min-dynamic-shared-memory
"/>. This allows more use of huge pages.
1481 Author: Thomas Munro <tmunro@postgresql.org>
1482 2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux.
1486 Add setting <xref linkend="guc-huge-page-size
"/> to control the size of huge pages used on Linux (Odin Ugedal)
1497 <title>Streaming Replication and Recovery</title>
1503 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1504 2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy
1508 Allow standby servers to be rewound via <link linkend="app-pgrewind
"><application>pg_rewind</application></link> (Heikki Linnakangas)
1514 Author: Fujii Masao <fujii@postgresql.org>
1515 2020-12-02 [942305a36] Allow restore_command parameter to be changed with reloa
1519 Allow <xref linkend="guc-restore-command
"/> setting to be changed during a server reload (Sergei Kornilov)
1523 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.
1529 Author: Fujii Masao <fujii@postgresql.org>
1530 2021-01-08 [0650ff230] Add GUC to log long wait times on recovery conflicts.
1531 Author: Fujii Masao <fujii@postgresql.org>
1532 2021-01-13 [39b03690b] Log long wait time on recovery conflict when it's resolv
1536 Add server variable <xref linkend="guc-log-recovery-conflict-waits
"/> to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
1542 Author: Peter Eisentraut <peter@eisentraut.org>
1543 2021-01-18 [15251c0a6] Pause recovery for insufficient parameter settings
1547 Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut)
1551 Previously the standby would shut down immediately.
1557 Author: Robert Haas <rhaas@postgresql.org>
1558 2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect
1562 Add function <link linkend="functions-recovery-control
"><function>pg_get_wal_replay_pause_state()</function></link> to report the recovery state (Dilip Kumar)
1566 It gives more detailed information than <link linkend="functions-recovery-control
"><function>pg_is_wal_replay_paused()</function></link>, which still exists.
1572 Author: Tom Lane <tgl@sss.pgh.pa.us>
1573 2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby
".
1577 Add new server-side variable <xref linkend="guc-in-hot-standby
"/> (Haribabu Kommi, Greg Nancarrow, Tom Lane)
1583 Author: Amit Kapila <akapila@postgresql.org>
1584 2021-01-12 [d6ad34f34] Optimize DropRelFileNodeBuffers() for recovery.
1588 Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)
1594 Author: Thomas Munro <tmunro@postgresql.org>
1595 2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs.
1599 Allow file system sync at the start of crash recovery on Linux (Thomas Munro)
1603 By default, Postgres opens and fsyncs every data file at the start of crash recovery.
1604 This new setting, <xref linkend="guc-recovery-init-sync-method
"/><literal>=syncfs</literal>, instead syncs each filesystem used by the database cluster.
1605 This allows for faster recovery on systems with many database files.
1611 Author: Michael Paquier <michael@paquier.xyz>
1612 2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
1616 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)
1622 Author: Michael Paquier <michael@paquier.xyz>
1623 2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
1627 Add the replication origin to the record returned by <link linkend="functions-info
"><function>pg_last_committed_xact()</function></link> (Movead Li)
1633 Author: Michael Paquier <michael@paquier.xyz>
1634 2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f
1638 Allow replication <link linkend="functions-replication
">origin functions</link> to be controlled using standard function permission controls (Martín Marqués)
1642 Previously these functions could only be executed by super-users, and this is still the default.
1648 Author: Fujii Masao <fujii@postgresql.org>
1649 2020-11-16 [2945a488a] Make the standby server promptly handle interrupt signal
1654 Improve signal handling reliability (Fujii Masao)
1665 <title><link linkend="logical-replication
">Logical Replication</link></title>
1671 Author: Amit Kapila <akapila@postgresql.org>
1672 2020-09-03 [464824323] Add support for streaming to built-in logical replicatio
1673 Author: Amit Kapila <akapila@postgresql.org>
1674 2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar
1675 Author: Amit Kapila <akapila@postgresql.org>
1676 2021-01-04 [a271a1b50] Allow decoding at prepare time in ReorderBuffer.
1677 Author: Amit Kapila <akapila@postgresql.org>
1678 2020-08-08 [7259736a6] Implement streaming mode in ReorderBuffer.
1682 Allow logical replication to stream long in-progress transactions to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin Cherian, Nikhil Sontakke, Stas Kelvich)
1686 Previously transactions that exceeded <xref linkend="guc-logical-decoding-work-mem
"/> were written to disk until the transaction completed.
1692 Author: Amit Kapila <akapila@postgresql.org>
1693 2020-07-28 [45fdc9738] Extend the logical decoding output plugin API with strea
1697 Enhance the logical replication <acronym>API</acronym> to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)
1701 The output functions begin with <link linkend="logicaldecoding-output-plugin-stream-start
"><literal>stream</literal></link>. <application>test_decoding</application> also supports these.
1707 Author: Amit Kapila <akapila@postgresql.org>
1708 2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic
1712 Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
1718 Author: Amit Kapila <akapila@postgresql.org>
1719 2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass
1723 Immediately <acronym>WAL</acronym>-log subtransaction and top-level <type>XID</type> association (Tomas Vondra, Dilip Kumar, Amit Kapila)
1727 This is useful for logical decoding.
1733 Author: Amit Kapila <akapila@postgresql.org>
1734 2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar
1735 Author: Amit Kapila <akapila@postgresql.org>
1736 2021-01-04 [a271a1b50] Allow decoding at prepare time in ReorderBuffer.
1737 Author: Amit Kapila <akapila@postgresql.org>
1738 2021-03-03 [19890a064] Add option to enable two_phase commits via pg_create_log
1742 Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
1746 This is controlled via <link linkend="functions-replication
"><function>pg_create_logical_replication_slot()</function></link>.
1752 Author: Amit Kapila <akapila@postgresql.org>
1753 2020-07-23 [c55040ccd] WAL Log invalidations at command end with wal_level=logi
1757 Generate <acronym>WAL</acronym> invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila)
1761 When logical replication is disabled, <acronym>WAL</acronym> invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions.
1767 Author: Amit Kapila <akapila@postgresql.org>
1768 2020-10-15 [d7eb52d71] Execute invalidation messages for each XLOG_XACT_INVALID
1772 Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar)
1776 This allows <link linkend="logicaldecoding
">logical decoding</link> to work efficiently in presence of a large amount of <acronym>DDL</acronym>.
1782 Author: Amit Kapila <akapila@postgresql.org>
1783 2021-04-06 [ac4645c01] Allow pgoutput to send logical decoding messages.
1787 Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)
1793 Author: Tom Lane <tgl@sss.pgh.pa.us>
1794 2020-07-18 [9de77b545] Allow logical replication to transfer data in binary for
1798 Allow logical replication subscriptions to use binary transfer mode (Dave Cramer)
1802 This is faster than text mode, but slightly less robust.
1808 Author: Amit Kapila <akapila@postgresql.org>
1809 2021-03-30 [f64ea6dc5] Add a xid argument to the filter_prepare callback for ou
1813 Allow logical decoding to be filtered by xid (Markus Wanner)
1823 <title><link linkend="sql-select
"><command>SELECT</command></link>, <link linkend="sql-insert
"><command>INSERT</command></link></title>
1829 Author: Tom Lane <tgl@sss.pgh.pa.us>
1830 2020-09-18 [06a7c3154] Allow most keywords to be used as column labels without
1834 Reduce the number of keywords that can't be used as column labels without <literal>AS</literal> (Mark Dilger)
1838 There are now 90% fewer restricted keywords.
1844 Author: Peter Eisentraut <peter@eisentraut.org>
1845 2021-03-31 [055fee7eb] Allow an alias to be attached to a <literal>JOIN ... USING</literal>
1849 Allow an alias to be specified for <literal>JOIN</literal>'s <literal>USING</literal> clause (Peter Eisentraut)
1853 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.
1859 Author: Tomas Vondra <tomas.vondra@postgresql.org>
1860 2021-03-18 [be45be9c3] Implement GROUP BY DISTINCT
1864 Allow <literal>DISTINCT</literal> to be added to <literal>GROUP BY</literal> to remove duplicate <literal>GROUPING SET</literal> combinations (Vik Fearing)
1868 For example, <literal>GROUP BY CUBE (a,b), CUBE (b,c)</literal> will generate duplicate grouping combinations without <literal>DISTINCT</literal>.
1874 Author: Tom Lane <tgl@sss.pgh.pa.us>
1875 2020-11-22 [17958972f] Allow a multi-row <command>INSERT</command> to specify DEFAULTs for a gener
1879 Properly handle <literal>DEFAULT</literal> values for columns in multi-column inserts (Dean Rasheed)
1883 This used to throw an error.
1889 Author: Peter Eisentraut <peter@eisentraut.org>
1890 2021-02-01 [3696a600e] SEARCH and CYCLE clauses
1891 Author: Peter Eisentraut <peter@eisentraut.org>
1892 2021-02-27 [f4adc41c4] Enhanced cycle mark values
1896 Add <acronym>SQL</acronym>-standard <literal>SEARCH</literal> and <literal>CYCLE</literal> clauses for <link linkend="queries-with
">common table expressions</link> (Peter Eisentraut)
1900 This could be accomplished previously using existing syntax.
1906 Author: Tom Lane <tgl@sss.pgh.pa.us>
1907 2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ...
1911 Allow the <literal>WHERE</literal> clause of <literal>ON CONFLICT</literal> to be table-qualified (Tom Lane)
1915 Only the target table can be referenced.
1924 <title>Utility Commands</title>
1930 Author: Thomas Munro <tmunro@postgresql.org>
1931 2021-03-17 [9e7ccd9ef] Enable parallelism in REFRESH MATERIALIZED VIEW.
1935 Allow <link linkend="sql-refreshmaterializedview
"><command>REFRESH MATERIALIZED VIEW</command></link> to use parallelism (Bharath Rupireddy)
1941 Author: Michael Paquier <michael@paquier.xyz>
1942 2021-02-04 [c5b286047] Add TABLESPACE option to REINDEX
1946 Allow <link linkend="sql-reindex
"><command>REINDEX</command></link> to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby)
1950 This is done by specifying a <literal>TABLESPACE</literal> clause.
1956 Author: Michael Paquier <michael@paquier.xyz>
1957 2020-09-08 [a6642b3ae] Add support for partitioned tables and indexes in REINDE
1961 Allow <command>REINDEX</command> to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
1967 Author: Tom Lane <tgl@sss.pgh.pa.us>
1968 2020-07-25 [0a0727ccf] Improve performance of binary COPY FROM through better b
1972 Improve the performance of <link linkend="sql-copy
"><command>COPY FROM</command></link> in binary mode (Bharath Rupireddy, Amit Langote)
1978 Author: Tom Lane <tgl@sss.pgh.pa.us>
1979 2020-11-04 [40c24bfef] Improve our ability to regurgitate SQL-syntax function c
1983 Preserve <acronym>SQL</acronym> standard syntax in <link linkend="sql-createview
">view definitions</link>, if possible (Tom Lane)
1987 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.
1993 Author: Peter Eisentraut <peter@eisentraut.org>
1994 2021-01-30 [6aaaa76bb] Allow GRANTED BY clause in normal GRANT and REVOKE state
1998 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)
2004 Author: Tom Lane <tgl@sss.pgh.pa.us>
2005 2020-11-14 [92bf7e2d0] Provide the OR REPLACE option for CREATE TRIGGER.
2009 Add <literal>OR REPLACE</literal> for <link linkend="sql-createtrigger
"><command>CREATE TRIGGER</command></link> (Takamichi Osumi)
2013 This allows pre-existing triggers to be conditionally replaced.
2019 Author: Fujii Masao <fujii@postgresql.org>
2020 2021-04-08 [8ff1c9464] Allow TRUNCATE command to truncate foreign tables.
2024 Allow <link linkend="sql-truncate
"><command>TRUNCATE</command></link> to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
2028 The <link linkend="postgres-fdw
"><application>postgres_fdw</application></link> module also now supports this.
2034 Author: Peter Eisentraut <peter@eisentraut.org>
2035 2021-04-06 [82ed7748b] ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION
2039 Allow publications to be more easily added and removed (Japin Li)
2043 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.
2049 Author: Peter Eisentraut <peter@eisentraut.org>
2050 2021-01-30 [dfb75e478] Add primary keys and unique constraints to system catalo
2051 Author: Tom Lane <tgl@sss.pgh.pa.us>
2052 2021-02-02 [62f34097c] Build in some knowledge about foreign-key relationships
2056 Add primary keys, unique constraints, and foreign keys to <link linkend="catalogs
">system catalogs</link> (Peter Eisentraut)
2060 This helps <acronym>GUI</acronym> tools analyze the system tables.
2066 Author: Peter Eisentraut <peter@eisentraut.org>
2067 2020-09-17 [45b980570] Allow CURRENT_ROLE where CURRENT_USER is accepted
2071 Allow <link linkend="functions-info
"><literal>CURRENT_ROLE</literal></link> every place <literal>CURRENT_USER</literal> is accepted (Peter Eisentraut)
2080 <title>Data Types</title>
2086 Author: Tom Lane <tgl@sss.pgh.pa.us>
2087 2020-12-09 [c7aba7c14] Support subscripting of arbitrary types, not only arrays
2091 Allow extensions and built-in data types to implement <link linkend="sql-altertype
">subscripting</link> (Dmitry Dolgov)
2095 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
2096 assign portions of a value of any type for which the concept makes sense.
2102 Author: Alexander Korotkov <akorotkov@postgresql.org>
2103 2021-01-31 [676887a3b] Implementation of subscripting for jsonb
2104 Author: Alexander Korotkov <akorotkov@postgresql.org>
2105 2021-01-31 [81fcc72e6] Filling array gaps during jsonb subscripting
2106 Author: Alexander Korotkov <akorotkov@postgresql.org>
2107 2021-01-31 [aa6e46daf] Throw error when assigning jsonb scalar instead of a com
2111 Allow subscripting of <link linkend="datatype-json
"><type>JSONB</type></link> (Dmitry Dolgov)
2115 <type>JSONB</type> subscripting can be used to extract and assign to portions of <type>JSONB</type> documents.
2121 Author: Author: Alexander Korotkov <akorotkov@postgresql.org>
2122 2020-12-20 [6df7a9698] Multirange datatypes
2123 Author: Alexander Korotkov <akorotkov@postgresql.org>
2124 2020-12-29 [db6335b5b] Add support of multirange matching to the existing range
2125 Author: Alexander Korotkov <akorotkov@postgresql.org>
2126 2020-12-30 [62097a4cc] Fix selectivity estimation @> (anymultirange, anyrange)
2130 Add support for <link linkend="rangetypes
">multirange data types</link> (Paul Jungwirth, Alexander Korotkov)
2134 These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges.
2135 All existing range types now also support multirange versions.
2141 Author: Tom Lane <tgl@sss.pgh.pa.us>
2142 2020-11-23 [0cc993278] Rename the "point is strictly above/below point
" compari
2146 Add <link linkend="functions-geometry
">point operators</link> <<| and |>> to be strictly above/below geometry (Emre Hasegeli)
2150 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?
2156 Author: Peter Eisentraut <peter@eisentraut.org>
2157 2020-06-08 [cbcc8726b] Update snowball
2158 Author: Peter Eisentraut <peter@eisentraut.org>
2159 2020-06-08 [c2e71cb35] Update documentation for snowball update
2160 Author: Peter Eisentraut <peter@eisentraut.org>
2161 2021-02-19 [678d0e239] Update snowball
2165 Add support for the <link linkend="textsearch-snowball-dictionary
">stemming</link> of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
2171 Author: Tom Lane <tgl@sss.pgh.pa.us>
2172 2020-09-23 [83b61319a] Improve behavior of tsearch_readline(), and remove t_rea
2176 Allow <link linkend="textsearch-intro-configurations
">tsearch data files</link> to have unlimited line lengths (Tom Lane)
2180 The previous limit was 4k bytes. Also remove function <function>t_readline()</function>.
2186 Author: Tom Lane <tgl@sss.pgh.pa.us>
2187 2020-07-22 [a57d312a7] Support infinity and -infinity in the numeric data type.
2191 Add support for infinity and <literal>-infinity</literal> values to the <link linkend="datatype-numeric
">numeric data type</link> (Tom Lane)
2195 Floating point data types already supported these.
2201 Author: Tom Lane <tgl@sss.pgh.pa.us>
2202 2020-11-21 [8597a48d0] Fix FPeq() and friends to get the right answers for infi
2206 Improve the accuracy of floating point computations involving infinity (Tom Lane)
2212 Author: Tom Lane <tgl@sss.pgh.pa.us>
2213 2020-11-04 [fac83dbd6] Remove underflow error in float division with infinite d
2217 Have non-zero <link linkend="datatype-float
">float values</link> divided by infinity return zero (Kyotaro Horiguchi)
2221 Previously such operations produced underflow errors.
2227 Author: Tom Lane <tgl@sss.pgh.pa.us>
2228 2020-07-20 [4fb6aeb4f] Make floating-point "NaN /
0" return NaN instead of rais
2232 Cause floating-point division of NaN by zero to return NaN (Tom Lane)
2236 Previously this returned an error. Division with Numerics always returned NaN.
2242 Author: Fujii Masao <fujii@postgresql.org>
2243 2020-06-30 [9bae7e4cd] Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators.
2247 Add operators to add and subtract <link linkend="datatype-pg-lsn
"><type>LSN</type></link> and numeric (byte) values (Fujii Masao)
2253 Author: Tom Lane <tgl@sss.pgh.pa.us>
2254 2020-07-21 [670c0a1d4] Weaken type-OID-matching checks in array_recv and record
2258 Allow <link linkend="protocol-format-codes
">binary data transfer</link> to be more forgiving of array and record <type>OID</type> mismatches (Tom Lane)
2264 Author: Tom Lane <tgl@sss.pgh.pa.us>
2265 2020-07-06 [f7f70d5e2] Create composite array types for initdb-created relation
2269 Create composite array types for most system relations (Wenjing Zeng)
2278 <title>Functions</title>
2284 Author: Peter Eisentraut <peter@eisentraut.org>
2285 2021-04-07 [e717a9a18] SQL-standard function body
2289 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)
2293 Previously only single-quoted or $$-quoted function bodies were supported.
2299 Author: Peter Eisentraut <peter@eisentraut.org>
2300 2020-10-05 [2453ea142] Support for OUT parameters in procedures
2301 Author: Peter Eisentraut <peter@eisentraut.org>
2302 2020-10-27 [9213462c5] Make procedure OUT parameters work with JDBC
2306 Allow <link linkend="sql-createprocedure
">procedures</link> to have <literal>OUT</literal> parameters (Peter Eisentraut)
2312 Author: Tom Lane <tgl@sss.pgh.pa.us>
2313 2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not
2317 Allow some array functions to operate on a mix of compatible data types (Tom Lane)
2321 The functions are <link linkend="functions-array
"><function>array_append()</function></link>, <function>array_prepend()</function>, <function>array_cat()</function>, <function>array_position()</function>,
2322 <function>array_positions()</function>, <function>array_remove()</function>, <function>array_replace()</function>, and
2323 <link linkend="functions-math
"><function>width_bucket()</function></link>. Previously only identical data types could be used.
2329 Author: Tom Lane <tgl@sss.pgh.pa.us>
2330 2021-03-03 [0a687c8f1] Add trim_array() function.
2334 Add <acronym>SQL</acronym>-standard <link linkend="functions-array
"><function>trim_array()</function></link> function (Vik Fearing)
2338 This can already be done with array slices.
2344 Author: Tom Lane <tgl@sss.pgh.pa.us>
2345 2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim().
2349 Add bytea equivalents of <link linkend="functions-binarystring
"><function>ltrim()</function></link> and <function>rtrim()</function> (Joel Jacobson)
2355 Author: Tom Lane <tgl@sss.pgh.pa.us>
2356 2020-11-13 [ec0294fb2] Support negative indexes in split_part().
2360 Support negative indexes in <link linkend="functions-string
"><function>split_part()</function></link> (Nikhil Benesch)
2364 Negative values start from the last field and count backward.
2370 Author: Tom Lane <tgl@sss.pgh.pa.us>
2371 2020-09-02 [66f163068] Add string_to_table() function.
2375 Add <link linkend="functions-string
"><function>string_to_table()</function></link> function to split a string on delimiters (Pavel Stehule)
2379 This is similar to the <link linkend="functions-string
"><function>regexp_split_to_table()</function></link> function.
2385 Author: Peter Eisentraut <peter@eisentraut.org>
2386 2021-03-29 [f37fec837] Add unistr function
2390 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)
2394 This is similar to how Unicode can be specified in literal string.
2400 Author: Peter Eisentraut <peter@eisentraut.org>
2401 2021-03-06 [f9a0392e1] Add bit_xor aggregate function
2405 Add <link linkend="functions-aggregate
"><function>bit_xor()</function></link> XOR aggregate function (Alexey Bashtanov)
2411 Author: Peter Eisentraut <peter@eisentraut.org>
2412 2021-03-23 [a6715af1e] Add bit_count SQL function
2416 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)
2422 Author: Peter Eisentraut <peter@eisentraut.org>
2423 2021-03-24 [49ab61f0b] Add date_bin function
2424 Author: Peter Eisentraut <peter@eisentraut.org>
2425 2021-04-10 [496e58bb0] Improve behavior of date_bin with origin in the future
2429 Add <link linkend="functions-datetime-bin
"><function>date_bin()</function></link> function (John Naylor)
2433 The function <function>date_bin()</function> "bins
" the input timestamp into a specified interval aligned with a specified origin.
2439 Author: Tom Lane <tgl@sss.pgh.pa.us>
2440 2020-09-29 [a094c8ff5] Fix make_timestamp[tz] to accept negative years as meani
2444 Allow <link linkend="functions-datetime
"><function>make_timestamp()</function></link>/<function>make_timestamptz()</function> to accept negative years (Peter Eisentraut)
2448 They are interpreted as <literal>BC</literal> years.
2454 Author: Peter Eisentraut <peter@eisentraut.org>
2455 2020-06-29 [78c887679] Add current substring regular expression syntax
2459 Add newer regular expression <link linkend="functions-string
"><function>substring()</function></link> syntax (Peter Eisentraut)
2463 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.
2469 Author: Tom Lane <tgl@sss.pgh.pa.us>
2470 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
2474 Allow complemented character class escapes <link linkend="posix-escape-sequences
">\D</link>, <literal>\S</literal>, and <literal>\W</literal> within regex brackets (Tom Lane)
2480 Author: Tom Lane <tgl@sss.pgh.pa.us>
2481 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
2485 Add <link linkend="posix-escape-sequences
"><literal>[[:word:]]</literal></link> as a character class to match \w (Tom Lane)
2491 Author: Tom Lane <tgl@sss.pgh.pa.us>
2492 2020-11-04 [5c292e6b9] Declare lead() and lag() using anycompatible not anyelem
2496 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)
2502 Author: Tom Lane <tgl@sss.pgh.pa.us>
2503 2020-06-14 [decbe2bfb] Fix behavior of exp() and power() for infinity inputs.
2504 Author: Tom Lane <tgl@sss.pgh.pa.us>
2505 2020-06-15 [e532b1d57] Fix power() for infinity inputs some more.
2506 Author: Tom Lane <tgl@sss.pgh.pa.us>
2507 2020-06-15 [5674eb987] Fix power() for large inputs yet more.
2511 Cause <link linkend="functions-math
"><function>exp()</function></link> and <function>power()</function> for negative-infinity exponents to return zero (Tom Lane)
2515 Previously they often returned underflow errors.
2521 Author: Tom Lane <tgl@sss.pgh.pa.us>
2522 2020-07-25 [8a37951ee] Mark built-in coercion functions as leakproof where poss
2526 Mark built-in type coercion functions as leakproof where possible (Tom Lane)
2530 This allows more use of functions that require type conversion in security-sensitive situations.
2536 Author: Tom Lane <tgl@sss.pgh.pa.us>
2537 2021-03-08 [fed10d4ee] Properly mark pg_stat_get_subscription() as returning a
2541 Mark <function>pg_stat_get_subscription()</function> as returning a set (Tom Lane)
2545 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.
2551 Author: Tom Lane <tgl@sss.pgh.pa.us>
2552 2021-01-13 [5a6f9bce8] Mark inet_server_addr() and inet_server_port() as parall
2556 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)
2562 Author: Michael Paquier <michael@paquier.xyz>
2563 2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec
2567 Change <link linkend="functions-info
"><function>pg_describe_object()</function></link>, <function>pg_identify_object()</function>, and
2568 <function>pg_identify_object_as_address()</function> to always report helpful error messages for non-existent objects (Michael Paquier)
2577 <title><link linkend="plpgsql
">PL/pgSQL</link></title>
2583 Author: Tom Lane <tgl@sss.pgh.pa.us>
2584 2021-01-04 [c9d529848] Re-implement pl/pgsql's expression and assignment parsin
2588 Improve PL/pgSQL's <link linkend="plpgsql-expressions
">expression</link> and <link linkend="plpgsql-statements-assignment
">assignment</link> parsing (Tom Lane)
2592 This adds nested record and array slicing support.
2598 Author: Tom Lane <tgl@sss.pgh.pa.us>
2599 2020-06-12 [2f48ede08] Avoid using a cursor in plpgsql's RETURN QUERY statement
2603 Allow plpgsql's <link linkend="plpgsql-control-structures
"><literal>RETURN QUERY</literal></link> to execute its query using parallelism (Tom Lane)
2609 Author: Tom Lane <tgl@sss.pgh.pa.us>
2610 2021-01-25 [ee895a655] Improve performance of repeated CALLs within plpgsql pro
2614 Improve performance of repeated <link linkend="plpgsql-transactions
">CALL</link>s within plpgsql procedures (Pavel Stehule, Tom Lane)
2623 <title>Client Interfaces</title>
2629 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2630 2021-03-15 [acb7e4eb6] Implement pipeline mode in libpq
2634 Add <link linkend="libpq-pipeline-sending
">pipeline</link> mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera)
2638 This allows multiple queries to be sent and only wait for completion when a specific synchronization message is sent.
2644 Author: Tom Lane <tgl@sss.pgh.pa.us>
2645 2021-03-02 [d16f8c8e4] Mark default_transaction_read_only as GUC_REPORT.
2646 Author: Tom Lane <tgl@sss.pgh.pa.us>
2647 2021-03-02 [ee28cacf6] Extend the abilities of libpq's target_session_attrs par
2651 Enhance libpq's <link linkend="libpq-paramkeywords
"><option>target_session_attrs</option></link> parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
2655 New options are <literal>read-only</literal>, <literal>primary</literal>, <literal>standby</literal>, and <literal>prefer-standby</literal>.
2661 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2662 2021-03-30 [198b3716d] Improve PQtrace() output format
2666 Improve the output format of libpq's <link linkend="libpq-control
"><function>PQtrace()</function></link> (Aya Iwata, Álvaro Herrera)
2672 Author: Tom Lane <tgl@sss.pgh.pa.us>
2673 2020-09-22 [c0cb87fbb] Remove arbitrary line length limit for libpq service fil
2677 Allow the libpq <link linkend="libpq-pgservice
">service file</link> to have unlimited line lengths (Daniel Gustafsson)
2681 The previous limit was 255 bytes.
2687 Author: Michael Meskes <meskes@postgresql.org>
2688 2021-03-24 [ad8305a43] Add DECLARE STATEMENT command to ECPG
2692 Allow an <literal>ECPG SQL</literal> identifier to be linked to a specific connection (Hayato Kuroda)
2696 This is done via <link linkend="ecpg-sql-declare-statement
"><literal>DECLARE ... STATEMENT</literal></link>.
2705 <title>Client Applications</title>
2711 Author: Michael Paquier <michael@paquier.xyz>
2712 2021-03-03 [57e6db706] Add - -tablespace option to reindexdb
2716 Allow <link linkend="app-reindexdb
"><application>reindexdb</application></link> to change the tablespace of the new index (Michael Paquier)
2720 This is done by specifying <option>--tablespace</option>.
2726 Author: Michael Paquier <michael@paquier.xyz>
2727 2020-06-22 [9550ea302] Add - -no-index-cleanup and - -no-truncate to vacuumdb.
2731 Allow <link linkend="app-vacuumdb
"><application>vacuumdb</application></link> to skip index cleanup and truncation (Nathan Bossart)
2735 The options are <option>--no-index-cleanup</option> and <option>--no-truncate</option>.
2741 Author: Michael Paquier <michael@paquier.xyz>
2742 2021-03-31 [6568cef26] Add support for - -extension in pg_dump
2746 Allow <link linkend="app-pgdump
"><application>pg_dump</application></link> to dump only certain extensions (Guillaume Lelarge)
2750 This is controlled by option <option>--extension</option>.
2756 Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2757 2021-04-06 [6b258e3d6] pgbench: Function to generate random permutations.
2761 Add <link linkend="pgbench
"><application>pgbench</application></link> <function>permute()</function> function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
2767 Author: Tom Lane <tgl@sss.pgh.pa.us>
2768 2020-09-17 [99175141c] Improve common/logging.c's support for multiple verbosit
2772 Allow multiple verbose option specifications (<option>-v</option>) to increase the logging verbosity (Tom Lane)
2776 This is now supported by <link linkend="app-pgdump
"><application>pg_dump</application></link>, <link linkend="app-pg-dumpall
"><application>pg_dumpall</application></link>,
2777 and <link linkend="app-pgrestore
"><application>pg_restore</application></link>.
2784 <title><xref linkend="app-psql
"/></title>
2790 Author: Tom Lane <tgl@sss.pgh.pa.us>
2791 2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty
2795 Allow <application>psql</application>'s \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane)
2799 This helps reduce the number of matches for overloaded entries.
2805 Author: Michael Paquier <michael@paquier.xyz>
2806 2020-09-02 [07f386ede] Add access method names to \d[i|m|t]+ in psql
2810 Add an access method column to <application>psql</application>'s \d[i|m|t]+ output (Georgios Kokolatos)
2816 Author: Tom Lane <tgl@sss.pgh.pa.us>
2817 2021-01-05 [7d80441d2] Allow psql's \dt and \di to show TOAST tables and their
2821 Allow <application>psql</application>'s \dt and \di to show <acronym>TOAST</acronym> tables and their indexes (Justin Pryzby)
2827 Author: Tomas Vondra <tomas.vondra@postgresql.org>
2828 2021-01-20 [ad600bba0] psql \dX: list extended statistics objects
2832 Add <application>psql</application> command \dX to list extended statistics objects (Tatsuro Yamada)
2838 Author: Tom Lane <tgl@sss.pgh.pa.us>
2839 2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty
2843 Fix <application>psql</application>'s \dT to understand array syntax and backend grammar aliases, like "int
" for "integer
" (Greg Sabino Mullane, Tom Lane)
2849 Author: Tom Lane <tgl@sss.pgh.pa.us>
2850 2021-04-03 [55873a00e] Improve psql's behavior when the editor is exited withou
2854 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)
2858 Previously, such edits would still execute the editor contents.
2864 Author: Tom Lane <tgl@sss.pgh.pa.us>
2865 2020-10-22 [94929f1cf] Clean up some unpleasant behaviors in psql's \connect co
2869 Improve <application>psql</application>'s handling of \connect with <option>-reuse-previous</option> (Tom Lane)
2873 Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed.
2879 Author: Michael Paquier <michael@paquier.xyz>
2880 2020-07-21 [c273d9d8c] Rework tab completion of COPY and \copy in psql
2881 Author: Michael Paquier <michael@paquier.xyz>
2882 2020-07-30 [f1af75c5f] Include partitioned tables for tab completion of VACUUM
2883 Author: Michael Paquier <michael@paquier.xyz>
2884 2020-08-11 [1f75b4541] Improve tab completion of REINDEX in psql
2885 Author: Michael Paquier <michael@paquier.xyz>
2886 2020-09-17 [7307df16a] Improve tab completion of IMPORT FOREIGN SCHEMA in psql
2887 Author: Fujii Masao <fujii@postgresql.org>
2888 2020-09-28 [0baf82fa0] Improve tab-completion for DEALLOCATE.
2889 Author: Michael Paquier <michael@paquier.xyz>
2890 2020-10-24 [0b46e82c0] Add tab completion for ALTER TABLE .. FORCE ROW LEVEL SE
2891 Author: Michael Paquier <michael@paquier.xyz>
2892 2020-11-18 [bf0aa7c4b] Add tab completion for CREATE [OR REPLACE] TRIGGER in ps
2893 Author: Fujii Masao <fujii@postgresql.org>
2894 2021-01-14 [3f238b882] Improve tab-completion for CLOSE, DECLARE, FETCH and MOV
2895 Author: Thomas Munro <tmunro@postgresql.org>
2896 2021-02-05 [e1c02d92a] Tab-complete CREATE DATABASE ... LOCALE.
2897 Author: Michael Paquier <michael@paquier.xyz>
2898 2021-02-17 [e6b8e83b9] Add psql completion for [ NO ] DEPENDS ON EXTENSION
2899 Author: Thomas Munro <tmunro@postgresql.org>
2900 2021-02-23 [5bc09a747] Tab-complete CREATE COLLATION.
2901 Author: Fujii Masao <fujii@postgresql.org>
2902 2021-02-25 [6b40d9bdb] Improve tab-completion for TRUNCATE.
2903 Author: Michael Paquier <michael@paquier.xyz>
2904 2021-03-19 [5b2266e33] Improve tab completion of IMPORT FOREIGN SCHEMA with \h
2905 Author: Tom Lane <tgl@sss.pgh.pa.us>
2906 2021-04-08 [d1fcbde57] Add support for tab-completion of type arguments in \df,
2907 Author: Fujii Masao <fujii@postgresql.org>
2908 2021-04-12 [81e094bdf] Support tab-complete for TRUNCATE on foreign tables.
2909 Author: Michael Paquier <michael@paquier.xyz>
2910 2021-04-21 [22b2dec31] Add CURRENT_ROLE to list of roles for tab completion of
2911 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2912 2021-04-26 [6dd1042ed] psql: tab-complete ALTER ... DETACH CONCURRENTLY / FINAL
2913 Author: Michael Paquier <michael@paquier.xyz>
2914 2021-05-13 [1906cc07d] Make saner the tab completion of INSERT and DELETE in ps
2918 Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
2929 <title>Server Applications</title>
2935 Author: Robert Haas <rhaas@postgresql.org>
2936 2021-03-12 [970609283] Add pg_amcheck, a CLI for contrib/amcheck.
2940 Add command-line utility <link linkend="app-pgamcheck
"><application>pg_amcheck</application></link> to simplify running contrib/amcheck operations on many relations (Mark Dilger)
2946 Author: Magnus Hagander <magnus@hagander.net>
2947 2021-01-17 [e09155bd6] Add - -no-instructions parameter to initdb
2951 Add <option>--no-instructions</option> option to <link linkend="app-initdb
"><application>initdb</application></link> (Magnus Hagander)
2955 This removes the server start instructions that are normally output.
2961 Author: Magnus Hagander <magnus@hagander.net>
2962 2020-11-09 [8f113698b] Remove analyze_new_cluster script from pg_upgrade
2966 Stop <link linkend="pgupgrade
"><application>pg_upgrade</application></link> from creating <filename>analyze_new_cluster</filename> script (Michael Paquier)
2970 Instead, give comparable <link linkend="app-vacuumdb
"><application>vacuumdb</application></link> instructions.
2976 Author: Magnus Hagander <magnus@hagander.net>
2977 2020-11-10 [d2e4bf688] Remove -o option to postmaster
2981 Remove support for the <link linkend="app-postgres
"><application>postmaster</application></link> <option>-o</option> option (Magnus Hagander)
2985 This option was unnecessary since all passed options could already be specified directly.
2994 <title>Documentation</title>
3000 Author: Stephen Frost <sfrost@snowman.net>
3001 2021-04-01 [c9c41c7a3] Rename Default Roles to Predefined Roles
3005 Rename "Default Roles
" to <link linkend="predefined-roles
">"Predefined Roles
"</link> (Bruce Momjian, Stephen Frost)
3011 Author: Peter Eisentraut <peter@eisentraut.org>
3012 2020-06-16 [4c5cf5431] doc: Document factorial function
3016 Add documentation for the <link linkend="function-factorial
"><function>factorial()</function></link> function (Peter Eisentraut)
3020 With the removal of the ! operator in this release, <function>factorial()</function> is the only built-in way to compute a factorial.
3029 <title>Source Code</title>
3035 Author: Michael Paquier <michael@paquier.xyz>
3036 2021-02-01 [fe61df7f8] Introduce - -with-ssl={openssl} as a configure option
3040 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)
3044 The option <option>--with-openssl</option> is kept for compatibility.
3050 Author: Peter Eisentraut <peter@eisentraut.org>
3051 2020-11-25 [c9f0624bc] Add support for abstract Unix-domain sockets
3055 Add support for <link linkend="guc-unix-socket-directories
">abstract Unix-domain sockets</link> (Peter Eisentraut)
3059 This is currently supported on <productname>Linux</productname> and <productname>Windows</productname>.
3065 Author: Peter Eisentraut <peter@eisentraut.org>
3066 2021-01-06 [4656e3d66] Replace CLOBBER_CACHE_ALWAYS with run-time GUC
3070 Add <xref linkend="guc-debug-invalidate-system-caches-always
"/> to control cache overwriting (Craig Ringer)
3074 Previously this could only be controlled at compile time and is enabled only in assert builds.
3080 Author: Peter Geoghegan <pg@bowt.ie>
3081 2020-07-17 [1e0dfd166] Add Valgrind buffer access instrumentation.
3082 Author: Peter Geoghegan <pg@bowt.ie>
3083 2020-07-19 [46ef520b9] Mark buffers as defined to Valgrind consistently.
3084 Author: Peter Geoghegan <pg@bowt.ie>
3085 2020-07-19 [a766d6ca2] Avoid harmless Valgrind no-buffer-pin errors.
3089 Various improvements in <productname>valgrind</productname> detection (Álvaro Herrera, Peter Geoghegan)
3095 Author: Tom Lane <tgl@sss.pgh.pa.us>
3096 2021-01-06 [ca8217c10] Add a test module for the regular expression package.
3100 Add a test module for the regular expression package (Tom Lane)
3106 Author: Andres Freund <andres@anarazel.de>
3107 2020-11-09 [6c57f2ed1] jit: Add support for LLVM 12.
3111 Add support for <productname>LLVM</productname> version 12 (Andres Freund)
3117 Author: Michael Paquier <michael@paquier.xyz>
3118 2020-12-04 [4f48a6fbe] Change SHA2 implementation based on OpenSSL to use EVP d
3119 Author: Michael Paquier <michael@paquier.xyz>
3120 2020-12-10 [b67b57a96] Refactor MD5 implementations according to new cryptohash
3121 Author: Michael Paquier <michael@paquier.xyz>
3122 2021-01-23 [a8ed6bb8f] Introduce SHA1 implementations in the cryptohash infrast
3123 Author: Michael Paquier <michael@paquier.xyz>
3124 2021-04-03 [e6bdfd970] Refactor HMAC implementations
3128 Change SHA1, SHA2, and MD5 hash computations to use the <productname>OpenSSL</productname> <acronym>EVP API</acronym> (Michael Paquier)
3132 This is more modern and supports <acronym>FIPS</acronym> mode.
3138 Author: Magnus Hagander <magnus@hagander.net>
3139 2020-11-20 [16f96c74d] Remove ability to independently select random number gen
3143 Remove build control over the random library used (Daniel Gustafsson)
3149 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3150 2021-01-28 [6c5576075] Add direct conversion routines between EUC_TW and Big5.
3154 Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas)
3160 Author: Thomas Munro <tmunro@postgresql.org>
3161 2020-11-20 [ca051d8b1] Add collation versions for FreeBSD.
3165 Add collation versions for <productname>FreeBSD</productname> (Thomas Munro)
3171 Author: Tom Lane <tgl@sss.pgh.pa.us>
3172 2020-08-01 [9f9682783] Invent "amadjustmembers
" AM method for validating opclas
3176 Add <link linkend="index-api
"><structfield>amadjustmembers</structfield></link> to the index access method <acronym>API</acronym> (Tom Lane)
3189 <title>Additional Modules</title>
3195 Author: Tom Lane <tgl@sss.pgh.pa.us>
3196 2020-12-11 [0ec5f7e78] Allow subscripting of hstore values.
3200 Allow subscripting of <link linkend="hstore
"><application>hstore</application></link> values (Tom Lane, Dmitry Dolgov)
3206 Author: Alexander Korotkov <akorotkov@postgresql.org>
3207 2020-11-15 [935f66665] Handle equality operator in contrib/pg_trgm
3211 Allow GiST/GIN <link linkend="pgtrgm
"><application>pg_trgm</application></link> indexes to do equality lookups (Julien Rouhaud)
3215 This is similar to <literal>LIKE</literal> except no wildcards are honored.
3221 Author: Tom Lane <tgl@sss.pgh.pa.us>
3222 2021-03-06 [1265a9c8f] Add binary I/O capability for cube datatype.
3226 Allow the <link linkend="cube
"><application>cube</application></link> data type to be transferred in binary mode (KaiGai Kohei)
3232 Author: Peter Eisentraut <peter@eisentraut.org>
3233 2020-06-30 [ee0202d55] pgstattuple: Have pgstattuple_approx accept TOAST tables
3237 Allow <function>pgstattuple_approx()</function> to report on <acronym>TOAST</acronym> tables (Peter Eisentraut)
3243 Author: Robert Haas <rhaas@postgresql.org>
3244 2020-09-10 [34a947ca1] New contrib module, pg_surgery, with heap surgery functi
3248 Add contrib module <link linkend="pgsurgery
"><application>pg_surgery</application></link> which allows changes to row visibility (Ashutosh Sharma)
3252 This is useful for correcting database corruption.
3258 Author: Robert Haas <rhaas@postgresql.org>
3259 2020-09-24 [aecf5ee2b] Add new 'old_snapshot' contrib module.
3263 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)
3269 Author: Robert Haas <rhaas@postgresql.org>
3270 2020-10-22 [866e24d47] Extend amcheck to check heap pages.
3274 Allow <link linkend="amcheck
"><application>amcheck</application></link> to also check heap pages (Mark Dilger)
3278 Previously it only checked B-Tree index pages.
3284 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3285 2021-01-13 [756ab2912] Add functions to 'pageinspect' to inspect GiST indexes.
3286 Author: Peter Geoghegan <pg@bowt.ie>
3287 2021-02-14 [9e596b65f] Add "LP_DEAD item?
" column to GiST pageinspect functions
3291 Allow <link linkend="pageinspect
"><application>pageinspect</application></link> to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
3297 Author: Peter Eisentraut <peter@eisentraut.org>
3298 2021-01-19 [f18aa1b20] pageinspect: Change block number arguments to bigint
3302 Change <application>pageinspect</application> block numbers to be <link linkend="datatype-int
"><type>bigints</type></link> (Peter Eisentraut)
3308 Author: Alexander Korotkov <akorotkov@postgresql.org>
3309 2020-07-20 [d98c08cdc] Update btree_gist extension for parallel query
3313 Mark <link linkend="btree-gist
"><application>btree_gist</application></link> functions as parallel safe (Steven Winfield)
3320 <title><link linkend="pgstatstatements
">pg_stat_statements</link></title>
3326 Author: Bruce Momjian <bruce@momjian.us>
3327 2021-04-07 [5fd9dfa5f] Move pg_stat_statements query jumbling to core.
3331 Move query hash computation from <application>pg_stat_statements</application> to the core server (Julien Rouhaud)
3335 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.
3341 Author: Magnus Hagander <magnus@hagander.net>
3342 2021-04-08 [6b4d23fee] Track identical top vs nested queries independently in p
3346 Allow <application>pg_stat_statements</application> to track top and nested statements independently (Julien Rohaud)
3350 Previously, when tracking all statements, identical top and nested statements were tracked together.
3356 Author: Fujii Masao <fujii@postgresql.org>
3357 2020-07-29 [6023b7ea7] pg_stat_statements: track number of rows processed by so
3358 Author: Fujii Masao <fujii@postgresql.org>
3359 2020-11-12 [b62e6056a] pg_stat_statements: track number of rows processed by RE
3363 Add row counts for utility commands to <structname>pg_stat_statements</structname>> (Fujii Masao, Katsuragi Yuta, Seino Yuki)
3369 Author: Fujii Masao <fujii@postgresql.org>
3370 2020-11-26 [9fbc3f318] pg_stat_statements: Track number of times pgss entries w
3371 Author: Fujii Masao <fujii@postgresql.org>
3372 2020-12-18 [2e0fedf03] pg_stat_statements: Track time at which all statistics w
3376 Add <structname>pg_stat_statements_info</structname> system view to show <structname>pg_stat_statements</structname> activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
3385 <title><link linkend="postgres-fdw
"><application>postgres_fdw</application></link></title>
3391 Author: Tomas Vondra <tomas.vondra@postgresql.org>
3392 2021-01-20 [b663a4136] Implement support for bulk inserts in postgres_fdw
3393 Author: Tomas Vondra <tomas.vondra@postgresql.org>
3394 2021-02-18 [927f453a9] Fix tuple routing to initialize batching only for insert
3398 Allow <application>postgres_fdw</application> to <command>INSERT</command> rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)
3404 Author: Fujii Masao <fujii@postgresql.org>
3405 2021-04-07 [a3740c48e] postgres_fdw: Allow partitions specified in LIMIT TO to
3409 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)
3413 By default, only the root of partitioned tables is imported.
3419 Author: Fujii Masao <fujii@postgresql.org>
3420 2021-01-18 [708d165dd] postgres_fdw: Add function to list cached connections to
3424 Add <application>postgres_fdw</application> function <function>postgres_fdw_get_connections()</function> to report open foreign server connections (Bharath Rupireddy)
3430 Author: Fujii Masao <fujii@postgresql.org>
3431 2021-04-02 [b1be3074a] postgres_fdw: Add option to control whether to keep conn
3435 Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)
3439 This is controlled by <varname>keep_connections</varname> and defaults to on.
3445 Author: Fujii Masao <fujii@postgresql.org>
3446 2020-10-06 [32a9c0bdf] postgres_fdw: reestablish new connection if cached one i
3447 Author: Fujii Masao <fujii@postgresql.org>
3448 2020-10-16 [7fc1a81e4] postgres_fdw: Restructure connection retry logic.
3452 Allow <application>postgres_fdw</application> to reestablish foreign server connections if necessary (Bharath Rupireddy)
3456 Previously foreign server restarts could cause foreign table access errors.
3462 Author: Fujii Masao <fujii@postgresql.org>
3463 2021-01-26 [411ae6499] postgres_fdw: Add functions to discard cached connection
3467 Add <application>postgres_fdw</application> functions to discard cached connections (Bharath Rupireddy)
3479 <sect2 id="release-
14-acknowledgements
">
3480 <title>Acknowledgments</title>
3483 The following individuals (in alphabetical order) have contributed to this
3484 release as patch authors, committers, reviewers, testers, or reporters of