1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
|
<?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 16.2</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-16-1.html" title="E.2. Release 16.1" /></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 16.2</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 16.2 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-16-1.html" title="E.2. Release 16.1">Next</a></td></tr></table><hr /></div><div class="sect1" id="RELEASE-16-2"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.1. Release 16.2 <a href="#RELEASE-16-2" class="id_link">#</a></h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-16-2.html#RELEASE-16-2-MIGRATION">E.1.1. Migration to Version 16.2</a></span></dt><dt><span class="sect2"><a href="release-16-2.html#RELEASE-16-2-CHANGES">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 16.1.
For information about new features in major release 16, see
<a class="xref" href="release-16.html" title="E.3. Release 16">Section E.3</a>.
</p><div class="sect2" id="RELEASE-16-2-MIGRATION"><div class="titlepage"><div><div><h3 class="title">E.1.1. Migration to Version 16.2 <a href="#RELEASE-16-2-MIGRATION" class="id_link">#</a></h3></div></div></div><p>
A dump/restore is not required for those running 16.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 16.1,
see <a class="xref" href="release-16-1.html" title="E.2. Release 16.1">Section E.2</a>.
</p></div><div class="sect2" id="RELEASE-16-2-CHANGES"><div class="titlepage"><div><div><h3 class="title">E.1.2. Changes <a href="#RELEASE-16-2-CHANGES" class="id_link">#</a></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>
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>
Fix detection of inner-side uniqueness for Memoize plans
(Richard Guo)
</p><p>
This mistake could lead to <span class="quote">“<span class="quote">cache entry already
complete</span>”</span> errors.
</p></li><li class="listitem"><p>
Fix computation of nullingrels when constant-folding field selection
(Richard Guo)
</p><p>
Failure to do this led to errors like <span class="quote">“<span class="quote">wrong varnullingrels
(b) (expected (b 3)) for Var 2/2</span>”</span>.
</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>
Fix corruption of local buffer state when an error occurs while
trying to extend a temporary table (Tender Wang)
</p></li><li class="listitem"><p>
Fix use of wrong tuple slot while
evaluating <code class="literal">DISTINCT</code> aggregates that have multiple
arguments (David Rowley)
</p><p>
This mistake could lead to errors such as <span class="quote">“<span class="quote">attribute 1 of type
record has wrong type</span>”</span>.
</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>
Fix <code class="command">DROP ROLE</code> with duplicate role names
(Michael Paquier)
</p><p>
Previously this led to a <span class="quote">“<span class="quote">tuple already updated by
self</span>”</span> failure. Instead, ignore the duplicate.
</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>
Allow <code class="function">scram_SaltedPassword()</code> to be interrupted
(Bowen Shi)
</p><p>
With large <code class="varname">scram_iterations</code> values, this function
could take a long time to run. Allow it to be interrupted by query
cancel requests.
</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 tests for large objects (Tom Lane)
</p><p>
Operations on large objects that require ownership privilege failed
with <span class="quote">“<span class="quote">unrecognized class ID: 2613</span>”</span>, unless run by a
superuser.
</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 signal handling in walreceiver processes (Heikki Linnakangas)
</p><p>
Revert a change that made walreceivers non-responsive
to <span class="systemitem">SIGTERM</span> while waiting for the
replication connection to be established.
</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>
Re-validate a subscription's connection string before use (Vignesh C)
</p><p>
This is meant to detect cases where a subscription was created
without a password (which is allowed to superusers) but then the
subscription owner is changed to a non-superuser.
</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>
Fix minor memory leak in connection string validation
for <code class="command">CREATE SUBSCRIPTION</code> (Jeff Davis)
</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>
Change <span class="application">initdb</span> to always un-comment
the <code class="filename">postgresql.conf</code> entries for
the <code class="literal">lc_<em class="replaceable"><code>xxx</code></em></code> parameters
(Kyotaro Horiguchi)
</p><p>
<span class="application">initdb</span> used to work this way before v16,
and now it does again. The change
caused <span class="application">initdb</span>'s <code class="option">--no-locale</code>
option to not have the intended effect
on <code class="varname">lc_messages</code>.
</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>
Properly detect out-of-memory in one code path
in <span class="application">pg_dump</span> (Daniel Gustafsson)
</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"><simd.h></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-16-1.html" title="E.2. Release 16.1">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 16.2 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.2. Release 16.1</td></tr></table></div></body></html>
|