| Server IP : 104.21.25.180 / Your IP : 162.159.115.41 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/postgresql-docs/html/ |
Upload File : |
<?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.2. Release 10.22</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="[email protected]" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="release-10-23.html" title="E.1. Release 10.23" /><link rel="next" href="release-10-21.html" title="E.3. Release 10.21" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.2. Release 10.22</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-10-23.html" title="E.1. Release 10.23">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 10.23 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-10-21.html" title="E.3. Release 10.21">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-10-22"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.2. Release 10.22</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-10-22.html#id-1.11.6.6.5">E.2.1. Migration to Version 10.22</a></span></dt><dt><span class="sect2"><a href="release-10-22.html#id-1.11.6.6.6">E.2.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2022-08-11</p><p> This release contains a variety of fixes from 10.21.
For information about new features in major release 10, see
<a class="xref" href="release-10.html" title="E.24. Release 10">Section E.24</a>.
</p><p> The <span class="productname">PostgreSQL</span> community will stop
releasing updates for the 10.X release series in November 2022.
Users are encouraged to update to a newer release branch soon.
</p><div class="sect2" id="id-1.11.6.6.5"><div class="titlepage"><div><div><h3 class="title">E.2.1. Migration to Version 10.22</h3></div></div></div><p> A dump/restore is not required for those running 10.X.
</p><p> However, if you are upgrading from a version earlier than 10.19,
see <a class="xref" href="release-10-19.html" title="E.5. Release 10.19">Section E.5</a>.
</p></div><div class="sect2" id="id-1.11.6.6.6"><div class="titlepage"><div><div><h3 class="title">E.2.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Do not let extension scripts replace objects not already belonging
to the extension (Tom Lane)
</p><p> This change prevents extension scripts from doing <code class="command">CREATE
OR REPLACE</code> if there is an existing object that does not
belong to the extension. It also prevents <code class="command">CREATE IF NOT
EXISTS</code> in the same situation. This prevents a form of
trojan-horse attack in which a hostile database user could become
the owner of an extension object and then modify it to compromise
future uses of the object by other users. As a side benefit, it
also reduces the risk of accidentally replacing objects one did
not mean to.
</p><p> The <span class="productname">PostgreSQL</span> Project thanks
Sven Klemm for reporting this problem.
(CVE-2022-2625)
</p></li><li class="listitem"><p> Fix replay of <code class="command">CREATE DATABASE</code> WAL
records on standby servers
(Kyotaro Horiguchi, Asim R Praveen, Paul Guo)
</p><p> Standby servers may encounter missing tablespace directories
when replaying database-creation WAL records. Prior to this
patch, a standby would fail to recover in such a case;
however, such directories could be legitimately missing.
Create the tablespace (as a plain directory), then check that it
has been dropped again once replay reaches a consistent state.
</p></li><li class="listitem"><p> Support <span class="quote">“<span class="quote">in place</span>”</span> tablespaces
(Thomas Munro, Michael Paquier, Álvaro Herrera)
</p><p> Normally a Postgres tablespace is a symbolic link to a directory on
some other filesystem. This change allows it to just be a plain
directory. While this has no use for separating tables onto
different filesystems, it is a convenient setup for testing.
Moreover, it is necessary to support the <code class="command">CREATE
DATABASE</code> replay fix, which transiently creates a missing
tablespace as an <span class="quote">“<span class="quote">in place</span>”</span> tablespace.
</p></li><li class="listitem"><p> Fix permissions checks in <code class="command">CREATE INDEX</code> (Nathan
Bossart, Noah Misch)
</p><p> The fix for CVE-2022-1552 caused <code class="command">CREATE INDEX</code> to
apply the table owner's permissions while performing lookups of
operator classes and other objects, where formerly the calling
user's permissions were used. This broke dump/restore scenarios,
because <span class="application">pg_dump</span> issues <code class="command">CREATE
INDEX</code> before re-granting permissions.
</p></li><li class="listitem"><p> In extended query protocol, force an immediate commit
after <code class="command">CREATE DATABASE</code> and other commands that
can't run in a transaction block (Tom Lane)
</p><p> If the client does not send a Sync message immediately after such a
command, but instead sends another command, any failure in that
command would lead to rolling back the preceding command, typically
leaving inconsistent state on-disk (such as a missing or extra
database directory). The mechanisms intended to prevent that
situation turn out to work for multiple commands in a simple-Query
message, but not for a series of extended-protocol messages. To
prevent inconsistency without breaking use-cases that work today,
force an implicit commit after such commands.
</p></li><li class="listitem"><p> Fix race condition when checking transaction visibility (Simon Riggs)
</p><p> <code class="function">TransactionIdIsInProgress</code> could
report <code class="literal">false</code> before the subject transaction is
considered visible, leading to various misbehaviors. The race
condition window is normally very narrow, but use of synchronous
replication makes it much wider, because the wait for a synchronous
replica happens in that window.
</p></li><li class="listitem"><p> Fix <span class="quote">“<span class="quote">variable not found in subplan target list</span>”</span> planner
error when pulling up a sub-<code class="literal">SELECT</code> that's
referenced in a <code class="literal">GROUPING</code> function (Richard Guo)
</p></li><li class="listitem"><p> Prevent <code class="function">pg_stat_get_subscription()</code> from
possibly returning an extra row containing garbage values
(Kuntal Ghosh)
</p></li><li class="listitem"><p> Ensure that <code class="function">pg_stop_backup()</code> cleans up session
state properly (Fujii Masao)
</p><p> This omission could lead to assertion failures or crashes later in
the session.
</p></li><li class="listitem"><p> Fix join alias matching in <code class="literal">FOR [KEY] UPDATE/SHARE</code>
clauses (Dean Rasheed)
</p><p> In corner cases, a misleading error could be reported.
</p></li><li class="listitem"><p> Avoid crashing if too many column aliases are attached to
an <code class="literal">XMLTABLE</code> or <code class="literal">JSON_TABLE</code>
construct (Álvaro Herrera)
</p></li><li class="listitem"><p> Reject <code class="literal">ROW()</code> expressions and functions
in <code class="literal">FROM</code> that have too many columns (Tom Lane)
</p><p> Cases with more than about 1600 columns are unsupported, and
have always failed at execution. However, it emerges that some
earlier code could be driven to assertion failures or crashes by
queries with more than 32K columns. Add a parse-time check to
prevent that.
</p></li><li class="listitem"><p> When decompiling a view or rule, show a <code class="command">SELECT</code>
output column's <code class="literal">AS "?column?"</code> alias clause
if it could be referenced elsewhere (Tom Lane)
</p><p> Previously, this auto-generated alias was always hidden; but there
are corner cases where doing so results in a non-restorable view or
rule definition.
</p></li><li class="listitem"><p> Fix dumping of a view using a function in <code class="literal">FROM</code>
that returns a composite type, when column(s) of the composite type
have been dropped since the view was made (Tom Lane)
</p><p> This oversight could lead to dump/reload
or <span class="application">pg_upgrade</span> failures, as the dumped
view would have too many column aliases for the function.
</p></li><li class="listitem"><p> Report implicitly-created operator families to event triggers
(Masahiko Sawada)
</p><p> If <code class="command">CREATE OPERATOR CLASS</code> results in the implicit
creation of an operator family, that object was not reported to
event triggers that should capture such events.
</p></li><li class="listitem"><p> Fix control file updates made when a restartpoint is running during
promotion of a standby server (Kyotaro Horiguchi)
</p><p> Previously, when the restartpoint completed it could incorrectly
update the last-checkpoint fields of the control file, potentially
leading to PANIC and failure to restart if the server crashes before
the next normal checkpoint completes.
</p></li><li class="listitem"><p> Prevent triggering of
standby's <code class="varname">wal_receiver_timeout</code> during logical
replication of large transactions (Wang Wei, Amit Kapila)
</p><p> If a large transaction on the primary server sends no data to the
standby (perhaps because no table it changes is published), it was
possible for the standby to timeout. Fix that by ensuring we send
keepalive messages periodically in such situations.
</p></li><li class="listitem"><p> Disallow nested backup operations in logical replication walsenders
(Fujii Masao)
</p></li><li class="listitem"><p> Fix memory leak in logical replication subscribers (Hou Zhijie)
</p></li><li class="listitem"><p> Ignore heap-rewrite temporary tables for materialized views in
logical replication (Euler Taveira)
</p><p> A <code class="literal">FOR ALL TABLES</code> publication will try to publish
temporary tables if left to its own devices. There is a heuristic
to suppress these, but it failed to cover internal temporary tables
created while rewriting a materialized view. This created a risk of
<span class="quote">“<span class="quote">logical replication target relation ... does not
exist</span>”</span> failures during <code class="command">REFRESH MATERIALIZED
VIEW</code>.
</p></li><li class="listitem"><p> Prevent open-file leak when reading an invalid timezone abbreviation
file (Kyotaro Horiguchi)
</p><p> Such cases could result in harmless warning messages.
</p></li><li class="listitem"><p> Allow custom server parameters to have short descriptions that are
NULL (Steve Chavez)
</p><p> Previously, although extensions could choose to create such
settings, some code paths would crash while processing them.
</p></li><li class="listitem"><p> Fix WAL consistency checking logic to correctly
handle <code class="literal">BRIN_EVACUATE_PAGE</code> flags (Haiyang Wang)
</p></li><li class="listitem"><p> Remove misguided SSL key file ownership check
in <span class="application">libpq</span> (Tom Lane)
</p><p> In the previous minor releases, we copied the server's permission
checking rules for SSL private key files into libpq. But we should
not have also copied the server's file-ownership check. While that
works in normal use-cases, it can result in an unexpected failure
for clients running as root, and perhaps in other cases.
</p></li><li class="listitem"><p> Ensure <span class="application">ecpg</span> reports server connection loss
sanely (Tom Lane)
</p><p> Misprocessing of a libpq-generated error result, such as a report of
lost connection, would lead to printing <span class="quote">“<span class="quote">(null)</span>”</span>
instead of a useful error message; or in older releases it would
lead to a crash.
</p></li><li class="listitem"><p> Avoid core dump in <span class="application">ecpglib</span> with
unexpected orders of operations (Tom Lane)
</p><p> Certain operations such as <code class="command">EXEC SQL PREPARE</code> would
crash (rather than reporting an error as expected) if called before
establishing any database connection.
</p></li><li class="listitem"><p> In <span class="application">ecpglib</span>, avoid
redundant <code class="function">newlocale()</code> calls (Noah Misch)
</p><p> Allocate a C locale object once per process when first connecting,
rather than creating and freeing locale objects once per query.
This mitigates a libc memory leak on AIX, and may offer some
performance benefit everywhere.
</p></li><li class="listitem"><p> In <span class="application">psql</span>'s <code class="command">\watch</code>
command, echo a newline after cancellation with control-C
(Pavel Stehule)
</p><p> This prevents libedit (and possibly also libreadline) from becoming
confused about which column the cursor is in.
</p></li><li class="listitem"><p> Fix <code class="filename">contrib/pg_stat_statements</code> to avoid
problems with very large query-text files on 32-bit platforms
(Tom Lane)
</p></li><li class="listitem"><p> Ensure that <code class="filename">contrib/postgres_fdw</code> sends
constants of <code class="type">regconfig</code> and other <code class="type">reg*</code>
types with proper schema qualification (Tom Lane)
</p></li><li class="listitem"><p> Block signals while allocating dynamic shared memory on Linux
(Thomas Munro)
</p><p> This avoids problems when a signal
interrupts <code class="function">posix_fallocate()</code>.
</p></li><li class="listitem"><p> Detect unexpected <code class="literal">EEXIST</code> error
from <code class="function">shm_open()</code> (Thomas Munro)
</p><p> This avoids a possible crash on Solaris.
</p></li><li class="listitem"><p> Adjust PL/Perl test case so it will work under Perl 5.36
(Dagfinn Ilmari Mannsåker)
</p></li><li class="listitem"><p> Avoid incorrectly using an
out-of-date <span class="application">libldap_r</span> library when
multiple <span class="productname">OpenLDAP</span> installations are
present while building <span class="productname">PostgreSQL</span>
(Tom Lane)
</p></li></ul></div></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-10-23.html" title="E.1. Release 10.23">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-10-21.html" title="E.3. Release 10.21">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.1. Release 10.23 </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.23 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.3. Release 10.21</td></tr></table></div></body></html>