/
Ao
/
MaxReport
Обзор
Документация
Войти
/
Ao
/
MaxReport
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
pgsql/doc/src/sgml/html/release-18.html
1 487 строк
139 KB
AoAnima
first_commit
13 июл 2026, 17:47
13 июл 2026, 17:47
f1a670a
Код
Авторство
О чём код?
<?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 18</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 Vsnapshot" /><link rel="prev" href="release-18-1.html" title="E.4. Release 18.1" /><link rel="next" href="release-prior.html" title="E.6. Prior Releases" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.5. Release 18</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-18-1.html" title="E.4. Release 18.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 18.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 /></div><div class="sect1" id="RELEASE-18"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.5. Release 18 <a href="#RELEASE-18" class="id_link">#</a></h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-18.html#RELEASE-18-HIGHLIGHTS">E.5.1. Overview</a></span></dt><dt><span class="sect2"><a href="release-18.html#RELEASE-18-MIGRATION">E.5.2. Migration to Version 18</a></span></dt><dt><span class="sect2"><a href="release-18.html#RELEASE-18-CHANGES">E.5.3. Changes</a></span></dt><dt><span class="sect2"><a href="release-18.html#RELEASE-18-ACKNOWLEDGEMENTS">E.5.4. Acknowledgments</a></span></dt></dl></div><p><strong>Release date: </strong>2025-09-25</p><div class="sect2" id="RELEASE-18-HIGHLIGHTS"><div class="titlepage"><div><div><h3 class="title">E.5.1. Overview <a href="#RELEASE-18-HIGHLIGHTS" class="id_link">#</a></h3></div></div></div><p> <span class="productname">PostgreSQL</span> 18 contains many new features and enhancements, including: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> An asynchronous I/O (AIO) subsystem that can improve performance of sequential scans, bitmap heap scans, vacuums, and other operations. </p></li><li class="listitem"><p> <a class="link" href="pgupgrade.html" title="pg_upgrade"><span class="application">pg_upgrade</span></a> now retains optimizer statistics. </p></li><li class="listitem"><p> Support for "skip scan" lookups that allow using <a class="link" href="indexes-multicolumn.html" title="11.3. Multicolumn Indexes">multicolumn B-tree indexes</a> in more cases. </p></li><li class="listitem"><p> <a class="link" href="functions-uuid.html#FUNC_UUID_GEN_TABLE" title="Table 9.45. UUID Generation Functions"><code class="function">uuidv7()</code></a> function for generating timestamp-ordered <a class="link" href="datatype-uuid.html" title="8.12. UUID Type">UUIDs</a>. </p></li><li class="listitem"><p> Virtual <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED">generated columns</a> that compute their values during read operations. This is now the default for generated columns. </p></li><li class="listitem"><p> <a class="link" href="auth-oauth.html" title="20.15. OAuth Authorization/Authentication">OAuth authentication</a> support. </p></li><li class="listitem"><p> <code class="literal">OLD</code> and <code class="literal">NEW</code> support for <a class="link" href="dml-returning.html" title="6.4. Returning Data from Modified Rows"><code class="literal">RETURNING</code></a> clauses in <a class="xref" href="sql-insert.html" title="INSERT"><span class="refentrytitle">INSERT</span></a>, <a class="xref" href="sql-update.html" title="UPDATE"><span class="refentrytitle">UPDATE</span></a>, <a class="xref" href="sql-delete.html" title="DELETE"><span class="refentrytitle">DELETE</span></a>, and <a class="xref" href="sql-merge.html" title="MERGE"><span class="refentrytitle">MERGE</span></a> commands. </p></li><li class="listitem"><p> Temporal constraints, or constraints over ranges, for <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY">PRIMARY KEY</a>, <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE">UNIQUE</a>, and <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES">FOREIGN KEY</a> constraints. </p></li></ul></div><p> The above items and other new features of <span class="productname">PostgreSQL</span> 18 are explained in more detail in the sections below. </p></div><div class="sect2" id="RELEASE-18-MIGRATION"><div class="titlepage"><div><div><h3 class="title">E.5.2. Migration to Version 18 <a href="#RELEASE-18-MIGRATION" class="id_link">#</a></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 18 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="xref" href="app-initdb.html" title="initdb"><span class="refentrytitle"><span class="application">initdb</span></span></a> default to enable data checksums (Greg Sabino Mullane) <a class="ulink" href="https://postgr.es/c/04bec894a04" target="_top">§</a> </p><p> Checksums can be disabled with the new <span class="application">initdb</span> option <code class="option">--no-data-checksums</code>. <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a> requires matching cluster checksum settings, so this new option can be useful to upgrade non-checksum old clusters. </p></li><li class="listitem"><p> Change time zone abbreviation handling (Tom Lane) <a class="ulink" href="https://postgr.es/c/d7674c9fa" target="_top">§</a> </p><p> The system will now favor the current session's time zone abbreviations before checking the server variable <a class="xref" href="runtime-config-client.html#GUC-TIMEZONE-ABBREVIATIONS">timezone_abbreviations</a>. Previously <code class="varname">timezone_abbreviations</code> was checked first. </p></li><li class="listitem"><p> Deprecate <a class="link" href="auth-password.html" title="20.5. Password Authentication">MD5 password</a> authentication (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/db6a4a985" target="_top">§</a> </p><p> Support for MD5 passwords will be removed in a future major version release. <a class="xref" href="sql-createrole.html" title="CREATE ROLE"><span class="refentrytitle">CREATE ROLE</span></a> and <a class="xref" href="sql-alterrole.html" title="ALTER ROLE"><span class="refentrytitle">ALTER ROLE</span></a> now emit deprecation warnings when setting MD5 passwords. These warnings can be disabled by setting the <a class="xref" href="runtime-config-connection.html#GUC-MD5-PASSWORD-WARNINGS">md5_password_warnings</a> parameter to <code class="literal">off</code>. </p></li><li class="listitem"><p> Change <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> and <a class="xref" href="sql-analyze.html" title="ANALYZE"><span class="refentrytitle">ANALYZE</span></a> to process the inheritance children of a parent (Michael Harris) <a class="ulink" href="https://postgr.es/c/62ddf7ee9" target="_top">§</a> </p><p> The previous behavior can be performed by using the new <code class="literal">ONLY</code> option. </p></li><li class="listitem"><p> Prevent <a class="link" href="sql-copy.html" title="COPY"><code class="command">COPY FROM</code></a> from treating <code class="literal">\.</code> as an end-of-file marker when reading <acronym class="acronym">CSV</acronym> files (Daniel Vérité, Tom Lane) <a class="ulink" href="https://postgr.es/c/770233748" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/da8a4c166" target="_top">§</a> </p><p> <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a> will still treat <code class="literal">\.</code> as an end-of-file marker when reading <acronym class="acronym">CSV</acronym> files from <code class="literal">STDIN</code>. Older <span class="application">psql</span> clients connecting to <span class="productname">PostgreSQL</span> 18 servers might experience <a class="link" href="app-psql.html#APP-PSQL-META-COMMANDS-COPY"><code class="literal">\copy</code></a> problems. This release also enforces that <code class="literal">\.</code> must appear alone on a line. </p></li><li class="listitem"><p> Disallow unlogged partitioned tables (Michael Paquier) <a class="ulink" href="https://postgr.es/c/e2bab2d79" target="_top">§</a> </p><p> Previously <a class="link" href="sql-altertable.html" title="ALTER TABLE"><code class="command">ALTER TABLE SET [UN]LOGGED</code></a> did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged. </p></li><li class="listitem"><p> Execute <code class="literal">AFTER</code> <a class="link" href="triggers.html" title="Chapter 37. Triggers">triggers</a> as the role that was active when trigger events were queued (Laurenz Albe) <a class="ulink" href="https://postgr.es/c/01463e1cc" target="_top">§</a> </p><p> Previously such triggers were run as the role that was active at trigger execution time (e.g., at <a class="xref" href="sql-commit.html" title="COMMIT"><span class="refentrytitle">COMMIT</span></a>). This is significant for cases where the role is changed between queue time and transaction commit. </p></li><li class="listitem"><p> Remove non-functional support for rule privileges in <a class="xref" href="sql-grant.html" title="GRANT"><span class="refentrytitle">GRANT</span></a>/<a class="xref" href="sql-revoke.html" title="REVOKE"><span class="refentrytitle">REVOKE</span></a> (Fujii Masao) <a class="ulink" href="https://postgr.es/c/fefa76f70" target="_top">§</a> </p><p> These have been non-functional since <span class="productname">PostgreSQL</span> 8.2. </p></li><li class="listitem"><p> Remove column <a class="link" href="view-pg-backend-memory-contexts.html" title="53.5. pg_backend_memory_contexts"><code class="structname">pg_backend_memory_contexts</code></a>.<code class="structfield">parent</code> (Melih Mutlu) <a class="ulink" href="https://postgr.es/c/f0d112759" target="_top">§</a> </p><p> This is no longer needed since <code class="structname">pg_backend_memory_contexts</code>.<code class="structfield">path</code> was added. </p></li><li class="listitem"><p> Change <code class="structname">pg_backend_memory_contexts</code>.<code class="structfield">level</code> and <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE" title="Table 9.96. Server Signaling Functions"><code class="function">pg_log_backend_memory_contexts()</code></a> to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) <a class="ulink" href="https://postgr.es/c/32d3ed816" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/d9e03864b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/706cbed35" target="_top">§</a> </p><p> These were previously zero-based. </p></li><li class="listitem"><p> Change <a class="link" href="textsearch.html" title="Chapter 12. Full Text Search">full text search</a> to use the default collation provider of the cluster to read configuration files and dictionaries, rather than always using libc (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/fb1a18810f0" target="_top">§</a> </p><p> Clusters that default to non-libc collation providers (e.g., ICU, builtin) that behave differently than libc for characters processed by LC_CTYPE could observe changes in behavior of some full-text search functions, as well as the <a class="xref" href="pgtrgm.html" title="F.35. pg_trgm — support for similarity of text using trigram matching">pg_trgm</a> extension. When upgrading such clusters using <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a>, it is recommended to reindex all indexes related to full-text search and <span class="application">pg_trgm</span> after the upgrade. </p></li></ul></div></div><div class="sect2" id="RELEASE-18-CHANGES"><div class="titlepage"><div><div><h3 class="title">E.5.3. Changes <a href="#RELEASE-18-CHANGES" class="id_link">#</a></h3></div></div></div><p> Below you will find a detailed account of the changes between <span class="productname">PostgreSQL</span> 18 and the previous major release. </p><div class="sect3" id="RELEASE-18-SERVER"><div class="titlepage"><div><div><h4 class="title">E.5.3.1. Server <a href="#RELEASE-18-SERVER" class="id_link">#</a></h4></div></div></div><div class="sect4" id="RELEASE-18-OPTIMIZER"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.1. Optimizer <a href="#RELEASE-18-OPTIMIZER" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Automatically remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) <a class="ulink" href="https://postgr.es/c/fc069a3a6" target="_top">§</a> </p><p> This optimization can be disabled using server variable <a class="xref" href="runtime-config-query.html#GUC-ENABLE-SELF-JOIN-ELIMINATION">enable_self_join_elimination</a>. </p></li><li class="listitem"><p> Convert some <a class="link" href="functions-comparisons.html#FUNCTIONS-COMPARISONS-IN-SCALAR" title="9.25.1. IN"><code class="literal">IN (VALUES ...)</code></a> to <code class="literal">x = ANY ...</code> for better optimizer statistics (Alena Rybakina, Andrei Lepikhov) <a class="ulink" href="https://postgr.es/c/c0962a113" target="_top">§</a> </p></li><li class="listitem"><p> Allow transforming <a class="link" href="functions-logical.html" title="9.1. Logical Operators"><code class="literal">OR</code></a>-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov) <a class="ulink" href="https://postgr.es/c/ae4569161" target="_top">§</a> </p></li><li class="listitem"><p> Speed up the processing of <a class="link" href="sql-select.html#SQL-INTERSECT" title="INTERSECT Clause"><code class="literal">INTERSECT</code></a>, <a class="link" href="sql-select.html#SQL-EXCEPT" title="EXCEPT Clause"><code class="literal">EXCEPT</code></a>, <a class="link" href="tutorial-window.html" title="3.5. Window Functions">window aggregates</a>, and <a class="link" href="sql-createview.html" title="CREATE VIEW">view column aliases</a> (Tom Lane, David Rowley) <a class="ulink" href="https://postgr.es/c/52c707483" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/276279295" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/8d96f57d5" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/908a96861" target="_top">§</a> </p></li><li class="listitem"><p> Allow the keys of <a class="link" href="sql-select.html#SQL-DISTINCT" title="DISTINCT Clause"><code class="command">SELECT DISTINCT</code></a> to be internally reordered to avoid sorting (Richard Guo) <a class="ulink" href="https://postgr.es/c/a8ccf4e93" target="_top">§</a> </p><p> This optimization can be disabled using <a class="xref" href="runtime-config-query.html#GUC-ENABLE-DISTINCT-REORDERING">enable_distinct_reordering</a>. </p></li><li class="listitem"><p> Ignore <a class="link" href="sql-select.html#SQL-GROUPBY" title="GROUP BY Clause"><code class="literal">GROUP BY</code></a> columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) <a class="ulink" href="https://postgr.es/c/bd10ec529" target="_top">§</a> </p><p> If a <code class="literal">GROUP BY</code> clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped from the grouping. This was already true for non-deferred primary keys. </p></li><li class="listitem"><p> Allow some <a class="link" href="sql-select.html#SQL-HAVING" title="HAVING Clause"><code class="literal">HAVING</code></a> clauses on <a class="link" href="queries-table-expressions.html#QUERIES-GROUPING-SETS" title="7.2.4. GROUPING SETS, CUBE, and ROLLUP"><code class="literal">GROUPING SETS</code></a> to be pushed to <a class="link" href="sql-select.html#SQL-WHERE" title="WHERE Clause"><code class="literal">WHERE</code></a> clauses (Richard Guo) <a class="ulink" href="https://postgr.es/c/67a54b9e8" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/247dea89f" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/f5050f795" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/cc5d98525" target="_top">§</a> </p><p> This allows earlier row filtering. This release also fixes some <code class="literal">GROUPING SETS</code> queries that used to return incorrect results. </p></li><li class="listitem"><p> Improve row estimates for <a class="link" href="functions-srf.html#FUNCTIONS-SRF-SERIES" title="Table 9.69. Series Generating Functions"><code class="function">generate_series()</code></a> using <a class="link" href="datatype-numeric.html" title="8.1. Numeric Types"><code class="type">numeric</code></a> and <a class="link" href="datatype-datetime.html" title="8.5. Date/Time Types"><code class="type">timestamp</code></a> values (David Rowley, Song Jinzhou) <a class="ulink" href="https://postgr.es/c/036bdcec9" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/97173536e" target="_top">§</a> </p></li><li class="listitem"><p> Allow the optimizer to use <code class="literal">Right Semi Join</code> plans (Richard Guo) <a class="ulink" href="https://postgr.es/c/aa86129e1" target="_top">§</a> </p><p> Semi-joins are used when needing to find if there is at least one match. </p></li><li class="listitem"><p> Allow merge joins to use <a class="link" href="runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT">incremental sorts</a> (Richard Guo) <a class="ulink" href="https://postgr.es/c/828e94c9d" target="_top">§</a> </p></li><li class="listitem"><p> Improve the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley) <a class="ulink" href="https://postgr.es/c/88f55bc97" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/d69d45a5a" target="_top">§</a> </p></li><li class="listitem"><p> Allow <a class="link" href="runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-JOIN">partitionwise joins</a> in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat) <a class="ulink" href="https://postgr.es/c/9b282a935" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/513f4472a" target="_top">§</a> </p></li><li class="listitem"><p> Improve cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov) <a class="ulink" href="https://postgr.es/c/fae535da0" target="_top">§</a> </p></li><li class="listitem"><p> Improve <a class="link" href="xfunc-sql.html" title="36.5. Query Language (SQL) Functions"><acronym class="acronym">SQL</acronym>-language function</a> plan caching (Alexander Pyhalov, Tom Lane) <a class="ulink" href="https://postgr.es/c/0dca5d68d" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/09b07c295" target="_top">§</a> </p></li><li class="listitem"><p> Improve handling of disabled optimizer features (Robert Haas) <a class="ulink" href="https://postgr.es/c/e22253467" target="_top">§</a> </p></li></ul></div></div><div class="sect4" id="RELEASE-18-INDEXES"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.2. Indexes <a href="#RELEASE-18-INDEXES" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow skip scans of <a class="link" href="xfunc-sql.html" title="36.5. Query Language (SQL) Functions">btree</a> indexes (Peter Geoghegan) <a class="ulink" href="https://postgr.es/c/92fe23d93" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/8a510275d" target="_top">§</a> </p><p> This allows multi-column btree indexes to be used in more cases such as when there are no restrictions on the first or early indexed columns (or there are non-equality ones), and there are useful restrictions on later indexed columns. </p></li><li class="listitem"><p> Allow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) <a class="ulink" href="https://postgr.es/c/f278e1fe3" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/9d6db8bec" target="_top">§</a> </p><p> The index type must still support equality. </p></li><li class="listitem"><p> Allow <a class="link" href="gin.html" title="65.4. GIN Indexes"><code class="literal">GIN</code></a> indexes to be created in parallel (Tomas Vondra, Matthias van de Meent) <a class="ulink" href="https://postgr.es/c/8492feb98" target="_top">§</a> </p></li><li class="listitem"><p> Allow values to be sorted to speed range-type <a class="link" href="gist.html" title="65.2. GiST Indexes">GiST</a> and <a class="link" href="btree.html" title="65.1. B-Tree Indexes">btree</a> index builds (Bernd Helmle) <a class="ulink" href="https://postgr.es/c/e9e7b6604" target="_top">§</a> </p></li></ul></div></div><div class="sect4" id="RELEASE-18-PERFORMANCE"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.3. General Performance <a href="#RELEASE-18-PERFORMANCE" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) <a class="ulink" href="https://postgr.es/c/02844012b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/da7226993" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/55b454d0e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/247ce06b8" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/10f664684" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/06fb5612c" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c325a7633" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/50cb7505b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/047cba7fa" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/12ce89fd0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/2a5e709e7" target="_top">§</a> </p><p> This feature allows backends to queue multiple read requests, which allows for more efficient sequential scans, bitmap heap scans, vacuums, etc. This is enabled by server variable <a class="xref" href="runtime-config-resource.html#GUC-IO-METHOD">io_method</a>, with server variables <a class="xref" href="runtime-config-resource.html#GUC-IO-COMBINE-LIMIT">io_combine_limit</a> and <a class="xref" href="runtime-config-resource.html#GUC-IO-MAX-COMBINE-LIMIT">io_max_combine_limit</a> added to control it. This also enables <a class="xref" href="runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY">effective_io_concurrency</a> and <a class="xref" href="runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY">maintenance_io_concurrency</a> values greater than zero for systems without <code class="function">fadvise()</code> support. The new system view <a class="link" href="view-pg-aios.html" title="53.2. pg_aios"><code class="structname">pg_aios</code></a> shows the file handles being used for asynchronous I/O. </p></li><li class="listitem"><p> Improve the locking performance of queries that access many relations (Tomas Vondra) <a class="ulink" href="https://postgr.es/c/c4d5cb71d" target="_top">§</a> </p></li><li class="listitem"><p> Improve the performance and reduce memory usage of hash joins and <a class="link" href="sql-select.html#SQL-GROUPBY" title="GROUP BY Clause"><code class="literal">GROUP BY</code></a> (David Rowley, Jeff Davis) <a class="ulink" href="https://postgr.es/c/adf97c156" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/0f5738202" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4d143509c" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/a0942f441" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/626df47ad" target="_top">§</a> </p><p> This also improves hash set operations used by <a class="link" href="sql-select.html#SQL-EXCEPT" title="EXCEPT Clause"><code class="literal">EXCEPT</code></a>, and hash lookups of subplan values. </p></li><li class="listitem"><p> Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) <a class="ulink" href="https://postgr.es/c/052026c9b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/06eae9e62" target="_top">§</a> </p><p> This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting <a class="xref" href="runtime-config-vacuum.html#GUC-VACUUM-MAX-EAGER-FREEZE-FAILURE-RATE">vacuum_max_eager_freeze_failure_rate</a>. Previously vacuum never processed all-visible pages until freezing was required. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-vacuum.html#GUC-VACUUM-TRUNCATE">vacuum_truncate</a> to control file truncation during <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> (Nathan Bossart, Gurjeet Singh) <a class="ulink" href="https://postgr.es/c/0164a0f9e" target="_top">§</a> </p><p> A storage-level parameter with the same name and behavior already existed. </p></li><li class="listitem"><p> Increase server variables <a class="xref" href="runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY">effective_io_concurrency</a>'s and <a class="xref" href="runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY">maintenance_io_concurrency</a>'s default values to 16 (Melanie Plageman) <a class="ulink" href="https://postgr.es/c/ff79b5b2a" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/cc6be07eb" target="_top">§</a> </p><p> This more accurately reflects modern hardware. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-MONITORING"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.4. Monitoring <a href="#RELEASE-18-MONITORING" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Increase the logging granularity of server variable <a class="xref" href="runtime-config-logging.html#GUC-LOG-CONNECTIONS">log_connections</a> (Melanie Plageman) <a class="ulink" href="https://postgr.es/c/9219093ca" target="_top">§</a> </p><p> This server variable was previously only boolean, which is still supported. </p></li><li class="listitem"><p> Add <code class="varname">log_connections</code> option to report the duration of connection stages (Melanie Plageman) <a class="ulink" href="https://postgr.es/c/18cd15e70" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="runtime-config-logging.html#GUC-LOG-LINE-PREFIX">log_line_prefix</a> escape <code class="literal">%L</code> to output the client <acronym class="acronym">IP</acronym> address (Greg Sabino Mullane) <a class="ulink" href="https://postgr.es/c/3516ea768" target="_top">§</a> </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-logging.html#GUC-LOG-LOCK-FAILURES">log_lock_failures</a> to log lock acquisition failures (Yuki Seino, Fujii Masao) <a class="ulink" href="https://postgr.es/c/6d376c3b0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/73bdcfab3" target="_top">§</a> </p><p> Specifically it reports <a class="link" href="sql-select.html#SQL-FOR-UPDATE-SHARE" title="The Locking Clause"><code class="command">SELECT ... NOWAIT</code></a> lock failures. </p></li><li class="listitem"><p> Modify <a class="link" href="monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW" title="27.2.19. pg_stat_all_tables"><code class="structname">pg_stat_all_tables</code></a> and its variants to report the time spent in <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a>, <a class="xref" href="sql-analyze.html" title="ANALYZE"><span class="refentrytitle">ANALYZE</span></a>, and their <a class="link" href="routine-vacuuming.html#AUTOVACUUM" title="24.1.6. The Autovacuum Daemon">automatic</a> variants (Sami Imseih) <a class="ulink" href="https://postgr.es/c/30a6ed0ce" target="_top">§</a> </p><p> The new columns are <code class="structfield">total_vacuum_time</code>, <code class="structfield">total_autovacuum_time</code>, <code class="structfield">total_analyze_time</code>, and <code class="structfield">total_autoanalyze_time</code>. </p></li><li class="listitem"><p> Add delay time reporting to <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> and <a class="xref" href="sql-analyze.html" title="ANALYZE"><span class="refentrytitle">ANALYZE</span></a> (Bertrand Drouvot, Nathan Bossart) <a class="ulink" href="https://postgr.es/c/bb8dff999" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/7720082ae" target="_top">§</a> </p><p> This information appears in the server log, the system views <a class="link" href="progress-reporting.html#VACUUM-PROGRESS-REPORTING" title="27.4.5. VACUUM Progress Reporting"><code class="structname">pg_stat_progress_vacuum</code></a> and <a class="link" href="progress-reporting.html#PG-STAT-PROGRESS-ANALYZE-VIEW" title="Table 27.38. pg_stat_progress_analyze View"><code class="structname">pg_stat_progress_analyze</code></a>, and the output of <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> and <a class="xref" href="sql-analyze.html" title="ANALYZE"><span class="refentrytitle">ANALYZE</span></a> when in <code class="literal">VERBOSE</code> mode; tracking must be enabled with the server variable <a class="xref" href="runtime-config-statistics.html#GUC-TRACK-COST-DELAY-TIMING">track_cost_delay_timing</a>. </p></li><li class="listitem"><p> Add <acronym class="acronym">WAL</acronym>, <acronym class="acronym">CPU</acronym>, and average read statistics output to <code class="command">ANALYZE VERBOSE</code> (Anthonin Bonnefoy) <a class="ulink" href="https://postgr.es/c/4c1b4cdb8" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/bb7775234" target="_top">§</a> </p></li><li class="listitem"><p> Add full <acronym class="acronym">WAL</acronym> buffer count to <code class="command">VACUUM</code>/<code class="command">ANALYZE (VERBOSE)</code> and autovacuum log output (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/6a8a7ce47" target="_top">§</a> </p></li><li class="listitem"><p> Add per-backend I/O statistics reporting (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/9aea73fc6" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/3f1db99bf" target="_top">§</a> </p><p> The statistics are accessed via <a class="link" href="monitoring-stats.html#PG-STAT-GET-BACKEND-IO"><code class="function">pg_stat_get_backend_io()</code></a>. Per-backend I/O statistics can be cleared via <a class="link" href="monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE" title="Table 27.36. Additional Statistics Functions"><code class="function">pg_stat_reset_backend_stats()</code></a>. </p></li><li class="listitem"><p> Add <a class="link" href="monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW" title="27.2.13. pg_stat_io"><code class="structname">pg_stat_io</code></a> columns to report I/O activity in bytes (Nazir Bilal Yavuz) <a class="ulink" href="https://postgr.es/c/f92c854cf" target="_top">§</a> </p><p> The new columns are <code class="structfield">read_bytes</code>, <code class="structfield">write_bytes</code>, and <code class="structfield">extend_bytes</code>. The <code class="structfield">op_bytes</code> column, which always equaled <a class="link" href="runtime-config-preset.html#GUC-BLOCK-SIZE"><code class="varname">BLCKSZ</code></a>, has been removed. </p></li><li class="listitem"><p> Add <acronym class="acronym">WAL</acronym> I/O activity rows to <code class="structname">pg_stat_io</code> (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) <a class="ulink" href="https://postgr.es/c/a051e71e2" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4538bd3f1" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/7f7f324eb" target="_top">§</a> </p><p> This includes <acronym class="acronym">WAL</acronym> receiver activity and a wait event for such writes. </p></li><li class="listitem"><p> Change server variable <a class="xref" href="runtime-config-statistics.html#GUC-TRACK-WAL-IO-TIMING">track_wal_io_timing</a> to control tracking <acronym class="acronym">WAL</acronym> timing in <code class="structname">pg_stat_io</code> instead of <a class="link" href="monitoring-stats.html#PG-STAT-WAL-VIEW" title="Table 27.26. pg_stat_wal View"><code class="structname">pg_stat_wal</code></a> (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/6c349d83b" target="_top">§</a> </p></li><li class="listitem"><p> Remove read/sync columns from <code class="structname">pg_stat_wal</code> (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/2421e9a51" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6c349d83b" target="_top">§</a> </p><p> This removes columns <code class="structfield">wal_write</code>, <code class="structfield">wal_sync</code>, <code class="structfield">wal_write_time</code>, and <code class="structfield">wal_sync_time</code>. </p></li><li class="listitem"><p> Add function <a class="link" href="monitoring-stats.html#PG-STAT-GET-BACKEND-WAL"><code class="function">pg_stat_get_backend_wal()</code></a> to return per-backend <acronym class="acronym">WAL</acronym> statistics (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/76def4cdd" target="_top">§</a> </p><p> Per-backend <acronym class="acronym">WAL</acronym> statistics can be cleared via <a class="link" href="monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE" title="Table 27.36. Additional Statistics Functions"><code class="function">pg_stat_reset_backend_stats()</code></a>. </p></li><li class="listitem"><p> Add function <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE" title="Table 9.108. Generic File Access Functions"><code class="function">pg_ls_summariesdir()</code></a> to specifically list the contents of <a class="link" href="storage-file-layout.html" title="66.1. Database File Layout"><code class="envar">PGDATA</code></a>/<a class="link" href="runtime-config-wal.html#GUC-WAL-SUMMARY-KEEP-TIME"><code class="filename">pg_wal/summaries</code></a> (Yushi Ogiwara) <a class="ulink" href="https://postgr.es/c/4e1fad378" target="_top">§</a> </p></li><li class="listitem"><p> Add column <a class="link" href="monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW" title="27.2.15. pg_stat_checkpointer"><code class="structname">pg_stat_checkpointer</code></a>.<code class="structfield">num_done</code> to report the number of completed checkpoints (Anton A. Melnikov) <a class="ulink" href="https://postgr.es/c/559efce1d" target="_top">§</a> </p><p> Columns <code class="structfield">num_timed</code> and <code class="structfield">num_requested</code> count both completed and skipped checkpoints. </p></li><li class="listitem"><p> Add column <code class="structname">pg_stat_checkpointer</code>.<code class="structfield">slru_written</code> to report <acronym class="acronym">SLRU</acronym> buffers written (Nitin Jadhav) <a class="ulink" href="https://postgr.es/c/17cc5f666" target="_top">§</a> </p><p> Also, modify the checkpoint server log message to report separate shared buffer and <acronym class="acronym">SLRU</acronym> buffer values. </p></li><li class="listitem"><p> Add columns to <a class="link" href="monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW" title="27.2.17. pg_stat_database"><code class="structname">pg_stat_database</code></a> to report parallel worker activity (Benoit Lobréau) <a class="ulink" href="https://postgr.es/c/e7a9496de" target="_top">§</a> </p><p> The new columns are <code class="structfield">parallel_workers_to_launch</code> and <code class="structfield">parallel_workers_launched</code>. </p></li><li class="listitem"><p> Have <a class="link" href="runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID">query id</a> computation of constant lists consider only the first and last constants (Dmitry Dolgov, Sami Imseih) <a class="ulink" href="https://postgr.es/c/62d712ecf" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/9fbd53dea" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c2da1a5d6" target="_top">§</a> </p><p> Jumbling is used by <a class="xref" href="pgstatstatements.html" title="F.32. pg_stat_statements — track statistics of SQL planning and execution">pg_stat_statements</a>. </p></li><li class="listitem"><p> Adjust query id computations to group together queries using the same relation name (Michael Paquier, Sami Imseih) <a class="ulink" href="https://postgr.es/c/787514b30" target="_top">§</a> </p><p> This is true even if the tables in different schemas have different column names. </p></li><li class="listitem"><p> Add column <a class="link" href="view-pg-backend-memory-contexts.html" title="53.5. pg_backend_memory_contexts"><code class="structname">pg_backend_memory_contexts</code></a>.<code class="structfield">type</code> to report the type of memory context (David Rowley) <a class="ulink" href="https://postgr.es/c/12227a1d5" target="_top">§</a> </p></li><li class="listitem"><p> Add column <code class="structname">pg_backend_memory_contexts</code>.<code class="structfield">path</code> to show memory context parents (Melih Mutlu) <a class="ulink" href="https://postgr.es/c/32d3ed816" target="_top">§</a> </p></li></ul></div></div><div class="sect4" id="RELEASE-18-PRIVILEGES"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.5. Privileges <a href="#RELEASE-18-PRIVILEGES" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add function <a class="link" href="functions-info.html#FUNCTIONS-INFO-OBJECT-TABLE" title="Table 9.81. Object Information and Addressing Functions"><code class="function">pg_get_acl()</code></a> to retrieve database access control details (Joel Jacobson) <a class="ulink" href="https://postgr.es/c/4564f1ceb" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/d898665bf" target="_top">§</a> </p></li><li class="listitem"><p> Add function <a class="link" href="functions-info.html#FUNCTIONS-INFO-ACCESS-TABLE" title="Table 9.72. Access Privilege Inquiry Functions"><code class="function">has_largeobject_privilege()</code></a> to check large object privileges (Yugo Nagata) <a class="ulink" href="https://postgr.es/c/4eada203a" target="_top">§</a> </p></li><li class="listitem"><p> Allow <a class="xref" href="sql-alterdefaultprivileges.html" title="ALTER DEFAULT PRIVILEGES"><span class="refentrytitle">ALTER DEFAULT PRIVILEGES</span></a> to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) <a class="ulink" href="https://postgr.es/c/0d6c47766" target="_top">§</a> </p></li><li class="listitem"><p> Add predefined role <a class="link" href="predefined-roles.html" title="21.5. Predefined Roles"><code class="literal">pg_signal_autovacuum_worker</code></a> (Kirill Reshke) <a class="ulink" href="https://postgr.es/c/ccd38024b" target="_top">§</a> </p><p> This allows sending signals to autovacuum workers. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-SERVER-CONFIG"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.6. Server Configuration <a href="#RELEASE-18-SERVER-CONFIG" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add support for the <a class="link" href="auth-oauth.html" title="20.15. OAuth Authorization/Authentication">OAuth authentication method</a> (Jacob Champion, Daniel Gustafsson, Thomas Munro) <a class="ulink" href="https://postgr.es/c/b3f0be788" target="_top">§</a> </p><p> This adds an <code class="literal">oauth</code> authentication method to <a class="link" href="auth-pg-hba-conf.html" title="20.1. The pg_hba.conf File"><code class="filename">pg_hba.conf</code></a>, libpq OAuth options, a server variable <a class="xref" href="runtime-config-connection.html#GUC-OAUTH-VALIDATOR-LIBRARIES">oauth_validator_libraries</a> to load token validation libraries, and a configure flag <a class="link" href="install-make.html#CONFIGURE-OPTION-WITH-LIBCURL"><code class="option">--with-libcurl</code></a> to add the required compile-time libraries. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS">ssl_tls13_ciphers</a> to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/45188c2ea" target="_top">§</a> </p></li><li class="listitem"><p> Change server variable <a class="xref" href="runtime-config-connection.html#GUC-SSL-GROUPS">ssl_groups</a>'s default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion) <a class="ulink" href="https://postgr.es/c/daa02c6bd" target="_top">§</a> </p></li><li class="listitem"><p> Rename server variable <code class="varname">ssl_ecdh_curve</code> to <a class="xref" href="runtime-config-connection.html#GUC-SSL-GROUPS">ssl_groups</a> and allow multiple colon-separated <acronym class="acronym">ECDH</acronym> curves to be specified (Erica Zhang, Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/3d1ef3a15" target="_top">§</a> </p><p> The previous name still works. </p></li><li class="listitem"><p> Make <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE" title="Table 9.96. Server Signaling Functions">cancel request keys</a> 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) <a class="ulink" href="https://postgr.es/c/a460251f0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/9d9b9d46f" target="_top">§</a> </p><p> This is only possible when the server and client support wire protocol version 3.2, introduced in this release. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-vacuum.html#GUC-AUTOVACUUM-WORKER-SLOTS">autovacuum_worker_slots</a> to specify the maximum number of background workers (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/c758119e5" target="_top">§</a> </p><p> With this variable set, <a class="xref" href="runtime-config-vacuum.html#GUC-AUTOVACUUM-MAX-WORKERS">autovacuum_max_workers</a> can be adjusted at runtime up to this maximum without a server restart. </p></li><li class="listitem"><p> Allow specification of the fixed number of dead tuples that will trigger an <a class="link" href="routine-vacuuming.html#AUTOVACUUM" title="24.1.6. The Autovacuum Daemon">autovacuum</a> (Nathan Bossart, Frédéric Yhuel) <a class="ulink" href="https://postgr.es/c/306dc520b" target="_top">§</a> </p><p> The server variable is <a class="xref" href="runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-MAX-THRESHOLD">autovacuum_vacuum_max_threshold</a>. Percentages are still used for triggering. </p></li><li class="listitem"><p> Change server variable <a class="xref" href="runtime-config-resource.html#GUC-MAX-FILES-PER-PROCESS">max_files_per_process</a> to limit only files opened by a backend (Andres Freund) <a class="ulink" href="https://postgr.es/c/adb5f85fa" target="_top">§</a> </p><p> Previously files opened by the postmaster were also counted toward this limit. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-preset.html#GUC-NUM-OS-SEMAPHORES">num_os_semaphores</a> to report the required number of semaphores (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/0dcaea569" target="_top">§</a> </p><p> This is useful for operating system configuration. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-client.html#GUC-EXTENSION-CONTROL-PATH">extension_control_path</a> to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara) <a class="ulink" href="https://postgr.es/c/4f7f7b037" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/81eaaa2c4" target="_top">§</a> </p></li></ul></div></div><div class="sect4" id="RELEASE-18-REPLICATION"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.7. Streaming Replication and Recovery <a href="#RELEASE-18-REPLICATION" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow inactive replication slots to be automatically invalidated using server variable <a class="xref" href="runtime-config-replication.html#GUC-IDLE-REPLICATION-SLOT-TIMEOUT">idle_replication_slot_timeout</a> (Nisha Moond, Bharath Rupireddy) <a class="ulink" href="https://postgr.es/c/ac0e33136" target="_top">§</a> </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-replication.html#GUC-MAX-ACTIVE-REPLICATION-ORIGINS">max_active_replication_origins</a> to control the maximum active replication origins (Euler Taveira) <a class="ulink" href="https://postgr.es/c/04ff636cb" target="_top">§</a> </p><p> This was previously controlled by <a class="xref" href="runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS">max_replication_slots</a>, but this new setting allows a higher origin count in cases where fewer slots are required. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-LOGICAL"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.8. <a class="link" href="logical-replication.html" title="Chapter 29. Logical Replication">Logical Replication</a> <a href="#RELEASE-18-LOGICAL" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow the values of <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED">generated columns</a> to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) <a class="ulink" href="https://postgr.es/c/745217a05" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/7054186c4" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/87ce27de6" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6252b1eaf" target="_top">§</a> </p><p> If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option <code class="literal">publish_generated_columns</code> controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly useful for non-<span class="productname">PostgreSQL</span> subscribers which lack such a capability. </p></li><li class="listitem"><p> Change the default <a class="xref" href="sql-createsubscription.html" title="CREATE SUBSCRIPTION"><span class="refentrytitle">CREATE SUBSCRIPTION</span></a> streaming option from <code class="literal">off</code> to <code class="literal">parallel</code> (Vignesh C) <a class="ulink" href="https://postgr.es/c/1bf1140be" target="_top">§</a> </p></li><li class="listitem"><p> Allow <a class="xref" href="sql-altersubscription.html" title="ALTER SUBSCRIPTION"><span class="refentrytitle">ALTER SUBSCRIPTION</span></a> to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) <a class="ulink" href="https://postgr.es/c/1462aad2e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4868c96bc" target="_top">§</a> </p></li><li class="listitem"><p> Log <a class="link" href="hot-standby.html#HOT-STANDBY-CONFLICT" title="26.4.2. Handling Query Conflicts">conflicts</a> while applying logical replication changes (Zhijie Hou, Nisha Moond) <a class="ulink" href="https://postgr.es/c/9758174e2" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/edcb71258" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/640178c92" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6c2b5edec" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/73eba5004" target="_top">§</a> </p><p> Also report in new columns of <a class="link" href="monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS" title="27.2.9. pg_stat_subscription_stats"><code class="structname">pg_stat_subscription_stats</code></a>. </p></li></ul></div></div></div><div class="sect3" id="RELEASE-18-UTILITY"><div class="titlepage"><div><div><h4 class="title">E.5.3.2. Utility Commands <a href="#RELEASE-18-UTILITY" class="id_link">#</a></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-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED">generated columns</a> to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) <a class="ulink" href="https://postgr.es/c/83ea6c540" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/cdc168ad4" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/1e4351af3" target="_top">§</a> </p><p> Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the <code class="literal">STORED</code> option. </p></li><li class="listitem"><p> Add <code class="literal">OLD</code>/<code class="literal">NEW</code> support to <a class="link" href="dml-returning.html" title="6.4. Returning Data from Modified Rows"><code class="literal">RETURNING</code></a> in <acronym class="acronym">DML</acronym> queries (Dean Rasheed) <a class="ulink" href="https://postgr.es/c/80feb727c" target="_top">§</a> </p><p> Previously <code class="literal">RETURNING</code> only returned new values for <a class="xref" href="sql-insert.html" title="INSERT"><span class="refentrytitle">INSERT</span></a> and <a class="xref" href="sql-update.html" title="UPDATE"><span class="refentrytitle">UPDATE</span></a>, and old values for <a class="xref" href="sql-delete.html" title="DELETE"><span class="refentrytitle">DELETE</span></a>; <a class="xref" href="sql-merge.html" title="MERGE"><span class="refentrytitle">MERGE</span></a> would return the appropriate value for the internal query executed. This new syntax allows the <code class="literal">RETURNING</code> list of <code class="command">INSERT</code>/<code class="command">UPDATE</code>/<code class="command">DELETE</code>/<code class="command">MERGE</code> to explicitly return old and new values by using the special aliases <code class="literal">old</code> and <code class="literal">new</code>. These aliases can be renamed to avoid identifier conflicts. </p></li><li class="listitem"><p> Allow foreign tables to be created like existing local tables (Zhang Mingli) <a class="ulink" href="https://postgr.es/c/302cf1575" target="_top">§</a> </p><p> The syntax is <a class="link" href="sql-createforeigntable.html" title="CREATE FOREIGN TABLE"><code class="command">CREATE FOREIGN TABLE ... LIKE</code></a>. </p></li><li class="listitem"><p> Allow <a class="link" href="functions-matching.html#FUNCTIONS-LIKE" title="9.7.1. LIKE"><code class="literal">LIKE</code></a> with <a class="link" href="collation.html#COLLATION-NONDETERMINISTIC" title="23.2.2.4. Nondeterministic Collations">nondeterministic collations</a> (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/85b7efa1c" target="_top">§</a> </p></li><li class="listitem"><p> Allow text position search functions with nondeterministic collations (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/329304c90" target="_top">§</a> </p><p> These used to generate an error. </p></li><li class="listitem"><p> Add builtin collation provider <a class="link" href="locale.html#LOCALE-PROVIDERS" title="23.1.4. Locale Providers"><code class="literal">PG_UNICODE_FAST</code></a> (Jeff Davis) <a class="ulink" href="https://postgr.es/c/d3d098316" target="_top">§</a> </p><p> This locale supports case mapping, but sorts in code point order, not natural language order. </p></li><li class="listitem"><p> Allow <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> and <a class="xref" href="sql-analyze.html" title="ANALYZE"><span class="refentrytitle">ANALYZE</span></a> to process partitioned tables without processing their children (Michael Harris) <a class="ulink" href="https://postgr.es/c/62ddf7ee9" target="_top">§</a> </p><p> This is enabled with the new <code class="literal">ONLY</code> option. This is useful since autovacuum does not process partitioned tables, just its children. </p></li><li class="listitem"><p> Add functions to modify per-relation and per-column optimizer statistics (Corey Huinker) <a class="ulink" href="https://postgr.es/c/e839c8ecc" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/d32d14639" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/650ab8aaf" target="_top">§</a> </p><p> The functions are <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-STATSMOD" title="Table 9.105. Database Object Statistics Manipulation Functions"><code class="function">pg_restore_relation_stats()</code></a>, <code class="function">pg_restore_attribute_stats()</code>, <code class="function">pg_clear_relation_stats()</code>, and <code class="function">pg_clear_attribute_stats()</code>. </p></li><li class="listitem"><p> Add server variable <a class="xref" href="runtime-config-resource.html#GUC-FILE-COPY-METHOD">file_copy_method</a> to control the file copying method (Nazir Bilal Yavuz) <a class="ulink" href="https://postgr.es/c/f78ca6f3e" target="_top">§</a> </p><p> This controls whether <a class="link" href="sql-createdatabase.html" title="CREATE DATABASE"><code class="command">CREATE DATABASE ... STRATEGY=FILE_COPY</code></a> and <a class="link" href="sql-alterdatabase.html" title="ALTER DATABASE"><code class="command">ALTER DATABASE ... SET TABLESPACE</code></a> uses file copy or clone. </p></li></ul></div><div class="sect4" id="RELEASE-18-CONSTRAINTS"><div class="titlepage"><div><div><h5 class="title">E.5.3.2.1. <a class="link" href="ddl-constraints.html" title="5.5. Constraints">Constraints</a> <a href="#RELEASE-18-CONSTRAINTS" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow the specification of non-overlapping <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY"><code class="literal">PRIMARY KEY</code></a>, <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE"> <code class="literal">UNIQUE</code></a>, and <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES">foreign key</a> constraints (Paul A. Jungwirth) <a class="ulink" href="https://postgr.es/c/fc0438b4e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/89f908a6d" target="_top">§</a> </p><p> This is specified by <code class="literal">WITHOUT OVERLAPS</code> for <code class="literal">PRIMARY KEY</code> and <code class="literal">UNIQUE</code>, and by <code class="literal">PERIOD</code> for foreign keys, all applied to the last specified column. </p></li><li class="listitem"><p> Allow <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-CHECK"><code class="literal">CHECK</code></a> and <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES">foreign key</a> constraints to be specified as <code class="literal">NOT ENFORCED</code> (Amul Sul) <a class="ulink" href="https://postgr.es/c/ca87c415e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/eec0040c4" target="_top">§</a> </p><p> This also adds column <a class="link" href="catalog-pg-constraint.html" title="52.13. pg_constraint"><code class="structname">pg_constraint</code></a>.<code class="structfield">conenforced</code>. </p></li><li class="listitem"><p> Require <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES">primary/foreign key</a> relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/9321d2fdf" target="_top">§</a> </p><p> The restore of a <a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle"><span class="application">pg_dump</span></span></a>, also used by <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a>, will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed. </p></li><li class="listitem"><p> Store column <a class="link" href="sql-createtable.html#SQL-CREATETABLE-PARMS-NOT-NULL"><code class="literal">NOT NULL</code></a> specifications in <a class="link" href="catalog-pg-constraint.html" title="52.13. pg_constraint"><code class="structname">pg_constraint</code></a> (Álvaro Herrera, Bernd Helmle) <a class="ulink" href="https://postgr.es/c/14e87ffa5" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/81ce602d4" target="_top">§</a> </p><p> This allows names to be specified for <code class="literal">NOT NULL</code> constraint. This also adds <code class="literal">NOT NULL</code> constraints to foreign tables and <code class="literal">NOT NULL</code> inheritance control to local tables. </p></li><li class="listitem"><p> Allow <a class="xref" href="sql-altertable.html" title="ALTER TABLE"><span class="refentrytitle">ALTER TABLE</span></a> to set the <code class="literal">NOT VALID</code> attribute of <code class="literal">NOT NULL</code> constraints (Rushabh Lathia, Jian He) <a class="ulink" href="https://postgr.es/c/a379061a2" target="_top">§</a> </p></li><li class="listitem"><p> Allow modification of the inheritability of <code class="literal">NOT NULL</code> constraints (Suraj Kharage, Álvaro Herrera) <a class="ulink" href="https://postgr.es/c/f4e53e10b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4a02af8b1" target="_top">§</a> </p><p> The syntax is <a class="link" href="sql-altertable.html" title="ALTER TABLE"><code class="command">ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT</code></a>. </p></li><li class="listitem"><p> Allow <code class="literal">NOT VALID</code> foreign key constraints on partitioned tables (Amul Sul) <a class="ulink" href="https://postgr.es/c/b663b9436" target="_top">§</a> </p></li><li class="listitem"><p> Allow <a class="link" href="sql-altertable.html#SQL-ALTERTABLE-DESC-DROP-CONSTRAINT">dropping</a> of constraints <code class="literal">ONLY</code> on partitioned tables (Álvaro Herrera) <a class="ulink" href="https://postgr.es/c/4dea33ce7" target="_top">§</a> </p><p> This was previously erroneously prohibited. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-COPY"><div class="titlepage"><div><div><h5 class="title">E.5.3.2.2. <a class="xref" href="sql-copy.html" title="COPY"><span class="refentrytitle">COPY</span></a> <a href="#RELEASE-18-COPY" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add <code class="literal">REJECT_LIMIT</code> to control the number of invalid rows <code class="command">COPY FROM</code> can ignore (Atsushi Torikoshi) <a class="ulink" href="https://postgr.es/c/4ac2a9bec" target="_top">§</a> </p><p> This is available when <code class="literal">ON_ERROR = 'ignore'</code>. </p></li><li class="listitem"><p> Allow <code class="command">COPY TO</code> to copy rows from populated materialized views (Jian He) <a class="ulink" href="https://postgr.es/c/534874fac" target="_top">§</a> </p></li><li class="listitem"><p> Add <code class="command">COPY</code> <code class="literal">LOG_VERBOSITY</code> level <code class="literal">silent</code> to suppress log output of ignored rows (Atsushi Torikoshi) <a class="ulink" href="https://postgr.es/c/e7834a1a2" target="_top">§</a> </p><p> This new level suppresses output for discarded input rows when <code class="literal">on_error = 'ignore'</code>. </p></li><li class="listitem"><p> Disallow <code class="command">COPY FREEZE</code> on foreign tables (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/401a6956f" target="_top">§</a> </p><p> Previously, the <code class="command">COPY</code> worked but the <code class="literal">FREEZE</code> was ignored, so disallow this command. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-EXPLAIN"><div class="titlepage"><div><div><h5 class="title">E.5.3.2.3. <a class="xref" href="sql-explain.html" title="EXPLAIN"><span class="refentrytitle">EXPLAIN</span></a> <a href="#RELEASE-18-EXPLAIN" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Automatically include <code class="literal">BUFFERS</code> output in <code class="command">EXPLAIN ANALYZE</code> (Guillaume Lelarge, David Rowley) <a class="ulink" href="https://postgr.es/c/c2a4078eb" target="_top">§</a> </p></li><li class="listitem"><p> Add full <acronym class="acronym">WAL</acronym> buffer count to <code class="command">EXPLAIN (WAL)</code> output (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/320545bfc" target="_top">§</a> </p></li><li class="listitem"><p> In <code class="command">EXPLAIN ANALYZE</code>, report the number of index lookups used per index scan node (Peter Geoghegan) <a class="ulink" href="https://postgr.es/c/0fbceae84" target="_top">§</a> </p></li><li class="listitem"><p> Modify <code class="command">EXPLAIN</code> to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas) <a class="ulink" href="https://postgr.es/c/ddb17e387" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/95dbd827f" target="_top">§</a> </p></li><li class="listitem"><p> Add memory and disk usage details to <code class="literal">Material</code>, <code class="literal">Window Aggregate</code>, and common table expression nodes to <code class="command">EXPLAIN</code> output (David Rowley, Tatsuo Ishii) <a class="ulink" href="https://postgr.es/c/1eff8279d" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/53abb1e0e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/95d6e9af0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/40708acd6" target="_top">§</a> </p></li><li class="listitem"><p> Add details about window function arguments to <code class="command">EXPLAIN</code> output (Tom Lane) <a class="ulink" href="https://postgr.es/c/8b1b34254" target="_top">§</a> </p></li><li class="listitem"><p> Add <code class="literal">Parallel Bitmap Heap Scan</code> worker cache statistics to <code class="command">EXPLAIN ANALYZE</code> (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley) <a class="ulink" href="https://postgr.es/c/5a1e6df3b" target="_top">§</a> </p></li><li class="listitem"><p> Indicate disabled nodes in <code class="command">EXPLAIN ANALYZE</code> output (Robert Haas, David Rowley, Laurenz Albe) <a class="ulink" href="https://postgr.es/c/c01743aa4" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/161320b4b" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/84b8fccbe" target="_top">§</a> </p></li></ul></div></div></div><div class="sect3" id="RELEASE-18-DATATYPES"><div class="titlepage"><div><div><h4 class="title">E.5.3.3. Data Types <a href="#RELEASE-18-DATATYPES" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Improve <a class="link" href="collation.html#COLLATION-MANAGING-STANDARD" title="23.2.2.1. Standard Collations">Unicode</a> full case mapping and conversion (Jeff Davis) <a class="ulink" href="https://postgr.es/c/4e7f62bc3" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/286a365b9" target="_top">§</a> </p><p> This adds the ability to do conditional and title case mapping, and case map single characters to multiple characters. </p></li><li class="listitem"><p> Allow <a class="link" href="datatype-json.html" title="8.14. JSON Types"><code class="type">jsonb</code></a> <code class="literal">null</code> values to be cast to scalar types as <code class="literal">NULL</code> (Tom Lane) <a class="ulink" href="https://postgr.es/c/a5579a90a" target="_top">§</a> </p><p> Previously such casts generated an error. </p></li><li class="listitem"><p> Add optional parameter to <a class="link" href="functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE" title="Table 9.51. JSON Processing Functions"><code class="function">json{b}_strip_nulls</code></a> to allow removal of null array elements (Florents Tselai) <a class="ulink" href="https://postgr.es/c/4603903d2" target="_top">§</a> </p></li><li class="listitem"><p> Add function <a class="link" href="functions-array.html#ARRAY-FUNCTIONS-TABLE" title="Table 9.57. Array Functions"><code class="function">array_sort()</code></a> which sorts an array's first dimension (Junwang Zhao, Jian He) <a class="ulink" href="https://postgr.es/c/6c12ae09f" target="_top">§</a> </p></li><li class="listitem"><p> Add function <a class="link" href="functions-array.html#ARRAY-FUNCTIONS-TABLE" title="Table 9.57. Array Functions"><code class="function">array_reverse()</code></a> which reverses an array's first dimension (Aleksander Alekseev) <a class="ulink" href="https://postgr.es/c/49d6c7d8d" target="_top">§</a> </p></li><li class="listitem"><p> Add function <a class="link" href="functions-string.html#FUNCTIONS-STRING-OTHER" title="Table 9.10. Other String Functions and Operators"><code class="function">reverse()</code></a> to reverse bytea bytes (Aleksander Alekseev) <a class="ulink" href="https://postgr.es/c/0697b2390" target="_top">§</a> </p></li><li class="listitem"><p> Allow casting between integer types and <a class="link" href="datatype-binary.html" title="8.4. Binary Data Types"><code class="type">bytea</code></a> (Aleksander Alekseev) <a class="ulink" href="https://postgr.es/c/6da469bad" target="_top">§</a> </p><p> The integer values are stored as <code class="type">bytea</code> two's complement values. </p></li><li class="listitem"><p> Update Unicode data to <a class="link" href="collation.html#COLLATION-MANAGING-STANDARD" title="23.2.2.1. Standard Collations">Unicode</a> 16.0.0 (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/82a46cca9" target="_top">§</a> </p></li><li class="listitem"><p> Add full text search <a class="link" href="textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY" title="12.6.6. Snowball Dictionary">stemming</a> for Estonian (Tom Lane) <a class="ulink" href="https://postgr.es/c/b464e51ab" target="_top">§</a> </p></li><li class="listitem"><p> Improve the <a class="link" href="datatype-xml.html" title="8.13. XML Type"><code class="type">XML</code></a> error codes to more closely match the <acronym class="acronym">SQL</acronym> standard (Tom Lane) <a class="ulink" href="https://postgr.es/c/cd838e200" target="_top">§</a> </p><p> These errors are reported via <a class="link" href="errcodes-appendix.html" title="Appendix A. PostgreSQL Error Codes"><code class="literal">SQLSTATE</code></a>. </p></li></ul></div></div><div class="sect3" id="RELEASE-18-FUNCTIONS"><div class="titlepage"><div><div><h4 class="title">E.5.3.4. Functions <a href="#RELEASE-18-FUNCTIONS" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add function <a class="link" href="functions-string.html#FUNCTIONS-STRING-OTHER" title="Table 9.10. Other String Functions and Operators"><code class="function">casefold()</code></a> to allow for more sophisticated case-insensitive matching (Jeff Davis) <a class="ulink" href="https://postgr.es/c/bfc599206" target="_top">§</a> </p><p> This allows more accurate comparisons, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters. </p></li><li class="listitem"><p> Allow <a class="link" href="functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE" title="Table 9.62. General-Purpose Aggregate Functions"><code class="function">MIN()</code></a>/<a class="link" href="functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE" title="Table 9.62. General-Purpose Aggregate Functions"><code class="function">MAX()</code></a> aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov) <a class="ulink" href="https://postgr.es/c/a0f1fce80" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/2d24fd942" target="_top">§</a> </p></li><li class="listitem"><p> Add a <code class="literal">WEEK</code> option to <a class="link" href="functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT" title="9.9.1. EXTRACT, date_part"><code class="function">EXTRACT()</code></a> (Tom Lane) <a class="ulink" href="https://postgr.es/c/6be39d77a" target="_top">§</a> </p></li><li class="listitem"><p> Improve the output <code class="literal">EXTRACT(QUARTER ...)</code> for negative values (Tom Lane) <a class="ulink" href="https://postgr.es/c/6be39d77a" target="_top">§</a> </p></li><li class="listitem"><p> Add roman numeral support to <a class="link" href="functions-formatting.html#FUNCTIONS-FORMATTING-TABLE" title="Table 9.26. Formatting Functions"><code class="function">to_number()</code></a> (Hunaid Sohail) <a class="ulink" href="https://postgr.es/c/172e6b3ad" target="_top">§</a> </p><p> This is accessed via the <code class="literal">RN</code> pattern. </p></li><li class="listitem"><p> Add <a class="link" href="datatype-uuid.html" title="8.12. UUID Type"><code class="type">UUID</code></a> version 7 generation function <a class="link" href="functions-uuid.html#FUNC_UUID_GEN_TABLE" title="Table 9.45. UUID Generation Functions"><code class="function">uuidv7()</code></a> (Andrey Borodin) <a class="ulink" href="https://postgr.es/c/78c5e141e" target="_top">§</a> </p><p> This <code class="type">UUID</code> value is temporally sortable. Function alias <a class="link" href="functions-uuid.html#FUNC_UUID_GEN_TABLE" title="Table 9.45. UUID Generation Functions"><code class="function">uuidv4()</code></a> has been added to explicitly generate version 4 UUIDs. </p></li><li class="listitem"><p> Add functions <a class="link" href="functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER" title="Table 9.12. Other Binary String Functions"><code class="function">crc32()</code></a> and <a class="link" href="functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER" title="Table 9.12. Other Binary String Functions"><code class="function">crc32c()</code></a> to compute <acronym class="acronym">CRC</acronym> values (Aleksander Alekseev) <a class="ulink" href="https://postgr.es/c/760162fed" target="_top">§</a> </p></li><li class="listitem"><p> Add math functions <a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions"><code class="function">gamma()</code></a> and <a class="link" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions"><code class="function">lgamma()</code></a> (Dean Rasheed) <a class="ulink" href="https://postgr.es/c/a3b6dfd41" target="_top">§</a> </p></li><li class="listitem"><p> Allow <code class="literal">=></code> syntax for named cursor arguments in <a class="link" href="plpgsql.html" title="Chapter 41. PL/pgSQL — SQL Procedural Language">PL/pgSQL</a> (Pavel Stehule) <a class="ulink" href="https://postgr.es/c/246dedc5d" target="_top">§</a> </p><p> We previously only accepted <code class="literal">:=</code>. </p></li><li class="listitem"><p> Allow <a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_match[es]()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_like()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_replace()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_count()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_instr()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_substr()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_split_to_table()</code></a>/<a class="link" href="functions-matching.html#FUNCTIONS-POSIX-REGEXP" title="9.7.3. POSIX Regular Expressions"><code class="function">regexp_split_to_array()</code></a> to use named arguments (Jian He) <a class="ulink" href="https://postgr.es/c/580f8727c" target="_top">§</a> </p></li></ul></div></div><div class="sect3" id="RELEASE-18-LIBPQ"><div class="titlepage"><div><div><h4 class="title">E.5.3.5. <a class="link" href="libpq.html" title="Chapter 32. libpq — C Library">Libpq</a> <a href="#RELEASE-18-LIBPQ" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add function <a class="link" href="libpq-status.html#LIBPQ-PQFULLPROTOCOLVERSION"><code class="function">PQfullProtocolVersion()</code></a> to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio) <a class="ulink" href="https://postgr.es/c/cdb6b0fdb" target="_top">§</a> </p></li><li class="listitem"><p> Add libpq connection <a class="link" href="libpq-connect.html#LIBPQ-CONNECT-SSL-MAX-PROTOCOL-VERSION">parameters</a> and <a class="link" href="libpq-envars.html" title="32.15. Environment Variables">environment variables</a> to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio) <a class="ulink" href="https://postgr.es/c/285613c60" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/507034910" target="_top">§</a> </p></li><li class="listitem"><p> Report <a class="xref" href="runtime-config-client.html#GUC-SEARCH-PATH">search_path</a> changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) <a class="ulink" href="https://postgr.es/c/28a1121fd" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/0d06a7eac" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="link" href="libpq-control.html#LIBPQ-PQTRACE"><code class="function">PQtrace()</code></a> output for all message types, including authentication (Jelte Fennema-Nio) <a class="ulink" href="https://postgr.es/c/ea92f3a0a" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/a5c6b8f22" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/b8b3f861f" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/e87c14b19" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/7adec2d5f" target="_top">§</a> </p></li><li class="listitem"><p> Add libpq connection parameter <a class="link" href="libpq-connect.html#LIBPQ-CONNECT-SSLKEYLOGFILE"><code class="varname">sslkeylogfile</code></a> which dumps out <acronym class="acronym">SSL</acronym> key material (Abhishek Chanda, Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/2da74d8d6" target="_top">§</a> </p><p> This is useful for debugging. </p></li><li class="listitem"><p> Modify some libpq function signatures to use <code class="literal">int64_t</code> (Thomas Munro) <a class="ulink" href="https://postgr.es/c/3c86223c9" target="_top">§</a> </p><p> These previously used <code class="literal">pg_int64</code>, which is now deprecated. </p></li></ul></div></div><div class="sect3" id="RELEASE-18-PSQL"><div class="titlepage"><div><div><h4 class="title">E.5.3.6. <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a> <a href="#RELEASE-18-PSQL" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow <span class="application">psql</span> to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) <a class="ulink" href="https://postgr.es/c/d55322b0d" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/fc39b286a" target="_top">§</a> </p><p> This is accomplished with new commands <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-PARSE"><code class="literal">\parse</code></a>, <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-BIND-NAMED"><code class="literal">\bind_named</code></a>, and <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-CLOSE-PREPARED"><code class="literal">\close_prepared</code></a>. </p></li><li class="listitem"><p> Add <span class="application">psql</span> backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) <a class="ulink" href="https://postgr.es/c/41625ab8e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/17caf6644" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/2cce0fe44" target="_top">§</a> </p><p> The new commands are <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-PIPELINE"><code class="literal">\startpipeline</code></a>, <code class="literal">\syncpipeline</code>, <code class="literal">\sendpipeline</code>, <code class="literal">\endpipeline</code>, <code class="literal">\flushrequest</code>, <code class="literal">\flush</code>, and <code class="literal">\getresults</code>. </p></li><li class="listitem"><p> Allow adding pipeline status to the <span class="application">psql</span> prompt and add related state variables (Anthonin Bonnefoy) <a class="ulink" href="https://postgr.es/c/3ce357584" target="_top">§</a> </p><p> The new prompt character is <code class="literal">%P</code> and the new <span class="application">psql</span> variables are <a class="link" href="app-psql.html#APP-PSQL-VARIABLES-PIPELINE-SYNC-COUNT"><code class="literal">PIPELINE_SYNC_COUNT</code></a>, <a class="link" href="app-psql.html#APP-PSQL-VARIABLES-PIPELINE-COMMAND-COUNT"><code class="literal">PIPELINE_COMMAND_COUNT</code></a>, and <a class="link" href="app-psql.html#APP-PSQL-VARIABLES-PIPELINE-RESULT-COUNT"><code class="literal">PIPELINE_RESULT_COUNT</code></a>. </p></li><li class="listitem"><p> Allow adding the connection service name to the <span class="application">psql</span> prompt or access it via <span class="application">psql</span> variable (Michael Banck) <a class="ulink" href="https://postgr.es/c/477728b5d" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">psql</span> option to use expanded mode on all list commands (Dean Rasheed) <a class="ulink" href="https://postgr.es/c/00f4c2959" target="_top">§</a> </p><p> Adding backslash suffix <code class="literal">x</code> enables this. </p></li><li class="listitem"><p> Change <span class="application">psql</span>'s <a class="xref" href="app-psql.html#APP-PSQL-META-COMMAND-CONNINFO"><code class="literal">\conninfo</code></a> to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) <a class="ulink" href="https://postgr.es/c/bba2fbc62" target="_top">§</a> </p></li><li class="listitem"><p> Add function's leakproof indicator to <span class="application">psql</span>'s <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-DF-LC"><code class="literal">\df+</code></a>, <code class="literal">\do+</code>, <code class="literal">\dAo+</code>, and <code class="literal">\dC+</code> outputs (Yugo Nagata) <a class="ulink" href="https://postgr.es/c/2355e5111" target="_top">§</a> </p></li><li class="listitem"><p> Add access method details for partitioned relations in <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-DP-UC"><code class="literal">\dP+</code></a> (Justin Pryzby) <a class="ulink" href="https://postgr.es/c/978f38c77" target="_top">§</a> </p></li><li class="listitem"><p> Add <code class="literal">default_version</code> to the <span class="application">psql</span> <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-DX-LC"><code class="literal">\dx</code></a> extension output (Magnus Hagander) <a class="ulink" href="https://postgr.es/c/d696406a9" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">psql</span> variable <a class="xref" href="app-psql.html#APP-PSQL-VARIABLES-WATCH-INTERVAL"><code class="varname">WATCH_INTERVAL</code></a> to set the default <a class="link" href="app-psql.html#APP-PSQL-META-COMMAND-WATCH"><code class="literal">\watch</code></a> wait time (Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/1a759c832" target="_top">§</a> </p></li></ul></div></div><div class="sect3" id="RELEASE-18-SERVER-APPS"><div class="titlepage"><div><div><h4 class="title">E.5.3.7. Server Applications <a href="#RELEASE-18-SERVER-APPS" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Change <a class="xref" href="app-initdb.html" title="initdb"><span class="refentrytitle"><span class="application">initdb</span></span></a> to default to enabling checksums (Greg Sabino Mullane) <a class="ulink" href="https://postgr.es/c/983a588e0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/04bec894a" target="_top">§</a> </p><p> The new <span class="application">initdb</span> option <code class="option">--no-data-checksums</code> disables checksums. </p></li><li class="listitem"><p> Add <span class="application">initdb</span> option <code class="option">--no-sync-data-files</code> to avoid syncing heap/index files (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/cf131fa94" target="_top">§</a> </p><p> <span class="application">initdb</span> option <code class="option">--no-sync</code> is still available to avoid syncing any files. </p></li><li class="listitem"><p> Add <a class="xref" href="app-vacuumdb.html" title="vacuumdb"><span class="refentrytitle"><span class="application">vacuumdb</span></span></a> option <code class="option">--missing-stats-only</code> to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) <a class="ulink" href="https://postgr.es/c/edba754f0" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/987910502" target="_top">§</a> </p><p> This option can only be run by superusers and can only be used with options <code class="option">--analyze-only</code> and <code class="option">--analyze-in-stages</code>. </p></li><li class="listitem"><p> Add <a class="xref" href="app-pgcombinebackup.html" title="pg_combinebackup"><span class="refentrytitle"><span class="application">pg_combinebackup</span></span></a> option <code class="option">-k</code>/<code class="option">--link</code> to enable hard linking (Israel Barth Rubio, Robert Haas) <a class="ulink" href="https://postgr.es/c/99aeb8470" target="_top">§</a> </p><p> Only some files can be hard linked. This should not be used if the backups will be used independently. </p></li><li class="listitem"><p> Allow <a class="xref" href="app-pgverifybackup.html" title="pg_verifybackup"><span class="refentrytitle"><span class="application">pg_verifybackup</span></span></a> to verify tar-format backups (Amul Sul) <a class="ulink" href="https://postgr.es/c/8dfd31290" target="_top">§</a> </p></li><li class="listitem"><p> If <a class="xref" href="app-pgrewind.html" title="pg_rewind"><span class="refentrytitle"><span class="application">pg_rewind</span></span></a>'s <code class="option">--source-server</code> specifies a database name, use it in <code class="option">--write-recovery-conf</code> output (Masahiko Sawada) <a class="ulink" href="https://postgr.es/c/4ecdd4110" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="app-pgresetwal.html" title="pg_resetwal"><span class="refentrytitle"><span class="application">pg_resetwal</span></span></a> option <code class="option">--char-signedness</code> to change the default <code class="type">char</code> signedness (Masahiko Sawada) <a class="ulink" href="https://postgr.es/c/30666d185" target="_top">§</a> </p></li></ul></div><div class="sect4" id="RELEASE-18-PGDUMP"><div class="titlepage"><div><div><h5 class="title">E.5.3.7.1. <a class="link" href="app-pgdump.html" title="pg_dump"><span class="application">pg_dump</span></a>/<a class="link" href="app-pg-dumpall.html" title="pg_dumpall"><span class="application">pg_dumpall</span></a>/<a class="link" href="app-pgrestore.html" title="pg_restore"><span class="application">pg_restore</span></a> <a href="#RELEASE-18-PGDUMP" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add <a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle"><span class="application">pg_dump</span></span></a> option <code class="option">--statistics</code> (Jeff Davis) <a class="ulink" href="https://postgr.es/c/bde2fb797" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/a3e8dc143" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">pg_dump</span> and <a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a> option <code class="option">--sequence-data</code> to dump sequence data that would normally be excluded (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/9c49f0e8c" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/acea3fc49" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle"><span class="application">pg_dump</span></span></a>, <a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a>, and <a class="xref" href="app-pgrestore.html" title="pg_restore"><span class="refentrytitle"><span class="application">pg_restore</span></span></a> options <code class="option">--statistics-only</code>, <code class="option">--no-statistics</code>, <code class="option">--no-data</code>, and <code class="option">--no-schema</code> (Corey Huinker, Jeff Davis) <a class="ulink" href="https://postgr.es/c/1fd1bd871" target="_top">§</a> </p></li><li class="listitem"><p> Add option <code class="option">--no-policies</code> to disable row level security policy processing in <a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle"><span class="application">pg_dump</span></span></a>, <a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a>, <a class="xref" href="app-pgrestore.html" title="pg_restore"><span class="refentrytitle"><span class="application">pg_restore</span></span></a> (Nikolay Samokhvalov) <a class="ulink" href="https://postgr.es/c/cd3c45125" target="_top">§</a> </p><p> This is useful for migrating to systems with different policies. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-PGUPGRADE"><div class="titlepage"><div><div><h5 class="title">E.5.3.7.2. <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a> <a href="#RELEASE-18-PGUPGRADE" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow <span class="application">pg_upgrade</span> to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) <a class="ulink" href="https://postgr.es/c/1fd1bd871" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c9d502eb6" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/d5f1b6a75" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/1fd1bd871" target="_top">§</a> </p><p> Extended statistics are not preserved. Also add <span class="application">pg_upgrade</span> option <code class="option">--no-statistics</code> to disable statistics preservation. </p></li><li class="listitem"><p> Allow <span class="application">pg_upgrade</span> to process database checks in parallel (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/40e2e5e92" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6d3d2e8e5" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/7baa36de5" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/46cad8b31" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6ab8f27bc" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/bbf83cab9" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/9db3018cf" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c34eabfbb" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/cf2f82a37" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/f93f5f7b9" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c880cf258" target="_top">§</a> </p><p> This is controlled by the existing <code class="option">--jobs</code> option. </p></li><li class="listitem"><p> Add <span class="application">pg_upgrade</span> option <code class="option">--swap</code> to swap directories rather than copy, clone, or link files (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/626d7236b" target="_top">§</a> </p><p> This mode is potentially the fastest. </p></li><li class="listitem"><p> Add <span class="application">pg_upgrade</span> option <code class="option">--set-char-signedness</code> to set the default <code class="type">char</code> signedness of new cluster (Masahiko Sawada) <a class="ulink" href="https://postgr.es/c/a8238f87f" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/1aab68059" target="_top">§</a> </p><p> This is to handle cases where a pre-<span class="productname">PostgreSQL</span> 18 cluster's default <acronym class="acronym">CPU</acronym> signedness does not match the new cluster. </p></li></ul></div></div><div class="sect4" id="RELEASE-18-LOGICALREP-APP"><div class="titlepage"><div><div><h5 class="title">E.5.3.7.3. Logical Replication Applications <a href="#RELEASE-18-LOGICALREP-APP" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add <a class="xref" href="app-pgcreatesubscriber.html" title="pg_createsubscriber"><span class="refentrytitle"><span class="application">pg_createsubscriber</span></span></a> option <code class="option">--all</code> to create logical replicas for all databases (Shubham Khanna) <a class="ulink" href="https://postgr.es/c/fb2ea12f4" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">pg_createsubscriber</span> option <code class="option">--clean</code> to remove publications (Shubham Khanna) <a class="ulink" href="https://postgr.es/c/e5aeed4b8" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/60dda7bbc" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">pg_createsubscriber</span> option <code class="option">--enable-two-phase</code> to enable prepared transactions (Shubham Khanna) <a class="ulink" href="https://postgr.es/c/e117cfb2f" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="app-pgrecvlogical.html" title="pg_recvlogical"><span class="refentrytitle"><span class="application">pg_recvlogical</span></span></a> option <code class="option">--enable-failover</code> to specify failover slots (Hayato Kuroda) <a class="ulink" href="https://postgr.es/c/cf2655a90" target="_top">§</a> </p><p> Also add option <code class="option">--enable-two-phase</code> as a synonym for <code class="option">--two-phase</code>, and deprecate the latter. </p></li><li class="listitem"><p> Allow <span class="application">pg_recvlogical</span> <code class="option">--drop-slot</code> to work without <code class="option">--dbname</code> (Hayato Kuroda) <a class="ulink" href="https://postgr.es/c/c68100aa4" target="_top">§</a> </p></li></ul></div></div></div><div class="sect3" id="RELEASE-18-SOURCE-CODE"><div class="titlepage"><div><div><h4 class="title">E.5.3.8. Source Code <a href="#RELEASE-18-SOURCE-CODE" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Separate the loading and running of <a class="link" href="xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS" title="36.10.14. Injection Points">injection points</a> (Michael Paquier, Heikki Linnakangas) <a class="ulink" href="https://postgr.es/c/4b211003e" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/a0a5869a8" target="_top">§</a> </p><p> Injection points can now be created, but not run, via <a class="link" href="xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS" title="36.10.14. Injection Points"><code class="function">INJECTION_POINT_LOAD()</code></a>, and such injection points can be run via <a class="link" href="xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS" title="36.10.14. Injection Points"><code class="function">INJECTION_POINT_CACHED()</code></a>. </p></li><li class="listitem"><p> Support runtime arguments in injection points (Michael Paquier) <a class="ulink" href="https://postgr.es/c/371f2db8b" target="_top">§</a> </p></li><li class="listitem"><p> Allow inline injection point test code with <a class="link" href="xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS" title="36.10.14. Injection Points"><code class="function">IS_INJECTION_POINT_ATTACHED()</code></a> (Heikki Linnakangas) <a class="ulink" href="https://postgr.es/c/20e0e7da9" target="_top">§</a> </p></li><li class="listitem"><p> Improve the performance of processing long <a class="link" href="datatype-json.html" title="8.14. JSON Types"><code class="type">JSON</code></a> strings using <acronym class="acronym">SIMD</acronym> (Single Instruction Multiple Data) (David Rowley) <a class="ulink" href="https://postgr.es/c/ca6fde922" target="_top">§</a> </p></li><li class="listitem"><p> Speed up CRC32C calculations using x86 <acronym class="acronym">AVX</acronym>-512 instructions (Raghuveer Devulapalli, Paul Amonson) <a class="ulink" href="https://postgr.es/c/3c6e8c123" target="_top">§</a> </p></li><li class="listitem"><p> Add <acronym class="acronym">ARM</acronym> Neon and <acronym class="acronym">SVE CPU</acronym> intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) <a class="ulink" href="https://postgr.es/c/6be53c276" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/519338ace" target="_top">§</a> </p></li><li class="listitem"><p> Improve the speed of numeric multiplication and division (Joel Jacobson, Dean Rasheed) <a class="ulink" href="https://postgr.es/c/ca481d3c9" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/c4e44224c" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/8dc28d7eb" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/9428c001f" target="_top">§</a> </p></li><li class="listitem"><p> Add configure option <a class="link" href="install-make.html#CONFIGURE-OPTION-WITH-LIBNUMA"><code class="option">--with-libnuma</code></a> to enable <acronym class="acronym">NUMA</acronym> awareness (Jakub Wartak, Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/65c298f61" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/8cc139bec" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/ba2a3c230" target="_top">§</a> </p><p> The function <a class="link" href="functions-info.html#FUNCTIONS-INFO-SESSION-TABLE" title="Table 9.71. Session Information Functions"><code class="function">pg_numa_available()</code></a> reports on <acronym class="acronym">NUMA</acronym> awareness, and system views <a class="link" href="view-pg-shmem-allocations-numa.html" title="53.28. pg_shmem_allocations_numa"><code class="structname">pg_shmem_allocations_numa</code></a> and <a class="link" href="pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-NUMA" title="F.25.2. The pg_buffercache_numa View"><code class="structname">pg_buffercache_numa</code></a> which report on shared memory distribution across <acronym class="acronym">NUMA</acronym> nodes. </p></li><li class="listitem"><p> Add <a class="link" href="storage-toast.html" title="66.2. TOAST"><acronym class="acronym">TOAST</acronym></a> table to <a class="link" href="catalog-pg-index.html" title="52.26. pg_index"><code class="structname">pg_index</code></a> to allow for very large expression indexes (Nathan Bossart) <a class="ulink" href="https://postgr.es/c/b52c4fc3c" target="_top">§</a> </p></li><li class="listitem"><p> Remove column <a class="link" href="catalog-pg-attribute.html" title="52.7. pg_attribute"><code class="structname">pg_attribute</code></a>.<code class="structfield">attcacheoff</code> (David Rowley) <a class="ulink" href="https://postgr.es/c/02a8d0c45" target="_top">§</a> </p></li><li class="listitem"><p> Add column <a class="link" href="catalog-pg-class.html" title="52.11. pg_class"><code class="structname">pg_class</code></a>.<code class="structfield">relallfrozen</code> (Melanie Plageman) <a class="ulink" href="https://postgr.es/c/99f8f3fbb" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="link" href="indexam.html" title="Chapter 63. Index Access Method Interface Definition"><code class="structfield">amgettreeheight</code></a>, <code class="literal">amconsistentequality</code>, and <code class="literal">amconsistentordering</code> to the index access method <acronym class="acronym">API</acronym> (Mark Dilger) <a class="ulink" href="https://postgr.es/c/56fead44d" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/af4002b38" target="_top">§</a> </p></li><li class="listitem"><p> Add GiST support function <a class="link" href="gist.html#GIST-EXTENSIBILITY" title="65.2.3. Extensibility"><code class="function">stratnum()</code></a> (Paul A. Jungwirth) <a class="ulink" href="https://postgr.es/c/7406ab623" target="_top">§</a> </p></li><li class="listitem"><p> Record the default <acronym class="acronym">CPU</acronym> signedness of <code class="literal">char</code> in <a class="xref" href="app-pgcontroldata.html" title="pg_controldata"><span class="refentrytitle"><span class="application">pg_controldata</span></span></a> (Masahiko Sawada) <a class="ulink" href="https://postgr.es/c/44fe30fda" target="_top">§</a> </p></li><li class="listitem"><p> Add support for Python "Limited <acronym class="acronym">API</acronym>" in <a class="link" href="plpython.html" title="Chapter 44. PL/Python — Python Procedural Language">PL/Python</a> (Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/72a3d0462" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/0793ab810" target="_top">§</a> </p><p> This helps prevent problems caused by <span class="application">Python</span> 3.x version mismatches. </p></li><li class="listitem"><p> Change the minimum supported <span class="application">Python</span> version to 3.6.8 (Jacob Champion) <a class="ulink" href="https://postgr.es/c/45363fca6" target="_top">§</a> </p></li><li class="listitem"><p> Remove support for <span class="application">OpenSSL</span> versions older than 1.1.1 (Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/a70e01d43" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/6c66b7443" target="_top">§</a> </p></li><li class="listitem"><p> If <span class="application">LLVM</span> is enabled, require version 14 or later (Thomas Munro) <a class="ulink" href="https://postgr.es/c/972c2cd28" target="_top">§</a> </p></li><li class="listitem"><p> Add macro <a class="link" href="functions-info.html" title="9.27. System Information Functions and Operators"><code class="literal">PG_MODULE_MAGIC_EXT</code></a> to allow extensions to report their name and version (Andrei Lepikhov) <a class="ulink" href="https://postgr.es/c/9324c8c58" target="_top">§</a> </p><p> This information can be access via the new function <a class="link" href="functions-info.html#FUNCTIONS-INFO-SESSION-TABLE" title="Table 9.71. Session Information Functions"><code class="function">pg_get_loaded_modules()</code></a>. </p></li><li class="listitem"><p> Document that <a class="link" href="spi-spi-connect.html" title="SPI_connect"><code class="function">SPI_connect()</code></a>/<a class="link" href="spi-spi-connect.html" title="SPI_connect"><code class="function">SPI_connect_ext()</code></a> always returns success (<code class="literal">SPI_OK_CONNECT</code>) (Stepan Neretin) <a class="ulink" href="https://postgr.es/c/218527d01" target="_top">§</a> </p><p> Errors are always reported via <code class="function">ereport()</code>. </p></li><li class="listitem"><p> Add <a class="link" href="xfunc-c.html#XFUNC-API-ABI-STABILITY-GUIDANCE" title="36.10.6. Server API and ABI Stability Guidance">documentation section</a> about <acronym class="acronym">API</acronym> and <acronym class="acronym">ABI</acronym> compatibility (David Wheeler, Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/e54a42ac9" target="_top">§</a> </p></li><li class="listitem"><p> Remove the experimental designation of <span class="application">Meson</span> builds on <span class="systemitem">Windows</span> (Aleksander Alekseev) <a class="ulink" href="https://postgr.es/c/5afaba629" target="_top">§</a> </p></li><li class="listitem"><p> Remove configure options <code class="option">--disable-spinlocks</code> and <code class="option">--disable-atomics</code> (Thomas Munro) <a class="ulink" href="https://postgr.es/c/e25626677" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/813852613" target="_top">§</a> </p><p> Thirty-two-bit atomic operations are now required. </p></li><li class="listitem"><p> Remove support for the <acronym class="acronym">HPPA</acronym>/<acronym class="acronym">PA-RISC</acronym> architecture (Tom Lane) <a class="ulink" href="https://postgr.es/c/edadeb071" target="_top">§</a> </p></li></ul></div></div><div class="sect3" id="RELEASE-18-MODULES"><div class="titlepage"><div><div><h4 class="title">E.5.3.9. Additional Modules <a href="#RELEASE-18-MODULES" class="id_link">#</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add extension <a class="xref" href="pglogicalinspect.html" title="F.28. pg_logicalinspect — logical decoding components inspection">pg_logicalinspect</a> to inspect logical snapshots (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/7cdfeee32" target="_top">§</a> </p></li><li class="listitem"><p> Add extension <a class="xref" href="pgoverexplain.html" title="F.29. pg_overexplain — allow EXPLAIN to dump even more details">pg_overexplain</a> which adds debug details to <a class="link" href="sql-explain.html" title="EXPLAIN"><code class="command">EXPLAIN</code></a> output (Robert Haas) <a class="ulink" href="https://postgr.es/c/8d5ceb113" target="_top">§</a> </p></li><li class="listitem"><p> Add output columns to <a class="link" href="postgres-fdw.html#POSTGRES-FDW-FUNCTIONS" title="F.38.2. Functions"><code class="function">postgres_fdw_get_connections()</code></a> (Hayato Kuroda, Sagar Dilip Shedge) <a class="ulink" href="https://postgr.es/c/c297a47c5" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/857df3cef" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4f08ab554" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/fe186bda7" target="_top">§</a> </p><p> New output column <code class="structfield">used_in_xact</code> indicates if the foreign data wrapper is being used by a current transaction, <code class="structfield">closed</code> indicates if it is closed, <code class="structfield">user_name</code> indicates the user name, and <code class="structfield">remote_backend_pid</code> indicates the remote backend process identifier. </p></li><li class="listitem"><p> Allow <a class="link" href="auth-password.html" title="20.5. Password Authentication"><acronym class="acronym">SCRAM</acronym></a> authentication from the client to be passed to <a class="xref" href="postgres-fdw.html" title="F.38. postgres_fdw — access data stored in external PostgreSQL servers">postgres_fdw</a> servers (Matheus Alcantara, Peter Eisentraut) <a class="ulink" href="https://postgr.es/c/761c79508" target="_top">§</a> </p><p> This avoids storing <span class="application">postgres_fdw</span> authentication information in the database, and is enabled with the <span class="application">postgres_fdw</span> <a class="link" href="postgres-fdw.html#POSTGRES-FDW-OPTION-USE-SCRAM-PASSTHROUGH"><code class="literal">use_scram_passthrough</code></a> connection option. libpq uses new connection parameters <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-SCRAM-CLIENT-KEY">scram_client_key</a> and <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-SCRAM-SERVER-KEY">scram_server_key</a>. </p></li><li class="listitem"><p> Allow <acronym class="acronym">SCRAM</acronym> authentication from the client to be passed to <a class="xref" href="dblink.html" title="F.11. dblink — connect to other PostgreSQL databases">dblink</a> servers (Matheus Alcantara) <a class="ulink" href="https://postgr.es/c/3642df265" target="_top">§</a> </p></li><li class="listitem"><p> Add <code class="literal">on_error</code> and <code class="literal">log_verbosity</code> options to <a class="xref" href="file-fdw.html" title="F.15. file_fdw — access data files in the server's file system">file_fdw</a> (Atsushi Torikoshi) <a class="ulink" href="https://postgr.es/c/a1c4c8a9e" target="_top">§</a> </p><p> These control how <span class="application">file_fdw</span> handles and reports invalid file rows. </p></li><li class="listitem"><p> Add <code class="literal">reject_limit</code> to control the number of invalid rows <span class="application">file_fdw</span> can ignore (Atsushi Torikoshi) <a class="ulink" href="https://postgr.es/c/6c8f67032" target="_top">§</a> </p><p> This is active when <code class="literal">ON_ERROR = 'ignore'</code>. </p></li><li class="listitem"><p> Add configurable variable <code class="varname">min_password_length</code> to <a class="xref" href="passwordcheck.html" title="F.24. passwordcheck — verify password strength">passwordcheck</a> (Emanuele Musella, Maurizio Boriani) <a class="ulink" href="https://postgr.es/c/f7e1b3828" target="_top">§</a> </p><p> This controls the minimum password length. </p></li><li class="listitem"><p> Have <a class="xref" href="pgbench.html" title="pgbench"><span class="refentrytitle"><span class="application">pgbench</span></span></a> report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata) <a class="ulink" href="https://postgr.es/c/cae0f3c40" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="isn.html" title="F.20. isn — data types for international standard numbers (ISBN, EAN, UPC, etc.)">isn</a> server variable <code class="literal">weak</code> to control invalid check digit acceptance (Viktor Holmberg) <a class="ulink" href="https://postgr.es/c/448904423" target="_top">§</a> </p><p> This was previously only controlled by function <a class="link" href="isn.html#ISN-FUNCTIONS" title="Table F.11. isn Functions"><code class="function">isn_weak()</code></a>. </p></li><li class="listitem"><p> Allow values to be sorted to speed <a class="xref" href="btree-gist.html" title="F.8. btree_gist — GiST operator classes with B-tree behavior">btree_gist</a> index builds (Bernd Helmle, Andrey Borodin) <a class="ulink" href="https://postgr.es/c/e4309f73f" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="xref" href="amcheck.html" title="F.1. amcheck — tools to verify table and index consistency">amcheck</a> check function <a class="link" href="amcheck.html#AMCHECK-FUNCTIONS" title="F.1.1. Functions"><code class="function">gin_index_check()</code></a> to verify <code class="literal">GIN</code> indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) <a class="ulink" href="https://postgr.es/c/14ffaece0" target="_top">§</a> </p></li><li class="listitem"><p> Add functions <a class="link" href="pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT-RELATION" title="F.25.6. The pg_buffercache_evict_relation() Function"><code class="function">pg_buffercache_evict_relation()</code></a> and <a class="link" href="pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT-ALL" title="F.25.7. The pg_buffercache_evict_all() Function"><code class="function">pg_buffercache_evict_all()</code></a> to evict unpinned shared buffers (Nazir Bilal Yavuz) <a class="ulink" href="https://postgr.es/c/dcf7e1697" target="_top">§</a> </p><p> The existing function <a class="link" href="pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT" title="F.25.5. The pg_buffercache_evict() Function"><code class="function">pg_buffercache_evict()</code></a> now returns the buffer flush status. </p></li><li class="listitem"><p> Allow extensions to install custom <a class="xref" href="sql-explain.html" title="EXPLAIN"><span class="refentrytitle">EXPLAIN</span></a> options (Robert Haas, Sami Imseih) <a class="ulink" href="https://postgr.es/c/c65bc2e1d" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/4fd02bf7c" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/50ba65e73" target="_top">§</a> </p></li><li class="listitem"><p> Allow extensions to use the server's cumulative statistics <acronym class="acronym">API</acronym> (Michael Paquier) <a class="ulink" href="https://postgr.es/c/7949d9594" target="_top">§</a> <a class="ulink" href="https://postgr.es/c/2eff9e678" target="_top">§</a> </p></li></ul></div><div class="sect4" id="RELEASE-18-PGSTATSTATEMENTS"><div class="titlepage"><div><div><h5 class="title">E.5.3.9.1. <a class="xref" href="pgstatstatements.html" title="F.32. pg_stat_statements — track statistics of SQL planning and execution">pg_stat_statements</a> <a href="#RELEASE-18-PGSTATSTATEMENTS" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Allow the queries of <a class="xref" href="sql-createtableas.html" title="CREATE TABLE AS"><span class="refentrytitle">CREATE TABLE AS</span></a> and <a class="xref" href="sql-declare.html" title="DECLARE"><span class="refentrytitle">DECLARE</span></a> to be tracked by <span class="application">pg_stat_statements</span> (Anthonin Bonnefoy) <a class="ulink" href="https://postgr.es/c/6b652e6ce" target="_top">§</a> </p><p> They are also now assigned query ids. </p></li><li class="listitem"><p> Allow the parameterization of <a class="xref" href="sql-set.html" title="SET"><span class="refentrytitle">SET</span></a> values in <span class="application">pg_stat_statements</span> (Greg Sabino Mullane, Michael Paquier) <a class="ulink" href="https://postgr.es/c/dc6851596" target="_top">§</a> </p><p> This reduces the bloat caused by <code class="command">SET</code> statements with differing constants. </p></li><li class="listitem"><p> Add <a class="link" href="pgstatstatements.html#PGSTATSTATEMENTS-PG-STAT-STATEMENTS" title="F.32.1. The pg_stat_statements View"><code class="structname">pg_stat_statements</code></a> columns to report parallel activity (Guillaume Lelarge) <a class="ulink" href="https://postgr.es/c/cf54a2c00" target="_top">§</a> </p><p> The new columns are <code class="structfield">parallel_workers_to_launch</code> and <code class="structfield">parallel_workers_launched</code>. </p></li><li class="listitem"><p> Add <code class="structname">pg_stat_statements</code>.<code class="structfield">wal_buffers_full</code> to report full <acronym class="acronym">WAL</acronym> buffers (Bertrand Drouvot) <a class="ulink" href="https://postgr.es/c/ce5bcc4a9" target="_top">§</a> </p></li></ul></div></div><div class="sect4" id="RELEASE-18-PGCRYPTO"><div class="titlepage"><div><div><h5 class="title">E.5.3.9.2. <a class="xref" href="pgcrypto.html" title="F.26. pgcrypto — cryptographic functions">pgcrypto</a> <a href="#RELEASE-18-PGCRYPTO" class="id_link">#</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Add <span class="application">pgcrypto</span> algorithms <a class="link" href="pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS" title="Table F.18. Supported Algorithms for crypt()"><code class="literal">sha256crypt</code></a> and <a class="link" href="pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS" title="Table F.18. Supported Algorithms for crypt()"><code class="literal">sha512crypt</code></a> (Bernd Helmle) <a class="ulink" href="https://postgr.es/c/749a9e20c" target="_top">§</a> </p></li><li class="listitem"><p> Add <a class="link" href="pgcrypto.html#PGCRYPTO-RAW-ENC-FUNCS" title="F.26.4. Raw Encryption Functions"><acronym class="acronym">CFB</acronym></a> mode to <span class="application">pgcrypto</span> encryption and decryption (Umar Hayat) <a class="ulink" href="https://postgr.es/c/9ad1b3d01" target="_top">§</a> </p></li><li class="listitem"><p> Add function <a class="link" href="pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS" title="F.26.6. OpenSSL Support Functions"><code class="function">fips_mode()</code></a> to report the server's <acronym class="acronym">FIPS</acronym> mode (Daniel Gustafsson) <a class="ulink" href="https://postgr.es/c/924d89a35" target="_top">§</a> </p></li><li class="listitem"><p> Add <span class="application">pgcrypto</span> server variable <a class="link" href="pgcrypto.html#PGCRYPTO-CONFIGURATION-PARAMETERS-BUILTIN_CRYPTO_ENABLED"><code class="varname">builtin_crypto_enabled</code></a> to allow disabling builtin non-<acronym class="acronym">FIPS</acronym> mode cryptographic functions (Daniel Gustafsson, Joe Conway) <a class="ulink" href="https://postgr.es/c/035f99cbe" target="_top">§</a> </p><p> This is useful for guaranteeing <acronym class="acronym">FIPS</acronym> mode behavior. </p></li></ul></div></div></div></div><div class="sect2" id="RELEASE-18-ACKNOWLEDGEMENTS"><div class="titlepage"><div><div><h3 class="title">E.5.4. Acknowledgments <a href="#RELEASE-18-ACKNOWLEDGEMENTS" class="id_link">#</a></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>Abhishek Chanda</td></tr><tr><td>Adam Guo</td></tr><tr><td>Adam Rauch</td></tr><tr><td>Aidar Imamov</td></tr><tr><td>Ajin Cher … [Строка слишком длинная. Вы можете скачать файл]