summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/html/release-14-5.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/html/release-14-5.html')
-rw-r--r--doc/src/sgml/html/release-14-5.html284
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