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
|
<?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.2. Release 13.3</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 V1.79.1" /><link rel="prev" href="release-13-4.html" title="E.1. Release 13.4" /><link rel="next" href="release-13-2.html" title="E.3. Release 13.2" /></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.2. Release 13.3</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-13-4.html" title="E.1. Release 13.4">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 13.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-13-2.html" title="E.3. Release 13.2">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-13-3"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.2. Release 13.3</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-13-3.html#id-1.11.6.6.4">E.2.1. Migration to Version 13.3</a></span></dt><dt><span class="sect2"><a href="release-13-3.html#id-1.11.6.6.5">E.2.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2021-05-13</p><p>
This release contains a variety of fixes from 13.2.
For information about new features in major release 13, see
<a class="xref" href="release-13.html" title="E.5. Release 13">Section E.5</a>.
</p><div class="sect2" id="id-1.11.6.6.4"><div class="titlepage"><div><div><h3 class="title">E.2.1. Migration to Version 13.3</h3></div></div></div><p>
A dump/restore is not required for those running 13.X.
</p><p>
However, if you are upgrading from a version earlier than 13.2,
see <a class="xref" href="release-13-2.html" title="E.3. Release 13.2">Section E.3</a>.
</p></div><div class="sect2" id="id-1.11.6.6.5"><div class="titlepage"><div><div><h3 class="title">E.2.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
Prevent integer overflows in array subscripting calculations
(Tom Lane)
</p><p>
The array code previously did not complain about cases where an
array's lower bound plus length overflows an integer. This resulted
in later entries in the array becoming inaccessible (since their
subscripts could not be written as integers), but more importantly
it confused subsequent assignment operations. This could lead to
memory overwrites, with ensuing crashes or unwanted data
modifications.
(CVE-2021-32027)
</p></li><li class="listitem"><p>
Fix mishandling of <span class="quote">“<span class="quote">junk</span>”</span> columns in <code class="literal">INSERT
... ON CONFLICT ... UPDATE</code> target lists (Tom Lane)
</p><p>
If the <code class="literal">UPDATE</code> list contains any multi-column
sub-selects (which give rise to junk columns in addition to the
results proper), the <code class="literal">UPDATE</code> path would end up
storing tuples that include the values of the extra junk columns.
That's fairly harmless in the short run, but if new columns are
added to the table then the values would become accessible, possibly
leading to malfunctions if they don't match the datatypes of the
added columns.
</p><p>
In addition, in versions supporting cross-partition updates,
a cross-partition update triggered by such a case had the reverse
problem: the junk columns were removed from the target list,
typically causing an immediate crash due to malfunction of the
multi-column sub-select mechanism.
(CVE-2021-32028)
</p></li><li class="listitem"><p>
Fix possibly-incorrect computation of <code class="command">UPDATE
... RETURNING</code> outputs for joined cross-partition updates
(Amit Langote, Etsuro Fujita)
</p><p>
If an <code class="command">UPDATE</code> for a partitioned table caused a row
to be moved to another partition with a physically different row
type (for example, one with a different set of dropped columns),
computation of <code class="literal">RETURNING</code> results for that row
could produce errors or wrong answers. No error is observed unless
the <code class="command">UPDATE</code> involves other tables being joined to
the target table.
(CVE-2021-32029)
</p></li><li class="listitem"><p>
Fix adjustment of constraint deferrability properties in
partitioned tables (Álvaro Herrera)
</p><p>
When applied to a foreign-key constraint of a partitioned table,
<code class="command">ALTER TABLE ... ALTER CONSTRAINT</code> failed to
adjust the <code class="literal">DEFERRABLE</code> and/or
<code class="literal">INITIALLY DEFERRED</code> markings of the constraints
and triggers of leaf partitions. This led to unexpected behavior of
such constraints. After updating to this version, any misbehaving
partitioned tables can be fixed by executing a
new <code class="command">ALTER</code> command to set the desired properties.
</p><p>
This change also disallows applying such an <code class="command">ALTER</code>
directly to the constraints of leaf partitions. The only supported
case is for the whole partitioning hierarchy to have identical
constraint properties, so such <code class="command">ALTER</code>s must be
applied at the partition root.
</p></li><li class="listitem"><p>
When attaching a child table with <code class="command">ALTER TABLE
... INHERIT</code>, insist that any generated columns in the
parent be generated the same way in the child (Peter Eisentraut)
</p></li><li class="listitem"><p>
Forbid marking an identity column as nullable (Vik Fearing)
</p><p>
<code class="literal">GENERATED ... AS IDENTITY</code> implies <code class="literal">NOT
NULL</code>, so don't allow it to be combined with an
explicit <code class="literal">NULL</code> specification.
</p></li><li class="listitem"><p>
Allow <code class="literal">ALTER ROLE/DATABASE ... SET</code> to set
the <code class="varname">role</code>, <code class="varname">session_authorization</code>,
and <code class="varname">temp_buffers</code> parameters (Tom Lane)
</p><p>
Previously, over-eager validity checks might reject these commands,
even if the values would have worked when used later. This created
a command ordering hazard for dump/reload and upgrade scenarios.
</p></li><li class="listitem"><p>
Ensure that <code class="command">REINDEX CONCURRENTLY</code> preserves any
statistics target that's been set for the index (Michael Paquier)
</p></li><li class="listitem"><p>
Fix <code class="command">COMMIT AND CHAIN</code> to work correctly when the
current transaction has live savepoints (Fujii Masao)
</p></li><li class="listitem"><p>
Fix list-manipulation bug in <code class="literal">WITH RECURSIVE</code>
processing (Michael Paquier, Tom Lane)
</p><p>
Sufficiently deep nesting of <code class="literal">WITH</code> constructs
(at least seven levels) triggered core dumps or incorrect complaints
of faulty <code class="literal">WITH</code> nesting.
</p></li><li class="listitem"><p>
Fix bug with coercing the result of a <code class="literal">COLLATE</code>
expression to a non-collatable type (Tom Lane)
</p><p>
This led to a parse tree in which the <code class="literal">COLLATE</code>
appears to be applied to a non-collatable value. While that
normally has no real impact (since <code class="literal">COLLATE</code> has no
effect at runtime), it was possible to construct views that would be
rejected during dump/reload.
</p></li><li class="listitem"><p>
Fix use-after-free bug in saving tuples for <code class="literal">AFTER</code>
triggers (Amit Langote)
</p><p>
This could cause crashes in some situations.
</p></li><li class="listitem"><p>
Disallow calling window functions and procedures via
the <span class="quote">“<span class="quote">fast path</span>”</span> wire protocol message (Tom Lane)
</p><p>
Only plain functions are supported here. While trying to call
an aggregate function failed already, calling a window function
would crash, and calling a procedure would work only if the
procedure did no transaction control.
</p></li><li class="listitem"><p>
Extend <code class="function">pg_identify_object_as_address()</code>
to support event triggers (Joel Jacobson)
</p></li><li class="listitem"><p>
Fix <code class="function">to_char()</code>'s handling of Roman-numeral month
format codes with negative intervals (Julien Rouhaud)
</p><p>
Previously, such cases would usually cause a crash.
</p></li><li class="listitem"><p>
Check that the argument
of <code class="function">pg_import_system_collations()</code> is a valid
schema OID (Tom Lane)
</p></li><li class="listitem"><p>
Fix use of uninitialized value while parsing an
<code class="literal">\{<em class="replaceable"><code>m</code></em>,<em class="replaceable"><code>n</code></em>\}</code>
quantifier in a BRE-mode regular expression (Tom Lane)
</p><p>
This error could cause the quantifier to act non-greedy, that is
behave like an
<code class="literal">{<em class="replaceable"><code>m</code></em>,<em class="replaceable"><code>n</code></em>}?</code>
quantifier would do in full regular expressions.
</p></li><li class="listitem"><p>
Fix <span class="quote">“<span class="quote">could not find pathkey item to sort</span>”</span> planner
errors in some situations where the sort key involves an aggregate
or window function (James Coleman, Tom Lane)
</p></li><li class="listitem"><p>
Don't ignore system columns when estimating the number of groups
using extended statistics (Tomas Vondra)
</p><p>
This led to strange estimates for queries such as <code class="literal">SELECT
... GROUP BY a, b, ctid</code>.
</p></li><li class="listitem"><p>
Avoid divide-by-zero when estimating selectivity of a regular
expression with a very long fixed prefix (Tom Lane)
</p><p>
This typically led to a <code class="literal">NaN</code> selectivity value,
causing assertion failures or strange planner behavior.
</p></li><li class="listitem"><p>
Fix access-off-the-end-of-the-table error in BRIN index bitmap scans
(Tomas Vondra)
</p><p>
If the page range size used by a BRIN index isn't a power of two,
there were corner cases in which a bitmap scan could try to fetch
pages past the actual end of the table, leading to <span class="quote">“<span class="quote">could not
open file</span>”</span> errors.
</p></li><li class="listitem"><p>
Fix potentially wrong answers from GIN <code class="type">tsvector</code> index
searches, when there are many matching tuples (Tom Lane)
</p><p>
If the number of index matches became large enough to make the
bitmap holding them become lossy (a threshold that depends
on <code class="varname">work_mem</code>), the code could get confused about
whether rechecks are required, allowing rows to be returned that
don't actually match the query.
</p></li><li class="listitem"><p>
Fix concurrency issues with WAL segment recycling on Windows
(Michael Paquier)
</p><p>
This reverts a change that caused intermittent <span class="quote">“<span class="quote">could not
rename file ...: Permission denied</span>”</span> log messages. While
there were not serious consequences, the log spam was annoying.
</p></li><li class="listitem"><p>
Avoid incorrect timeline change while recovering uncommitted
two-phase transactions from WAL (Soumyadeep Chakraborty, Jimmy Yih,
Kevin Yeap)
</p><p>
This error could lead to subsequent WAL records being written under
the wrong timeline ID, leading to consistency problems, or even
complete failure to be able to restart the server, later on.
</p></li><li class="listitem"><p>
Ensure that locks are released while shutting down a standby
server's startup process (Fujii Masao)
</p><p>
When a standby server is shut down while still in recovery, some
locks might be left held. This causes assertion failures in debug
builds; it's unclear whether any serious consequence could occur
in production builds.
</p></li><li class="listitem"><p>
Fix crash when a logical replication worker does <code class="command">ALTER
SUBSCRIPTION REFRESH</code> (Peter Smith)
</p><p>
The core code won't do this, but a replica trigger could.
</p></li><li class="listitem"><p>
Ensure we default to <code class="varname">wal_sync_method</code>
= <code class="literal">fdatasync</code> on recent FreeBSD (Thomas Munro)
</p><p>
FreeBSD 13 supports <code class="literal">open_datasync</code>, which would
normally become the default choice. However, it's unclear whether
that is actually an improvement for Postgres, so preserve the
existing default for now.
</p></li><li class="listitem"><p>
Disable the <code class="varname">vacuum_cleanup_index_scale_factor</code>
parameter and storage option (Peter Geoghegan)
</p><p>
The notion of tracking <span class="quote">“<span class="quote">stale</span>”</span> index statistics proved
to interact badly with
the <code class="varname">autovacuum_vacuum_insert_threshold</code> parameter,
resulting in unnecessary full-index scans and consequent degradation
of autovacuum performance. The latter mechanism seems superior, so
remove the stale-statistics logic. The control parameter for that,
<code class="varname">vacuum_cleanup_index_scale_factor</code>, will be
removed entirely in v14. In v13, it remains present to avoid
breaking existing configuration files, but it no longer does
anything.
</p></li><li class="listitem"><p>
Pass the correct trigger OID to object post-alter hooks
during <code class="command">ALTER CONSTRAINT</code> (Álvaro Herrera)
</p><p>
When updating trigger properties during <code class="command">ALTER
CONSTRAINT</code>, the post-alter hook was told that we are
updating a trigger, but the constraint's OID was passed instead of
the trigger's.
</p></li><li class="listitem"><p>
Ensure we finish cleaning up when interrupted while detaching a DSM
segment (Thomas Munro)
</p><p>
This error could result in temporary files not being cleaned up
promptly after a parallel query.
</p></li><li class="listitem"><p>
Fix assorted minor memory leaks in the server (Tom Lane, Andres Freund)
</p></li><li class="listitem"><p>
Fix uninitialized variable in walreceiver's statistics in shared
memory (Fujii Masao)
</p><p>
This error was harmless on most platforms, but could cause issues
on platforms lacking atomic variables and/or spinlock support.
</p></li><li class="listitem"><p>
Reduce the overhead of dtrace probes for LWLock operations, when
dtrace support is compiled in but not active (Peter Eisentraut)
</p></li><li class="listitem"><p>
Fix failure when a PL/pgSQL <code class="command">DO</code> block makes use of
both composite-type variables and transaction control (Tom Lane)
</p><p>
Previously, such cases led to errors about leaked tuple descriptors.
</p></li><li class="listitem"><p>
Prevent infinite loop in <span class="application">libpq</span>
if a ParameterDescription message with a corrupt length is received
(Tom Lane)
</p></li><li class="listitem"><p>
When <span class="application">initdb</span> prints instructions about how
to start the server, make the path shown
for <span class="application">pg_ctl</span> use backslash separators on
Windows (Nitin Jadhav)
</p></li><li class="listitem"><p>
Fix <span class="application">psql</span> to restore the previous behavior
of <code class="literal">\connect
service=<em class="replaceable"><code>something</code></em></code> (Tom Lane)
</p><p>
A previous bug fix caused environment variables (such
as <code class="varname">PGPORT</code>) to override entries in the service
file in this context. Restore the previous behavior, in which the
priority is the other way around.
</p></li><li class="listitem"><p>
Fix <span class="application">psql</span>'s <code class="literal">ON_ERROR_ROLLBACK</code>
feature to handle <code class="literal">COMMIT AND CHAIN</code> commands
correctly (Arthur Nascimento)
</p><p>
Previously, this case failed with <span class="quote">“<span class="quote">savepoint
"pg_psql_temporary_savepoint" does not exist</span>”</span>.
</p></li><li class="listitem"><p>
In <span class="application">psql</span>, avoid repeated <span class="quote">“<span class="quote">could not
print result table</span>”</span> failures after the first such error
(Álvaro Herrera)
</p></li><li class="listitem"><p>
Fix race condition in detection of file modification by
<span class="application">psql</span>'s <code class="literal">\e</code> and related
commands (Laurenz Albe)
</p><p>
A very fast typist could fool the code's file-timestamp-based
detection of whether the temporary edit file was changed.
</p></li><li class="listitem"><p>
Fix <span class="application">pg_dump</span>'s dumping of
generated columns in partitioned tables (Peter Eisentraut)
</p><p>
A fix introduced in the previous minor release should not be applied
to partitioned tables, only traditionally-inherited tables.
</p></li><li class="listitem"><p>
Fix missed file version check
in <span class="application">pg_restore</span> (Tom Lane)
</p><p>
When reading a custom-format archive from a non-seekable source,
<span class="application">pg_restore</span> neglected to check the
archive version. If it was fed a newer archive version than it
can support, it would fail messily later on.
</p></li><li class="listitem"><p>
Add some more checks to <span class="application">pg_upgrade</span> for
user tables containing non-upgradable data types (Tom Lane)
</p><p>
Fix detection of some cases where a non-upgradable data type is
embedded within a container type (such as an array or range).
Also disallow upgrading when user tables contain columns of
system-defined composite types, since those types' OIDs are not
stable across versions.
</p></li><li class="listitem"><p>
Fix incorrect progress-reporting calculation
in <span class="application">pg_checksums</span> (Shinya Kato)
</p></li><li class="listitem"><p>
Fix <span class="application">pg_waldump</span> to
count <code class="literal">XACT</code> records correctly when generating
per-record statistics (Kyotaro Horiguchi)
</p></li><li class="listitem"><p>
Fix <code class="filename">contrib/amcheck</code> to not complain about the
tuple flags <code class="literal">HEAP_XMAX_LOCK_ONLY</code>
and <code class="literal">HEAP_KEYS_UPDATED</code> both being set
(Julien Rouhaud)
</p><p>
This is a valid state after <code class="literal">SELECT FOR UPDATE</code>.
</p></li><li class="listitem"><p>
Adjust VPATH build rules to support recent Oracle Developer Studio
compiler versions (Noah Misch)
</p></li><li class="listitem"><p>
Fix testing of PL/Python for Python 3 on Solaris (Noah Misch)
</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-13-4.html" title="E.1. Release 13.4">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-13-2.html" title="E.3. Release 13.2">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.1. Release 13.4 </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 13.4 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.3. Release 13.2</td></tr></table></div></body></html>
|