| Server IP : 172.67.134.114 / 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.4. Release 10.20</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-21.html" title="E.3. Release 10.21" /><link rel="next" href="release-10-19.html" title="E.5. Release 10.19" /></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.4. Release 10.20</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-10-21.html" title="E.3. Release 10.21">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-19.html" title="E.5. Release 10.19">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-10-20"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.4. Release 10.20</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-10-20.html#id-1.11.6.8.5">E.4.1. Migration to Version 10.20</a></span></dt><dt><span class="sect2"><a href="release-10-20.html#id-1.11.6.8.6">E.4.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2022-02-10</p><p> This release contains a variety of fixes from 10.19.
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.8.5"><div class="titlepage"><div><div><h3 class="title">E.4.1. Migration to Version 10.20</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.8.6"><div class="titlepage"><div><div><h3 class="title">E.4.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Fix index-only scan plans for cases where not all index columns can
be returned (Tom Lane)
</p><p> If an index has both returnable and non-returnable columns, and one
of the non-returnable columns is an expression using a table column
that appears in a returnable index column, then a query using that
expression could result in an index-only scan plan that attempts to
read the non-returnable column, instead of recomputing the
expression from the returnable column as intended. The
non-returnable column would read as NULL, resulting in wrong query
results.
</p></li><li class="listitem"><p> Ensure that casting to an unspecified typmod generates a RelabelType
node rather than a length-coercion function call (Tom Lane)
</p><p> While the coercion function should do the right thing (nothing),
this translation is undesirably inefficient.
</p></li><li class="listitem"><p> Fix WAL replay failure when database consistency is reached exactly
at a WAL page boundary (Álvaro Herrera)
</p></li><li class="listitem"><p> Fix startup of a physical replica to tolerate transaction ID
wraparound (Abhijit Menon-Sen, Tomas Vondra)
</p><p> If a replica server is started while the set of active transactions
on the primary crosses a wraparound boundary (so that there are some
newer transactions with smaller XIDs than older ones), the replica
would fail with <span class="quote">“<span class="quote">out-of-order XID insertion in
KnownAssignedXids</span>”</span>. The replica would retry, but could never
get past that error.
</p></li><li class="listitem"><p> Remove lexical limitations for SQL commands issued on a logical
replication connection (Tom Lane)
</p><p> The walsender process would fail for a SQL command containing an
unquoted semicolon, or with dollar-quoted literals containing odd
numbers of single or double quote marks, or when the SQL command
starts with a comment. Moreover, faulty error recovery could lead
to unexpected errors in later commands too.
</p></li><li class="listitem"><p> Fix possible loss of the commit timestamp for the last
subtransaction of a transaction (Alex Kingsborough, Kyotaro Horiguchi)
</p></li><li class="listitem"><p> Be sure to <code class="function">fsync</code>
the <code class="filename">pg_logical/mappings</code> subdirectory during
checkpoints (Nathan Bossart)
</p><p> On some filesystems this oversight could lead to losing logical
rewrite status files after a system crash.
</p></li><li class="listitem"><p> Build extended statistics for partitioned tables (Justin Pryzby)
</p><p> A previous bug fix disabled building of extended statistics for
old-style inheritance trees, but it also prevented building them for
partitioned tables, which was an unnecessary restriction.
This change allows <code class="command">ANALYZE</code> to compute values for
statistics objects for partitioned tables. (But note that
autovacuum does not process partitioned tables as such, so you must
periodically issue manual <code class="command">ANALYZE</code> on the
partitioned table if you want to maintain such statistics.)
</p></li><li class="listitem"><p> Ignore extended statistics for inheritance trees (Justin Pryzby)
</p><p> Currently, extended statistics values are only computed locally for
each table, not for entire inheritance trees. However the values
were mistakenly consulted when planning queries across inheritance
trees, possibly resulting in worse-than-default estimates.
</p></li><li class="listitem"><p> Disallow altering data type of a partitioned table's columns when
the partitioned table's row type is used as a composite type
elsewhere (Tom Lane)
</p><p> This restriction has long existed for regular tables, but through an
oversight it was not checked for partitioned tables.
</p></li><li class="listitem"><p> Disallow <code class="literal">ALTER TABLE ... DROP NOT NULL</code> for a
column that is part of a replica identity index (Haiying Tang, Hou
Zhijie)
</p><p> The same prohibition already existed for primary key indexes.
</p></li><li class="listitem"><p> Correctly update cached table state when switching <code class="literal">REPLICA
IDENTITY</code> index (Tang Haiying, Hou Zhijie)
</p><p> Concurrent sessions failed to update their opinion of which index is
the replica identity one, possibly causing incorrect logical
replication behavior.
</p></li><li class="listitem"><p> Avoid leaking memory during <code class="command">REASSIGN OWNED BY</code>
operations that reassign ownership of many objects (Justin Pryzby)
</p></li><li class="listitem"><p> Fix display of whole-row variables appearing
in <code class="literal">INSERT ... VALUES</code> rules (Tom Lane)
</p><p> A whole-row variable would be printed as <span class="quote">“<span class="quote">var.*</span>”</span>,
but that allows it to be expanded to individual columns when
the rule is reloaded, resulting in different semantics.
Attach an explicit cast to prevent that, as we do elsewhere.
</p></li><li class="listitem"><p> Fix or remove some incorrect assertions (Simon Riggs, Michael
Paquier, Alexander Lakhin)
</p><p> These errors should affect only debug builds, not production.
</p></li><li class="listitem"><p> Fix race condition that could lead to failure to localize error
messages that are reported early in multi-threaded use
of <span class="application">libpq</span>
or <span class="application">ecpglib</span> (Tom Lane)
</p></li><li class="listitem"><p> Avoid calling <code class="function">strerror</code>
from <span class="application">libpq</span>'s <code class="function">PQcancel</code>
function (Tom Lane)
</p><p> <code class="function">PQcancel</code> is supposed to be safe to call from a
signal handler, but <code class="function">strerror</code> is not safe. The
faulty usage only occurred in the unlikely event of failure to
send the cancel message to the server, perhaps explaining the lack
of reports.
</p></li><li class="listitem"><p> Make <span class="application">psql</span>'s <code class="command">\password</code>
command default to setting the password
for <code class="literal">CURRENT_USER</code>, not the connection's original
user name (Tom Lane)
</p><p> This agrees with the documented behavior, and avoids probable
permissions failure if <code class="command">SET ROLE</code> or <code class="command">SET
SESSION AUTHORIZATION</code> has been done since the session began.
To prevent confusion, the role name to be acted on is now
included in the password prompt.
</p></li><li class="listitem"><p> In <span class="application">psql</span> and some other client programs,
avoid trying to invoke <code class="function">gettext()</code> from a
control-C signal handler (Tom Lane)
</p><p> While no reported failures have been traced to this mistake, it seems
highly unlikely to be a safe thing to do.
</p></li><li class="listitem"><p> Allow canceling the initial password prompt
in <span class="application">pg_receivewal</span>
and <span class="application">pg_recvlogical</span> (Tom Lane, Nathan
Bossart)
</p><p> Previously it was impossible to terminate these programs via control-C
while they were prompting for a password.
</p></li><li class="listitem"><p> Fix <span class="application">pg_dump</span>'s dump ordering for
user-defined casts (Tom Lane)
</p><p> In rare cases, the output script might refer to a user-defined cast
before it had been created.
</p></li><li class="listitem"><p> Fix possible mis-reporting of errors
in <span class="application">pg_dump</span>
and <span class="application">pg_basebackup</span> (Tom Lane)
</p><p> The previous code failed to check for errors from some kernel calls,
and could report the wrong errno values in other cases.
</p></li><li class="listitem"><p> Fix results of index-only scans
on <code class="filename">contrib/btree_gist</code> indexes
on <code class="type">char(<em class="replaceable"><code>N</code></em>)</code> columns (Tom Lane)
</p><p> Index-only scans returned column values with trailing spaces
removed, which is not the expected behavior. That happened because
that's how the data was stored in the index. This fix changes the
code to store <code class="type">char(<em class="replaceable"><code>N</code></em>)</code> values
with the expected amount of space padding.
The behavior of such an index will not change immediately unless
you <code class="command">REINDEX</code> it; otherwise space-stripped values
will be gradually replaced over time during updates. Queries that
do not use index-only scan plans will be unaffected in any case.
</p></li><li class="listitem"><p> Change <span class="application">configure</span> to use
Python's <span class="application">sysconfig</span> module, rather than
the deprecated <span class="application">distutils</span> module, to
determine how to build PL/Python (Peter Eisentraut, Tom Lane, Andres
Freund)
</p><p> With Python 3.10, this
avoids <span class="application">configure</span>-time warnings
about <span class="application">distutils</span> being deprecated and
scheduled for removal in Python 3.12. Presumably, once 3.12 is
out, <code class="literal">configure --with-python</code> would fail
altogether. This future-proofing does come at a
cost: <span class="application">sysconfig</span> did not exist before
Python 2.7, nor before 3.2 in the Python 3 branch, so it is no
longer possible to build PL/Python against long-dead Python
versions.
</p></li><li class="listitem"><p> Fix PL/Perl compile failure on Windows with Perl 5.28 and later
(Victor Wagner)
</p></li><li class="listitem"><p> Fix PL/Python compile failure with Python 3.11 and later (Peter
Eisentraut)
</p></li><li class="listitem"><p> Add support for building with Visual Studio 2022 (Hans Buschmann)
</p></li><li class="listitem"><p> Allow the <code class="filename">.bat</code> wrapper scripts in our MSVC
build system to be called without first changing into their
directory (Anton Voloshin, Andrew Dunstan)
</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-21.html" title="E.3. Release 10.21">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-19.html" title="E.5. Release 10.19">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.3. Release 10.21 </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.5. Release 10.19</td></tr></table></div></body></html>