diff options
Diffstat (limited to 'doc/src/sgml/html/release-13.html')
-rw-r--r-- | doc/src/sgml/html/release-13.html | 984 |
1 files changed, 984 insertions, 0 deletions
diff --git a/doc/src/sgml/html/release-13.html b/doc/src/sgml/html/release-13.html new file mode 100644 index 0000000..173f0b9 --- /dev/null +++ b/doc/src/sgml/html/release-13.html @@ -0,0 +1,984 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>E.5. Release 13</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="release-13-1.html" title="E.4. Release 13.1" /><link rel="next" href="release-prior.html" title="E.6. Prior Releases" /></head><body id="docContent" class="container-fluid col-10"><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.5. Release 13</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-13-1.html" title="E.4. Release 13.1">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><th width="60%" align="center">Appendix E. Release Notes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 13.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-prior.html" title="E.6. Prior Releases">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-13"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.5. Release 13</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-13.html#id-1.11.6.9.3">E.5.1. Overview</a></span></dt><dt><span class="sect2"><a href="release-13.html#id-1.11.6.9.4">E.5.2. Migration to Version 13</a></span></dt><dt><span class="sect2"><a href="release-13.html#id-1.11.6.9.5">E.5.3. Changes</a></span></dt><dt><span class="sect2"><a href="release-13.html#RELEASE-13-ACKNOWLEDGEMENTS">E.5.4. Acknowledgments</a></span></dt></dl></div><p><strong>Release date: </strong>2020-09-24</p><div class="sect2" id="id-1.11.6.9.3"><div class="titlepage"><div><div><h3 class="title">E.5.1. Overview</h3></div></div></div><p> + <span class="productname">PostgreSQL</span> 13 contains many new features and + enhancements, including: + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Space savings and performance gains from de-duplication of B-tree + index entries + </p></li><li class="listitem"><p> + Improved performance for queries that use aggregates or partitioned + tables + </p></li><li class="listitem"><p> + Better query planning when using extended statistics + </p></li><li class="listitem"><p> + Parallelized vacuuming of indexes + </p></li><li class="listitem"><p> + Incremental sorting + </p></li></ul></div><p> + The above items and other new features + of <span class="productname">PostgreSQL</span> 13 are explained in more + detail in the sections below. + </p></div><div class="sect2" id="id-1.11.6.9.4"><div class="titlepage"><div><div><h3 class="title">E.5.2. Migration to Version 13</h3></div></div></div><p> + A dump/restore using <a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a> or use of <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a> or logical replication is required for those + wishing to migrate data from any previous release. See <a class="xref" href="upgrading.html" title="18.6. Upgrading a PostgreSQL Cluster">Section 18.6</a> for general information on migrating to new major + releases. + </p><p> + Version 13 contains a number of changes that may affect compatibility + with previous releases. Observe the following incompatibilities: + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Change <a class="link" href="functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP" title="9.7.2. SIMILAR TO Regular Expressions"><code class="command">SIMILAR + TO ... ESCAPE NULL</code></a> to return <code class="literal">NULL</code> + (Tom Lane) + </p><p> + This new behavior matches the <acronym class="acronym">SQL</acronym> specification. + Previously a null <code class="literal">ESCAPE</code> value was taken to mean + using the default escape string (a backslash character). This also + applies to <code class="literal">substring(<em class="replaceable"><code>text</code></em> + FROM <em class="replaceable"><code>pattern</code></em> + ESCAPE <em class="replaceable"><code>text</code></em>)</code>. The previous + behavior has been retained in old views by keeping the original + function unchanged. + </p></li><li class="listitem"><p> + Make <a class="link" href="functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE" title="Table 9.42. Text Search Functions"><code class="function">json[b]_to_tsvector()</code></a> + fully check the spelling of its <code class="literal">string</code> option + (Dominik Czarnota) + </p></li><li class="listitem"><p> + Change the way non-default <a class="xref" href="runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY">effective_io_concurrency</a> values affect concurrency + (Thomas Munro) + </p><p> + Previously, this value was adjusted before setting the number of + concurrent requests. The value is now used directly. Conversion of + old values to new ones can be done using: + </p><pre class="programlisting"> +SELECT round(sum(<em class="replaceable"><code>OLDVALUE</code></em> / n::float)) AS newvalue FROM generate_series(1, <em class="replaceable"><code>OLDVALUE</code></em>) s(n); +</pre></li><li class="listitem"><p> + Prevent display of auxiliary processes in <a class="xref" href="monitoring-stats.html#PG-STAT-SSL-VIEW" title="Table 27.17. pg_stat_ssl View">pg_stat_ssl</a> and <a class="xref" href="monitoring-stats.html#PG-STAT-GSSAPI-VIEW" title="Table 27.18. pg_stat_gssapi View">pg_stat_gssapi</a> + system views (Euler Taveira) + </p><p> + Queries that join these views to <a class="xref" href="monitoring-stats.html#PG-STAT-ACTIVITY-VIEW" title="Table 27.3. pg_stat_activity View">pg_stat_activity</a> and wish to see auxiliary processes + will need to use left joins. + </p></li><li class="listitem"><p> + Rename various <a class="link" href="monitoring-stats.html#WAIT-EVENT-TABLE" title="Table 27.4. Wait Event Types">wait + events</a> to improve consistency (Fujii Masao, Tom Lane) + </p></li><li class="listitem"><p> + Fix <a class="link" href="sql-alterforeigntable.html" title="ALTER FOREIGN TABLE"><code class="command">ALTER FOREIGN + TABLE ... RENAME COLUMN</code></a> to return a more appropriate + command tag (Fujii Masao) + </p><p> + Previously it returned <code class="command">ALTER TABLE</code>; now it returns + <code class="command">ALTER FOREIGN TABLE</code>. + </p></li><li class="listitem"><p> + Fix <a class="link" href="sql-altermaterializedview.html" title="ALTER MATERIALIZED VIEW"><code class="command">ALTER + MATERIALIZED VIEW ... RENAME COLUMN</code></a> to return a more + appropriate command tag (Fujii Masao) + </p><p> + Previously it returned <code class="command">ALTER TABLE</code>; now it returns + <code class="command">ALTER MATERIALIZED VIEW</code>. + </p></li><li class="listitem"><p> + Rename configuration parameter <code class="varname">wal_keep_segments</code> + to <a class="xref" href="runtime-config-replication.html#GUC-WAL-KEEP-SIZE">wal_keep_size</a> (Fujii Masao) + </p><p> + This determines how much WAL to retain for standby servers. + It is specified in megabytes, rather than number of files as with + the old parameter. If you + previously used <code class="varname">wal_keep_segments</code>, + the following formula will give you an approximately equivalent setting: +</p><pre class="programlisting"> +wal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB) +</pre><p> + </p></li><li class="listitem"><p> + Remove support for defining <a class="link" href="sql-createopclass.html" title="CREATE OPERATOR CLASS">operator + classes</a> using pre-<span class="productname">PostgreSQL</span> + 8.0 syntax (Daniel Gustafsson) + </p></li><li class="listitem"><p> + Remove support for defining <a class="link" href="sql-altertable.html" title="ALTER TABLE">foreign key + constraints</a> using pre-<span class="productname">PostgreSQL</span> + 7.3 syntax (Daniel Gustafsson) + </p></li><li class="listitem"><p> + Remove support for "opaque" <a class="link" href="sql-createtype.html" title="CREATE TYPE">pseudo-types</a> used by + pre-<span class="productname">PostgreSQL</span> 7.3 servers (Daniel + Gustafsson) + </p></li><li class="listitem"><p> + Remove support for upgrading unpackaged (pre-9.1) extensions (Tom Lane) + </p><p> + The <code class="literal">FROM</code> option + of <a class="link" href="sql-createextension.html" title="CREATE EXTENSION"><code class="command">CREATE + EXTENSION</code></a> is no longer supported. Any installations + still using unpackaged extensions should upgrade them to a packaged + version before updating to <span class="productname">PostgreSQL</span> 13. + </p></li><li class="listitem"><p> + Remove support for <code class="filename">posixrules</code> files in the + timezone database (Tom Lane) + </p><p> + IANA's timezone group has deprecated this feature, meaning that it + will gradually disappear from systems' timezone databases over the + next few years. Rather than have a behavioral change appear + unexpectedly with a timezone data update, we have + removed <span class="productname">PostgreSQL</span>'s support for this + feature as of version 13. This affects only the behavior + of <a class="link" href="datetime-posix-timezone-specs.html" title="B.5. POSIX Time Zone Specifications">POSIX-style time + zone specifications</a> that lack an explicit daylight savings + transition rule; formerly the transition rule could be determined + by installing a custom <code class="filename">posixrules</code> file, but + now it is hard-wired. The recommended fix for any affected + installations is to start using a geographical time zone name. + </p></li><li class="listitem"><p> + In <a class="xref" href="ltree.html" title="F.21. ltree">ltree</a>, when an <code class="type">lquery</code> pattern + contains adjacent asterisks with braces, + e.g., <code class="literal">*{2}.*{3}</code>, properly interpret that + as <code class="literal">*{5}</code> (Nikita Glukhov) + </p></li><li class="listitem"><p> + Fix <a class="xref" href="pageinspect.html" title="F.22. pageinspect">pageinspect</a>'s <code class="function">bt_metap()</code> + to return more appropriate data types that are less likely to overflow + (Peter Geoghegan) + </p></li></ul></div></div><div class="sect2" id="id-1.11.6.9.5"><div class="titlepage"><div><div><h3 class="title">E.5.3. Changes</h3></div></div></div><p> + Below you will find a detailed account of the changes between + <span class="productname">PostgreSQL</span> 13 and the previous major + release. + </p><div class="sect3" id="id-1.11.6.9.5.3"><div class="titlepage"><div><div><h4 class="title">E.5.3.1. Server</h4></div></div></div><div class="sect4" id="id-1.11.6.9.5.3.2"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.1. <a class="link" href="ddl-partitioning.html" title="5.11. Table Partitioning">Partitioning</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow <a class="link" href="ddl-partitioning.html#DDL-PARTITION-PRUNING" title="5.11.4. Partition Pruning">pruning</a> of + partitions to happen in more cases + (Yuzuko Hosoya, Amit Langote, Álvaro Herrera) + </p></li><li class="listitem"><p> + Allow <a class="link" href="runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-JOIN">partitionwise + joins</a> to happen in more cases (Ashutosh Bapat, Etsuro Fujita, + Amit Langote, Tom Lane) + </p><p> + For example, partitionwise joins can now happen between partitioned + tables even when their partition bounds do not match exactly. + </p></li><li class="listitem"><p> + Support row-level <code class="literal">BEFORE</code> <a class="link" href="triggers.html" title="Chapter 38. Triggers">triggers</a> on partitioned tables (Álvaro + Herrera) + </p><p> + However, such a trigger is not allowed to change which partition + is the destination. + </p></li><li class="listitem"><p> + Allow partitioned tables to be logically replicated via <a class="link" href="sql-createpublication.html" title="CREATE PUBLICATION">publications</a> (Amit Langote) + </p><p> + Previously, partitions had to be replicated individually. Now a + partitioned table can be published explicitly, causing all its + partitions to be published automatically. Addition/removal of a + partition causes it to be likewise added to or removed from the + publication. + The <a class="link" href="sql-createpublication.html" title="CREATE PUBLICATION"><code class="command">CREATE + PUBLICATION</code></a> option + <code class="literal">publish_via_partition_root</code> controls whether changes + to partitions are published as their own changes or their parent's. + </p></li><li class="listitem"><p> + Allow logical replication into partitioned tables on subscribers + (Amit Langote) + </p><p> + Previously, subscribers could only receive rows into non-partitioned + tables. + </p></li><li class="listitem"><p> + Allow whole-row variables (that + is, <em class="replaceable"><code>table</code></em><code class="literal">.*</code>) to be + used in partitioning expressions (Amit Langote) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.3"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.2. Indexes</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + More efficiently store <a class="link" href="btree-implementation.html#BTREE-DEDUPLICATION" title="63.4.2. Deduplication">duplicates</a> in B-tree indexes + (Anastasia Lubennikova, Peter Geoghegan) + </p><p> + This allows efficient B-tree indexing of low-cardinality columns + by storing duplicate keys only once. Users upgrading with <a class="link" href="pgupgrade.html" title="pg_upgrade"><span class="application">pg_upgrade</span></a> + will need to use <a class="link" href="sql-reindex.html" title="REINDEX"><code class="command">REINDEX</code></a> to make an + existing index use this feature. + </p></li><li class="listitem"><p> + Allow <a class="link" href="gist.html" title="Chapter 64. GiST Indexes">GiST</a> and <a class="link" href="spgist.html" title="Chapter 65. SP-GiST Indexes">SP-GiST</a> indexes on <code class="type">box</code> + columns to support <code class="literal">ORDER BY <em class="replaceable"><code>box</code></em> + <-> <em class="replaceable"><code>point</code></em></code> queries (Nikita + Glukhov) + </p></li><li class="listitem"><p> + Allow <a class="link" href="gin.html" title="Chapter 66. GIN Indexes"><acronym class="acronym">GIN</acronym></a> indexes to + more efficiently handle <code class="literal">!</code> (NOT) clauses + in <code class="type">tsquery</code> searches (Nikita + Glukhov, Alexander Korotkov, Tom Lane, Julien Rouhaud) + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-createindex.html" title="CREATE INDEX">index operator classes</a> + to take parameters (Nikita Glukhov) + </p></li><li class="listitem"><p> + Allow <code class="command">CREATE INDEX</code> to specify the GiST signature + length and maximum number of integer ranges (Nikita Glukhov) + </p><p> + Indexes created on four and eight-byte <a class="link" href="intarray.html" title="F.18. intarray">integer + array</a>, <a class="link" href="textsearch.html" title="Chapter 12. Full Text Search">tsvector</a>, + <a class="xref" href="pgtrgm.html" title="F.31. pg_trgm">pg_trgm</a>, <a class="xref" href="ltree.html" title="F.21. ltree">ltree</a>, and <a class="xref" href="hstore.html" title="F.16. hstore">hstore</a> columns can now control these GiST index parameters, + rather than using the defaults. + </p></li><li class="listitem"><p> + Prevent indexes that use non-default collations from being <a class="link" href="sql-altertable.html" title="ALTER TABLE">added</a> as a table's unique or primary + key constraint (Tom Lane) + </p><p> + The index's collation must match that of the underlying column, + but <code class="command">ALTER TABLE</code> previously failed to check + this. + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.4"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.3. Optimizer</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Improve the optimizer's <a class="link" href="planner-stats-details.html" title="Chapter 71. How the Planner Uses Statistics">selectivity</a> estimation for + containment/match operators (Tom Lane) + </p></li><li class="listitem"><p> + Allow setting the <a class="link" href="sql-altertable.html" title="ALTER TABLE">statistics target</a> + for <a class="link" href="sql-createstatistics.html" title="CREATE STATISTICS">extended statistics</a> + (Tomas Vondra) + </p><p> + This is controlled with the new command option <code class="command">ALTER + STATISTICS ... SET STATISTICS</code>. Previously this was computed + based on more general statistics target settings. + </p></li><li class="listitem"><p> + Allow use of multiple extended statistics objects in a single query + (Tomas Vondra) + </p></li><li class="listitem"><p> + Allow use of extended statistics objects for OR clauses and <a class="link" href="functions-subquery.html" title="9.23. Subquery Expressions">IN</a>/<code class="literal">ANY</code> constant + lists (Pierre Ducroquet, Tomas Vondra) + </p></li><li class="listitem"><p> + Allow functions in <code class="literal">FROM</code> clauses to be pulled up + (inlined) if they evaluate to constants (Alexander Kuzmenkov, + Aleksandr Parfenov) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.5"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.4. General Performance</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Implement <a class="link" href="runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT">incremental + sorting</a> (James Coleman, Alexander Korotkov, Tomas Vondra) + </p><p> + If an intermediate query result is known to be sorted by + one or more leading keys of a required sort ordering, the + additional sorting can be done considering only the remaining + keys, if the rows are sorted in batches that have equal leading + keys. + </p><p> + If necessary, this can be controlled using <a class="xref" href="runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT">enable_incremental_sort</a>. + </p></li><li class="listitem"><p> + Improve the performance of sorting <a class="link" href="datatype-net-types.html#DATATYPE-INET" title="8.9.1. inet">inet</a> values (Brandur Leach) + </p></li><li class="listitem"><p> + Allow <a class="link" href="runtime-config-query.html#GUC-ENABLE-HASHAGG">hash aggregation</a> + to use disk storage for large aggregation result sets (Jeff Davis) + </p><p> + Previously, hash aggregation was avoided if it was expected to use + more than <a class="xref" href="runtime-config-resource.html#GUC-WORK-MEM">work_mem</a> memory. Now, a hash + aggregation plan can be chosen despite that. The hash table will + be spilled to disk if it exceeds <code class="varname">work_mem</code> times + <a class="xref" href="runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER">hash_mem_multiplier</a>. + </p><p> + This behavior is normally preferable to the old behavior, in which + once hash aggregation had been chosen, the hash table would be + kept in memory no matter how large it got — which could be + very large if the planner had misestimated. If necessary, + behavior similar to that can be obtained by + increasing <code class="varname">hash_mem_multiplier</code>. + </p></li><li class="listitem"><p> + Allow inserts, not only updates and deletes, to trigger vacuuming + activity in <a class="link" href="routine-vacuuming.html#AUTOVACUUM" title="24.1.6. The Autovacuum Daemon">autovacuum</a> + (Laurenz Albe, Darafei Praliaskouski) + </p><p> + Previously, insert-only activity would trigger auto-analyze but + not auto-vacuum, on the grounds that there could not be any dead + tuples to remove. However, a vacuum scan has other useful + side-effects such as setting page-all-visible bits, which improves + the efficiency of index-only scans. Also, allowing an insert-only + table to receive periodic vacuuming helps to spread out the work + of <span class="quote">“<span class="quote">freezing</span>”</span> old tuples, so that there is not + suddenly a large amount of freezing work to do when the entire + table reaches the anti-wraparound threshold all at once. + </p><p> + If necessary, this behavior can be adjusted with the new + parameters <a class="xref" href="runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-THRESHOLD">autovacuum_vacuum_insert_threshold</a> + and <a class="xref" href="runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-SCALE-FACTOR">autovacuum_vacuum_insert_scale_factor</a>, or + the equivalent table storage options. + </p></li><li class="listitem"><p> + Add <a class="xref" href="runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY">maintenance_io_concurrency</a> parameter to + control I/O concurrency for maintenance operations (Thomas Munro) + </p></li><li class="listitem"><p> + Allow <acronym class="acronym">WAL</acronym> writes to be skipped during a transaction + that creates or rewrites a relation, if <a class="xref" href="runtime-config-wal.html#GUC-WAL-LEVEL">wal_level</a> is <code class="literal">minimal</code> (Kyotaro + Horiguchi) + </p><p> + Relations larger than <a class="xref" href="runtime-config-wal.html#GUC-WAL-SKIP-THRESHOLD">wal_skip_threshold</a> + will have their files fsync'ed rather than generating + <acronym class="acronym">WAL</acronym>. Previously this was done only for + <code class="command">COPY</code> operations, but the implementation had a bug + that could cause data loss during crash recovery. + </p></li><li class="listitem"><p> + Improve performance when replaying <a class="link" href="sql-dropdatabase.html" title="DROP DATABASE"><code class="command">DROP DATABASE</code></a> + commands when many tablespaces are in use (Fujii Masao) + </p></li><li class="listitem"><p> + Improve performance for <a class="link" href="sql-truncate.html" title="TRUNCATE">truncation</a> + of very large relations (Kirk Jamison) + </p></li><li class="listitem"><p> + Improve retrieval of the leading bytes of <a class="link" href="storage-toast.html" title="69.2. TOAST"><acronym class="acronym">TOAST</acronym></a>'ed values + (Binguo Bao, Andrey Borodin) + </p><p> + Previously, compressed out-of-line <acronym class="acronym">TOAST</acronym> values + were fully fetched even when it's known that only some leading + bytes are needed. Now, only enough data to produce the result is + fetched. + </p></li><li class="listitem"><p> + Improve performance of <a class="link" href="sql-listen.html" title="LISTEN"><code class="command">LISTEN</code></a>/<code class="command">NOTIFY</code> + (Martijn van Oosterhout, Tom Lane) + </p></li><li class="listitem"><p> + Speed up conversions of integers to text (David Fetter) + </p></li><li class="listitem"><p> + Reduce memory usage for query strings and extension scripts that + contain many <acronym class="acronym">SQL</acronym> statements (Amit Langote) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.6"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.5. Monitoring</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow <a class="link" href="sql-explain.html" title="EXPLAIN"><code class="command">EXPLAIN</code></a>, + <a class="xref" href="auto-explain.html" title="F.4. auto_explain">auto_explain</a>, <a class="link" href="routine-vacuuming.html#AUTOVACUUM" title="24.1.6. The Autovacuum Daemon">autovacuum</a>, and <a class="xref" href="pgstatstatements.html" title="F.29. pg_stat_statements">pg_stat_statements</a> to track <acronym class="acronym">WAL</acronym> usage + statistics (Kirill Bychik, Julien Rouhaud) + </p></li><li class="listitem"><p> + Allow a sample of SQL statements, rather than all statements, to + be logged (Adrien Nayrat) + </p><p> + A <a class="xref" href="runtime-config-logging.html#GUC-LOG-STATEMENT-SAMPLE-RATE">log_statement_sample_rate</a> fraction of + those statements taking more than + <a class="xref" href="runtime-config-logging.html#GUC-LOG-MIN-DURATION-SAMPLE">log_min_duration_sample</a> duration will be + logged. + </p></li><li class="listitem"><p> + Add the backend type to <a class="link" href="runtime-config-logging.html" title="19.8. Error Reporting and Logging">csvlog</a> and optionally <a class="xref" href="runtime-config-logging.html#GUC-LOG-LINE-PREFIX">log_line_prefix</a> log output (Peter Eisentraut) + </p></li><li class="listitem"><p> + Improve control of prepared statement parameter logging (Alexey + Bashtanov, Álvaro Herrera) + </p><p> + The <acronym class="acronym">GUC</acronym> setting <a class="xref" href="runtime-config-logging.html#GUC-LOG-PARAMETER-MAX-LENGTH">log_parameter_max_length</a> controls the maximum length + of parameter values output during logging of non-error statements, + while <a class="xref" href="runtime-config-logging.html#GUC-LOG-PARAMETER-MAX-LENGTH-ON-ERROR">log_parameter_max_length_on_error</a> does + the same for logging of statements with errors. Previously, + prepared statement parameters were never logged during errors. + </p></li><li class="listitem"><p> + Allow function call backtraces to be logged after errors (Peter + Eisentraut, Álvaro Herrera) + </p><p> + The new parameter <a class="xref" href="runtime-config-developer.html#GUC-BACKTRACE-FUNCTIONS">backtrace_functions</a> specifies + which C functions should generate backtraces on error. + </p></li><li class="listitem"><p> + Make <a class="link" href="sql-vacuum.html" title="VACUUM">vacuum</a> buffer counters 64-bits + wide to avoid overflow (Álvaro Herrera) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.7"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.6. System Views</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add <code class="structfield">leader_pid</code> to <a class="xref" href="monitoring-stats.html#PG-STAT-ACTIVITY-VIEW" title="Table 27.3. pg_stat_activity View">pg_stat_activity</a> to report a parallel worker's + leader process (Julien Rouhaud) + </p></li><li class="listitem"><p> + Add system view <a class="link" href="progress-reporting.html#BASEBACKUP-PROGRESS-REPORTING" title="27.4.5. Base Backup Progress Reporting"><code class="structname">pg_stat_progress_basebackup</code></a> + to report the progress of streaming base backups (Fujii Masao) + </p></li><li class="listitem"><p> + Add system view <a class="link" href="monitoring-stats.html#MONITORING-STATS-DYNAMIC-VIEWS-TABLE" title="Table 27.1. Dynamic Statistics Views"><code class="structname">pg_stat_progress_analyze</code></a> + to report <a class="link" href="sql-analyze.html" title="ANALYZE">ANALYZE</a> progress + (Álvaro Herrera, Tatsuro Yamada, Vinayak Pokale) + </p></li><li class="listitem"><p> + Add system view <a class="link" href="view-pg-shmem-allocations.html" title="51.87. pg_shmem_allocations"><code class="structname">pg_shmem_allocations</code></a> + to display shared memory usage (Andres Freund, Robert Haas) + </p></li><li class="listitem"><p> + Add system view <a class="link" href="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE" title="Table 27.2. Collected Statistics Views"><code class="structname">pg_stat_slru</code></a> + to monitor internal <acronym class="acronym">SLRU</acronym> caches + (Tomas Vondra) + </p></li><li class="listitem"><p> + Allow <a class="xref" href="runtime-config-statistics.html#GUC-TRACK-ACTIVITY-QUERY-SIZE">track_activity_query_size</a> to be set as + high as 1MB (Vyacheslav Makarov) + </p><p> + The previous maximum was 100kB. + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.8"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.7. <a class="link" href="monitoring-stats.html#WAIT-EVENT-TABLE" title="Table 27.4. Wait Event Types">Wait Events</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Report a wait event while creating a DSM segment + with <code class="function">posix_fallocate()</code> (Thomas Munro) + </p></li><li class="listitem"><p> + Add wait event VacuumDelay to report on cost-based vacuum delay + (Justin Pryzby) + </p></li><li class="listitem"><p> + Add wait events for <acronym class="acronym">WAL</acronym> archive and recovery pause + (Fujii Masao) + </p><p> + The new events are BackupWaitWalArchive and RecoveryPause. + </p></li><li class="listitem"><p> + Add wait events RecoveryConflictSnapshot and + RecoveryConflictTablespace to monitor recovery conflicts (Masahiko + Sawada) + </p></li><li class="listitem"><p> + Improve performance of wait events on <acronym class="acronym">BSD</acronym>-based + systems (Thomas Munro) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.9"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.8. <acronym class="acronym">Authentication</acronym></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow only superusers to view the <a class="xref" href="runtime-config-connection.html#GUC-SSL-PASSPHRASE-COMMAND">ssl_passphrase_command</a> setting (Insung Moon) + </p><p> + This was changed as a security precaution. + </p></li><li class="listitem"><p> + Change the server's default minimum <acronym class="acronym">TLS</acronym> version + for encrypted connections from 1.0 to 1.2 (Peter Eisentraut) + </p><p> + This choice can be controlled by + <a class="xref" href="runtime-config-connection.html#GUC-SSL-MIN-PROTOCOL-VERSION">ssl_min_protocol_version</a>. + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.10"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.9. Server Configuration</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Tighten rules on which utility commands are allowed in + read-only transaction mode (Robert Haas) + </p><p> + This change also increases the number of utility commands that can + run in parallel queries. + </p></li><li class="listitem"><p> + Allow <a class="xref" href="runtime-config-developer.html#GUC-ALLOW-SYSTEM-TABLE-MODS">allow_system_table_mods</a> to be changed + after server start (Peter Eisentraut) + </p></li><li class="listitem"><p> + Disallow non-superusers from modifying system tables when <a class="xref" href="runtime-config-developer.html#GUC-ALLOW-SYSTEM-TABLE-MODS">allow_system_table_mods</a> is set (Peter Eisentraut) + </p><p> + Previously, if <a class="xref" href="runtime-config-developer.html#GUC-ALLOW-SYSTEM-TABLE-MODS">allow_system_table_mods</a> + was set at server start, non-superusers could issue + <code class="command">INSERT</code>/<code class="command">UPDATE</code>/<code class="command">DELETE</code> + commands on system tables. + </p></li><li class="listitem"><p> + Enable support + for <a class="link" href="runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SETTINGS" title="19.3.1. Connection Settings">Unix-domain + sockets</a> on Windows (Peter Eisentraut) + </p></li></ul></div></div></div><div class="sect3" id="id-1.11.6.9.5.4"><div class="titlepage"><div><div><h4 class="title">E.5.3.2. Streaming Replication and Recovery</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow streaming replication configuration settings to be changed by + reload (Sergei Kornilov) + </p><p> + Previously, a server restart was required to change + <a class="xref" href="runtime-config-replication.html#GUC-PRIMARY-CONNINFO">primary_conninfo</a> and <a class="xref" href="runtime-config-replication.html#GUC-PRIMARY-SLOT-NAME">primary_slot_name</a>. + </p></li><li class="listitem"><p> + Allow <acronym class="acronym">WAL</acronym> receivers to use a temporary + replication slot when a permanent one is not specified (Peter + Eisentraut, Sergei Kornilov) + </p><p> + This behavior can be enabled using <a class="xref" href="runtime-config-replication.html#GUC-WAL-RECEIVER-CREATE-TEMP-SLOT">wal_receiver_create_temp_slot</a>. + </p></li><li class="listitem"><p> + Allow WAL storage for replication slots to be limited by + <a class="xref" href="runtime-config-replication.html#GUC-MAX-SLOT-WAL-KEEP-SIZE">max_slot_wal_keep_size</a> (Kyotaro Horiguchi) + </p><p> + Replication slots that would require exceeding this value are + marked invalid. + </p></li><li class="listitem"><p> + Allow <a class="link" href="runtime-config-replication.html#GUC-PROMOTE-TRIGGER-FILE">standby promotion</a> + to cancel any requested pause (Fujii Masao) + </p><p> + Previously, promotion could not happen while the standby was in + paused state. + </p></li><li class="listitem"><p> + Generate an error if recovery does not reach the specified <a class="link" href="runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET" title="19.5.5. Recovery Target">recovery target</a> + (Leif Gunnar Erlandsen, Peter Eisentraut) + </p><p> + Previously, a standby would promote itself upon reaching the end + of <acronym class="acronym">WAL</acronym>, even if the target was not reached. + </p></li><li class="listitem"><p> + Allow control over how much memory is used by logical decoding before + it is spilled to disk (Tomas Vondra, Dilip Kumar, Amit Kapila) + </p><p> + This is controlled by <a class="xref" href="runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM">logical_decoding_work_mem</a>. + </p></li><li class="listitem"><p> + Allow recovery to continue even if invalid + pages are referenced by <acronym class="acronym">WAL</acronym> (Fujii Masao) + </p><p> + This is enabled using <a class="xref" href="runtime-config-developer.html#GUC-IGNORE-INVALID-PAGES">ignore_invalid_pages</a>. + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.5"><div class="titlepage"><div><div><h4 class="title">E.5.3.3. Utility Commands</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow <a class="link" href="sql-vacuum.html" title="VACUUM"><code class="command">VACUUM</code></a> + to process a table's indexes in parallel (Masahiko Sawada, Amit Kapila) + </p><p> + The new <code class="literal">PARALLEL</code> option controls this. + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-select.html#SQL-LIMIT" title="LIMIT Clause"><code class="command">FETCH FIRST</code></a> + to use <code class="literal">WITH TIES</code> to return any additional rows + that match the last result row (Surafel Temesgen) + </p></li><li class="listitem"><p> + Report planning-time buffer usage in <a class="link" href="sql-explain.html" title="EXPLAIN"><code class="command">EXPLAIN</code></a>'s + <code class="literal">BUFFER</code> output (Julien Rouhaud) + </p></li><li class="listitem"><p> + Make <a class="link" href="sql-createtable.html" title="CREATE TABLE"><code class="command">CREATE TABLE + LIKE</code></a> propagate a <code class="literal">CHECK</code> + constraint's <code class="literal">NO INHERIT</code> property to the created + table (Ildar Musin, Chris Travers) + </p></li><li class="listitem"><p> + When using <a class="link" href="sql-lock.html" title="LOCK"><code class="command">LOCK + TABLE</code></a> on a partitioned table, do not check permissions + on the child tables (Amit Langote) + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-insert.html" title="INSERT"><code class="literal">OVERRIDING USER + VALUE</code></a> on inserts into identity columns (Dean Rasheed) + </p></li><li class="listitem"><p> + Add <a class="link" href="sql-altertable.html" title="ALTER TABLE"><code class="command">ALTER + TABLE ... DROP EXPRESSION</code></a> + to allow removing the <code class="literal">GENERATED</code> + property from a column (Peter Eisentraut) + </p></li><li class="listitem"><p> + Fix bugs in multi-step <code class="command">ALTER TABLE</code> commands (Tom + Lane) + </p><p> + <code class="literal">IF NOT EXISTS</code> clauses now work as expected, in + that derived actions (such as index creation) do not execute if the + column already exists. Also, certain cases of combining related + actions into one <code class="command">ALTER TABLE</code> now work when they + did not before. + </p></li><li class="listitem"><p> + Add <a class="link" href="sql-alterview.html" title="ALTER VIEW"><code class="command">ALTER VIEW</code></a> + syntax to rename view columns (Fujii Masao) + </p><p> + Renaming view columns was already possible, but one had to + write <code class="command">ALTER TABLE RENAME COLUMN</code>, which is + confusing. + </p></li><li class="listitem"><p> + Add <a class="link" href="sql-altertype.html" title="ALTER TYPE"><code class="command">ALTER TYPE</code></a> + options to modify a base type's <acronym class="acronym">TOAST</acronym> properties + and support functions (Tomas Vondra, Tom Lane) + </p></li><li class="listitem"><p> + Add <a class="link" href="sql-createdatabase.html" title="CREATE DATABASE"><code class="command">CREATE + DATABASE</code></a> <code class="literal">LOCALE</code> option (Peter + Eisentraut) + </p><p> + This combines the existing options <code class="literal">LC_COLLATE</code> and + <code class="literal">LC_CTYPE</code> into a single option. + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-dropdatabase.html" title="DROP DATABASE"><code class="command">DROP + DATABASE</code></a> to disconnect sessions using the target + database, allowing the drop to succeed (Pavel Stehule, Amit Kapila) + </p><p> + This is enabled by the <code class="literal">FORCE</code> option. + </p></li><li class="listitem"><p> + Add structure member <a class="link" href="trigger-interface.html" title="38.3. Writing Trigger Functions in C"><code class="structfield">tg_updatedcols</code></a> + to allow C-language update triggers to know which column(s) were updated + (Peter Eisentraut) + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.6"><div class="titlepage"><div><div><h4 class="title">E.5.3.4. Data Types</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add polymorphic data types for use by functions requiring compatible + arguments (Pavel Stehule) + </p><p> + The new data types are <a class="link" href="datatype-pseudo.html#DATATYPE-PSEUDOTYPES-TABLE" title="Table 8.27. Pseudo-Types"><code class="type">anycompatible</code></a>, + <code class="type">anycompatiblearray</code>, <code class="type">anycompatiblenonarray</code>, + and <code class="type">anycompatiblerange</code>. + </p></li><li class="listitem"><p> + Add <acronym class="acronym">SQL</acronym> data type <a class="link" href="datatype-oid.html" title="8.19. Object Identifier Types"><code class="type">xid8</code></a> to expose + FullTransactionId (Thomas Munro) + </p><p> + The existing <code class="type">xid</code> data type is only four bytes so it + does not provide the transaction epoch. + </p></li><li class="listitem"><p> + Add data + type <a class="link" href="datatype-oid.html" title="8.19. Object Identifier Types"><code class="type">regcollation</code></a> + and associated functions, to represent OIDs of collation objects + (Julien Rouhaud) + </p></li><li class="listitem"><p> + Use the glibc version in some cases as a <a class="link" href="collation.html" title="23.2. Collation Support">collation</a> version identifier (Thomas Munro) + </p><p> + If the glibc version changes, a warning will be issued about + possible corruption of collation-dependent indexes. + </p></li><li class="listitem"><p> + Add support for collation versions on Windows (Thomas Munro) + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS" title="4.2.13. Row Constructors"><code class="literal">ROW</code> + expressions</a> to have their members extracted with suffix + notation (Tom Lane) + </p><p> + For example, <code class="literal">(ROW(4, 5.0)).f1</code> now returns 4. + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.7"><div class="titlepage"><div><div><h4 class="title">E.5.3.5. Functions</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add alternate version of <a class="link" href="functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE" title="Table 9.47. JSON Processing Functions"><code class="function">jsonb_set()</code></a> + with improved <code class="literal">NULL</code> handling (Andrew Dunstan) + </p><p> + The new function, <code class="function">jsonb_set_lax()</code>, handles a + <code class="literal">NULL</code> new value by either setting the specified + key to a <acronym class="acronym">JSON</acronym> null, deleting the key, raising an + exception, or returning the <code class="type">jsonb</code> value unmodified, as + requested. + </p></li><li class="listitem"><p> + Add jsonpath <a class="link" href="functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS" title="9.16.2.2. SQL/JSON Path Operators and Methods">.<code class="function">datetime()</code></a> + method (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander + Korotkov) + </p><p> + This function allows <acronym class="acronym">JSON</acronym> values to be converted + to timestamps, which can then be processed in <code class="type">jsonpath</code> + expressions. This change also adds <code class="type">jsonpath</code> functions + that support time-zone-aware output. + </p></li><li class="listitem"><p> + Add <acronym class="acronym">SQL</acronym> functions <a class="link" href="functions-string.html#FUNCTIONS-STRING-SQL" title="Table 9.9. SQL String Functions and Operators"><code class="literal">NORMALIZE</code>()</a> + to normalize Unicode strings, and <a class="link" href="collation.html#COLLATION-NONDETERMINISTIC" title="23.2.2.4. Nondeterministic Collations"><code class="literal">IS + NORMALIZED</code></a> to check for normalization (Peter + Eisentraut) + </p></li><li class="listitem"><p> + Add <code class="function">min()</code> and + <code class="function">max()</code> aggregates for <a class="link" href="datatype-pg-lsn.html" title="8.20. pg_lsn Type"><code class="type">pg_lsn</code></a> (Fabrízio + de Royes Mello) + </p><p> + These are particularly useful in monitoring queries. + </p></li><li class="listitem"><p> + Allow <a class="link" href="sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-UESCAPE" title="4.1.2.3. String Constants with Unicode Escapes">Unicode + escapes</a>, + e.g., <code class="literal">E'\u<em class="replaceable"><code>nnnn</code></em>'</code> + or <code class="literal">U&'\<em class="replaceable"><code>nnnn</code></em>'</code>, to + specify any character available in the database encoding, even when + the database encoding is not <acronym class="acronym">UTF</acronym>-8 (Tom Lane) + </p></li><li class="listitem"><p> + Allow <a class="link" href="functions-formatting.html" title="9.8. Data Type Formatting Functions"><code class="function">to_date()</code></a> + and <code class="function">to_timestamp()</code> to recognize non-English + month/day names (Juan José Santamaría Flecha, Tom Lane) + </p><p> + The names recognized are the same as those output by <a class="link" href="functions-formatting.html" title="9.8. Data Type Formatting Functions"><code class="function">to_char()</code></a> + with the same format patterns. + </p></li><li class="listitem"><p> + Add datetime format patterns <code class="literal">FF1</code> + – <code class="literal">FF6</code> to specify input or output of + 1 to 6 fractional-second digits (Alexander + Korotkov, Nikita Glukhov, Teodor Sigaev, Oleg Bartunov) + </p><p> + These patterns can be used by <code class="function">to_char()</code>, + <code class="function">to_timestamp()</code>, and jsonpath's + .<code class="function">datetime()</code>. + </p></li><li class="listitem"><p> + Add <code class="literal">SSSSS</code> datetime format pattern as an + <acronym class="acronym">SQL</acronym>-standard alias for <code class="literal">SSSS</code> + (Nikita Glukhov, Alexander Korotkov) + </p></li><li class="listitem"><p> + Add function <a class="link" href="functions-uuid.html" title="9.14. UUID Functions"><code class="function">gen_random_uuid()</code></a> + to generate version-4 UUIDs (Peter Eisentraut) + </p><p> + Previously <acronym class="acronym">UUID</acronym> generation functions were only + available in the external modules <a class="xref" href="uuid-ossp.html" title="F.44. uuid-ossp">uuid-ossp</a> and <a class="xref" href="pgcrypto.html" title="F.25. pgcrypto">pgcrypto</a>. + </p></li><li class="listitem"><p> + Add greatest-common-denominator + (<a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions"><code class="function">gcd</code></a>) + and least-common-multiple (<code class="function">lcm</code>) functions (Vik + Fearing) + </p></li><li class="listitem"><p> + Improve the performance and accuracy of the <code class="type">numeric</code> + type's <a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions">square root</a> + (<code class="function">sqrt</code>) and natural log + (<code class="function">ln</code>) functions (Dean Rasheed) + </p></li><li class="listitem"><p> + Add function <a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions"><code class="function">min_scale()</code></a> + that returns the number of digits to the right of the decimal point + that are required to represent a <code class="type">numeric</code> value with + full accuracy (Pavel Stehule) + </p></li><li class="listitem"><p> + Add function <a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions"><code class="function">trim_scale()</code></a> + to reduce the scale of a <code class="type">numeric</code> value by removing + trailing zeros (Pavel Stehule) + </p></li><li class="listitem"><p> + Add commutators of <a class="link" href="functions-geometry.html#FUNCTIONS-GEOMETRY-OP-TABLE" title="Table 9.35. Geometric Operators">distance + operators</a> (Nikita Glukhov) + </p><p> + For example, previously only <code class="type">point</code> + <code class="literal"><-></code> <code class="type">line</code> was supported, + now <code class="type">line</code> <code class="literal"><-></code> <code class="type">point</code> + works too. + </p></li><li class="listitem"><p> + Create <code class="type">xid8</code> versions of all <a class="link" href="functions-info.html#FUNCTIONS-PG-SNAPSHOT" title="Table 9.74. Transaction ID and Snapshot Information Functions">transaction ID functions</a> + (Thomas Munro) + </p><p> + The old <code class="type">xid</code>-based functions still exist, for backward + compatibility. + </p></li><li class="listitem"><p> + Allow <a class="link" href="functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER" title="Table 9.12. Other Binary String Functions"><code class="function">get_bit()</code></a> + and <code class="function">set_bit()</code> to set bits beyond the first + 256MB of a <code class="type">bytea</code> value (Movead Li) + </p></li><li class="listitem"><p> + Allow <a class="link" href="functions-admin.html#FUNCTIONS-ADVISORY-LOCKS" title="9.27.10. Advisory Lock Functions">advisory-lock + functions</a> to be used in some parallel operations (Tom Lane) + </p></li><li class="listitem"><p> + Add the ability to remove an object's dependency on an extension + (Álvaro Herrera) + </p><p> + The object can be a function, materialized view, index, or trigger. + The syntax is <code class="command">ALTER .. NO DEPENDS ON</code>. + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.8"><div class="titlepage"><div><div><h4 class="title">E.5.3.6. <a class="link" href="plpgsql.html" title="Chapter 42. PL/pgSQL — SQL Procedural Language">PL/pgSQL</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Improve performance of simple PL/pgSQL expressions (Tom Lane, + Amit Langote) + </p></li><li class="listitem"><p> + Improve performance of PL/pgSQL functions that use immutable + expressions (Konstantin Knizhnik) + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.9"><div class="titlepage"><div><div><h4 class="title">E.5.3.7. Client Interfaces</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow libpq clients to require channel binding for encrypted + connections (Jeff Davis) + </p><p> + Using the libpq connection parameter <a class="link" href="libpq-connect.html#LIBPQ-CONNECT-CHANNEL-BINDING"><code class="literal">channel_binding</code></a> + forces the other end of the <acronym class="acronym">TLS</acronym> connection to prove + it knows the user's password. This prevents man-in-the-middle attacks. + </p></li><li class="listitem"><p> + Add libpq connection parameters to control the minimum and maximum + <acronym class="acronym">TLS</acronym> version allowed for an encrypted connection + (Daniel Gustafsson) + </p><p> + The settings are <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-SSL-MIN-PROTOCOL-VERSION">ssl_min_protocol_version</a> and <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-SSL-MAX-PROTOCOL-VERSION">ssl_max_protocol_version</a>. + By default, the minimum <acronym class="acronym">TLS</acronym> version is 1.2 + (this represents a behavioral change from previous releases). + </p></li><li class="listitem"><p> + Allow use of passwords to unlock client certificates (Craig + Ringer, Andrew Dunstan) + </p><p> + This is enabled by libpq's <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-SSLPASSWORD">sslpassword</a> + connection parameter. + </p></li><li class="listitem"><p> + Allow libpq to use <acronym class="acronym">DER</acronym>-encoded client + certificates (Craig Ringer, Andrew Dunstan) + </p></li><li class="listitem"><p> + Fix <span class="application">ecpg</span>'s <code class="literal">EXEC SQL + elif</code> directive to work correctly (Tom Lane) + </p><p> + Previously it behaved the same as <code class="literal">endif</code> followed + by <code class="literal">ifdef</code>, so that a successful previous branch + of the same <code class="literal">if</code> construct did not prevent + expansion of the <code class="literal">elif</code> branch or following + branches. + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.10"><div class="titlepage"><div><div><h4 class="title">E.5.3.8. Client Applications</h4></div></div></div><div class="sect4" id="id-1.11.6.9.5.10.2"><div class="titlepage"><div><div><h5 class="title">E.5.3.8.1. <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add transaction status (<code class="literal">%x</code>) + to <span class="application">psql</span>'s default + <a class="link" href="app-psql.html#APP-PSQL-PROMPTING" title="Prompting">prompts</a> (Vik Fearing) + </p></li><li class="listitem"><p> + Allow the secondary <span class="application">psql</span> prompt to be + blank but the same width as the primary prompt (Thomas Munro) + </p><p> + This is accomplished by setting <code class="literal">PROMPT2</code> + to <code class="literal">%w</code>. + </p></li><li class="listitem"><p> + Allow <span class="application">psql</span>'s + <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\g</code></a> + and <code class="literal">\gx</code> commands to + change <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands">\pset</a> output + options for the duration of that single command (Tom Lane) + </p><p> + This feature allows syntax like <code class="literal">\g (expand=on)</code>, + which is equivalent to <code class="literal">\gx</code>. + </p></li><li class="listitem"><p> + Add <span class="application">psql</span> commands to display operator + classes and operator families (Sergey Cherkashin, Nikita Glukhov, + Alexander Korotkov) + </p><p> + The new commands are <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\dAc</code></a>, + <code class="literal">\dAf</code>, <code class="literal">\dAo</code>, + and <code class="literal">\dAp</code>. + </p></li><li class="listitem"><p> + Show table persistence in <span class="application">psql</span>'s <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\dt+</code></a> + and related commands (David Fetter) + </p><p> + In verbose mode, the table/index/view shows if the object is permanent, + temporary, or unlogged. + </p></li><li class="listitem"><p> + Improve output of <span class="application">psql</span>'s <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\d</code></a> + for <acronym class="acronym">TOAST</acronym> tables (Justin Pryzby) + </p></li><li class="listitem"><p> + Fix redisplay after <span class="application">psql</span>'s <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\e</code></a> + command (Tom Lane) + </p><p> + When exiting the editor, if the query doesn't end with a semicolon + or <code class="literal">\g</code>, the query buffer contents will now be + displayed. + </p></li><li class="listitem"><p> + Add <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS" title="Meta-Commands"><code class="literal">\warn</code></a> + command to <span class="application">psql</span> (David Fetter) + </p><p> + This is like <code class="literal">\echo</code> except that the text is sent + to stderr instead of stdout. + </p></li><li class="listitem"><p> + Add the <span class="productname">PostgreSQL</span> home page to command-line + <code class="option">--help</code> output (Peter Eisentraut) + </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.10.3"><div class="titlepage"><div><div><h5 class="title">E.5.3.8.2. <a class="link" href="pgbench.html" title="pgbench"><span class="application">pgbench</span></a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow pgbench to partition its <span class="quote">“<span class="quote">accounts</span>”</span> table + (Fabien Coelho) + </p><p> + This allows performance testing of partitioning. + </p></li><li class="listitem"><p> + Add pgbench command <code class="literal">\aset</code>, which behaves + like <code class="literal">\gset</code>, but for multiple queries (Fabien + Coelho) + </p></li><li class="listitem"><p> + Allow pgbench to generate its initial data server-side, rather + than client-side (Fabien Coelho) + </p></li><li class="listitem"><p> + Allow pgbench to show script contents using option + <code class="option">--show-script</code> (Fabien Coelho) + </p></li></ul></div></div></div><div class="sect3" id="id-1.11.6.9.5.11"><div class="titlepage"><div><div><h4 class="title">E.5.3.9. Server Applications</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Generate backup manifests for base backups, and verify them (Robert + Haas) + </p><p> + A new tool <a class="link" href="app-pgverifybackup.html" title="pg_verifybackup"><span class="application">pg_verifybackup</span></a> + can verify backups. + </p></li><li class="listitem"><p> + Have <a class="link" href="app-pgbasebackup.html" title="pg_basebackup"><span class="application">pg_basebackup</span></a> + estimate the total backup size by default (Fujii Masao) + </p><p> + This computation allows <a class="link" href="monitoring-stats.html#MONITORING-STATS-DYNAMIC-VIEWS-TABLE" title="Table 27.1. Dynamic Statistics Views"><code class="structname">pg_stat_progress_basebackup</code></a> + to show progress. If that is not needed, it can be disabled by + using the <code class="option">--no-estimate-size</code> option. Previously, + this computation happened only if the <code class="option">--progress</code> + option was used. + </p></li><li class="listitem"><p> + Add an option to <a class="link" href="app-pgrewind.html" title="pg_rewind"><span class="application">pg_rewind</span></a> + to configure standbys (Paul Guo, Jimmy Yih, Ashwin Agrawal) + </p><p> + This matches <a class="link" href="app-pgbasebackup.html" title="pg_basebackup"><span class="application">pg_basebackup</span></a>'s + <code class="option">--write-recovery-conf</code> option. + </p></li><li class="listitem"><p> + Allow <span class="application">pg_rewind</span> to use the target + cluster's <a class="xref" href="runtime-config-wal.html#GUC-RESTORE-COMMAND">restore_command</a> to retrieve needed + <acronym class="acronym">WAL</acronym> (Alexey Kondratov) + </p><p> + This is enabled using the + <code class="option">-c</code>/<code class="option">--restore-target-wal</code> option. + </p></li><li class="listitem"><p> + Have <span class="application">pg_rewind</span> automatically run crash + recovery before rewinding (Paul Guo, Jimmy Yih, Ashwin Agrawal) + </p><p> + This can be disabled by using <code class="option">--no-ensure-shutdown</code>. + </p></li><li class="listitem"><p> + Increase the <a class="link" href="sql-prepare-transaction.html" title="PREPARE TRANSACTION"><code class="command">PREPARE + TRANSACTION</code></a>-related information reported by + <span class="application">pg_waldump</span> (Fujii Masao) + </p></li><li class="listitem"><p> + Add <a class="link" href="pgwaldump.html" title="pg_waldump"><span class="application">pg_waldump</span></a> + option <code class="option">--quiet</code> to suppress non-error output (Andres + Freund, Robert Haas) + </p></li><li class="listitem"><p> + Add <a class="link" href="app-pgdump.html" title="pg_dump"><span class="application">pg_dump</span></a> + option <code class="option">--include-foreign-data</code> to dump data from + foreign servers (Luis Carril) + </p></li><li class="listitem"><p> + Allow vacuum commands run by <a class="link" href="app-vacuumdb.html" title="vacuumdb">vacuumdb</a> to operate in parallel mode + (Masahiko Sawada) + </p><p> + This is enabled with the new <code class="option">--parallel</code> option. + </p></li><li class="listitem"><p> + Allow <a class="link" href="app-reindexdb.html" title="reindexdb">reindexdb</a> to operate in + parallel (Julien Rouhaud) + </p><p> + Parallel mode is enabled with the new <code class="option">--jobs</code> option. + </p></li><li class="listitem"><p> + Allow <a class="link" href="app-dropdb.html" title="dropdb">dropdb</a> to disconnect + sessions using the target database, allowing the drop to succeed + (Pavel Stehule) + </p><p> + This is enabled with the <code class="option">-f</code> option. + </p></li><li class="listitem"><p> + Remove <code class="option">--adduser</code> and <code class="option">--no-adduser</code> + from <a class="link" href="app-createuser.html" title="createuser">createuser</a> (Alexander + Lakhin) + </p><p> + The long-supported preferred options for this are called + <code class="option">--superuser</code> and <code class="option">--no-superuser</code>. + </p></li><li class="listitem"><p> + Use the directory of the <a class="link" href="pgupgrade.html" title="pg_upgrade"><span class="application">pg_upgrade</span></a> + program as the default <code class="option">--new-bindir</code> setting when + running <span class="application">pg_upgrade</span> (Daniel Gustafsson) + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.12"><div class="titlepage"><div><div><h4 class="title">E.5.3.10. Documentation</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add a <a class="link" href="glossary.html" title="Appendix M. Glossary">glossary</a> to the documentation + (Corey Huinker, Jürgen Purtz, Roger Harkavy, Álvaro + Herrera) + </p></li><li class="listitem"><p> + Reformat tables containing <a class="link" href="functions.html" title="Chapter 9. Functions and Operators">function + and operator information</a> for better clarity (Tom Lane) + </p></li><li class="listitem"><p> + Upgrade to use <a class="link" href="docguide-docbook.html" title="J.1. DocBook">DocBook 4.5</a> + (Peter Eisentraut) + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.13"><div class="titlepage"><div><div><h4 class="title">E.5.3.11. Source Code</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Add support for building on Visual Studio 2019 (Haribabu Kommi) + </p></li><li class="listitem"><p> + Add build support for MSYS2 (Peter Eisentraut) + </p></li><li class="listitem"><p> + Add compare_exchange and fetch_add assembly language code for Power + PC compilers (Noah Misch) + </p></li><li class="listitem"><p> + Update <a class="link" href="textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY" title="12.6.6. Snowball Dictionary">Snowball + stemmer</a> dictionaries used by full text search (Panagiotis + Mavrogiorgos) + </p><p> + This adds Greek stemming and improves Danish and French stemming. + </p></li><li class="listitem"><p> + Remove support for Windows 2000 (Michael Paquier) + </p></li><li class="listitem"><p> + Remove support for non-<acronym class="acronym">ELF</acronym> <acronym class="acronym">BSD</acronym> + systems (Peter Eisentraut) + </p></li><li class="listitem"><p> + Remove <a class="link" href="plpython.html" title="Chapter 45. PL/Python — Python Procedural Language">support</a> for Python versions + 2.5.X and earlier (Peter Eisentraut) + </p></li><li class="listitem"><p> + Remove <a class="link" href="install-short.html" title="16.1. Short Version">support</a> for OpenSSL 0.9.8 + and 1.0.0 (Michael Paquier) + </p></li><li class="listitem"><p> + Remove <a class="link" href="install-short.html" title="16.1. Short Version">configure</a> options + <code class="option">--disable-float8-byval</code> + and <code class="option">--disable-float4-byval</code> (Peter Eisentraut) + </p><p> + These were needed for compatibility with some version-zero C + functions, but those are no longer supported. + </p></li><li class="listitem"><p> + Pass the query string to planner hook functions (Pascal Legrand, + Julien Rouhaud) + </p></li><li class="listitem"><p> + Add <a class="link" href="sql-truncate.html" title="TRUNCATE"><code class="command">TRUNCATE</code></a> + command hook (Yuli Khodorkovskiy) + </p></li><li class="listitem"><p> + Add <acronym class="acronym">TLS</acronym> init hook (Andrew Dunstan) + </p></li><li class="listitem"><p> + Allow building with no predefined Unix-domain socket directory + (Peter Eisentraut) + </p></li><li class="listitem"><p> + Reduce the probability of SysV resource key collision on Unix platforms + (Tom Lane) + </p></li><li class="listitem"><p> + Use operating system functions to reliably erase memory that contains + sensitive information (Peter Eisentraut) + </p><p> + For example, this is used for clearing passwords stored in memory. + </p></li><li class="listitem"><p> + Add <code class="filename">headerscheck</code> script to test C header-file + compatibility (Tom Lane) + </p></li><li class="listitem"><p> + Implement internal lists as arrays, rather than a chain of cells + (Tom Lane) + </p><p> + This improves performance for queries that access many objects. + </p></li><li class="listitem"><p> + Change the API for <code class="function">TS_execute()</code> (Tom Lane, + Pavel Borisov) + </p><p> + <code class="function">TS_execute</code> callbacks must now provide ternary + (yes/no/maybe) logic. Calculating NOT queries accurately is now + the default. + </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.14"><div class="titlepage"><div><div><h4 class="title">E.5.3.12. Additional Modules</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + Allow <a class="link" href="sql-createextension.html" title="CREATE EXTENSION">extensions</a> to be + specified as trusted (Tom Lane) + </p><p> + Such extensions can be installed in a database by users with + database-level <code class="literal">CREATE</code> privileges, even if they + are not superusers. This change also removes + the <code class="structname">pg_pltemplate</code> system catalog. + </p></li><li class="listitem"><p> + Allow non-superusers to connect to <a class="xref" href="postgres-fdw.html" title="F.33. postgres_fdw">postgres_fdw</a> + foreign servers without using a password (Craig Ringer) + </p><p> + Specifically, allow a superuser to set + <code class="literal">password_required</code> to false for + a <a class="link" href="sql-alterusermapping.html" title="ALTER USER MAPPING">user mapping</a>. Care + must still be taken to prevent non-superusers from using superuser + credentials to connect to the foreign server. + </p></li><li class="listitem"><p> + Allow <span class="application">postgres_fdw</span> to use certificate + authentication (Craig Ringer) + </p><p> + Different users can use different certificates. + </p></li><li class="listitem"><p> + Allow <a class="xref" href="sepgsql.html" title="F.35. sepgsql">sepgsql</a> to control access to the + <code class="command">TRUNCATE</code> command (Yuli Khodorkovskiy) + </p></li><li class="listitem"><p> + Add extension <a class="link" href="plperl.html" title="Chapter 44. PL/Perl — Perl Procedural Language"><span class="application">bool_plperl</span></a> + which transforms <acronym class="acronym">SQL</acronym> booleans to/from PL/Perl + booleans (Ivan Panchenko) + </p></li><li class="listitem"><p> + Have <a class="xref" href="pgstatstatements.html" title="F.29. pg_stat_statements">pg_stat_statements</a> treat <code class="command">SELECT + ... FOR UPDATE</code> commands as distinct from those + without <code class="command">FOR UPDATE</code> (Andrew Gierth, Vik Fearing) + </p></li><li class="listitem"><p> + Allow <span class="application">pg_stat_statements</span> to optionally + track the planning time of statements (Julien Rouhaud, Pascal Legrand, + Thomas Munro, Fujii Masao) + </p><p> + Previously only execution time was tracked. + </p></li><li class="listitem"><p> + Overhaul <a class="xref" href="ltree.html" title="F.21. ltree">ltree</a>'s lquery syntax to treat + <code class="literal">NOT</code> (!) more logically (Filip Rembialkowski, + Tom Lane, Nikita Glukhov) + </p><p> + Also allow non-* queries to use a numeric range ({}) of matches. + </p></li><li class="listitem"><p> + Add support for binary I/O of <a class="xref" href="ltree.html" title="F.21. ltree">ltree</a>, lquery, and + ltxtquery types (Nino Floris) + </p></li><li class="listitem"><p> + Add an option to <a class="xref" href="dict-int.html" title="F.11. dict_int">dict_int</a> to ignore the sign + of integers (Jeff Janes) + </p></li><li class="listitem"><p> + Add <a class="xref" href="adminpack.html" title="F.1. adminpack">adminpack</a> function + <code class="function">pg_file_sync()</code> to allow fsync'ing a file + (Fujii Masao) + </p></li><li class="listitem"><p> + Add <a class="xref" href="pageinspect.html" title="F.22. pageinspect">pageinspect</a> functions to output + <code class="structfield">t_infomask</code>/<code class="structfield">t_infomask2</code> + values in human-readable format (Craig Ringer, Sawada Masahiko, + Michael Paquier) + </p></li><li class="listitem"><p> + Add B-tree index de-duplication processing columns to pageinspect output + (Peter Geoghegan) + </p></li></ul></div></div></div><div class="sect2" id="RELEASE-13-ACKNOWLEDGEMENTS"><div class="titlepage"><div><div><h3 class="title">E.5.4. Acknowledgments</h3></div></div></div><p> + The following individuals (in alphabetical order) have contributed to this + release as patch authors, committers, reviewers, testers, or reporters of + issues. + </p><table border="0" summary="Simple list" class="simplelist"><tr><td>Abhijit Menon-Sen</td></tr><tr><td>Adam Lee</td></tr><tr><td>Adam Scott</td></tr><tr><td>Adé Heyward</td></tr><tr><td>Adrien Nayrat</td></tr><tr><td>Ahsan Hadi</td></tr><tr><td>Alastair McKinley</td></tr><tr><td>Aleksandr Parfenov</td></tr><tr><td>Alex Aktsipetrov</td></tr><tr><td>Alex Macy</td></tr><tr><td>Alex Shulgin</td></tr><tr><td>Alexander Korotkov</td></tr><tr><td>Alexander Kukushkin</td></tr><tr><td>Alexander Kuzmenkov</td></tr><tr><td>Alexander Lakhin</td></tr><tr><td>Alexey Bashtanov</td></tr><tr><td>Alexey Kondratov</td></tr><tr><td>Álvaro Herrera</td></tr><tr><td>Amit Kapila</td></tr><tr><td>Amit Khandekar</td></tr><tr><td>Amit Langote</td></tr><tr><td>Amul Sul</td></tr><tr><td>Anastasia Lubennikova</td></tr><tr><td>Andreas Joseph Krogh</td></tr><tr><td>Andreas Karlsson</td></tr><tr><td>Andreas Kunert</td></tr><tr><td>Andreas Seltenreich</td></tr><tr><td>Andrei Zubkov</td></tr><tr><td>Andres Freund</td></tr><tr><td>Andrew Bille</td></tr><tr><td>Andrew Dunstan</td></tr><tr><td>Andrew Gierth</td></tr><tr><td>Andrey Borodin</td></tr><tr><td>Andrey Klychkov</td></tr><tr><td>Andrey Lepikhov</td></tr><tr><td>Anna Akenteva</td></tr><tr><td>Anna Endo</td></tr><tr><td>Anthony Nowocien</td></tr><tr><td>Anton Vlasov</td></tr><tr><td>Antonin Houska</td></tr><tr><td>Ants Aasma</td></tr><tr><td>Arne Roland</td></tr><tr><td>Arnold Müller</td></tr><tr><td>Arseny Sher</td></tr><tr><td>Arthur Nascimento</td></tr><tr><td>Arthur Zakirov</td></tr><tr><td>Ashutosh Bapat</td></tr><tr><td>Ashutosh Sharma</td></tr><tr><td>Ashwin Agrawal</td></tr><tr><td>Asif Rehman</td></tr><tr><td>Asim Praveen</td></tr><tr><td>Atsushi Torikoshi</td></tr><tr><td>Augustinas Jokubauskas</td></tr><tr><td>Austin Drenski</td></tr><tr><td>Basil Bourque</td></tr><tr><td>Beena Emerson</td></tr><tr><td>Ben Cornett</td></tr><tr><td>Benjie Gillam</td></tr><tr><td>Benoît Lobréau</td></tr><tr><td>Bernd Helmle</td></tr><tr><td>Bharath Rupireddy</td></tr><tr><td>Bhargav Kamineni</td></tr><tr><td>Binguo Bao</td></tr><tr><td>Brad DeJong</td></tr><tr><td>Brandur Leach</td></tr><tr><td>Brent Bates</td></tr><tr><td>Brian Williams</td></tr><tr><td>Bruce Momjian</td></tr><tr><td>Cameron Ezell</td></tr><tr><td>Cary Huang</td></tr><tr><td>Chapman Flack</td></tr><tr><td>Charles Offenbacher</td></tr><tr><td>Chen Huajun</td></tr><tr><td>Chenyang Lu</td></tr><tr><td>Chris Bandy</td></tr><tr><td>Chris Travers</td></tr><tr><td>Christoph Berg</td></tr><tr><td>Christophe Courtois</td></tr><tr><td>Corey Huinker</td></tr><tr><td>Craig Ringer</td></tr><tr><td>Cuiping Lin</td></tr><tr><td>Dagfinn Ilmari Mannsåker</td></tr><tr><td>Daniel Fiori</td></tr><tr><td>Daniel Gustafsson</td></tr><tr><td>Daniel Vérité</td></tr><tr><td>Daniel Westermann</td></tr><tr><td>Darafei Praliaskouski</td></tr><tr><td>Daryl Waycott</td></tr><tr><td>Dave Cramer</td></tr><tr><td>David Christensen</td></tr><tr><td>David Fetter</td></tr><tr><td>David G. Johnston</td></tr><tr><td>David Gilman</td></tr><tr><td>David Harper</td></tr><tr><td>David Rowley</td></tr><tr><td>David Steele</td></tr><tr><td>David Zhang</td></tr><tr><td>Davinder Singh</td></tr><tr><td>Dean Rasheed</td></tr><tr><td>Denis Stuchalin</td></tr><tr><td>Dent John</td></tr><tr><td>Didier Gautheron</td></tr><tr><td>Dilip Kumar</td></tr><tr><td>Dmitry Belyavsky</td></tr><tr><td>Dmitry Dolgov</td></tr><tr><td>Dmitry Ivanov</td></tr><tr><td>Dmitry Telpt</td></tr><tr><td>Dmitry Uspenskiy</td></tr><tr><td>Dominik Czarnota</td></tr><tr><td>Dongming Liu</td></tr><tr><td>Ed Morley</td></tr><tr><td>Edmund Horner</td></tr><tr><td>Emre Hasegeli</td></tr><tr><td>Eric Gillum</td></tr><tr><td>Erik Rijkers</td></tr><tr><td>Erwin Brandstetter</td></tr><tr><td>Ethan Waldo</td></tr><tr><td>Etsuro Fujita</td></tr><tr><td>Eugen Konkov</td></tr><tr><td>Euler Taveira</td></tr><tr><td>Fabien Coelho</td></tr><tr><td>Fabrízio de Royes Mello</td></tr><tr><td>Felix Lechner</td></tr><tr><td>Filip Janus</td></tr><tr><td>Filip Rembialkowski</td></tr><tr><td>Frank Gagnepain</td></tr><tr><td>Georgios Kokolatos</td></tr><tr><td>Gilles Darold</td></tr><tr><td>Greg Nancarrow</td></tr><tr><td>Grigory Smolkin</td></tr><tr><td>Guancheng Luo</td></tr><tr><td>Guillaume Lelarge</td></tr><tr><td>Hadi Moshayedi</td></tr><tr><td>Haiying Tang</td></tr><tr><td>Hamid Akhtar</td></tr><tr><td>Hans Buschmann</td></tr><tr><td>Hao Wu</td></tr><tr><td>Haribabu Kommi</td></tr><tr><td>Haruka Takatsuka</td></tr><tr><td>Heath Lord</td></tr><tr><td>Heikki Linnakangas</td></tr><tr><td>Himanshu Upadhyaya</td></tr><tr><td>Hironobu Suzuki</td></tr><tr><td>Hugh McMaster</td></tr><tr><td>Hugh Ranalli</td></tr><tr><td>Hugh Wang</td></tr><tr><td>Ian Barwick</td></tr><tr><td>Ibrar Ahmed</td></tr><tr><td>Ildar Musin</td></tr><tr><td>Insung Moon</td></tr><tr><td>Ireneusz Pluta</td></tr><tr><td>Isaac Morland</td></tr><tr><td>Ivan Kartyshov</td></tr><tr><td>Ivan Panchenko</td></tr><tr><td>Ivan Sergio Borgonovo</td></tr><tr><td>Jaime Casanova</td></tr><tr><td>James Coleman</td></tr><tr><td>James Gray</td></tr><tr><td>James Hunter</td></tr><tr><td>James Inform</td></tr><tr><td>James Lucas</td></tr><tr><td>Jan Mussler</td></tr><tr><td>Jaroslav Sivy</td></tr><tr><td>Jeevan Chalke</td></tr><tr><td>Jeevan Ladhe</td></tr><tr><td>Jeff Davis</td></tr><tr><td>Jeff Janes</td></tr><tr><td>Jehan-Guillaume de Rorthais</td></tr><tr><td>Jeremy Evans</td></tr><tr><td>Jeremy Schneider</td></tr><tr><td>Jeremy Smith</td></tr><tr><td>Jerry Sievers</td></tr><tr><td>Jesper Pedersen</td></tr><tr><td>Jesse Kinkead</td></tr><tr><td>Jesse Zhang</td></tr><tr><td>Jian Zhang</td></tr><tr><td>Jie Zhang</td></tr><tr><td>Jim Nasby</td></tr><tr><td>Jimmy Yih</td></tr><tr><td>Jobin Augustine</td></tr><tr><td>Joe Conway</td></tr><tr><td>John Hsu</td></tr><tr><td>John Naylor</td></tr><tr><td>Jon Jensen</td></tr><tr><td>Jonathan Katz</td></tr><tr><td>Jorge Gustavo Rocha</td></tr><tr><td>Josef Šimánek</td></tr><tr><td>Joseph Nahmias</td></tr><tr><td>Juan José Santamaría Flecha</td></tr><tr><td>Julian Backes</td></tr><tr><td>Julien Rouhaud</td></tr><tr><td>Jürgen Purtz</td></tr><tr><td>Justin King</td></tr><tr><td>Justin Pryzby</td></tr><tr><td>Karl O. Pinc</td></tr><tr><td>Keisuke Kuroda</td></tr><tr><td>Keith Fiske</td></tr><tr><td>Kelly Min</td></tr><tr><td>Ken Tanzer</td></tr><tr><td>Kirill Bychik</td></tr><tr><td>Kirk Jamison</td></tr><tr><td>Konstantin Knizhnik</td></tr><tr><td>Kuntal Ghosh</td></tr><tr><td>Kyle Kingsbury</td></tr><tr><td>Kyotaro Horiguchi</td></tr><tr><td>Lars Kanis</td></tr><tr><td>Laurenz Albe</td></tr><tr><td>Leif Gunnar Erlandsen</td></tr><tr><td>Li Japin</td></tr><tr><td>Liudmila Mantrova</td></tr><tr><td>Lucas Viecelli</td></tr><tr><td>Luis M. Carril</td></tr><tr><td>Lukáš Sobotka</td></tr><tr><td>Maciek Sakrejda</td></tr><tr><td>Magnus Hagander</td></tr><tr><td>Mahadevan Ramachandran</td></tr><tr><td>Mahendra Singh Thalor</td></tr><tr><td>Manuel Rigger</td></tr><tr><td>Marc Munro</td></tr><tr><td>Marcos David</td></tr><tr><td>Marina Polyakova</td></tr><tr><td>Mark Dilger</td></tr><tr><td>Mark Wong</td></tr><tr><td>Marko Tiikkaja</td></tr><tr><td>Markus Winand</td></tr><tr><td>Marti Raudsepp</td></tr><tr><td>Martijn van Oosterhout</td></tr><tr><td>Masahiko Sawada</td></tr><tr><td>Masahiro Ikeda</td></tr><tr><td>Masao Fujii</td></tr><tr><td>Mateusz Guzik</td></tr><tr><td>Matt Jibson</td></tr><tr><td>Matteo Beccati</td></tr><tr><td>Maxence Ahlouche</td></tr><tr><td>Melanie Plageman</td></tr><tr><td>Michael Banck</td></tr><tr><td>Michael Luo</td></tr><tr><td>Michael Meskes</td></tr><tr><td>Michael Paquier</td></tr><tr><td>Michail Nikolaev</td></tr><tr><td>Mike Palmiotto</td></tr><tr><td>Mithun Cy</td></tr><tr><td>Movead Li</td></tr><tr><td>Nathan Bossart</td></tr><tr><td>Nazli Ugur Koyluoglu</td></tr><tr><td>Neha Sharma</td></tr><tr><td>Nicola Contu</td></tr><tr><td>Nicolás Alvarez</td></tr><tr><td>Nikhil Sontakke</td></tr><tr><td>Nikita Glukhov</td></tr><tr><td>Nikolay Shaplov</td></tr><tr><td>Nino Floris</td></tr><tr><td>Noah Misch</td></tr><tr><td>Noriyoshi Shinoda</td></tr><tr><td>Oleg Bartunov</td></tr><tr><td>Oleg Samoilov</td></tr><tr><td>Oleksii Kliukin</td></tr><tr><td>Ondrej Jirman</td></tr><tr><td>Panagiotis Mavrogiorgos</td></tr><tr><td>Pascal Legrand</td></tr><tr><td>Patrick McHardy</td></tr><tr><td>Paul Guo</td></tr><tr><td>Paul Jungwirth</td></tr><tr><td>Paul Ramsey</td></tr><tr><td>Paul Sivash</td></tr><tr><td>Paul Spencer</td></tr><tr><td>Pavan Deolasee</td></tr><tr><td>Pavel Borisov</td></tr><tr><td>Pavel Luzanov</td></tr><tr><td>Pavel Stehule</td></tr><tr><td>Pavel Suderevsky</td></tr><tr><td>Peifeng Qiu</td></tr><tr><td>Pengzhou Tang</td></tr><tr><td>Peter Billen</td></tr><tr><td>Peter Eisentraut</td></tr><tr><td>Peter Geoghegan</td></tr><tr><td>Peter Smith</td></tr><tr><td>Petr Fedorov</td></tr><tr><td>Petr Jelínek</td></tr><tr><td>Phil Bayer</td></tr><tr><td>Philip Semanchuk</td></tr><tr><td>Philippe Beaudoin</td></tr><tr><td>Pierre Ducroquet</td></tr><tr><td>Pierre Giraud</td></tr><tr><td>Piotr Gabriel Kosinski</td></tr><tr><td>Piotr Wlodarczyk</td></tr><tr><td>Prabhat Sahu</td></tr><tr><td>Quan Zongliang</td></tr><tr><td>Quentin Rameau</td></tr><tr><td>Rafael Castro</td></tr><tr><td>Rafia Sabih</td></tr><tr><td>Raj Mohite</td></tr><tr><td>Rajkumar Raghuwanshi</td></tr><tr><td>Ramanarayana M</td></tr><tr><td>Ranier Vilela</td></tr><tr><td>Rares Salcudean</td></tr><tr><td>Raúl Marín Rodríguez</td></tr><tr><td>Raymond Martin</td></tr><tr><td>Reijo Suhonen</td></tr><tr><td>Richard Guo</td></tr><tr><td>Robert Ford</td></tr><tr><td>Robert Haas</td></tr><tr><td>Robert Kahlert</td></tr><tr><td>Robert Treat</td></tr><tr><td>Robin Abbi</td></tr><tr><td>Robins Tharakan</td></tr><tr><td>Roger Harkavy</td></tr><tr><td>Roman Peshkurov</td></tr><tr><td>Rui DeSousa</td></tr><tr><td>Rui Hai Jiang</td></tr><tr><td>Rushabh Lathia</td></tr><tr><td>Ryan Lambert</td></tr><tr><td>Ryohei Takahashi</td></tr><tr><td>Scott Ribe</td></tr><tr><td>Sean Farrell</td></tr><tr><td>Sehrope Sarkuni</td></tr><tr><td>Sergei Agalakov</td></tr><tr><td>Sergei Kornilov</td></tr><tr><td>Sergey Cherkashin</td></tr><tr><td>Shawn Debnath</td></tr><tr><td>Shawn Wang</td></tr><tr><td>Shay Rojansky</td></tr><tr><td>Shenhao Wang</td></tr><tr><td>Simon Riggs</td></tr><tr><td>Slawomir Chodnicki</td></tr><tr><td>Soumyadeep Chakraborty</td></tr><tr><td>Stéphane Lorek</td></tr><tr><td>Stephen Frost</td></tr><tr><td>Steve Rogerson</td></tr><tr><td>Steven Winfield</td></tr><tr><td>Surafel Temesgen</td></tr><tr><td>Suraj Kharage</td></tr><tr><td>Takanori Asaba</td></tr><tr><td>Takao Fujii</td></tr><tr><td>Takayuki Tsunakawa</td></tr><tr><td>Takuma Hoshiai</td></tr><tr><td>Tatsuhito Kasahara</td></tr><tr><td>Tatsuo Ishii</td></tr><tr><td>Tatsuro Yamada</td></tr><tr><td>Taylor Vesely</td></tr><tr><td>Teodor Sigaev</td></tr><tr><td>Tham Nguyen</td></tr><tr><td>Thibaut Madelaine</td></tr><tr><td>Thom Brown</td></tr><tr><td>Thomas Kellerer</td></tr><tr><td>Thomas Munro</td></tr><tr><td>Tiago Anastacio</td></tr><tr><td>Tim Clarke</td></tr><tr><td>Tim Möhlmann</td></tr><tr><td>Tom Ellis</td></tr><tr><td>Tom Gottfried</td></tr><tr><td>Tom Lane</td></tr><tr><td>Tomas Vondra</td></tr><tr><td>Tuomas Leikola</td></tr><tr><td>Tushar Ahuja</td></tr><tr><td>Victor Wagner</td></tr><tr><td>Victor Yegorov</td></tr><tr><td>Vignesh C</td></tr><tr><td>Vik Fearing</td></tr><tr><td>Vinay Banakar</td></tr><tr><td>Vladimir Leskov</td></tr><tr><td>Vladimir Sitnikov</td></tr><tr><td>Vyacheslav Makarov</td></tr><tr><td>Vyacheslav Shablistyy</td></tr><tr><td>Will Leinweber</td></tr><tr><td>William Crowell</td></tr><tr><td>Wyatt Alt</td></tr><tr><td>Yang Xiao</td></tr><tr><td>Yaroslav Schekin</td></tr><tr><td>Yi Huang</td></tr><tr><td>Yigong Hu</td></tr><tr><td>Yoann La Cancellera</td></tr><tr><td>Yoshikazu Imai</td></tr><tr><td>Yu Kimura</td></tr><tr><td>Yugo Nagata</td></tr><tr><td>Yuli Khodorkovskiy</td></tr><tr><td>Yusuke Egashira</td></tr><tr><td>Yuya Watari</td></tr><tr><td>Yuzuko Hosoya</td></tr><tr><td>ZhenHua Cai</td></tr></table></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-13-1.html" title="E.4. Release 13.1">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-prior.html" title="E.6. Prior Releases">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.4. Release 13.1 </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 13.4 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.6. Prior Releases</td></tr></table></div></body></html>
\ No newline at end of file |