summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/html/release-13-3.html
blob: b443934e8d6e25ddc32a935e605754186db550f6 (plain)
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>