2020-11-03 [2f70fdb06] Remove deprecated containment operators for built-in typ
-->
<para>
Remove deprecated containment operators for built-in geometry data types (Justin Pryzby)
</para>
<para>
The more consistent <@ and @> have been recommended for many years.
</para>
</listitem>
<listitem>
<!--
Author: Bruce Momjian <bruce@momjian.us>
2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API
-->
<para>
Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi)
</para>
<para>
Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full
checking.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial()
-->
<para>
Remove factorial operators ! and !! (Mark Dilger)
</para>
<para>
The factorial() function is still supported. Also remove function numeric_fac().
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2020-06-18 [0a40563ea] Disallow factorial of negative numbers
-->
<para>
Disallow factorial() of negative numbers (Peter Eisentraut)
</para>
<para>
Previously such cases returned 1.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators.
-->
<para>
Remove support for postfix (right-unary) operators (Mark Dilger)
</para>
<para>
pg_dump and pg_upgrade will warn if post-fix operators are being dumped.
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-09-16 [5423853fe] Avoid retrieval of CHECK constraints and DEFAULT exprs i
-->
<para>
Avoid retrieval of CHECK constraints and DEFAULT exprs in data-only dump (Julien Rouhaud)
</para>
<para>
IS THIS BACKWARD INCOMPATIBLE?
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-07-07 [f3faf35f3] Don't create pg_type entries for sequences or toast tabl
-->
<para>
Remove composite types for sequences or toast tables (Tom Lane)
Add a predefined role to match the database owner (Noah Misch)
</para>
<para>
It is called pg_database_owner; this is useful in template databases.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles
-->
<para>
Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost)
</para>
<para>
These non-login roles give read-only/write-only access to all objects.
</para>
</listitem>
<listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries.
-->
<para>
Add long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
</para>
<para>
The server variable check_client_connection_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients.
</para>
</listitem>
<listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2021-03-18 [cd91de0d1] Remove temporary files after backend crash
-->
<para>
Remove temporary files after backend crashes (Euler Taveira)
</para>
<para>
These files were previously retained for debugging purposes; deletion can be disabled with remove_temp_files_after_crash.
2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY
-->
<para>
Allow partitions to be detached in a non-blocking manner (Álvaro Herrera)
</para>
<para>
The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
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>
Previously it had to match the collation of the partition key.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Indexes</title>
<itemizedlist>
<listitem>
<!--
Author: Peter Geoghegan <pg@bowt.ie>
2021-01-13 [9dc718bdf] Pass down "logically unchanged index" hint.
Author: Peter Geoghegan <pg@bowt.ie>
2021-01-13 [d168b6668] Enhance nbtree index tuple deletion.
-->
<para>
Remove expired btree index entries to prevent page splits (Peter Geoghegan)
</para>
<para>
This is particularly helpful for reducing index bloat on tables that frequently update indexed columns.
</para>
</listitem>
<listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2021-03-26 [ab596105b] BRIN minmax-multi indexes
-->
<para>
Allow BRIN 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>
<listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2021-03-26 [77b88cd1b] BRIN bloom indexes
-->
<para>
Allow BRIN 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>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST.
-->
<para>
Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov)
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting.
-->
<para>
Allow some GiST index 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>
</itemizedlist>
</sect4>
<sect4>
<title>Optimizer</title>
<itemizedlist>
<listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2021-03-27 [a4d75c86b] Extended statistics on expressions
-->
<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 pg_stats_ext_exprs reports such statistics.
ALTER TABLE ... ALTER COLUMN ... TYPE RESETS STASTISTICS?
</para>
</listitem>
<listitem>
<!--
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2020-12-03 [25a9e54d2] Improve estimation of OR clauses using extended statisti
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2020-12-08 [88b0898fe] Improve estimation of OR clauses using multiple extended
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
2020-12-08 [4f5760d4a] Improve estimation of ANDs under ORs using extended stat
-->
<para>
Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>General Performance</title>
<itemizedlist>
<listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2020-08-12 [dc7420c2c] snapshot scalability: Don't compute global horizons whil
Author: Andres Freund <andres@anarazel.de>
2020-08-13 [1f51c17c6] snapshot scalability: Move PGXACT->xmin back to PGPROC.
Author: Andres Freund <andres@anarazel.de>
2020-08-14 [941697c3c] snapshot scalability: Introduce dense array of in-progre
Author: Andres Freund <andres@anarazel.de>
2020-08-14 [5788e258b] snapshot scalability: Move PGXACT->vacuumFlags to ProcGl
Author: Andres Freund <andres@anarazel.de>
2020-08-14 [73487a60f] snapshot scalability: Move subxact info to ProcGlobal, r
Author: Andres Freund <andres@anarazel.de>
2020-08-17 [623a9ba79] snapshot scalability: cache snapshots using a xact compl
-->
<para>
Improve speed of computing MVCC visibility snapshots on systems with many CPUs and high session count (Andres Freund)
</para>
<para>
This also improves performance when there are many idle sessions.
</para>
</listitem>
<listitem>
<!--
Author: David Rowley <drowley@postgresql.org>
2021-04-02 [9eacee2e6] Add Result Cache executor node (take 2)
-->
<para>
Add executor method to cache results from the inner-side of joins (David Rowley)
</para>
<para>
This is useful if only a small percentage of rows is checked on the inner side.
</para>
</listitem>
<listitem>
<!--
Author: Etsuro Fujita <efujita@postgresql.org>
2021-03-31 [27e1f1456] Add support for asynchronous execution.
-->
<para>
Allow multiple foreign table scans to be run in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)
</para>
<para>
The postgres_fdw supports these type of scans if "async_capable" is set.
Add ability to use LZ4 compression on TOAST data (Dilip Kumar)
</para>
<para>
This can be set at the column level, or set as a default via server setting default_toast_compression. The server must be compiled with --with-lz4 support to enable this feature; the default is still pglz.
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE
-->
<para>
Allow analyze to do page prefetching (Stephen Frost)
</para>
<para>
This is controlled by maintenance_io_concurrency.
</para>
</listitem>
<listitem>
<!--
Author: David Rowley <drowley@postgresql.org>
2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans
-->
<para>
Improve the performance of parallel sequential scans (Thomas Munro, David Rowley)
</para>
<para>
This was done by allocating blocks in groups to parallel workers.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-20 [08c0d6ad6] Invent "rainbow" arcs within the regex engine.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-20 [824bf7190] Recognize "match-all" NFAs within the regex engine.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-20 [cebc1d34e] Fix regex engine to suppress useless concatenation sub-R
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-20 [581043089] Convert regex engine's subre tree from binary to N-ary s
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-20 [ea1268f63] Avoid generating extra subre tree nodes for capturing pa
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-21 [190c79884] Simplify memory management for regex DFAs a little.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-26 [0fc1af174] Improve memory management in regex compiler.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-03-02 [0c3405cf1] Improve performance of regular expression back-reference
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-03-02 [4604f83fd] Suppress unnecessary regex subre nodes in a couple more
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-03-08 [6c20bdb2a] Further tweak memory management for regex DFAs.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-05-03 [f68970e33] Fix performance issue in new regex match-all detection c
-->
<para>
Improve the performance of regular expression comparisons (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2021-01-12 [d6ad34f34] Optimize DropRelFileNodeBuffers() for recovery.
-->
<para>
Speed truncation of small tables on large shared buffer servers (Kirk Jamison)
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
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>
<listitem>
<!--
Author: David Rowley <drowley@postgresql.org>
2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions
-->
<para>
Allow windowing functions to perform incremental sorts (David Rowley)
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>Monitoring</title>
<itemizedlist>
<listitem>
<!--
Author: Bruce Momjian <bruce@momjian.us>
2021-04-07 [4f0b0966c] Make use of in-core query id added by commit 5fd9dfa5f5
Author: Bruce Momjian <bruce@momjian.us>
2021-04-07 [f57a2f5e0] Add csvlog output for the new query_id value
Author: Bruce Momjian <bruce@momjian.us>
2021-04-20 [9660834dd] adjust query id feature to use pg_stat_activity.query_id
If server variable compute_query_id is enabled, display the hash in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in log_line_prefix (Julien Rouhaud)
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
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 log_connections (Jacob Champion)
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2021-04-06 [43620e328] Add function to log the memory contexts of specified bac
-->
<para>
Add function pg_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi)
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2021-03-23 [5aed6a1fc] Add per-index stats information in verbose logs of autov
-->
<para>
Add per-index information to autovacuum logging output (Masahiko Sawada)
</para>
</listitem>
<listitem>
<!--
Author: Stephen Frost <sfrost@snowman.net>
2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze
-->
<para>
Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak)
</para>
<para>
This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing is enabled. Also, report buffer read and dirty rates for auto-analyze.
</para>
</listitem>
</itemizedlist>
</sect4>
<sect4>
<title>System Views</title>
<itemizedlist>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2021-03-15 [d75288fb2] Make archiver process an auxiliary process.
-->
<para>
Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-09-14 [f560209c6] Make walsenders show their replication commands in pg_st
-->
<para>
Improve pg_stat_activity reporting for walsenders processes (Tom Lane)
</para>
<para>
Previously only SQL commands were reported.
</para>
</listitem>
<listitem>
<!--
Author: Tomas Vondra <tomas.vondra@postgresql.org>
2021-01-06 [8a4f618e7] Report progress of COPY commands
Author: Michael Paquier <michael@paquier.xyz>
2021-03-09 [9d2d45700] Add support for more progress reporting in COPY
-->
<para>
Add view pg_stat_progress_copy to report COPY progress (Josef Šimánek, Matthias van de Meent)
Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi)
</para>
<para>
This is controlled by server variable ssl_crl_dir and libpq connection option sslcrldir. Previously only CRL files could be specified.
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2021-01-08 [0650ff230] Add GUC to log long wait times on recovery conflicts.
Author: Fujii Masao <fujii@postgresql.org>
2021-01-13 [39b03690b] Log long wait time on recovery conflict when it's resolv
-->
<para>
Add server variable log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby".
-->
<para>
Add new server-side variable in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2020-12-02 [942305a36] Allow restore_command parameter to be changed with reloa
-->
<para>
Allow restore_command setting to be changed during a server reload (Sergei Kornilov)
</para>
<para>
You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory.
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir
-->
<para>
Allow 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>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader
-->
<para>
Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby)
</para>
</listitem>
<listitem>
<!--
Author: Noah Misch <noah@leadboat.com>
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>
This should reduce the number of failures without warning.
</para>
</listitem>
<listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
2020-07-31 [84b1c63ad] Preallocate some DSM space at startup.
-->
<para>
Allow startup allocation of dynamic shared memory (Thomas Munro)
</para>
<para>
This is controlled by min_dynamic_shared_memory. This allows more use of huge pages.
</para>
</listitem>
<listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux.
-->
<para>
Add setting huge_page_size to control the size of huge pages used on Linux (Odin Ugedal)
</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>Streaming Replication and Recovery</title>
<itemizedlist>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
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>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
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>
<listitem>
<!--
Author: Thomas Munro <tmunro@postgresql.org>
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>
This allows for faster recovery on systems with many database files and is enabled via recovery_init_sync_method,
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic
-->
<para>
Allow multiple xacts during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
</para>
<para>
IMPORTANT?
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2020-11-16 [2945a488a] Make the standby server promptly handle interrupt signal
OTHER COMMITS
-->
<para>
Improve signal handling reliability (Fujii Masao)
</para>
<para>
GENERAL ENOUGH?
</para>
</listitem>
<listitem>
<!--
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy
-->
<para>
Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2020-09-03 [464824323] Add support for streaming to built-in logical replicatio
Author: Amit Kapila <akapila@postgresql.org>
2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar
Author: Amit Kapila <akapila@postgresql.org>
2021-01-04 [a271a1b50] Allow decoding at prepare time in ReorderBuffer.
-->
<para>
Add support for streaming to built-in logical replication (Vondra, Dilip Kumar, Amit Kapila, Ajin Cherian, Nikhil Sontakke, Stas Kelvich)
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2020-08-08 [7259736a6] Implement streaming mode in ReorderBuffer.
-->
<para>
Allow logical replication to stream long transactions to standbys (Dilip Kumar, Tomas Vondra, Amit Kapila, Nikhil Sontakke)
</para>
<para>
Previously transactions that exceeded logical_decoding_work_mem were written to disk until the transaction completed.
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass
-->
<para>
Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila)
</para>
<para>
This is useful for logical decoding.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
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>
This is faster than text mode, but slightly less robust.
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
-->
<para>
Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit
-->
<para>
Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f
-->
<para>
Allow replication origin functions 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 still defaults do that.
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2020-07-23 [c55040ccd] WAL Log invalidations at command end with wal_level=logi
-->
<para>
Generate WAL invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila)
</para>
<para>
When logical replication is disabled, WAL invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions.
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2020-07-28 [45fdc9738] Extend the logical decoding output plugin API with strea
-->
<para>
Improve the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)
</para>
<para>
The output functions begin with "stream". test_decoding also supports these.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
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>
Previously the standby would shut down immediately.
</para>
</listitem>
<listitem>
<!--
Author: Amit Kapila <akapila@postgresql.org>
2021-03-03 [19890a064] Add option to enable two_phase commits via pg_create_log
-->
<para>
Enable logical replication to handle two phase commits (Ajin Cherian)
</para>
<para>
This is controlled via pg_create_logical_replication_slot().
</para>
</listitem>
<listitem>
<!--
Author: Robert Haas <rhaas@postgresql.org>
2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect
-->
<para>
Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar)
</para>
<para>
It gives more detailed information than pg_is_wal_replay_paused(), which still exists.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>SELECT, INSERT</title>
<itemizedlist>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ...
-->
<para>
Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane)
Add support for multirange data types (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>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-11-23 [0cc993278] Rename the "point is strictly above/below point" compari
-->
<para>
Add point operators <<| 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>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
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>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-09-23 [83b61319a] Improve behavior of tsearch_readline(), and remove t_rea
-->
<para>
Allow tsearch data files to have unlimited line lengths (Tom Lane)
</para>
<para>
The previous limit was 4k bytes. Also remove function t_readline().
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-07-22 [a57d312a7] Support infinity and -infinity in the numeric data type.
-->
<para>
Add support for infinity and -infinity values to the numeric data type (Tom Lane)
</para>
<para>
Floating point data types already supported these.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-07-21 [670c0a1d4] Weaken type-OID-matching checks in array_recv and record
-->
<para>
Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Fujii Masao <fujii@postgresql.org>
2020-06-30 [9bae7e4cd] Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators.
-->
<para>
Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2020-06-08 [cbcc8726b] Update snowball
Author: Peter Eisentraut <peter@eisentraut.org>
2020-06-08 [c2e71cb35] Update documentation for snowball update
Author: Peter Eisentraut <peter@eisentraut.org>
2021-02-19 [678d0e239] Update snowball
-->
<para>
Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-11-04 [fac83dbd6] Remove underflow error in float division with infinite d
-->
<para>
Have non-zero float values divided by infinity return zero (Kyotaro Horiguchi)
</para>
<para>
Previously such operations produced underflow errors.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
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>
Previously this returned an error. Division with Numerics always returned NaN.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Functions</title>
<itemizedlist>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec
-->
<para>
Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-06-14 [decbe2bfb] Fix behavior of exp() and power() for infinity inputs.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-06-15 [e532b1d57] Fix power() for infinity inputs some more.
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-06-15 [5674eb987] Fix power() for large inputs yet more.
-->
<para>
Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane)
</para>
<para>
Previously they often returned underflow errors.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2021-04-07 [e717a9a18] SQL-standard function body
-->
<para>
Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut)
</para>
<para>
Previously only single-quoted or $$-quoted function bodies were supported.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2021-03-29 [f37fec837] Add unistr function
-->
<para>
Add unistr() 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>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2021-03-24 [49ab61f0b] Add date_bin function
Author: Peter Eisentraut <peter@eisentraut.org>
2021-04-10 [496e58bb0] Improve behavior of date_bin with origin in the future
-->
<para>
Add date_bin function (John Naylor)
</para>
<para>
WHAT DOES THIS DO?
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2021-03-23 [a6715af1e] Add bit_count SQL function
-->
<para>
Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-03-08 [fed10d4ee] Properly mark pg_stat_get_subscription() as returning a
-->
<para>
Mark pg_stat_get_subscription() 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.
</para>
</listitem>
<listitem>
<!--
Author: Peter Eisentraut <peter@eisentraut.org>
2021-03-06 [f9a0392e1] Add bit_xor aggregate function
-->
<para>
Add bit_xor XOR aggregate function (Alexey Bashtanov)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-03-03 [0a687c8f1] Add trim_array() function.
-->
<para>
Add SQL-standard trim_array() function (Vik Fearing)
</para>
<para>
This can already be done with array slices.
</para>
</listitem>
<listitem>
<!--
Author: David Rowley <drowley@postgresql.org>
2021-02-27 [bb437f995] Add TID Range Scans to support efficient scanning ranges
-->
<para>
Allow efficient retrieval of heap rows via tid (Edmund Horner, David Rowley)
</para>
<para>
Previously a sequential scan was required for non-equality tid specifications.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
-->
<para>
Add [[:word:]] as a character class to match \w (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex
-->
<para>
Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane)
</para>
</listitem>
<listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
2021-01-31 [676887a3b] Implementation of subscripting for jsonb
Author: Alexander Korotkov <akorotkov@postgresql.org>
2021-01-31 [81fcc72e6] Filling array gaps during jsonb subscripting
Author: Alexander Korotkov <akorotkov@postgresql.org>
2021-01-31 [aa6e46daf] Throw error when assigning jsonb scalar instead of a com
-->
<para>
Allow subscripting of jsonb (Dmitry Dolgov)
</para>
<para>
Subscripting can be used to extract from and assign to jsonb documents.
</para>
</listitem>
<listitem>
<!--
Author: Alexander Korotkov <akorotkov@postgresql.org>
2021-01-31 [0c4f355c6] Fix parsing of complex morphs to tsquery
-->
<para>
Improve to_tsquery() and websearch_to_tsquery() handling (Alexander Korotkov)
</para>
<para>
NEED TEXT HERE
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim().
-->
<para>
Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2021-01-13 [5a6f9bce8] Mark inet_server_addr() and inet_server_port() as parall
-->
<para>
Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada)
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-11-13 [ec0294fb2] Support negative indexes in split_part().
-->
<para>
Support negative indexes in split_part() (Nikhil Benesch)
</para>
<para>
Negative values count from the last field going forward.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
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>
The functions are array_append() array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket(). Previously only identical data types could be used.
</para>
</listitem>
<listitem>
<!--
Author: Tom Lane <tgl@sss.pgh.pa.us>
2020-11-04 [5c292e6b9] Declare lead() and lag() using anycompatible not anyelem
-->
<para>
Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)
</para>
</listitem>
<listitem>
<!--
Author: Michael Paquier <michael@paquier.xyz>
2020-10-23 [783f0cc64] Improve performance of Unicode {de,re}composition in the
The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), and is still supported by Postgres.