summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/html/release-15-6.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/src/sgml/html/release-15-6.html454
1 files changed, 454 insertions, 0 deletions
diff --git a/doc/src/sgml/html/release-15-6.html b/doc/src/sgml/html/release-15-6.html
new file mode 100644
index 0000000..262e9bb
--- /dev/null
+++ b/doc/src/sgml/html/release-15-6.html
@@ -0,0 +1,454 @@
+<?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 15.6</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-15-5.html" title="E.2. Release 15.5" /></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.1. Release 15.6</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 15.6 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-15-5.html" title="E.2. Release 15.5">Next</a></td></tr></table><hr /></div><div class="sect1" id="RELEASE-15-6"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.1. Release 15.6</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-15-6.html#id-1.11.6.5.4">E.1.1. Migration to Version 15.6</a></span></dt><dt><span class="sect2"><a href="release-15-6.html#id-1.11.6.5.5">E.1.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2024-02-08</p><p>
+ This release contains a variety of fixes from 15.5.
+ For information about new features in major release 15, see
+ <a class="xref" href="release-15.html" title="E.7. Release 15">Section E.7</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 15.6</h3></div></div></div><p>
+ A dump/restore is not required for those running 15.X.
+ </p><p>
+ However, one bug was fixed that could have resulted in corruption of
+ GIN indexes during concurrent updates. If you suspect such
+ corruption, reindex affected indexes after installing this update.
+ </p><p>
+ Also, if you are upgrading from a version earlier than 15.5,
+ see <a class="xref" href="release-15-5.html" title="E.2. Release 15.5">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>
+ Tighten security restrictions within <code class="command">REFRESH MATERIALIZED
+ VIEW CONCURRENTLY</code> (Heikki Linnakangas)
+ </p><p>
+ One step of a concurrent refresh command was run under weak security
+ restrictions. If a materialized view's owner could persuade a
+ superuser or other high-privileged user to perform a concurrent
+ refresh on that view, the view's owner could control code executed
+ with the privileges of the user running <code class="command">REFRESH</code>.
+ Fix things so that all user-determined code is run as the view's
+ owner, as expected.
+ </p><p>
+ The only known exploit for this error does not work
+ in <span class="productname">PostgreSQL</span> 16.0 and later, so it may
+ be that v16 is not vulnerable in practice.
+ </p><p>
+ The <span class="productname">PostgreSQL</span> Project thanks Pedro
+ Gallegos for reporting this problem.
+ (CVE-2024-0985)
+ </p></li><li class="listitem"><p>
+ Fix memory leak when performing JIT inlining (Andres Freund,
+ Daniel Gustafsson)
+ </p><p>
+ There have been multiple reports of backend processes suffering
+ out-of-memory conditions after sufficiently many JIT compilations.
+ This fix should resolve that.
+ </p></li><li class="listitem"><p>
+ When dequeueing from an LWLock, avoid needing to search the list of
+ waiting processes (Andres Freund)
+ </p><p>
+ This fixes O(N^2) behavior when the list of waiters is long. In
+ some use-cases this results in substantial throughput improvements.
+ </p></li><li class="listitem"><p>
+ Avoid generating incorrect partitioned-join plans (Richard Guo)
+ </p><p>
+ Some uncommon situations involving lateral references could create
+ incorrect plans. Affected queries could produce wrong answers, or
+ odd failures such as <span class="quote">“<span class="quote">variable not found in subplan target
+ list</span>”</span>, or executor crashes.
+ </p></li><li class="listitem"><p>
+ Fix incorrect wrapping of subquery output expressions in
+ PlaceHolderVars (Tom Lane)
+ </p><p>
+ This fixes incorrect results when a subquery is underneath an outer
+ join and has an output column that laterally references something
+ outside the outer join's scope. The output column might not appear
+ as NULL when it should do so due to the action of the outer join.
+ </p></li><li class="listitem"><p>
+ Fix misprocessing of window function run conditions (Richard Guo)
+ </p><p>
+ This oversight could lead to <span class="quote">“<span class="quote">WindowFunc not found in subplan
+ target lists</span>”</span> errors.
+ </p></li><li class="listitem"><p>
+ Skip inappropriate actions when <code class="command">MERGE</code> causes a
+ cross-partition update (Dean Rasheed)
+ </p><p>
+ When executing a <code class="literal">MERGE UPDATE</code> action on a
+ partitioned table, if the <code class="literal">UPDATE</code> is turned into
+ a <code class="literal">DELETE</code> and <code class="literal">INSERT</code> due to
+ changing a partition key column, skip firing <code class="literal">AFTER
+ UPDATE ROW</code> triggers, as well as other post-update actions
+ such as RLS checks. These actions would typically fail, which is
+ why a regular <code class="literal">UPDATE</code> doesn't do them in such
+ cases; <code class="literal">MERGE</code> shouldn't either.
+ </p></li><li class="listitem"><p>
+ Cope with <code class="literal">BEFORE ROW DELETE</code> triggers in
+ cross-partition <code class="command">MERGE</code> updates (Dean Rasheed)
+ </p><p>
+ If such a trigger attempted to prevent the update by returning
+ NULL, <code class="command">MERGE</code> would suffer an error or assertion
+ failure.
+ </p></li><li class="listitem"><p>
+ Prevent access to a no-longer-pinned buffer in <code class="literal">BEFORE ROW
+ UPDATE</code> triggers (Alexander Lakhin, Tom Lane)
+ </p><p>
+ If the tuple being updated had just been updated and moved to
+ another page by another session, there was a narrow window where
+ we would attempt to fetch data from the new tuple version without
+ any pin on its buffer. In principle this could result in garbage
+ data appearing in non-updated columns of the proposed new tuple.
+ The odds of problems in practice seem rather low, however.
+ </p></li><li class="listitem"><p>
+ Avoid requesting an oversize shared-memory area in parallel hash
+ join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov)
+ </p><p>
+ The limiting value was too large, allowing <span class="quote">“<span class="quote">invalid DSA memory
+ alloc request size</span>”</span> errors to occur with sufficiently large
+ expected hash table sizes.
+ </p></li><li class="listitem"><p>
+ Avoid assertion failures in <code class="function">heap_update()</code>
+ and <code class="function">heap_delete()</code> when a tuple to be updated by
+ a foreign-key enforcement trigger fails the extra visibility
+ crosscheck (Alexander Lakhin)
+ </p><p>
+ This error had no impact in non-assert builds.
+ </p></li><li class="listitem"><p>
+ Fix possible failure during <code class="command">ALTER TABLE ADD
+ COLUMN</code> on a complex inheritance tree (Tender Wang)
+ </p><p>
+ If a grandchild table would inherit the new column via multiple
+ intermediate parents, the command failed with <span class="quote">“<span class="quote">tuple already
+ updated by self</span>”</span>.
+ </p></li><li class="listitem"><p>
+ Fix problems with duplicate token names in <code class="command">ALTER TEXT
+ SEARCH CONFIGURATION ... MAPPING</code> commands (Tender Wang,
+ Michael Paquier)
+ </p></li><li class="listitem"><p>
+ Properly lock the associated table during <code class="command">DROP
+ STATISTICS</code> (Tomas Vondra)
+ </p><p>
+ Failure to acquire the lock could result in <span class="quote">“<span class="quote">tuple
+ concurrently deleted</span>”</span> errors if the <code class="command">DROP</code>
+ executes concurrently with <code class="command">ANALYZE</code>.
+ </p></li><li class="listitem"><p>
+ Fix function volatility checking for <code class="literal">GENERATED</code>
+ and <code class="literal">DEFAULT</code> expressions (Tom Lane)
+ </p><p>
+ These places could fail to detect insertion of a volatile function
+ default-argument expression, or decide that a polymorphic function
+ is volatile although it is actually immutable on the datatype of
+ interest. This could lead to improperly rejecting or accepting
+ a <code class="literal">GENERATED</code> clause, or to mistakenly applying the
+ constant-default-value optimization in <code class="command">ALTER TABLE ADD
+ COLUMN</code>.
+ </p></li><li class="listitem"><p>
+ Detect that a new catalog cache entry became stale while detoasting
+ its fields (Tom Lane)
+ </p><p>
+ We expand any out-of-line fields in a catalog tuple before inserting
+ it into the catalog caches. That involves database access which
+ might cause invalidation of catalog cache entries — but the
+ new entry isn't in the cache yet, so we would miss noticing that it
+ should get invalidated. The result is a race condition in which an
+ already-stale cache entry could get made, and then persist
+ indefinitely. This would lead to hard-to-predict misbehavior.
+ Fix by rechecking the tuple's visibility after detoasting.
+ </p></li><li class="listitem"><p>
+ Fix edge-case integer overflow detection bug on some platforms (Dean
+ Rasheed)
+ </p><p>
+ Computing <code class="literal">0 - INT64_MIN</code> should result in an
+ overflow error, and did on most platforms. However, platforms with
+ neither integer overflow builtins nor 128-bit integers would fail to
+ spot the overflow, instead returning <code class="literal">INT64_MIN</code>.
+ </p></li><li class="listitem"><p>
+ Detect Julian-date overflow when adding or subtracting
+ an <code class="type">interval</code> to/from a <code class="type">timestamp</code> (Tom Lane)
+ </p><p>
+ Some cases that should cause an out-of-range error produced an
+ incorrect result instead.
+ </p></li><li class="listitem"><p>
+ Add more checks for overflow in <code class="function">interval_mul()</code>
+ and <code class="function">interval_div()</code> (Dean Rasheed)
+ </p><p>
+ Some cases that should cause an out-of-range error produced an
+ incorrect result instead.
+ </p></li><li class="listitem"><p>
+ Ensure cached statistics are discarded after a change
+ to <code class="varname">stats_fetch_consistency</code> (Shinya Kato)
+ </p><p>
+ In some code paths, it was possible for stale statistics to be
+ returned.
+ </p></li><li class="listitem"><p>
+ Make the <code class="structname">pg_file_settings</code> view check
+ validity of unapplied values for settings
+ with <code class="literal">backend</code>
+ or <code class="literal">superuser-backend</code> context (Tom Lane)
+ </p><p>
+ Invalid values were not noted in the view as intended. This escaped
+ detection because there are very few settings in these groups.
+ </p></li><li class="listitem"><p>
+ Match collation too when matching an existing index to a new
+ partitioned index (Peter Eisentraut)
+ </p><p>
+ Previously we could accept an index that has a different collation
+ from the corresponding element of the partition key, possibly
+ leading to misbehavior.
+ </p></li><li class="listitem"><p>
+ Avoid failure if a child index is dropped concurrently
+ with <code class="command">REINDEX INDEX</code> on a partitioned index
+ (Fei Changhong)
+ </p></li><li class="listitem"><p>
+ Fix insufficient locking when cleaning up an incomplete split of
+ a GIN index's internal page (Fei Changhong, Heikki Linnakangas)
+ </p><p>
+ The code tried to do this with shared rather than exclusive lock on
+ the buffer. This could lead to index corruption if two processes
+ attempted the cleanup concurrently.
+ </p></li><li class="listitem"><p>
+ Avoid premature release of buffer pin in GIN index insertion
+ (Tom Lane)
+ </p><p>
+ If an index root page split occurs concurrently with our own
+ insertion, the code could fail with <span class="quote">“<span class="quote">buffer NNNN is not owned
+ by resource owner</span>”</span>.
+ </p></li><li class="listitem"><p>
+ Avoid failure with partitioned SP-GiST indexes (Tom Lane)
+ </p><p>
+ Trying to use an index of this kind could lead to <span class="quote">“<span class="quote">No such
+ file or directory</span>”</span> errors.
+ </p></li><li class="listitem"><p>
+ Fix ownership change reporting for large objects (Tom Lane)
+ </p><p>
+ A no-op <code class="command">ALTER LARGE OBJECT OWNER</code> command (that
+ is, one selecting the existing owner) passed the wrong class ID to
+ the <code class="varname">PostAlterHook</code>, probably confusing any
+ extension using that hook.
+ </p></li><li class="listitem"><p>
+ Fix reporting of I/O timing data in <code class="literal">EXPLAIN
+ (BUFFERS)</code> (Michael Paquier)
+ </p><p>
+ The numbers labeled as <span class="quote">“<span class="quote">shared/local</span>”</span> actually refer
+ only to shared buffers, so change that label
+ to <span class="quote">“<span class="quote">shared</span>”</span>.
+ </p></li><li class="listitem"><p>
+ Ensure durability of <code class="command">CREATE DATABASE</code> (Noah Misch)
+ </p><p>
+ If an operating system crash occurred during or shortly
+ after <code class="command">CREATE DATABASE</code>, recovery could fail, or
+ subsequent connections to the new database could fail. If a base
+ backup was taken in that window, similar problems could be observed
+ when trying to use the backup. The symptom would be that the
+ database directory, <code class="filename">PG_VERSION</code> file, or
+ <code class="filename">pg_filenode.map</code> file was missing or empty.
+ </p></li><li class="listitem"><p>
+ Add more <code class="literal">LOG</code> messages when starting and ending
+ recovery from a backup (Andres Freund)
+ </p><p>
+ This change provides additional information in the postmaster log
+ that may be useful for diagnosing recovery problems.
+ </p></li><li class="listitem"><p>
+ Prevent standby servers from incorrectly processing dead index
+ tuples during subtransactions (Fei Changhong)
+ </p><p>
+ The <code class="structfield">startedInRecovery</code> flag was not
+ correctly set for a subtransaction. This affects only processing of
+ dead index tuples. It could allow a query in a subtransaction to
+ ignore index entries that it should return (if they are already dead
+ on the primary server, but not dead to the standby transaction), or
+ to prematurely mark index entries as dead that are not yet dead on
+ the primary. It is not clear that the latter case has any serious
+ consequences, but it's not the intended behavior.
+ </p></li><li class="listitem"><p>
+ Fix integer overflow hazard in checking whether a record will fit
+ into the WAL decoding buffer (Thomas Munro)
+ </p><p>
+ This bug appears to be only latent except when running a
+ 32-bit <span class="productname">PostgreSQL</span> build on a 64-bit
+ platform.
+ </p></li><li class="listitem"><p>
+ Fix deadlock between a logical replication apply worker, its
+ tablesync worker, and a session process trying to alter the
+ subscription (Shlok Kyal)
+ </p><p>
+ One edge of the deadlock loop did not involve a lock wait, so the
+ deadlock went undetected and would persist until manual
+ intervention.
+ </p></li><li class="listitem"><p>
+ Ensure that column default values are correctly transmitted by
+ the <span class="application">pgoutput</span> logical replication plugin
+ (Nikhil Benesch)
+ </p><p>
+ <code class="command">ALTER TABLE ADD COLUMN</code> with a constant default
+ value for the new column avoids rewriting existing tuples, instead
+ expecting that reading code will insert the correct default into a
+ tuple that lacks that column. If replication was subsequently
+ initiated on the table, <span class="application">pgoutput</span> would
+ transmit NULL instead of the correct default for such a column,
+ causing incorrect replication on the subscriber.
+ </p></li><li class="listitem"><p>
+ Fix failure of logical replication's initial sync for a table with
+ no columns (Vignesh C)
+ </p><p>
+ This case generated an improperly-formatted <code class="command">COPY</code>
+ command.
+ </p></li><li class="listitem"><p>
+ Prevent examining system catalogs with the wrong snapshot during
+ logical decoding (Fei Changhong)
+ </p><p>
+ If decoding begins partway through a transaction that modifies
+ system catalogs, the decoder may not recognize that, causing it to
+ fail to treat that transaction as in-progress for catalog lookups.
+ This fix deals with the case that a top-level transaction is already
+ marked as containing catalog changes, but its subtransaction(s) are
+ not.
+ </p></li><li class="listitem"><p>
+ Return the correct status code when a new client disconnects without
+ responding to the server's password challenge (Liu Lang, Tom Lane)
+ </p><p>
+ In some cases we'd treat this as a loggable error, which was not the
+ intention and tends to create log spam, since common clients
+ like <span class="application">psql</span> frequently do this. It may
+ also confuse extensions that
+ use <code class="varname">ClientAuthentication_hook</code>.
+ </p></li><li class="listitem"><p>
+ Fix incompatibility with <span class="application">OpenSSL</span> 3.2
+ (Tristan Partin, Bo Andreson)
+ </p><p>
+ Use the BIO <span class="quote">“<span class="quote">app_data</span>”</span> field for our private storage,
+ instead of assuming it's okay to use the <span class="quote">“<span class="quote">data</span>”</span> field.
+ This mistake didn't cause problems before, but with 3.2 it leads
+ to crashes and complaints about double frees.
+ </p></li><li class="listitem"><p>
+ Be more wary about <span class="application">OpenSSL</span> not
+ setting <code class="varname">errno</code> on error (Tom Lane)
+ </p><p>
+ If <code class="varname">errno</code> isn't set, assume the cause of the
+ reported failure is read EOF. This fixes rare cases of strange
+ error reports like <span class="quote">“<span class="quote">could not accept SSL connection:
+ Success</span>”</span>.
+ </p></li><li class="listitem"><p>
+ Fix file descriptor leakage when a foreign data
+ wrapper's <code class="function">ForeignAsyncRequest</code> function fails
+ (Heikki Linnakangas)
+ </p></li><li class="listitem"><p>
+ Report <span class="systemitem">ENOMEM</span> errors from file-related system
+ calls as <code class="literal">ERRCODE_OUT_OF_MEMORY</code>,
+ not <code class="literal">ERRCODE_INTERNAL_ERROR</code> (Alexander Kuzmenkov)
+ </p></li><li class="listitem"><p>
+ In <span class="application">PL/pgSQL</span>, support SQL commands that
+ are <code class="command">CREATE FUNCTION</code>/<code class="command">CREATE
+ PROCEDURE</code> with SQL-standard bodies (Tom Lane)
+ </p><p>
+ Previously, such cases failed with parsing errors due to the
+ semicolon(s) appearing in the function body.
+ </p></li><li class="listitem"><p>
+ Fix <span class="application">libpq</span>'s
+ handling of errors in pipelines (Álvaro Herrera)
+ </p><p>
+ The pipeline state could get out of sync if an error is returned
+ for reasons other than a query problem (for example, if the
+ connection is lost). Potentially this would lead to a busy-loop in
+ the calling application.
+ </p></li><li class="listitem"><p>
+ Make <span class="application">libpq</span>'s
+ <code class="function">PQsendFlushRequest()</code> function flush the client
+ output buffer under the same rules as
+ other <code class="literal">PQsend</code> functions (Jelte Fennema-Nio)
+ </p><p>
+ In pipeline mode, it may still be necessary to
+ call <code class="function">PQflush()</code> as well; but this change removes
+ some inconsistency.
+ </p></li><li class="listitem"><p>
+ Avoid race condition when <span class="application">libpq</span>
+ initializes OpenSSL support concurrently in two different threads
+ (Willi Mann, Michael Paquier)
+ </p></li><li class="listitem"><p>
+ Fix timing-dependent failure in GSSAPI data transmission (Tom Lane)
+ </p><p>
+ When using GSSAPI encryption in non-blocking
+ mode, <span class="application">libpq</span> sometimes failed
+ with <span class="quote">“<span class="quote">GSSAPI caller failed to retransmit all data needing to
+ be retried</span>”</span>.
+ </p></li><li class="listitem"><p>
+ In <span class="application">pg_dump</span>, don't dump RLS policies or
+ security labels for extension member objects (Tom Lane, Jacob
+ Champion)
+ </p><p>
+ Previously, commands would be included in the dump to set these
+ properties, which is really incorrect since they should be
+ considered as internal affairs of the extension. Moreover, the
+ restoring user might not have adequate privilege to set them, and
+ indeed the dumping user might not have enough privilege to dump them
+ (since dumping RLS policies requires acquiring lock on their table).
+ </p></li><li class="listitem"><p>
+ In <span class="application">pg_dump</span>, don't dump an extended
+ statistics object if its underlying table isn't being dumped
+ (Rian McGuire, Tom Lane)
+ </p><p>
+ This conforms to the behavior for other dependent objects such as
+ indexes.
+ </p></li><li class="listitem"><p>
+ Make it an error for a <span class="application">pgbench</span> script to
+ end with an open pipeline (Anthonin Bonnefoy)
+ </p><p>
+ Previously, <span class="application">pgbench</span> would behave oddly if
+ a <code class="command">\startpipeline</code> command lacked a
+ matching <code class="command">\endpipeline</code>. This seems like a
+ scripting mistake rather than a case
+ that <span class="application">pgbench</span> needs to handle nicely, so
+ throw an error.
+ </p></li><li class="listitem"><p>
+ In <code class="filename">contrib/bloom</code>, fix overly tight assertion
+ about <code class="varname">false_positive_rate</code> (Alexander Lakhin)
+ </p></li><li class="listitem"><p>
+ Fix crash in <code class="filename">contrib/intarray</code> if an array with
+ an element equal to <code class="literal">INT_MAX</code> is inserted into
+ a <code class="literal">gist__int_ops</code> index
+ (Alexander Lakhin, Tom Lane)
+ </p></li><li class="listitem"><p>
+ Report a better error
+ when <code class="filename">contrib/pageinspect</code>'s
+ <code class="function">hash_bitmap_info()</code> function is applied to a
+ partitioned hash index (Alexander Lakhin, Michael Paquier)
+ </p></li><li class="listitem"><p>
+ Report a better error
+ when <code class="filename">contrib/pgstattuple</code>'s
+ <code class="function">pgstathashindex()</code> function is applied to a
+ partitioned hash index (Alexander Lakhin)
+ </p></li><li class="listitem"><p>
+ On Windows, suppress autorun options when launching subprocesses
+ in <span class="application">pg_ctl</span>
+ and <span class="application">pg_regress</span> (Kyotaro Horiguchi)
+ </p><p>
+ When launching a child process via <code class="filename">cmd.exe</code>,
+ pass the <code class="option">/D</code> flag to prevent executing any autorun
+ commands specified in the registry. This avoids possibly-surprising
+ side effects.
+ </p></li><li class="listitem"><p>
+ Move <code class="function">is_valid_ascii()</code>
+ from <code class="filename">mb/pg_wchar.h</code>
+ to <code class="filename">utils/ascii.h</code> (Jubilee Young)
+ </p><p>
+ This change avoids the need to
+ include <code class="filename">&lt;simd.h&gt;</code>
+ in <code class="filename">pg_wchar.h</code>, which was causing problems for
+ some third-party code.
+ </p></li><li class="listitem"><p>
+ Fix compilation failures with <span class="application">libxml2</span>
+ version 2.12.0 and later (Tom Lane)
+ </p></li><li class="listitem"><p>
+ Fix compilation failure of <code class="literal">WAL_DEBUG</code> code on
+ Windows (Bharath Rupireddy)
+ </p></li><li class="listitem"><p>
+ Suppress compiler warnings from Python's header files
+ (Peter Eisentraut, Tom Lane)
+ </p><p>
+ Our preferred compiler options provoke warnings about constructs
+ appearing in recent versions of Python's header files. When using
+ <span class="application">gcc</span>, we can suppress these warnings with
+ a pragma.
+ </p></li><li class="listitem"><p>
+ Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro)
+ </p></li><li class="listitem"><p>
+ Update time zone data files to <span class="application">tzdata</span>
+ release 2024a for DST law changes in Greenland, Kazakhstan, and
+ Palestine, plus corrections for the Antarctic stations Casey and
+ Vostok. Also historical corrections for Vietnam, Toronto, and
+ Miquelon.
+ </p></li></ul></div></div></div><div class="navfooter"><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-15-5.html" title="E.2. Release 15.5">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 15.6 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.2. Release 15.5</td></tr></table></div></body></html> \ No newline at end of file