diff options
Diffstat (limited to 'doc/src/sgml/html/release-14-5.html')
-rw-r--r-- | doc/src/sgml/html/release-14-5.html | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/doc/src/sgml/html/release-14-5.html b/doc/src/sgml/html/release-14-5.html new file mode 100644 index 0000000..081e0ba --- /dev/null +++ b/doc/src/sgml/html/release-14-5.html @@ -0,0 +1,284 @@ +<?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.1. Release 14.5</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.html" title="Appendix E. Release Notes" /><link rel="next" href="release-14-4.html" title="E.2. Release 14.4" /></head><body id="docContent" class="container-fluid col-10"><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.1. Release 14.5</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release.html" title="Appendix E. Release Notes">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 14.5 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-14-4.html" title="E.2. Release 14.4">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-14-5"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.1. Release 14.5</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-14-5.html#id-1.11.6.5.4">E.1.1. Migration to Version 14.5</a></span></dt><dt><span class="sect2"><a href="release-14-5.html#id-1.11.6.5.5">E.1.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 14.4. + For information about new features in major release 14, see + <a class="xref" href="release-14.html" title="E.6. Release 14">Section E.6</a>. + </p><div class="sect2" id="id-1.11.6.5.4"><div class="titlepage"><div><div><h3 class="title">E.1.1. Migration to Version 14.5</h3></div></div></div><p> + A dump/restore is not required for those running 14.X. + </p><p> + However, if you are upgrading from a version earlier than 14.4, + see <a class="xref" href="release-14-4.html" title="E.2. Release 14.4">Section E.2</a>. + </p></div><div class="sect2" id="id-1.11.6.5.5"><div class="titlepage"><div><div><h3 class="title">E.1.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 incorrect plans when sorting by an expression that contains a + non-top-level set-returning function (Richard Guo, Tom Lane) + </p></li><li class="listitem"><p> + Fix incorrect permissions-checking code for extended statistics + (Richard Guo) + </p><p> + If there are extended statistics on a table that the user has only + partial <code class="literal">SELECT</code> permissions on, some queries would + fail with <span class="quote">“<span class="quote">unrecognized node type</span>”</span> errors. + </p></li><li class="listitem"><p> + Fix extended statistics machinery to handle MCV-type statistics on + boolean-valued expressions (Tom Lane) + </p><p> + Statistics collection worked fine, but a query containing such an + expression in <code class="literal">WHERE</code> would fail + with <span class="quote">“<span class="quote">unknown clause type</span>”</span>. + </p></li><li class="listitem"><p> + Avoid planner core dump with <code class="literal"><em class="replaceable"><code>constant</code></em> + = ANY(<em class="replaceable"><code>array</code></em>)</code> clauses when + there are MCV-type extended statistics on + the <em class="replaceable"><code>array</code></em> variable (Tom Lane) + </p></li><li class="listitem"><p> + Fix <code class="literal">ALTER TABLE ... ENABLE/DISABLE TRIGGER</code> to + handle recursion correctly for triggers on partitioned tables + (Álvaro Herrera, Amit Langote) + </p><p> + In certain cases, a <span class="quote">“<span class="quote">trigger does not exist</span>”</span> failure + would occur because the command would try to adjust the trigger on a + child partition that doesn't have it. + </p></li><li class="listitem"><p> + Allow cancellation of <code class="command">ANALYZE</code> while it is + computing extended statistics (Tom Lane, Justin Pryzby) + </p><p> + In some scenarios with high statistics targets, it was possible to + spend many seconds in an un-cancellable sort operation. + </p></li><li class="listitem"><p> + Improve syntax error messages for type <code class="type">jsonpath</code> + (Andrew Dunstan) + </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 <code class="function">trim_array()</code> to handle a zero-dimensional + array argument sanely (Martin Kalcher) + </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> + 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> + 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> + 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> + Fix logical replication's checking of replica identity when the + target table is partitioned (Shi Yu, Hou Zhijie) + </p><p> + The replica identity columns have to be re-identified for the child + partition. + </p></li><li class="listitem"><p> + Fix failures to update cached schema data in a logical replication + subscriber after a schema change on the publisher (Shi Yu, Hou + Zhijie) + </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> + Fix erroneous assertion checks in shared hashtable management + (Thomas Munro) + </p></li><li class="listitem"><p> + Avoid assertion failure + when <code class="varname">min_dynamic_shared_memory</code> is set to a + non-default value (Thomas Munro) + </p></li><li class="listitem"><p> + Arrange to clean up after commit-time errors + within <code class="function">SPI_commit()</code>, rather than expecting + callers to do that (Peter Eisentraut, Tom Lane) + </p><p> + Proper cleanup is complicated and requires use of low-level + facilities, so it's not surprising that no known caller got it + right. This led to misbehaviors when a PL procedure + issued <code class="command">COMMIT</code> but a failure occurred (such as a + deferred constraint check). To improve matters, + redefine <code class="function">SPI_commit()</code> as starting a new + transaction, so that it becomes equivalent + to <code class="function">SPI_commit_and_chain()</code> except that you get + default transaction characteristics instead of preserving the prior + transaction's characteristics. To make this somewhat transparent + API-wise, redefine <code class="function">SPI_start_transaction()</code> as a + no-op. All known callers of <code class="function">SPI_commit()</code> + immediately call <code class="function">SPI_start_transaction()</code>, so + they will not notice any change. Similar remarks apply + to <code class="function">SPI_rollback()</code>. + </p><p> + Also fix PL/Python, which omitted any handling of such errors at all, + resulting in jumping out of the Python interpreter. This is + reported to crash Python 3.11. Older Python releases leak some + memory but seem okay with it otherwise. + </p></li><li class="listitem"><p> + Improve <span class="application">libpq</span>'s handling of idle states + in pipeline mode (Álvaro Herrera, Kyotaro Horiguchi) + </p><p> + This fixes <span class="quote">“<span class="quote">message type 0x33 arrived from server while + idle</span>”</span> warnings, as well as possible loss of end-of-query NULL + results from <code class="function">PQgetResult()</code>. + </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 <span class="application">pg_upgrade</span> to detect non-upgradable + usages of functions taking <code class="type">anyarray</code> (Justin Pryzby) + </p><p> + Version 14 changed some built-in functions to take + type <code class="type">anycompatiblearray</code> instead + of <code class="type">anyarray</code>. While this is mostly transparent, + user-defined aggregates and operators built atop these functions + have to be declared with exactly matching types. The presence of an + object referencing the old signature will + cause <span class="application">pg_upgrade</span> to fail, so change it to + detect and report such cases before beginning the upgrade. + </p></li><li class="listitem"><p> + Fix possible report of wrong error condition + after <code class="function">clone()</code> failure + in <span class="application">pg_upgrade</span> + with <code class="option">--clone</code> option (Justin Pryzby) + </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> + In <code class="filename">contrib/postgres_fdw</code>, prevent batch + insertion when there are <code class="literal">WITH CHECK OPTION</code> + constraints (Etsuro Fujita) + </p><p> + Such constraints cannot be checked properly if more than one row is + inserted at a time. + </p></li><li class="listitem"><p> + Fix <code class="filename">contrib/postgres_fdw</code> to detect failure to + send an asynchronous data fetch query (Fujii Masao) + </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> + Avoid using <code class="function">signalfd()</code> + on <span class="productname">illumos</span> systems (Thomas Munro) + </p><p> + This appears to trigger hangs and kernel panics, so avoid the + function until a fix is available. + </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.html" title="Appendix E. Release Notes">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-14-4.html" title="E.2. Release 14.4">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix E. Release Notes </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 14.5 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.2. Release 14.4</td></tr></table></div></body></html>
\ No newline at end of file |