summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/html/release-15-1.html
blob: 48c6ab2d1b1e8358d571ceb1bbed882c0800c894 (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
<?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.5. Release 15.1</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-15-2.html" title="E.4. Release 15.2" /><link rel="next" href="release-15.html" title="E.6. Release 15" /></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.5. Release 15.1</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-15-2.html" title="E.4. Release 15.2">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.5 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-15.html" title="E.6. Release 15">Next</a></td></tr></table><hr /></div><div class="sect1" id="RELEASE-15-1"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.5. Release 15.1</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-15-1.html#id-1.11.6.9.4">E.5.1. Migration to Version 15.1</a></span></dt><dt><span class="sect2"><a href="release-15-1.html#id-1.11.6.9.5">E.5.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2022-11-10</p><p>
   This release contains a variety of fixes from 15.0.
   For information about new features in major release 15, see
   <a class="xref" href="release-15.html" title="E.6. Release 15">Section E.6</a>.
  </p><div class="sect2" id="id-1.11.6.9.4"><div class="titlepage"><div><div><h3 class="title">E.5.1. Migration to Version 15.1</h3></div></div></div><p>
    A dump/restore is not required for those running 15.X.
   </p><p>
    However, if you regularly create and drop tables exceeding 1GB,
    see the first changelog entry below.
   </p></div><div class="sect2" id="id-1.11.6.9.5"><div class="titlepage"><div><div><h3 class="title">E.5.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
      Fix failure to remove non-first segments of large tables
      (Tom Lane)
     </p><p>
      <span class="productname">PostgreSQL</span> splits large tables into
      multiple files (normally with 1GB per file).  The logic for dropping
      a table was broken and would miss removing all but the first such
      file, in two cases: drops of temporary tables and WAL replay of
      drops of regular tables.  Applications that routinely create
      multi-gigabyte temporary tables could suffer significant disk space
      leakage.
     </p><p>
      Orphaned temporary-table files are removed during postmaster start,
      so the mere act of updating to 15.1 is sufficient to clear any
      leaked temporary-table storage.  However, if you suffered any
      database crashes while using 15.0, and there might have been
      large tables dropped just before such crashes, it's advisable
      to check the database directories for files named according to the
      pattern
      <code class="literal"><em class="replaceable"><code>NNNN</code></em>.<em class="replaceable"><code>NN</code></em></code>.
      If there is no matching file named
      just <code class="literal"><em class="replaceable"><code>NNNN</code></em></code> (without
      the <code class="literal">.<em class="replaceable"><code>NN</code></em></code> suffix), these
      files should be removed manually.
     </p></li><li class="listitem"><p>
      Fix handling of <code class="literal">DEFAULT</code> tokens that appear
      in a multi-row <code class="literal">VALUES</code> clause of an
      <code class="command">INSERT</code> on an updatable view (Tom Lane)
     </p><p>
      This oversight could lead to <span class="quote"><span class="quote">cache lookup failed for
      type</span></span> errors, or in older branches even to crashes.
     </p></li><li class="listitem"><p>
      Disallow rules named <code class="literal">_RETURN</code> that are
      not <code class="literal">ON SELECT</code> (Tom Lane)
     </p><p>
      This avoids confusion between a view's <code class="literal">ON SELECT</code>
      rule and any other rules it may have.
     </p></li><li class="listitem"><p>
      Avoid failure in <code class="command">EXPLAIN VERBOSE</code> for a query
      using <code class="literal">SEARCH BREADTH FIRST</code> with constant
      initial values (Tom Lane)
     </p></li><li class="listitem"><p>
      Prevent use of <code class="command">MERGE</code> on a partitioned table with
      foreign-table partitions (Álvaro Herrera)
     </p><p>
      The case isn't supported, and previously threw an incomprehensible
      error.
     </p></li><li class="listitem"><p>
      Fix construction of per-partition foreign key constraints while
      doing <code class="command">ALTER TABLE ATTACH PARTITION</code>
      (Jehan-Guillaume de Rorthais, Álvaro Herrera)
     </p><p>
      Previously, incorrect or duplicate constraints could be constructed
      for the newly-added partition.
     </p></li><li class="listitem"><p>
      Fix planner failure with extended statistics on partitioned or
      inherited tables (Richard Guo, Justin Pryzby)
     </p><p>
      Some cases failed with <span class="quote"><span class="quote">cache lookup failed for statistics
      object</span></span>.
     </p></li><li class="listitem"><p>
      Fix mis-ordering of WAL operations in fast insert path for GIN
      indexes (Matthias van de Meent, Zhang Mingli)
     </p><p>
      This mistake is not known to have any negative consequences within
      core <span class="productname">PostgreSQL</span>, but it did cause issues
      for some extensions.
     </p></li><li class="listitem"><p>
      Fix bugs in logical decoding when replay starts from a point
      between the beginning of a transaction and the beginning of its
      subtransaction (Masahiko Sawada, Kuroda Hayato)
     </p><p>
      These errors could lead to assertion failures in debug builds, and
      otherwise to memory leaks.
     </p></li><li class="listitem"><p>
      Accept interrupts in more places during logical decoding (Amit
      Kapila, Masahiko Sawada)
     </p><p>
      This ameliorates problems with slow shutdown of replication workers.
     </p></li><li class="listitem"><p>
      Prevent attempts to replicate into a foreign-table partition in
      replication workers (Shi Yu, Tom Lane)
     </p><p>
      Although partitioned tables can have foreign tables as partitions,
      replicating into such a partition isn't currently supported.
      The logical replication worker process would crash if it was
      attempted.  Now, an error is thrown.
     </p></li><li class="listitem"><p>
      Avoid crash after function syntax error in replication workers
      (Maxim Orlov, Anton Melnikov, Masahiko Sawada, Tom Lane)
     </p><p>
      If a syntax error occurred in a SQL-language or PL/pgSQL-language
      <code class="command">CREATE FUNCTION</code> or <code class="command">DO</code> command
      executed in a logical replication worker, the worker process would
      crash with a null pointer dereference or assertion failure.
     </p></li><li class="listitem"><p>
      Avoid double call of the shutdown callback of an archiver module
      (Nathan Bossart, Bharath Rupireddy)
     </p></li><li class="listitem"><p>
      Add plan-time check for attempted access to a table that has no
      table access method (Tom Lane)
     </p><p>
      This prevents a crash in some catalog-corruption scenarios, for
      example use of a view whose <code class="literal">ON SELECT</code> rule is
      missing.
     </p></li><li class="listitem"><p>
      Prevent postmaster crash when shared-memory state is corrupted
      (Tom Lane)
     </p><p>
      The postmaster process is supposed to survive and initiate a
      database restart if shared memory becomes corrupted, but one
      bit of code was being insufficiently cautious about that.
     </p></li><li class="listitem"><p>
      In <span class="application">libpq</span>, handle single-row mode
      correctly when pipelining (Denis Laxalde)
     </p><p>
      The single-row flag was not reset at the correct time if pipeline
      mode was also active.
     </p></li><li class="listitem"><p>
      Fix <span class="application">psql</span>'s exit status when a
      command-line query is canceled (Peter Eisentraut)
     </p><p>
      <code class="literal">psql -c <em class="replaceable"><code>query</code></em></code> would
      exit successfully if the query was canceled.  Fix it to exit with
      nonzero status, as in other error cases.
     </p></li><li class="listitem"><p>
      Allow cross-platform tablespace relocation
      in <span class="application">pg_basebackup</span> (Robert Haas)
     </p><p>
      Allow the remote path in <code class="option">--tablespace-mapping</code> to be
      either a Unix-style or Windows-style absolute path, since the source
      server could be on a different OS than the local system.
     </p></li><li class="listitem"><p>
      Fix <span class="application">pg_dump</span>'s failure to dump comments
      attached to some <code class="literal">CHECK</code> constraints (Tom Lane)
     </p></li><li class="listitem"><p>
      Fix <code class="command">CREATE DATABASE</code> to allow
      its <code class="literal">oid</code> parameter to exceed
      2<sup>31</sup> (Tom Lane)
     </p><p>
      This oversight prevented <span class="application">pg_upgrade</span> from
      succeeding when the source installation contained databases with
      OIDs larger than that.
     </p></li><li class="listitem"><p>
      In <span class="application">pg_stat_statements</span>, fix access to
      already-freed memory (zhaoqigui)
     </p><p>
      This occurred if <span class="application">pg_stat_statements</span>
      tracked a <code class="command">ROLLBACK</code> command issued via extended
      query protocol.  In debug builds it consistently led to an assertion
      failure.  In production builds there would often be no visible ill
      effect; but if the freed memory had already been reused, the likely
      result would be to store garbage for the query string.
     </p></li><li class="listitem"><p>
      Fix incompatibilities with LLVM 15 (Thomas Munro, Andres Freund)
     </p></li><li class="listitem"><p>
      Allow use of <code class="function">__sync_lock_test_and_set()</code> for
      spinlocks on any machine (Tom Lane)
     </p><p>
      This eases porting to new machine architectures, at least if you're
      using a compiler that supports this GCC builtin function.
     </p></li><li class="listitem"><p>
      Rename symbol <code class="literal">REF</code> to <code class="literal">REF_P</code> to
      avoid compile failure on recent macOS (Tom Lane)
     </p></li><li class="listitem"><p>
      Avoid using <code class="function">sprintf</code>, to avoid compile-time
      deprecation warnings (Tom Lane)
     </p></li><li class="listitem"><p>
      Update time zone data files to <span class="application">tzdata</span>
      release 2022f for DST law changes in Chile, Fiji, Iran, Jordan,
      Mexico, Palestine, and Syria, plus historical corrections for Chile,
      Crimea, Iran, and Mexico.
     </p><p>
      Also, the Europe/Kiev zone has been renamed to Europe/Kyiv.
      Also, the following zones have been merged into nearby,
      more-populous zones whose clocks have agreed with them since 1970:
      Antarctica/Vostok, Asia/Brunei,
      Asia/Kuala_Lumpur, Atlantic/Reykjavik, Europe/Amsterdam,
      Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco, Europe/Oslo,
      Europe/Stockholm, Indian/Christmas, Indian/Cocos, Indian/Kerguelen,
      Indian/Mahe, Indian/Reunion, Pacific/Chuuk, Pacific/Funafuti,
      Pacific/Majuro, Pacific/Pohnpei, Pacific/Wake and Pacific/Wallis.
      (This indirectly affects zones that were already links to one of
      these: Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland,
      Pacific/Ponape, Pacific/Truk, and Pacific/Yap.)  America/Nipigon,
      America/Rainy_River, America/Thunder_Bay, Europe/Uzhgorod, and
      Europe/Zaporozhye were also merged into nearby zones after
      discovering that their claimed post-1970 differences from those
      zones seem to have been errors.
      In all these cases, the previous zone name remains as an alias;
      but the actual data is that of the zone that was merged into.
     </p><p>
      These zone mergers result in loss of pre-1970 timezone history for
      the merged zones, which may be troublesome for applications
      expecting consistency of <code class="type">timestamptz</code> display.  As an
      example, the stored value <code class="literal">1944-06-01 12:00 UTC</code>
      would previously display as <code class="literal">1944-06-01
      13:00:00+01</code> if the Europe/Stockholm zone is selected, but
      now it will read out as <code class="literal">1944-06-01 14:00:00+02</code>.
     </p><p>
      It is possible to build the time zone data files with options that
      will restore the older zone data, but that choice also inserts a lot
      of other old (and typically poorly-attested) zone data, resulting in
      more total changes from the previous release than accepting these
      upstream changes does.  <span class="productname">PostgreSQL</span> has
      chosen to ship the <span class="productname">tzdb</span> data
      as-recommended, and so far as we are aware most major operating
      system distributions are doing likewise.  However, if these changes
      cause significant problems for your application, a possible solution
      is to install a local build of the time zone data files using
      <span class="productname">tzdb</span>'s backwards-compatibility options
      (see their <code class="literal">PACKRATDATA</code>
      and <code class="literal">PACKRATLIST</code> options).
     </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-15-2.html" title="E.4. Release 15.2">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.html" title="E.6. Release 15">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.4. Release 15.2 </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 15.5 Documentation">Home</a></td><td width="40%" align="right" valign="top"> E.6. Release 15</td></tr></table></div></body></html>