1<!-- doc/src/sgml/release-12.sgml -->
2<!-- See header comment in release.sgml about typical markup -->
3
4 <sect1 id="release-12-9">
5  <title>Release 12.9</title>
6
7  <formalpara>
8  <title>Release date:</title>
9  <para>2021-11-11</para>
10  </formalpara>
11
12  <para>
13   This release contains a variety of fixes from 12.8.
14   For information about new features in major release 12, see
15   <xref linkend="release-12"/>.
16  </para>
17
18  <sect2>
19   <title>Migration to Version 12.9</title>
20
21   <para>
22    A dump/restore is not required for those running 12.X.
23   </para>
24
25   <para>
26    However, note that installations using physical replication should
27    update standby servers before the primary server, as explained in
28    the third changelog entry below.
29   </para>
30
31   <para>
32    Also, several bugs have been found that may have resulted in corrupted
33    indexes, as explained in the next several changelog entries.  If any
34    of those cases apply to you, it's recommended to reindex
35    possibly-affected indexes after updating.
36   </para>
37
38   <para>
39    Also, if you are upgrading from a version earlier than 12.6,
40    see <xref linkend="release-12-6"/>.
41   </para>
42  </sect2>
43
44  <sect2>
45   <title>Changes</title>
46
47   <itemizedlist>
48
49    <listitem>
50<!--
51Author: Tom Lane <tgl@sss.pgh.pa.us>
52Branch: master [28e241255] 2021-11-08 11:01:43 -0500
53Branch: REL_14_STABLE [9d5a76b8d] 2021-11-08 11:01:43 -0500
54Branch: REL_13_STABLE [e92ed93e8] 2021-11-08 11:01:43 -0500
55Branch: REL_12_STABLE [d1bd26740] 2021-11-08 11:01:43 -0500
56Branch: REL_11_STABLE [9394fb828] 2021-11-08 11:01:43 -0500
57Branch: REL_10_STABLE [9ae0f1112] 2021-11-08 11:01:43 -0500
58Branch: REL9_6_STABLE [046c2c846] 2021-11-08 11:01:43 -0500
59-->
60     <para>
61      Make the server reject extraneous data after an SSL or GSS
62      encryption handshake (Tom Lane)
63     </para>
64
65     <para>
66      A man-in-the-middle with the ability to inject data into the TCP
67      connection could stuff some cleartext data into the start of a
68      supposedly encryption-protected database session.
69      This could be abused to send faked SQL commands to the server,
70      although that would only work if the server did not demand any
71      authentication data.  (However, a server relying on SSL certificate
72      authentication might well not do so.)
73     </para>
74
75     <para>
76      The <productname>PostgreSQL</productname> Project thanks
77      Jacob Champion for reporting this problem.
78      (CVE-2021-23214)
79     </para>
80    </listitem>
81
82    <listitem>
83<!--
84Author: Tom Lane <tgl@sss.pgh.pa.us>
85Branch: master [160c02588] 2021-11-08 11:14:56 -0500
86Branch: REL_14_STABLE [30547d791] 2021-11-08 11:14:56 -0500
87Branch: REL_13_STABLE [844b31692] 2021-11-08 11:14:56 -0500
88Branch: REL_12_STABLE [36bb95ef2] 2021-11-08 11:14:56 -0500
89Branch: REL_11_STABLE [a021a1d2a] 2021-11-08 11:14:56 -0500
90Branch: REL_10_STABLE [e65d9c8cd] 2021-11-08 11:14:56 -0500
91Branch: REL9_6_STABLE [d83cdfdca] 2021-11-08 11:14:57 -0500
92-->
93     <para>
94      Make <application>libpq</application> reject extraneous data after
95      an SSL or GSS encryption handshake (Tom Lane)
96     </para>
97
98     <para>
99      A man-in-the-middle with the ability to inject data into the TCP
100      connection could stuff some cleartext data into the start of a
101      supposedly encryption-protected database session.
102      This could probably be abused to inject faked responses to the
103      client's first few queries, although other details of libpq's
104      behavior make that harder than it sounds.  A different line of
105      attack is to exfiltrate the client's password, or other sensitive
106      data that might be sent early in the session.  That has been shown
107      to be possible with a server vulnerable to CVE-2021-23214.
108     </para>
109
110     <para>
111      The <productname>PostgreSQL</productname> Project thanks
112      Jacob Champion for reporting this problem.
113      (CVE-2021-23222)
114     </para>
115    </listitem>
116
117    <listitem>
118<!--
119Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
120Branch: master [ff9f111bc] 2021-09-29 11:21:51 -0300
121Branch: REL_14_STABLE [64a8687a6] 2021-09-29 11:41:01 -0300
122Branch: REL_13_STABLE [1d97d3d08] 2021-09-29 11:21:51 -0300
123Branch: REL_12_STABLE [1df0a914d] 2021-09-29 11:21:51 -0300
124Branch: REL_11_STABLE [cfedb279a] 2021-09-29 11:21:51 -0300
125Branch: REL_10_STABLE [d9fe2cc7d] 2021-09-29 11:21:51 -0300
126Branch: REL9_6_STABLE [148c6ee3b] 2021-09-29 11:21:51 -0300
127Branch: master [d03bca4d7] 2021-09-30 10:01:03 -0300
128Branch: REL_14_STABLE [e3731bac5] 2021-09-30 10:01:03 -0300
129Branch: master [d186d233d] 2021-10-01 18:03:11 -0300
130Branch: REL_14_STABLE [0ce67bce0] 2021-10-01 18:03:11 -0300
131Branch: master [010e52337] 2021-10-13 18:49:27 -0300
132Branch: REL_14_STABLE [79c7fe1af] 2021-10-13 18:49:27 -0300
133Branch: REL_13_STABLE [2cdf97fd1] 2021-10-13 18:49:27 -0300
134Branch: REL_12_STABLE [4b7abbe48] 2021-10-13 18:49:27 -0300
135Branch: REL_11_STABLE [6287b8e19] 2021-10-13 18:49:27 -0300
136Branch: REL_10_STABLE [41cce2326] 2021-10-13 18:49:27 -0300
137Branch: REL9_6_STABLE [5ec87619b] 2021-10-13 18:49:27 -0300
138Branch: REL_14_STABLE [494ec0037] 2021-11-01 13:07:23 -0300
139Branch: REL_13_STABLE [17227825c] 2021-11-01 13:07:23 -0300
140Branch: REL_12_STABLE [da782bc93] 2021-11-01 13:07:23 -0300
141Branch: REL_11_STABLE [5ef210047] 2021-11-01 13:07:23 -0300
142Branch: REL_10_STABLE [656312c2a] 2021-11-01 13:07:23 -0300
143Branch: REL9_6_STABLE [99197701e] 2021-11-01 13:07:23 -0300
144-->
145     <para>
146      Fix physical replication for cases where the primary crashes
147      after shipping a WAL segment that ends with a partial WAL record
148      (&Aacute;lvaro Herrera)
149     </para>
150
151     <para>
152      If the primary did not survive long enough to finish writing the
153      rest of the incomplete WAL record, then the previous crash-recovery
154      logic had it back up and overwrite WAL starting from the beginning
155      of the incomplete WAL record.  This is problematic since standby
156      servers may already have copies of that WAL segment.  They will then
157      see an inconsistent next segment, and will not be able to recover
158      without manual intervention.  To fix, do not back up over a WAL
159      segment boundary when restarting after a crash.  Instead write a new
160      type of WAL record at the start of the next WAL segment, informing
161      readers that the incomplete WAL record will never be finished and
162      must be disregarded.
163     </para>
164
165     <para>
166      When applying this update, it's best to update standby servers
167      before the primary, so that they will be ready to handle this new
168      WAL record type if the primary happens to crash.
169     </para>
170    </listitem>
171
172    <listitem>
173<!--
174Author: Noah Misch <noah@leadboat.com>
175Branch: master [3cd9c3b92] 2021-10-23 18:36:38 -0700
176Branch: REL_14_STABLE [a5b9a0000] 2021-10-23 18:36:42 -0700
177Branch: REL_13_STABLE [a9d0a5409] 2021-10-23 18:36:42 -0700
178Branch: REL_12_STABLE [fe5d44a1d] 2021-10-23 18:36:42 -0700
179Branch: REL_11_STABLE [df6158139] 2021-10-23 18:36:43 -0700
180Branch: REL_10_STABLE [560124a37] 2021-10-23 18:36:43 -0700
181Branch: REL9_6_STABLE [518493243] 2021-10-23 18:36:43 -0700
182-->
183     <para>
184      Fix <command>CREATE INDEX CONCURRENTLY</command> to wait for
185      the latest prepared transactions (Andrey Borodin)
186     </para>
187
188     <para>
189      Rows inserted by just-prepared transactions might be omitted from
190      the new index, causing queries relying on the index to miss such
191      rows.  The previous fix for this type of problem failed to account
192      for <command>PREPARE TRANSACTION</command> commands that were still
193      in progress when <command>CREATE INDEX CONCURRENTLY</command>
194      checked for them.  As before, in installations that have enabled
195      prepared transactions (<varname>max_prepared_transactions</varname>
196      &gt; 0), it's recommended to reindex any concurrently-built indexes
197      in case this problem occurred when they were built.
198     </para>
199    </listitem>
200
201    <listitem>
202<!--
203Author: Noah Misch <noah@leadboat.com>
204Branch: master [fdd965d07] 2021-10-23 18:36:38 -0700
205Branch: REL_14_STABLE [dde966efb] 2021-10-23 18:36:42 -0700
206Branch: REL_13_STABLE [2e33b4359] 2021-10-23 18:36:42 -0700
207Branch: REL_12_STABLE [0869e53d3] 2021-10-23 18:36:42 -0700
208Branch: REL_11_STABLE [5141e471b] 2021-10-23 18:36:43 -0700
209Branch: REL_10_STABLE [db86746fd] 2021-10-23 18:36:43 -0700
210Branch: REL9_6_STABLE [e428699cb] 2021-10-23 18:36:43 -0700
211-->
212     <para>
213      Avoid race condition that can cause backends to fail to add entries
214      for new rows to an index being built concurrently (Noah Misch,
215      Andrey Borodin)
216     </para>
217
218     <para>
219      While it's apparently rare in the field, this case could potentially
220      affect any index built or reindexed with
221      the <literal>CONCURRENTLY</literal> option.  It is recommended to
222      reindex any such indexes to make sure they are correct.
223     </para>
224    </listitem>
225
226    <listitem>
227<!--
228Author: Tom Lane <tgl@sss.pgh.pa.us>
229Branch: master [ce773f230] 2021-09-02 17:24:41 -0400
230Branch: REL_14_STABLE Release: REL_14_0 [23c6bc581] 2021-09-02 17:24:42 -0400
231Branch: REL_13_STABLE [be2beadaf] 2021-09-02 17:24:42 -0400
232Branch: REL_12_STABLE [a3bf13673] 2021-09-02 17:24:42 -0400
233Branch: REL_11_STABLE [ad66373ea] 2021-09-02 17:24:42 -0400
234Branch: REL_10_STABLE [2bb20e34c] 2021-09-02 17:24:42 -0400
235Branch: REL9_6_STABLE [dea212e24] 2021-09-02 17:24:42 -0400
236Branch: master [fd549145d] 2021-09-03 10:01:02 -0400
237Branch: REL_14_STABLE Release: REL_14_0 [08b96a2b5] 2021-09-03 10:01:02 -0400
238Branch: REL_13_STABLE [9089f1543] 2021-09-03 10:01:02 -0400
239Branch: REL_12_STABLE [1fab33c0b] 2021-09-03 10:01:02 -0400
240Branch: REL_11_STABLE [2836d57e4] 2021-09-03 10:01:02 -0400
241Branch: master [b30cc0fd6] 2021-09-04 16:29:08 -0400
242Branch: REL_14_STABLE Release: REL_14_0 [718978d9d] 2021-09-04 16:29:08 -0400
243Branch: REL_13_STABLE [2c0dd669c] 2021-09-04 16:29:08 -0400
244Branch: REL_12_STABLE [fd295d0c6] 2021-09-04 16:29:08 -0400
245Branch: REL_11_STABLE [8782a8452] 2021-09-04 16:29:08 -0400
246Branch: REL_10_STABLE [70354dd56] 2021-09-04 16:29:08 -0400
247Branch: REL9_6_STABLE [a5e8f7b37] 2021-09-04 16:29:08 -0400
248-->
249     <para>
250      Fix <type>float4</type> and <type>float8</type> hash functions to
251      produce uniform results for NaNs (Tom Lane)
252     </para>
253
254     <para>
255      Since <productname>PostgreSQL</productname>'s floating-point types
256      deem all NaNs to be equal, it's important for the hash functions to
257      produce the same hash code for all bit-patterns that are NaNs
258      according to the IEEE 754 standard.  This failed to happen before,
259      meaning that hash indexes and hash-based query plans might produce
260      incorrect results for non-canonical NaN values.
261      (<literal>'-NaN'::float8</literal> is one way to produce such a
262      value on most machines.)  It is advisable to reindex hash indexes
263      on floating-point columns, if there is any possibility that they
264      might contain such values.
265     </para>
266    </listitem>
267
268    <listitem>
269<!--
270Author: Noah Misch <noah@leadboat.com>
271Branch: master [97ddda8a8] 2021-08-27 23:33:23 -0700
272Branch: REL_14_STABLE Release: REL_14_0 [5513c09c8] 2021-08-27 23:33:27 -0700
273Branch: REL_13_STABLE [b18669f5e] 2021-08-27 23:33:27 -0700
274Branch: REL_12_STABLE [a494f1023] 2021-08-27 23:34:03 -0700
275Branch: REL_11_STABLE [6ebd2426b] 2021-08-27 23:34:22 -0700
276Branch: REL_10_STABLE [f11c1bb17] 2021-08-27 23:42:53 -0700
277Branch: REL9_6_STABLE [978998dbd] 2021-08-27 23:44:55 -0700
278-->
279     <para>
280      Prevent data loss during crash recovery of <command>CREATE
281      TABLESPACE</command>, when <varname>wal_level</varname>
282      = <literal>minimal</literal> (Noah Misch)
283     </para>
284
285     <para>
286      If the server crashed between <command>CREATE TABLESPACE</command>
287      and the next checkpoint, replay would fully remove the contents of
288      the new tablespace's directory, relying on subsequent WAL replay
289      to restore everything within that directory.  This interacts badly
290      with optimizations that skip writing WAL (one example
291      is <command>COPY</command> into a just-created table).  Such
292      optimizations are applied only when <varname>wal_level</varname>
293      is <literal>minimal</literal>, which is not the default in v10 and
294      later.
295     </para>
296    </listitem>
297
298    <listitem>
299<!--
300Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
301Branch: master [d6f1e16c8] 2021-10-18 19:08:25 -0300
302Branch: REL_14_STABLE [72d064217] 2021-10-18 19:08:25 -0300
303Branch: REL_13_STABLE [fe35528a5] 2021-10-18 19:08:25 -0300
304Branch: REL_12_STABLE [8b26be8a3] 2021-10-18 19:08:25 -0300
305Branch: REL_11_STABLE [b703b7d31] 2021-10-18 19:08:25 -0300
306Branch: REL_10_STABLE [d36bdc4e9] 2021-10-18 19:08:25 -0300
307-->
308     <para>
309      Ensure that the relation cache is invalidated for a table being
310      attached to or detached from a partitioned table (Amit Langote,
311      &Aacute;lvaro Herrera)
312     </para>
313
314     <para>
315      This oversight could allow misbehavior of subsequent inserts/updates
316      addressed directly to the partition, but only in currently-existing
317      sessions.
318     </para>
319    </listitem>
320
321    <listitem>
322<!--
323Author: Amit Kapila <akapila@postgresql.org>
324Branch: master [8bd534274] 2021-09-08 11:50:37 +0530
325Branch: REL_14_STABLE Release: REL_14_0 [8db27fbc1] 2021-09-08 12:08:29 +0530
326Branch: REL_13_STABLE [ddfc7299d] 2021-09-08 12:14:59 +0530
327Branch: REL_12_STABLE [2eb09f27d] 2021-09-08 12:16:15 +0530
328Branch: REL_11_STABLE [96e38fa5e] 2021-09-08 11:20:42 +0530
329Branch: REL_10_STABLE [28cde380c] 2021-09-08 11:23:01 +0530
330-->
331     <para>
332      Ensure that the relation cache is invalidated when creating or
333      dropping a <literal>FOR ALL TABLES</literal> publication
334      (Hou Zhijie, Vignesh C)
335     </para>
336
337     <para>
338      This oversight could lead to improper replication behavior until all
339      currently-existing sessions have exited.
340     </para>
341    </listitem>
342
343    <listitem>
344<!--
345Author: Tom Lane <tgl@sss.pgh.pa.us>
346Branch: master [5c056b0c2] 2021-08-06 17:32:54 -0400
347Branch: REL_14_STABLE Release: REL_14_0 [e5f6493e3] 2021-08-06 17:32:54 -0400
348Branch: REL_13_STABLE [dede14399] 2021-09-20 11:48:52 -0400
349Branch: REL_12_STABLE [f230614da] 2021-09-20 11:48:52 -0400
350Branch: REL_11_STABLE [914e54501] 2021-09-20 11:48:52 -0400
351Branch: REL_10_STABLE [923b7efc2] 2021-09-20 11:48:52 -0400
352Branch: REL9_6_STABLE [183b3aced] 2021-09-20 11:48:52 -0400
353-->
354     <para>
355      Don't discard a cast to the same type with unspecified type modifier
356      (Tom Lane)
357     </para>
358
359     <para>
360      For example, if column <literal>f1</literal> is of
361      type <literal>numeric(18,3)</literal>, the parser used to simply
362      discard a cast like <literal>f1::numeric</literal>, on the grounds
363      that it would have no run-time effect.  That's true, but the exposed
364      type of the expression should still be considered to be
365      plain <literal>numeric</literal>,
366      not <literal>numeric(18,3)</literal>.  This is important for
367      correctly resolving the type of larger constructs, such
368      as recursive <literal>UNION</literal>s.
369     </para>
370    </listitem>
371
372    <listitem>
373<!--
374Author: Tom Lane <tgl@sss.pgh.pa.us>
375Branch: master [3e310d837] 2021-10-19 13:54:45 -0400
376Branch: REL_14_STABLE [04dae19f4] 2021-10-19 13:54:45 -0400
377Branch: REL_13_STABLE [30e61a8cd] 2021-10-19 13:54:46 -0400
378Branch: REL_12_STABLE [ae7b1dd59] 2021-10-19 13:54:46 -0400
379Branch: REL_11_STABLE [0d08c279b] 2021-10-19 13:54:46 -0400
380-->
381     <para>
382      Fix updates of element fields in arrays of domain over composite
383      (Tom Lane)
384     </para>
385
386     <para>
387      A command such as <literal>UPDATE tab SET fld[1].subfld =
388      val</literal> failed if the array's elements were domains rather
389      than plain composites.
390     </para>
391    </listitem>
392
393    <listitem>
394<!--
395Author: Tom Lane <tgl@sss.pgh.pa.us>
396Branch: master [db2760a84] 2021-09-03 16:39:03 -0400
397Branch: REL_14_STABLE Release: REL_14_0 [2cc018ba8] 2021-09-03 16:39:04 -0400
398Branch: REL_13_STABLE [132be6000] 2021-09-03 16:38:55 -0400
399Branch: REL_12_STABLE [9046a0536] 2021-09-03 16:38:55 -0400
400Branch: REL_11_STABLE [9ebe2852e] 2021-09-03 16:38:55 -0400
401Branch: REL_10_STABLE [5d7c6b6c8] 2021-09-03 16:38:55 -0400
402-->
403     <para>
404      Disallow creating an ICU collation if the current database's
405      encoding won't support it (Tom Lane)
406     </para>
407
408     <para>
409      Previously this was allowed, but then the collation could not be
410      referenced because of the way collation lookup works; you could not
411      use the collation, nor even drop it.
412     </para>
413    </listitem>
414
415    <listitem>
416<!--
417Author: Dean Rasheed <dean.a.rasheed@gmail.com>
418Branch: master [e54a758d2] 2021-10-06 13:16:51 +0100
419Branch: REL_14_STABLE [8e26b868d] 2021-10-06 13:19:25 +0100
420Branch: REL_13_STABLE [9ab94ccb1] 2021-10-06 13:20:23 +0100
421Branch: REL_12_STABLE [676218034] 2021-10-06 13:21:27 +0100
422Branch: REL_11_STABLE [b2a0f1673] 2021-10-06 13:22:33 +0100
423Branch: REL_10_STABLE [4853baaac] 2021-10-06 13:23:13 +0100
424Branch: REL9_6_STABLE [0de8f9bc8] 2021-10-06 13:24:22 +0100
425-->
426     <para>
427      Fix corner-case loss of precision in
428      numeric <function>power()</function> (Dean Rasheed)
429     </para>
430
431     <para>
432      The result could be inaccurate when the first argument is very close
433      to 1.
434     </para>
435    </listitem>
436
437    <listitem>
438<!--
439Author: Tom Lane <tgl@sss.pgh.pa.us>
440Branch: master [65dc30ced] 2021-08-24 16:37:26 -0400
441Branch: REL_14_STABLE Release: REL_14_0 [244dd7992] 2021-08-24 16:37:27 -0400
442Branch: REL_13_STABLE [071146184] 2021-08-24 16:37:27 -0400
443Branch: REL_12_STABLE [92620e82f] 2021-08-24 16:37:27 -0400
444Branch: REL_11_STABLE [3ebd32e70] 2021-08-24 16:37:27 -0400
445Branch: REL_10_STABLE [062c4c791] 2021-08-24 16:37:27 -0400
446Branch: REL9_6_STABLE [7e75fe390] 2021-08-24 16:37:27 -0400
447-->
448     <para>
449      Avoid regular expression errors with capturing parentheses
450      inside <literal>{0}</literal> (Tom Lane)
451     </para>
452
453     <para>
454      Regular expressions like <literal>(.){0}...\1</literal> drew
455      <quote>invalid backreference number</quote>.  Other regexp engines
456      such as Perl don't complain, though, and for that matter ours
457      doesn't either in some closely related cases.  Worse, it could throw
458      an assertion failure instead.  Fix it so that no error is thrown and
459      instead the back-reference is silently deemed to never match.
460     </para>
461    </listitem>
462
463    <listitem>
464<!--
465Author: Tom Lane <tgl@sss.pgh.pa.us>
466Branch: master [9bbf6f734] 2021-08-23 17:41:07 -0400
467Branch: REL_14_STABLE Release: REL_14_0 [779557bd2] 2021-08-23 17:41:07 -0400
468Branch: REL_13_STABLE [9a327179c] 2021-08-23 17:41:07 -0400
469Branch: REL_12_STABLE [b9521a1f9] 2021-08-23 17:41:07 -0400
470Branch: REL_11_STABLE [08e080756] 2021-08-23 17:41:07 -0400
471Branch: REL_10_STABLE [df87b7c44] 2021-08-23 17:41:07 -0400
472Branch: REL9_6_STABLE [d90e14414] 2021-08-23 17:41:07 -0400
473-->
474     <para>
475      Prevent regular expression back-references from sometimes matching
476      when they shouldn't (Tom Lane)
477     </para>
478
479     <para>
480      The regexp engine was careless about clearing match data
481      for capturing parentheses after rejecting a partial match.  This
482      could allow a later back-reference to match in places where it
483      should fail for lack of a defined referent.
484     </para>
485    </listitem>
486
487    <listitem>
488<!--
489Author: Tom Lane <tgl@sss.pgh.pa.us>
490Branch: master [facce1da9] 2021-08-20 14:19:04 -0400
491Branch: REL_14_STABLE Release: REL_14_0 [57a2d4a1b] 2021-08-20 14:19:04 -0400
492Branch: REL_13_STABLE [b30f7f399] 2021-08-20 14:19:04 -0400
493Branch: REL_12_STABLE [adbfde3db] 2021-08-20 14:19:04 -0400
494Branch: REL_11_STABLE [9610852ab] 2021-08-20 14:19:04 -0400
495Branch: REL_10_STABLE [e0f2acf26] 2021-08-20 14:19:04 -0400
496Branch: REL9_6_STABLE [cafebd663] 2021-08-20 14:19:04 -0400
497-->
498     <para>
499      Fix regular expression performance bug with back-references inside
500      iteration nodes (Tom Lane)
501     </para>
502
503     <para>
504      Incorrect back-tracking logic could result in exponential time spent
505      looking for a match.  Fortunately the problem is masked in most
506      cases by other optimizations.
507     </para>
508    </listitem>
509
510    <listitem>
511<!--
512Author: Tom Lane <tgl@sss.pgh.pa.us>
513Branch: REL_14_STABLE Release: REL_14_0 [599c73a91] 2021-09-06 11:29:52 -0400
514Branch: REL_13_STABLE [d8a266c5e] 2021-09-06 11:29:52 -0400
515Branch: REL_12_STABLE [eb3c8d248] 2021-09-06 11:29:52 -0400
516Branch: REL_11_STABLE [90b4647f6] 2021-09-06 11:29:52 -0400
517Branch: REL_10_STABLE [b28c862a6] 2021-09-06 11:29:52 -0400
518Branch: REL9_6_STABLE [5907c3818] 2021-09-06 11:29:52 -0400
519-->
520     <para>
521      Fix incorrect results from <literal>AT TIME ZONE</literal> applied
522      to a <type>time with time zone</type> value (Tom Lane)
523     </para>
524
525     <para>
526      The results were incorrect if the target time zone was specified by
527      a dynamic timezone abbreviation (that is, one that is defined as
528      equivalent to a full time zone name, rather than a fixed UTC offset).
529     </para>
530    </listitem>
531
532    <listitem>
533<!--
534Author: Tom Lane <tgl@sss.pgh.pa.us>
535Branch: master [a21049fd3] 2021-09-17 15:41:16 -0400
536Branch: REL_14_STABLE Release: REL_14_0 [4d5b4483d] 2021-09-17 15:41:16 -0400
537Branch: REL_13_STABLE [e0b0d1eab] 2021-09-17 15:41:16 -0400
538Branch: REL_12_STABLE [febe013ca] 2021-09-17 15:41:16 -0400
539-->
540     <para>
541      Fix mistranslation of PlaceHolderVars to inheritance child relations
542      (Tom Lane)
543     </para>
544
545     <para>
546      This error could result in assertion failures, or in mis-planning of
547      queries having partitioned or inherited tables on the nullable side
548      of an outer join.
549     </para>
550    </listitem>
551
552    <listitem>
553<!--
554Author: Tom Lane <tgl@sss.pgh.pa.us>
555Branch: master [8c1144ba7] 2021-10-01 14:59:35 -0400
556Branch: REL_14_STABLE [a54509bfd] 2021-10-01 14:59:35 -0400
557Branch: REL_13_STABLE [7adbe186f] 2021-10-01 14:59:35 -0400
558Branch: REL_12_STABLE [334fb8c3d] 2021-10-01 14:59:35 -0400
559Branch: REL_11_STABLE [5863d348a] 2021-10-01 14:59:35 -0400
560Branch: REL_10_STABLE [f951ea3a2] 2021-10-01 14:59:35 -0400
561-->
562     <para>
563      Avoid using MCV-only statistics to estimate the range of a column
564      (Tom Lane)
565     </para>
566
567     <para>
568      There are corner cases in which <command>ANALYZE</command> will
569      build a most-common-values (MCV) list but not a histogram, even
570      though the MCV list does not account for all the observed values.
571      In such cases, keep the planner from using the MCV list alone to
572      estimate the range of column values.
573     </para>
574    </listitem>
575
576    <listitem>
577<!--
578Author: Tom Lane <tgl@sss.pgh.pa.us>
579Branch: master [7b5d4c29e] 2021-10-01 11:10:12 -0400
580Branch: REL_14_STABLE [e6adaa179] 2021-10-01 11:10:12 -0400
581Branch: REL_13_STABLE [04ef2021e] 2021-10-01 11:10:12 -0400
582Branch: REL_12_STABLE [cded2c460] 2021-10-01 11:10:12 -0400
583Branch: REL_11_STABLE [5abbda985] 2021-10-01 11:10:12 -0400
584-->
585     <para>
586      Fix restoration of a Portal's snapshot inside a subtransaction
587      (Bertrand Drouvot)
588     </para>
589
590     <para>
591      If a procedure commits or rolls back a transaction, and then its
592      next significant action is inside a new subtransaction, snapshot
593      management went wrong, leading to a dangling pointer and probable
594      crash.  A typical example in PL/pgSQL is a <literal>COMMIT</literal>
595      immediately followed by a <literal>BEGIN ... EXCEPTION</literal>
596      block that performs a query.
597     </para>
598    </listitem>
599
600    <listitem>
601<!--
602Author: Michael Paquier <michael@paquier.xyz>
603Branch: master [409f9ca44] 2021-10-18 11:55:42 +0900
604Branch: REL_14_STABLE [5b353aaff] 2021-10-18 11:56:48 +0900
605Branch: REL_13_STABLE [8f4fe8d7f] 2021-10-18 11:56:52 +0900
606Branch: REL_12_STABLE [a207b8521] 2021-10-18 11:56:54 +0900
607Branch: REL_11_STABLE [506aa1f71] 2021-10-18 11:56:57 +0900
608Branch: REL_10_STABLE [d1a6a08df] 2021-10-18 11:57:02 +0900
609Branch: REL9_6_STABLE [f49bf8263] 2021-10-18 11:57:07 +0900
610-->
611     <para>
612      Clean up correctly if a transaction fails after exporting its
613      snapshot (Dilip Kumar)
614     </para>
615
616     <para>
617      This oversight would only cause a problem if the same session
618      attempted to export a snapshot again.  The most likely scenario for
619      that is creation of a replication slot (followed by rollback)
620      and then creation of another replication slot.
621     </para>
622    </listitem>
623
624    <listitem>
625<!--
626Author: Alexander Korotkov <akorotkov@postgresql.org>
627Branch: master [05e6e78c1] 2021-11-06 19:13:58 +0300
628Branch: REL_14_STABLE [b0f6bd48f] 2021-11-06 19:13:53 +0300
629Branch: REL_13_STABLE [e1fee28a0] 2021-11-06 18:34:19 +0300
630Branch: REL_12_STABLE [8f779a1a3] 2021-11-06 18:34:21 +0300
631Branch: REL_11_STABLE [691c0df73] 2021-11-06 18:34:23 +0300
632Branch: REL_10_STABLE [774d00573] 2021-11-06 18:34:26 +0300
633Branch: REL9_6_STABLE [7381b79ad] 2021-11-06 18:34:31 +0300
634-->
635     <para>
636      Prevent wraparound of overflowed-subtransaction tracking on standby
637      servers (Kyotaro Horiguchi, Alexander Korotkov)
638     </para>
639
640     <para>
641      This oversight could cause significant performance degradation
642      (manifesting as excessive SubtransSLRU traffic) on standby servers.
643     </para>
644    </listitem>
645
646    <listitem>
647<!--
648Author: Michael Paquier <michael@paquier.xyz>
649Branch: master [8a4237908] 2021-10-04 14:05:20 +0900
650Branch: REL_14_STABLE [828f7f000] 2021-10-04 14:05:48 +0900
651Branch: REL_13_STABLE [194e535a0] 2021-10-04 14:05:52 +0900
652Branch: REL_12_STABLE [3c3f118d5] 2021-10-04 14:05:55 +0900
653Branch: REL_11_STABLE [0a561d4d0] 2021-10-04 14:05:59 +0900
654Branch: REL_10_STABLE [8a6a1fe07] 2021-10-04 14:06:03 +0900
655Branch: REL9_6_STABLE [e2b2a9e1c] 2021-10-04 14:06:09 +0900
656-->
657     <para>
658      Ensure that prepared transactions are properly accounted for during
659      promotion of a standby server (Michael Paquier, Andres Freund)
660     </para>
661
662     <para>
663      There was a narrow window where a prepared transaction could be
664      omitted from a snapshot taken by a concurrently-running session.
665      If that session then used the snapshot to perform data updates,
666      erroneous results or data corruption could occur.
667     </para>
668    </listitem>
669
670    <listitem>
671<!--
672Author: Tom Lane <tgl@sss.pgh.pa.us>
673Branch: master [c1b7a6c27] 2021-09-10 13:18:32 -0400
674Branch: REL_14_STABLE Release: REL_14_0 [d844cd75a] 2021-09-10 13:18:32 -0400
675Branch: REL_13_STABLE [fa5d0415f] 2021-09-10 13:18:32 -0400
676Branch: REL_12_STABLE [ba408fc96] 2021-09-10 13:18:32 -0400
677Branch: REL_11_STABLE [9ea8d3d24] 2021-09-10 13:18:32 -0400
678-->
679     <para>
680      Refuse to rewind a cursor marked <literal>NO SCROLL</literal>
681      if it has been held over from a previous transaction due
682      to the <literal>WITH HOLD</literal> option (Tom Lane)
683     </para>
684
685     <para>
686      We have long forbidden fetching backwards from a <literal>NO
687      SCROLL</literal> cursor, but for historical reasons the prohibition
688      didn't extend to cases in which we rewind the query altogether and
689      then re-fetch forwards.  That exception leads to inconsistencies,
690      particularly for held-over cursors which may not have stored all the
691      data necessary to rewind.  Disallow rewinding for non-scrollable
692      held-over cursors to block the worst inconsistencies.  (v15 will
693      remove the exception altogether.)
694     </para>
695    </listitem>
696
697    <listitem>
698<!--
699Author: Tom Lane <tgl@sss.pgh.pa.us>
700Branch: master [cba79a163] 2021-09-09 13:36:44 -0400
701Branch: REL_14_STABLE Release: REL_14_0 [b7056c0a2] 2021-09-09 13:36:44 -0400
702Branch: REL_13_STABLE [d8d93bc8b] 2021-09-09 13:36:31 -0400
703Branch: REL_12_STABLE [2e75e969c] 2021-09-09 13:36:31 -0400
704Branch: REL_11_STABLE [7813451c2] 2021-09-09 13:36:31 -0400
705-->
706     <para>
707      Fix possible failure while saving a <literal>WITH HOLD</literal>
708      cursor at transaction end, if it had already been read to completion
709      (Tom Lane)
710     </para>
711    </listitem>
712
713    <listitem>
714<!--
715Author: Tom Lane <tgl@sss.pgh.pa.us>
716Branch: master [8481f9989] 2021-09-09 11:45:48 -0400
717Branch: REL_14_STABLE Release: REL_14_0 [7430c7742] 2021-09-09 11:45:48 -0400
718Branch: REL_13_STABLE [04118de78] 2021-09-09 11:45:48 -0400
719Branch: REL_12_STABLE [a7a73ce30] 2021-09-09 11:45:48 -0400
720Branch: REL_11_STABLE [1a23b669d] 2021-09-09 11:45:48 -0400
721Branch: REL_10_STABLE [ca1dd6234] 2021-09-09 11:45:48 -0400
722Branch: REL9_6_STABLE [cc4de2bba] 2021-09-09 11:45:48 -0400
723-->
724     <para>
725      Fix detection of a relation that has grown to the maximum allowed
726      length (Tom Lane)
727     </para>
728
729     <para>
730      An attempt to extend a table or index past the limit of 2^32-1
731      blocks was rejected, but not soon enough to prevent inconsistent
732      internal state from being created.
733     </para>
734    </listitem>
735
736    <listitem>
737<!--
738Author: Tom Lane <tgl@sss.pgh.pa.us>
739Branch: master [362e2dcc4] 2021-09-08 12:05:47 -0400
740Branch: REL_14_STABLE Release: REL_14_0 [03d01d746] 2021-09-08 12:05:43 -0400
741Branch: REL_13_STABLE [cbba6ba3a] 2021-09-08 12:05:43 -0400
742Branch: REL_12_STABLE [1fedbcc7a] 2021-09-08 12:05:43 -0400
743Branch: REL_11_STABLE [882b7e728] 2021-09-08 12:05:43 -0400
744Branch: REL_10_STABLE [9de082399] 2021-09-08 12:05:43 -0400
745Branch: REL9_6_STABLE [595ab8a54] 2021-09-08 12:05:43 -0400
746-->
747     <para>
748      Correctly track the presence of data-modifying CTEs when expanding
749      a <literal>DO INSTEAD</literal> rule (Greg Nancarrow, Tom Lane)
750     </para>
751
752     <para>
753      The previous failure to do this could lead to problems such as
754      unsafely choosing a parallel plan.
755     </para>
756    </listitem>
757
758    <listitem>
759<!--
760Author: Tomas Vondra <tomas.vondra@postgresql.org>
761Branch: master [5be8ce82e] 2021-08-31 18:33:38 +0200
762Branch: REL_14_STABLE Release: REL_14_0 [a371a5ba3] 2021-08-31 18:36:06 +0200
763Branch: REL_13_STABLE [1fe1a04af] 2021-08-31 18:38:11 +0200
764Branch: REL_12_STABLE [6c8b98669] 2021-08-31 18:40:09 +0200
765Branch: REL_11_STABLE [b46ff4b50] 2021-08-31 18:42:11 +0200
766Branch: REL_10_STABLE [bfb732c0e] 2021-08-31 18:44:36 +0200
767Branch: master [628bc9d13] 2021-08-31 19:31:10 +0200
768Branch: REL_14_STABLE Release: REL_14_0 [4090ff2a9] 2021-08-31 19:32:32 +0200
769Branch: REL_13_STABLE [c8213aa94] 2021-08-31 19:36:03 +0200
770Branch: REL_12_STABLE [5f8dd5dc1] 2021-08-31 19:41:58 +0200
771Branch: REL_11_STABLE [bce24d1ed] 2021-08-31 19:42:14 +0200
772Branch: REL_10_STABLE [6963e723f] 2021-08-31 19:44:30 +0200
773-->
774     <para>
775      Fix incorrect reporting of permissions failures on extended
776      statistics objects (Tomas Vondra)
777     </para>
778
779     <para>
780      The code typically produced <quote>cache lookup error</quote> rather
781      than the intended message.
782     </para>
783    </listitem>
784
785    <listitem>
786<!--
787Author: Robert Haas <rhaas@postgresql.org>
788Branch: master [a780b2fcc] 2021-08-25 08:32:04 -0400
789Branch: REL_14_STABLE Release: REL_14_0 [11c123988] 2021-08-25 08:33:53 -0400
790Branch: REL_13_STABLE [bc062cb93] 2021-08-25 08:40:52 -0400
791Branch: REL_12_STABLE [f4b77e82e] 2021-08-25 08:45:00 -0400
792Branch: REL_11_STABLE [198cf81e2] 2021-08-25 08:48:01 -0400
793Branch: REL_10_STABLE [96f6ef9fe] 2021-08-25 08:55:52 -0400
794-->
795     <para>
796      Fix incorrect snapshot handling in parallel workers (Greg Nancarrow)
797     </para>
798
799     <para>
800      This oversight could lead to misbehavior in parallel queries if the
801      transaction isolation level is less than <literal>REPEATABLE
802      READ</literal>.
803     </para>
804    </listitem>
805
806    <listitem>
807<!--
808Author: Amit Kapila <akapila@postgresql.org>
809Branch: master [29b590547] 2021-08-25 09:53:07 +0530
810Branch: REL_14_STABLE Release: REL_14_0 [9d7a80ce0] 2021-08-25 10:10:50 +0530
811Branch: REL_13_STABLE [794025eff] 2021-08-25 09:23:27 +0530
812Branch: REL_12_STABLE [e35705f54] 2021-08-25 09:32:56 +0530
813Branch: REL_11_STABLE [bfdbda24b] 2021-08-25 09:43:33 +0530
814-->
815     <para>
816      Fix logical decoding to correctly ignore toast-table changes for
817      transient tables (Bertrand Drouvot)
818     </para>
819
820     <para>
821      Logical decoding normally ignores changes in transient tables such
822      as those created during an <command>ALTER TABLE</command> heap
823      rewrite.  But that filtering wasn't applied to the associated toast
824      table if any, leading to possible errors when rewriting a table
825      that's being published.
826     </para>
827    </listitem>
828
829    <listitem>
830<!--
831Author: Fujii Masao <fujii@postgresql.org>
832Branch: master [596ba75cb] 2021-09-09 23:56:57 +0900
833Branch: REL_14_STABLE Release: REL_14_0 [b5ec22bf5] 2021-09-09 23:58:05 +0900
834Branch: REL_13_STABLE [dd9b3fced] 2021-09-09 23:58:26 +0900
835Branch: REL_12_STABLE [466535254] 2021-09-09 23:58:54 +0900
836Branch: REL_11_STABLE [aacb3cfaf] 2021-09-09 23:59:19 +0900
837Branch: REL_10_STABLE [f77489046] 2021-09-09 23:59:40 +0900
838Branch: REL9_6_STABLE [61e2aa2db] 2021-09-10 00:00:06 +0900
839-->
840     <para>
841      Ensure that walreceiver processes create all required archive
842      notification files before exiting (Fujii Masao)
843     </para>
844
845     <para>
846      If a walreceiver exited exactly at a WAL segment boundary, it failed
847      to make a notification file for the last-received segment, thus
848      delaying archiving of that segment on the standby.
849     </para>
850    </listitem>
851
852    <listitem>
853<!--
854Author: Tom Lane <tgl@sss.pgh.pa.us>
855Branch: master [8d2d6ec77] 2021-08-19 12:12:35 -0400
856Branch: REL_14_STABLE Release: REL_14_0 [464900393] 2021-08-19 12:12:35 -0400
857Branch: REL_13_STABLE [7fa367d96] 2021-08-19 12:12:35 -0400
858Branch: REL_12_STABLE [0c13ee198] 2021-08-19 12:12:35 -0400
859Branch: REL_11_STABLE [fbc1eed8a] 2021-08-19 12:12:35 -0400
860Branch: REL_10_STABLE [2739a2810] 2021-08-19 12:12:36 -0400
861Branch: REL9_6_STABLE [cc7fae5c2] 2021-08-19 12:12:36 -0400
862-->
863     <para>
864      Avoid trying to lock the <literal>OLD</literal>
865      and <literal>NEW</literal> pseudo-relations in a rule
866      that uses <literal>SELECT FOR UPDATE</literal>
867      (Masahiko Sawada, Tom Lane)
868     </para>
869    </listitem>
870
871    <listitem>
872<!--
873Author: Tom Lane <tgl@sss.pgh.pa.us>
874Branch: master [2313dda9d] 2021-08-18 18:12:51 -0400
875Branch: REL_14_STABLE Release: REL_14_0 [61f9dae2c] 2021-08-18 18:12:51 -0400
876Branch: REL_13_STABLE [ecd4dd9f1] 2021-08-18 18:12:51 -0400
877Branch: REL_12_STABLE [eb2f59b34] 2021-08-18 18:12:51 -0400
878Branch: REL_11_STABLE [a65319f09] 2021-08-18 18:12:51 -0400
879Branch: REL_10_STABLE [82ad7ecb4] 2021-08-18 18:12:51 -0400
880Branch: REL9_6_STABLE [c09f56fed] 2021-08-18 18:12:51 -0400
881-->
882     <para>
883      Fix parser's processing of aggregate <literal>FILTER</literal>
884      clauses (Tom Lane)
885     </para>
886
887     <para>
888      If the <literal>FILTER</literal> expression is a plain boolean column,
889      the semantic level of the aggregate could be mis-determined, leading
890      to not-per-spec behavior.  If the <literal>FILTER</literal>
891      expression is itself a boolean-returning aggregate, an error should
892      be thrown but was not, likely resulting in a crash at execution.
893     </para>
894    </listitem>
895
896    <listitem>
897<!--
898Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
899Branch: master [c2c618ff1] 2021-10-19 19:08:45 -0300
900Branch: REL_14_STABLE [3ce3fb2f7] 2021-10-19 19:08:45 -0300
901Branch: REL_13_STABLE [842fe6123] 2021-10-19 19:08:45 -0300
902Branch: REL_12_STABLE [6c8d1c197] 2021-10-19 19:08:45 -0300
903Branch: master [cd124d205] 2021-10-20 13:05:42 -0300
904Branch: REL_14_STABLE [718278855] 2021-10-20 13:05:42 -0300
905Branch: REL_13_STABLE [a73a3671d] 2021-10-20 13:05:42 -0300
906Branch: REL_12_STABLE [3c8c49945] 2021-10-20 13:05:42 -0300
907-->
908     <para>
909      Ensure that the correct lock level is used when renaming a table
910      (Nathan Bossart, &Aacute;lvaro Herrera)
911     </para>
912
913     <para>
914      For historical reasons, <command>ALTER INDEX ... RENAME</command>
915      can be applied to any sort of relation.  The lock level required to
916      rename an index is lower than that required to rename a table or
917      other kind of relation, but the code got this wrong and would use
918      the weaker lock level whenever the command is spelled <command>ALTER
919      INDEX</command>.
920     </para>
921    </listitem>
922
923    <listitem>
924<!--
925Author: Andres Freund <andres@anarazel.de>
926Branch: master [edb4d95dd] 2021-09-13 18:26:15 -0700
927Branch: REL_14_STABLE Release: REL_14_0 [4e86887e0] 2021-09-13 18:15:28 -0700
928Branch: REL_13_STABLE [c49e6f9d9] 2021-09-13 18:26:18 -0700
929Branch: REL_12_STABLE [43849b65f] 2021-09-13 18:26:18 -0700
930Branch: REL_11_STABLE [dccffd9a2] 2021-09-13 18:26:18 -0700
931-->
932     <para>
933      Avoid trying to clean up LLVM state after an error within LLVM
934      (Andres Freund, Justin Pryzby)
935     </para>
936
937     <para>
938      This prevents a likely crash during backend exit after a fatal LLVM
939      error.
940     </para>
941    </listitem>
942
943    <listitem>
944<!--
945Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
946Branch: master [d74b54b3d] 2021-11-05 12:29:35 -0300
947Branch: REL_14_STABLE [02e20bb2d] 2021-11-05 12:29:35 -0300
948Branch: REL_13_STABLE [bf5cdcfd5] 2021-11-05 12:29:34 -0300
949Branch: REL_12_STABLE [3eff168a2] 2021-11-05 12:29:34 -0300
950Branch: REL_11_STABLE [92224e470] 2021-11-05 12:29:34 -0300
951Branch: REL_10_STABLE [58b600f64] 2021-11-05 12:29:34 -0300
952Branch: REL9_6_STABLE [e0eaeafd6] 2021-11-05 12:29:35 -0300
953-->
954     <para>
955      Avoid null-pointer-dereference crash when dropping a role that owns
956      objects being dropped concurrently (&Aacute;lvaro Herrera)
957     </para>
958    </listitem>
959
960    <listitem>
961<!--
962Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
963Branch: master [6b1b405eb] 2021-11-03 10:52:38 +0200
964Branch: REL_14_STABLE [4ebd740cd] 2021-11-03 10:54:33 +0200
965Branch: REL_13_STABLE [07070c008] 2021-11-03 10:54:36 +0200
966Branch: REL_12_STABLE [11a399f9c] 2021-11-03 10:54:39 +0200
967Branch: REL_11_STABLE [6bf00da11] 2021-11-03 10:54:42 +0200
968Branch: REL_10_STABLE [7b55bb892] 2021-11-03 11:09:08 +0200
969Branch: REL9_6_STABLE [8f32afee0] 2021-11-03 11:15:02 +0200
970Branch: master [d5ab0681b] 2021-11-03 19:38:17 +0200
971Branch: REL_14_STABLE [f4e3b6271] 2021-11-03 19:41:35 +0200
972Branch: REL_13_STABLE [b7299b664] 2021-11-03 19:41:38 +0200
973Branch: REL_12_STABLE [7dc9a310e] 2021-11-03 19:41:41 +0200
974Branch: REL_11_STABLE [b110af5f7] 2021-11-03 19:41:44 +0200
975Branch: REL_10_STABLE [245799d39] 2021-11-03 19:41:46 +0200
976Branch: REL9_6_STABLE [71aeaf245] 2021-11-03 19:41:49 +0200
977-->
978     <para>
979      Prevent <quote>snapshot reference leak</quote> warning
980      when <function>lo_export()</function> or a related function fails
981      (Heikki Linnakangas)
982     </para>
983    </listitem>
984
985    <listitem>
986<!--
987Author: Tom Lane <tgl@sss.pgh.pa.us>
988Branch: master [3778bcb39] 2021-08-27 19:53:05 -0400
989Branch: REL_14_STABLE Release: REL_14_0 [e84d4810c] 2021-08-27 19:53:06 -0400
990Branch: REL_13_STABLE [dbb239d51] 2021-08-27 19:42:42 -0400
991Branch: REL_12_STABLE [187b5fea9] 2021-08-27 19:42:42 -0400
992Branch: REL_11_STABLE [7c1b0f4c3] 2021-08-27 19:42:42 -0400
993Branch: REL_10_STABLE [6a787c83c] 2021-08-27 19:42:42 -0400
994Branch: REL9_6_STABLE [9e959f7ed] 2021-08-27 19:42:42 -0400
995-->
996     <para>
997      Ensure that scans of SP-GiST indexes are counted in the statistics
998      views (Tom Lane)
999     </para>
1000
1001     <para>
1002      Incrementing the number-of-index-scans counter was overlooked in the
1003      SP-GiST code, although per-tuple counters were advanced correctly.
1004     </para>
1005    </listitem>
1006
1007    <listitem>
1008<!--
1009Author: Michael Paquier <michael@paquier.xyz>
1010Branch: master [e4ba1005c] 2021-08-16 12:10:22 +0900
1011Branch: REL_14_STABLE Release: REL_14_0 [f83d80ea1] 2021-08-16 12:11:49 +0900
1012Branch: REL_13_STABLE [7f0873f32] 2021-08-16 12:11:53 +0900
1013Branch: REL_12_STABLE [84c1bac57] 2021-08-16 12:11:56 +0900
1014Branch: REL_11_STABLE [d392e86fa] 2021-08-16 12:11:59 +0900
1015Branch: REL_10_STABLE [024fd44e0] 2021-08-16 12:12:02 +0900
1016Branch: REL9_6_STABLE [942416f4b] 2021-08-16 12:12:09 +0900
1017-->
1018     <para>
1019      Recalculate relevant wait intervals
1020      if <varname>recovery_min_apply_delay</varname> is changed during
1021      recovery (Soumyadeep Chakraborty, Ashwin Agrawal)
1022     </para>
1023    </listitem>
1024
1025    <listitem>
1026<!--
1027Author: David Rowley <drowley@postgresql.org>
1028Branch: master [37450f2ca] 2021-08-13 16:41:26 +1200
1029Branch: REL_14_STABLE Release: REL_14_0 [dc23c77d0] 2021-08-13 16:41:56 +1200
1030Branch: REL_13_STABLE [4873da79d] 2021-08-13 16:42:35 +1200
1031Branch: REL_12_STABLE [75d8fe818] 2021-08-13 16:43:13 +1200
1032Branch: REL_11_STABLE [5a6b0f21e] 2021-08-13 16:43:46 +1200
1033Branch: REL_10_STABLE [4874886b4] 2021-08-13 16:44:18 +1200
1034-->
1035     <para>
1036      Fix infinite loop if a <filename>simplehash.h</filename> hash table
1037      reaches 2^32 elements (Yura Sokolov)
1038     </para>
1039
1040     <para>
1041      It seems unlikely that this bug has been hit in practice, as it
1042      would require <varname>work_mem</varname> settings of hundreds of
1043      gigabytes for existing uses of <filename>simplehash.h</filename>.
1044     </para>
1045    </listitem>
1046
1047    <listitem>
1048<!--
1049Author: Tomas Vondra <tomas.vondra@postgresql.org>
1050Branch: master [83772cc78] 2021-09-23 18:05:10 +0200
1051Branch: REL_14_STABLE Release: REL_14_0 [bb7628e55] 2021-09-23 18:22:29 +0200
1052Branch: REL_13_STABLE [b564eb018] 2021-09-23 18:33:59 +0200
1053Branch: REL_12_STABLE [16d394c05] 2021-09-23 18:41:55 +0200
1054Branch: REL_11_STABLE [ac7290a20] 2021-09-23 18:48:03 +0200
1055Branch: REL_10_STABLE [3aac99068] 2021-09-23 18:54:30 +0200
1056Branch: master [ad8a166ca] 2021-09-23 18:13:36 +0200
1057Branch: REL_14_STABLE Release: REL_14_0 [abb2f9144] 2021-09-23 18:25:37 +0200
1058Branch: REL_13_STABLE [c0386f403] 2021-09-23 18:34:01 +0200
1059Branch: REL_12_STABLE [4185632e9] 2021-09-23 18:43:05 +0200
1060Branch: REL_11_STABLE [4487a7def] 2021-09-23 18:48:58 +0200
1061Branch: REL_10_STABLE [d77e085af] 2021-09-23 18:55:22 +0200
1062-->
1063     <para>
1064      Reduce memory consumption during calculation of extended statistics
1065      (Justin Pryzby, Tomas Vondra)
1066     </para>
1067    </listitem>
1068
1069    <listitem>
1070<!--
1071Author: Thomas Munro <tmunro@postgresql.org>
1072Branch: master [8781b0ce2] 2021-10-26 12:54:55 +1300
1073Branch: REL_14_STABLE [181361a0c] 2021-10-26 13:09:00 +1300
1074Branch: REL_13_STABLE [24b7cf8a5] 2021-10-26 13:04:40 +1300
1075Branch: REL_12_STABLE [8fef901e3] 2021-10-26 13:01:52 +1300
1076-->
1077     <para>
1078      Disallow setting <varname>huge_pages</varname>
1079      to <literal>on</literal> when <varname>shared_memory_type</varname>
1080      is <literal>sysv</literal> (Thomas Munro)
1081     </para>
1082
1083     <para>
1084      Previously, this setting was accepted, but it did nothing for lack
1085      of any implementation.
1086     </para>
1087    </listitem>
1088
1089    <listitem>
1090<!--
1091Author: Michael Paquier <michael@paquier.xyz>
1092Branch: master [fa703b317] 2021-09-13 13:23:50 +0900
1093Branch: REL_14_STABLE Release: REL_14_0 [cc057fb31] 2021-09-13 13:24:04 +0900
1094Branch: REL_13_STABLE [b589d212f] 2021-09-13 13:24:20 +0900
1095Branch: REL_12_STABLE [b34dcf87f] 2021-09-13 13:24:27 +0900
1096Branch: REL_11_STABLE [b6a10ff4a] 2021-09-13 13:24:35 +0900
1097Branch: REL_10_STABLE [83a3737a6] 2021-09-13 13:24:47 +0900
1098Branch: REL9_6_STABLE [3768c468d] 2021-09-13 13:24:56 +0900
1099-->
1100     <para>
1101      Fix <application>ecpg</application> to recover correctly
1102      after <function>malloc()</function> failure while establishing a
1103      connection (Michael Paquier)
1104     </para>
1105    </listitem>
1106
1107    <listitem>
1108<!--
1109Author: Tom Lane <tgl@sss.pgh.pa.us>
1110Branch: master [4476bcb87] 2021-09-21 19:06:53 -0400
1111Branch: REL_14_STABLE Release: REL_14_0 [2ad5f963e] 2021-09-21 19:06:54 -0400
1112Branch: REL_13_STABLE [5f0a073cb] 2021-09-21 19:06:33 -0400
1113Branch: REL_12_STABLE [e8b0bcae6] 2021-09-21 19:06:33 -0400
1114Branch: REL_11_STABLE [13921c511] 2021-09-21 19:06:33 -0400
1115-->
1116     <para>
1117      Fix misevaluation of stable functions called in the arguments of a
1118      PL/pgSQL <command>CALL</command> statement (Tom Lane)
1119     </para>
1120
1121     <para>
1122      They were being called with an out-of-date snapshot, so that they
1123      would not see any database changes made since the start of the
1124      session's top-level command.
1125     </para>
1126    </listitem>
1127
1128    <listitem>
1129<!--
1130Author: Tom Lane <tgl@sss.pgh.pa.us>
1131Branch: master [1bf2518dd] 2021-09-13 12:42:03 -0400
1132Branch: REL_14_STABLE Release: REL_14_0 [4ffd3fe4d] 2021-09-13 12:42:28 -0400
1133Branch: REL_13_STABLE [745abdd95] 2021-09-13 12:42:03 -0400
1134Branch: REL_12_STABLE [b1de90699] 2021-09-13 12:42:03 -0400
1135Branch: REL_11_STABLE [bdd6ce48d] 2021-09-13 12:42:03 -0400
1136Branch: REL_10_STABLE [fe70ec907] 2021-09-13 12:42:04 -0400
1137Branch: REL9_6_STABLE [a460f7eb3] 2021-09-13 12:42:04 -0400
1138-->
1139     <para>
1140      Allow <literal>EXIT</literal> out of the outermost block in a
1141      PL/pgSQL routine (Tom Lane)
1142     </para>
1143
1144     <para>
1145      If the routine does not require an explicit <literal>RETURN</literal>,
1146      this usage should be valid, but it was rejected.
1147     </para>
1148    </listitem>
1149
1150    <listitem>
1151<!--
1152Author: Tom Lane <tgl@sss.pgh.pa.us>
1153Branch: master [87ad49147] 2021-09-03 21:04:44 -0400
1154Branch: REL_14_STABLE Release: REL_14_0 [69d670e68] 2021-09-03 21:04:44 -0400
1155Branch: REL_13_STABLE [742b30cae] 2021-09-03 21:04:44 -0400
1156Branch: REL_12_STABLE [3b302eb1e] 2021-09-03 21:04:44 -0400
1157Branch: REL_11_STABLE [beb404d3b] 2021-09-03 21:04:44 -0400
1158Branch: REL_10_STABLE [6e2f45817] 2021-09-03 21:04:45 -0400
1159Branch: REL9_6_STABLE [9a070c658] 2021-09-03 21:04:45 -0400
1160-->
1161     <para>
1162      Remove <application>pg_ctl</application>'s hard-coded limits on the
1163      total length of generated commands (Phil Krylov)
1164     </para>
1165
1166     <para>
1167      For example, this removes a restriction on how many command-line
1168      options can be passed through to the postmaster.  Individual path
1169      names that <application>pg_ctl</application> deals with, such as the
1170      postmaster executable's name or the data directory name, are still
1171      limited to <literal>MAXPGPATH</literal> bytes in most cases.
1172     </para>
1173    </listitem>
1174
1175    <listitem>
1176<!--
1177Author: Tom Lane <tgl@sss.pgh.pa.us>
1178Branch: master [2acc84c6f] 2021-10-22 15:22:25 -0400
1179Branch: REL_14_STABLE [3ad2c2455] 2021-10-22 15:22:25 -0400
1180Branch: REL_13_STABLE [476006023] 2021-10-22 15:22:26 -0400
1181Branch: REL_12_STABLE [52b927a73] 2021-10-22 15:22:26 -0400
1182Branch: REL_11_STABLE [871dfe4b7] 2021-10-22 15:22:26 -0400
1183Branch: REL_10_STABLE [10f9faf6d] 2021-10-22 15:22:26 -0400
1184Branch: REL9_6_STABLE [b1df061f7] 2021-10-22 15:22:26 -0400
1185-->
1186     <para>
1187      Fix <application>pg_dump</application> to dump non-global default
1188      privileges correctly (Neil Chen, Masahiko Sawada)
1189     </para>
1190
1191     <para>
1192      If a global (unrestricted) <command>ALTER DEFAULT
1193      PRIVILEGES</command> command revoked some present-by-default
1194      privilege, for example <literal>EXECUTE</literal> for functions, and
1195      then a restricted <command>ALTER DEFAULT PRIVILEGES</command>
1196      command granted that privilege again for a selected role or
1197      schema, <application>pg_dump</application> failed to dump the
1198      restricted privilege grant correctly.
1199     </para>
1200    </listitem>
1201
1202    <listitem>
1203<!--
1204Author: Tom Lane <tgl@sss.pgh.pa.us>
1205Branch: master [e2ff7d9a8] 2021-10-16 12:23:57 -0400
1206Branch: REL_14_STABLE [b5152e3ba] 2021-10-16 12:24:11 -0400
1207Branch: REL_13_STABLE [6a262ba8c] 2021-10-16 12:24:17 -0400
1208Branch: REL_12_STABLE [fd182a92a] 2021-10-16 12:24:24 -0400
1209Branch: REL_11_STABLE [ca7a4ce58] 2021-10-16 12:24:33 -0400
1210Branch: REL_10_STABLE [2e2a23283] 2021-10-16 12:24:40 -0400
1211-->
1212     <para>
1213      Make <application>pg_dump</application> acquire shared lock on
1214      partitioned tables that are to be dumped (Tom Lane)
1215     </para>
1216
1217     <para>
1218      This oversight was usually pretty harmless, since
1219      once <application>pg_dump</application> has locked any of the leaf
1220      partitions, that would suffice to prevent significant DDL on the
1221      partitioned table itself.  However problems could ensue when dumping
1222      a childless partitioned table, since no relevant lock would be held.
1223     </para>
1224    </listitem>
1225
1226    <listitem>
1227<!--
1228Author: Tom Lane <tgl@sss.pgh.pa.us>
1229Branch: master [bd3611db5] 2021-08-31 15:04:05 -0400
1230Branch: REL_14_STABLE Release: REL_14_0 [a20a9f26c] 2021-08-31 15:04:05 -0400
1231Branch: REL_13_STABLE [db11b4a3d] 2021-08-31 15:04:05 -0400
1232Branch: REL_12_STABLE [6b9667392] 2021-08-31 15:04:05 -0400
1233Branch: REL_11_STABLE [a60860ff3] 2021-08-31 15:04:05 -0400
1234Branch: REL_10_STABLE [ba8f1a0be] 2021-08-31 15:04:05 -0400
1235Branch: REL9_6_STABLE [dd3105286] 2021-08-31 15:04:05 -0400
1236Branch: master [6c450a861] 2021-08-31 13:53:49 -0400
1237Branch: REL_14_STABLE Release: REL_14_0 [9407dbbcb] 2021-08-31 13:53:49 -0400
1238Branch: REL_13_STABLE [904ce45bf] 2021-08-31 13:53:50 -0400
1239Branch: REL_12_STABLE [2f1ed9d98] 2021-08-31 13:53:50 -0400
1240Branch: REL_11_STABLE [c4b298ee1] 2021-08-31 13:53:51 -0400
1241Branch: REL_10_STABLE [0e7bdc722] 2021-08-31 13:53:51 -0400
1242Branch: REL9_6_STABLE [4645997c8] 2021-08-31 13:53:33 -0400
1243-->
1244     <para>
1245      Improve <application>pg_dump</application>'s performance by avoiding
1246      making per-table queries for RLS policies, and by avoiding repetitive
1247      calls to <function>format_type()</function> (Tom Lane)
1248     </para>
1249
1250     <para>
1251      These changes provide only marginal improvement when dumping from a
1252      local server, but a dump from a remote server can benefit
1253      substantially due to fewer network round-trips.
1254     </para>
1255    </listitem>
1256
1257    <listitem>
1258<!--
1259Author: Tom Lane <tgl@sss.pgh.pa.us>
1260Branch: master [40dfac4fc] 2021-10-16 15:02:55 -0400
1261Branch: REL_14_STABLE [3e4c8db93] 2021-10-16 15:03:05 -0400
1262Branch: REL_13_STABLE [0b5f557b7] 2021-10-16 15:03:10 -0400
1263Branch: REL_12_STABLE [5b0b2983a] 2021-10-16 15:03:15 -0400
1264Branch: REL_11_STABLE [58955c84f] 2021-10-16 15:03:21 -0400
1265-->
1266     <para>
1267      Fix crash in <application>pg_dump</application> when attempting to
1268      dump trigger definitions from a pre-8.3 server (Tom Lane)
1269     </para>
1270    </listitem>
1271
1272    <listitem>
1273<!--
1274Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1275Branch: master [998d060f3] 2021-10-19 12:59:54 +0200
1276Branch: REL_14_STABLE [3e2f32b01] 2021-10-19 12:59:54 +0200
1277Branch: REL_13_STABLE [687fe8a9d] 2021-10-19 12:59:54 +0200
1278Branch: REL_12_STABLE [e788883de] 2021-10-19 12:59:54 +0200
1279Branch: REL_11_STABLE [038892c81] 2021-10-19 12:59:54 +0200
1280Branch: REL_10_STABLE [4fda03b67] 2021-10-19 12:59:54 +0200
1281Branch: REL9_6_STABLE [ef1f15819] 2021-10-19 12:59:54 +0200
1282-->
1283     <para>
1284      Fix incorrect filename in <application>pg_restore</application>'s
1285      error message about an invalid large object TOC file (Daniel
1286      Gustafsson)
1287     </para>
1288    </listitem>
1289
1290    <listitem>
1291<!--
1292Author: Fujii Masao <fujii@postgresql.org>
1293Branch: master [d33674708] 2021-09-29 21:46:56 +0900
1294Branch: REL_14_STABLE [8021334d3] 2021-09-29 21:47:25 +0900
1295Branch: REL_13_STABLE [3cc85d7d5] 2021-09-29 21:47:31 +0900
1296Branch: master [2acb7cc6b] 2021-09-29 21:48:52 +0900
1297Branch: REL_14_STABLE [8231c500e] 2021-09-29 21:49:29 +0900
1298Branch: REL_13_STABLE [8cf4f7118] 2021-09-29 21:49:36 +0900
1299Branch: REL_12_STABLE [c5f7e702d] 2021-09-29 21:49:40 +0900
1300-->
1301     <para>
1302      Ensure that <application>pgbench</application> exits with non-zero
1303      status after a socket-level failure (Yugo Nagata, Fabien Coelho)
1304     </para>
1305
1306     <para>
1307      The desired behavior is to finish out the run but then exit with
1308      status 2.  Also, fix the reporting of such errors.
1309     </para>
1310    </listitem>
1311
1312    <listitem>
1313<!--
1314Author: Tom Lane <tgl@sss.pgh.pa.us>
1315Branch: master [a6bd28beb] 2021-08-10 18:10:29 -0400
1316Branch: REL_14_STABLE Release: REL_14_0 [a4957b5a7] 2021-08-10 18:10:30 -0400
1317Branch: REL_13_STABLE [7ba487cf9] 2021-08-10 18:10:30 -0400
1318Branch: REL_12_STABLE [cd7d9b6b6] 2021-08-10 18:10:30 -0400
1319Branch: REL_11_STABLE [eefa4c2b5] 2021-08-10 18:10:30 -0400
1320Branch: REL_10_STABLE [843d2879a] 2021-08-10 18:10:30 -0400
1321Branch: REL9_6_STABLE [5a9df5d50] 2021-08-10 18:10:30 -0400
1322-->
1323     <para>
1324      Fix failure of <filename>contrib/btree_gin</filename> indexes
1325      on <type>"char"</type>
1326      (not <type>char(<replaceable>n</replaceable>)</type>) columns,
1327      when an indexscan using the <literal>&lt;</literal>
1328      or <literal>&lt;=</literal> operator is performed (Tom Lane)
1329     </para>
1330
1331     <para>
1332      Such an indexscan failed to return all the entries it should.
1333     </para>
1334    </listitem>
1335
1336    <listitem>
1337<!--
1338Author: Tom Lane <tgl@sss.pgh.pa.us>
1339Branch: master [a667b0668] 2021-10-31 19:13:48 -0400
1340Branch: REL_14_STABLE [7104e0b24] 2021-10-31 19:13:48 -0400
1341Branch: REL_13_STABLE [3a5b313ce] 2021-10-31 19:13:48 -0400
1342Branch: REL_12_STABLE [16d0da5c8] 2021-10-31 19:13:48 -0400
1343Branch: REL_11_STABLE [5dd067430] 2021-10-31 19:13:48 -0400
1344Branch: REL_10_STABLE [d87d5f8d8] 2021-10-31 19:13:48 -0400
1345Branch: REL9_6_STABLE [fdb60ca83] 2021-10-31 19:13:48 -0400
1346-->
1347     <para>
1348      Change <filename>contrib/pg_stat_statements</filename> to read
1349      its <quote>query texts</quote> file in units of at most 1GB
1350      (Tom Lane)
1351     </para>
1352
1353     <para>
1354      Such large query text files are very unusual, but if they do occur,
1355      the previous coding would fail on Windows 64 (which rejects
1356      individual read requests of more than 2GB).
1357     </para>
1358    </listitem>
1359
1360    <listitem>
1361<!--
1362Author: Tom Lane <tgl@sss.pgh.pa.us>
1363Branch: master [3071bbfe4] 2021-10-06 15:50:24 -0400
1364Branch: REL_14_STABLE [12ff678e1] 2021-10-06 15:50:24 -0400
1365Branch: REL_13_STABLE [aee83f39a] 2021-10-06 15:50:24 -0400
1366Branch: REL_12_STABLE [228897374] 2021-10-06 15:50:24 -0400
1367Branch: REL_11_STABLE [88807757d] 2021-10-06 15:50:24 -0400
1368Branch: REL_10_STABLE [2e33fbda1] 2021-10-06 15:50:24 -0400
1369Branch: REL9_6_STABLE [36c9f7d96] 2021-10-06 15:50:24 -0400
1370-->
1371     <para>
1372      Fix null-pointer crash
1373      when <filename>contrib/postgres_fdw</filename> tries to report a
1374      data conversion error (Tom Lane)
1375     </para>
1376    </listitem>
1377
1378    <listitem>
1379<!--
1380Author: Tom Lane <tgl@sss.pgh.pa.us>
1381Branch: master [c32fcac56] 2021-08-13 13:59:43 -0400
1382Branch: REL_14_STABLE Release: REL_14_0 [4ffbd55d9] 2021-08-13 13:59:44 -0400
1383Branch: REL_13_STABLE [48695decc] 2021-08-13 13:59:06 -0400
1384Branch: REL_12_STABLE [cdda2b247] 2021-08-13 13:59:13 -0400
1385Branch: REL_11_STABLE [8024ff478] 2021-08-13 13:59:18 -0400
1386Branch: REL_10_STABLE [7915a9515] 2021-08-13 13:59:25 -0400
1387Branch: REL9_6_STABLE [582a2affa] 2021-08-13 13:59:33 -0400
1388-->
1389     <para>
1390      Add spinlock support for the RISC-V architecture (Marek Szuba)
1391     </para>
1392
1393     <para>
1394      This is essential for reasonable performance on that platform.
1395     </para>
1396    </listitem>
1397
1398    <listitem>
1399<!--
1400Author: Peter Eisentraut <peter@eisentraut.org>
1401Branch: master Release: REL_14_BR [22e1943f1] 2021-03-23 11:48:37 +0100
1402Branch: REL_13_STABLE [a69e1506f] 2021-09-25 11:25:48 +0200
1403Branch: REL_12_STABLE [90cfd269f] 2021-09-25 11:25:48 +0200
1404Branch: REL_11_STABLE [0f28d267c] 2021-09-25 11:25:48 +0200
1405Branch: REL_10_STABLE [841075a65] 2021-09-25 11:25:48 +0200
1406Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1407Branch: master [318df8023] 2021-08-10 15:01:52 +0200
1408Branch: REL_14_STABLE Release: REL_14_0 [4fa2b15e1] 2021-09-25 11:27:20 +0200
1409Branch: REL_13_STABLE [135d8687a] 2021-09-25 11:27:20 +0200
1410Branch: REL_12_STABLE [00c72da4a] 2021-09-25 11:27:20 +0200
1411Branch: REL_11_STABLE [11901cd96] 2021-09-25 11:27:20 +0200
1412Branch: REL_10_STABLE [e802b594e] 2021-09-25 11:27:20 +0200
1413Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1414Branch: master [72bbff4cd] 2021-08-10 15:08:46 +0200
1415Branch: REL_14_STABLE Release: REL_14_0 [6d0001aab] 2021-09-25 11:27:28 +0200
1416Branch: REL_13_STABLE [8e7199453] 2021-09-25 11:27:28 +0200
1417Branch: REL_12_STABLE [7b6ce36fb] 2021-09-25 11:27:28 +0200
1418Branch: REL_11_STABLE [19e91a40b] 2021-09-25 11:27:28 +0200
1419Branch: REL_10_STABLE [eb643536b] 2021-09-25 11:27:28 +0200
1420Author: Michael Paquier <michael@paquier.xyz>
1421Branch: master [41f30ecc2] 2021-10-20 16:48:24 +0900
1422Branch: REL_14_STABLE [81aefaea8] 2021-10-20 16:48:57 +0900
1423Branch: REL_13_STABLE [abb9ee92c] 2021-10-20 16:49:00 +0900
1424Branch: REL_12_STABLE [1539e0ecd] 2021-10-20 16:49:03 +0900
1425Branch: REL_11_STABLE [e00d45fea] 2021-10-20 16:49:06 +0900
1426Branch: REL_10_STABLE [922e3c3b7] 2021-10-20 16:49:10 +0900
1427Branch: REL9_6_STABLE [d581960df] 2021-10-20 16:49:14 +0900
1428-->
1429     <para>
1430      Support OpenSSL 3.0.0
1431      (Peter Eisentraut, Daniel Gustafsson, Michael Paquier)
1432     </para>
1433    </listitem>
1434
1435    <listitem>
1436<!--
1437Author: Daniel Gustafsson <dgustafsson@postgresql.org>
1438Branch: master [31f860a52] 2021-08-17 14:30:01 +0200
1439Branch: REL_14_STABLE Release: REL_14_0 [b88377ad6] 2021-08-17 14:30:25 +0200
1440Branch: REL_13_STABLE [e15f32f0e] 2021-08-17 14:31:00 +0200
1441Branch: REL_12_STABLE [ed209db77] 2021-08-17 14:31:08 +0200
1442Branch: REL_11_STABLE [f1d5a94fc] 2021-08-17 14:30:39 +0200
1443Branch: REL_10_STABLE [ef7e24ff7] 2021-08-17 14:30:51 +0200
1444Branch: REL9_6_STABLE [0a88d4ece] 2021-08-17 14:31:22 +0200
1445-->
1446     <para>
1447      Set correct type identifier on OpenSSL BIO (I/O abstraction)
1448      objects created by <productname>PostgreSQL</productname>
1449      (Itamar Gafni)
1450     </para>
1451
1452     <para>
1453      This oversight probably only matters for code that is doing
1454      tasks like auditing the OpenSSL installation.  But it's
1455      nominally a violation of the OpenSSL API, so fix it.
1456     </para>
1457    </listitem>
1458
1459    <listitem>
1460<!--
1461Author: Peter Eisentraut <peter@eisentraut.org>
1462Branch: master [4c2eab3a0] 2021-09-03 10:52:11 +0200
1463Branch: master [55392bc5b] 2021-09-06 09:12:34 +0200
1464Branch: REL_14_STABLE Release: REL_14_0 [1e9afc868] 2021-09-06 09:41:03 +0200
1465Branch: REL_13_STABLE [9f9ae019d] 2021-09-06 09:43:05 +0200
1466Branch: REL_12_STABLE [60bf7e69b] 2021-09-06 09:43:18 +0200
1467-->
1468     <para>
1469      Fix our <filename>pkg-config</filename> files to again support static
1470      linking of <application>libpq</application> (Peter Eisentraut)
1471     </para>
1472    </listitem>
1473
1474    <listitem>
1475<!--
1476Author: Tom Lane <tgl@sss.pgh.pa.us>
1477Branch: master [e757080e0] 2021-09-11 15:19:31 -0400
1478Branch: REL_14_STABLE Release: REL_14_0 [b33283cbd] 2021-09-11 15:19:43 -0400
1479Branch: REL_13_STABLE [7e420072e] 2021-09-11 15:19:49 -0400
1480Branch: REL_12_STABLE [3adde7eb6] 2021-09-11 15:19:54 -0400
1481Branch: REL_11_STABLE [3be381a90] 2021-09-11 15:19:58 -0400
1482Branch: REL_10_STABLE [daac97eb0] 2021-09-11 15:20:04 -0400
1483Branch: REL9_6_STABLE [ec89d7ace] 2021-09-11 15:20:12 -0400
1484-->
1485     <para>
1486      Make <function>pg_regexec()</function> robust against an
1487      out-of-range <replaceable>search_start</replaceable> parameter
1488      (Tom Lane)
1489     </para>
1490
1491     <para>
1492      Return <literal>REG_NOMATCH</literal>, instead of possibly crashing,
1493      when <replaceable>search_start</replaceable> is past the end of the
1494      string.  This case is probably unreachable within
1495      core <productname>PostgreSQL</productname>, but extensions might be
1496      more careless about the parameter value.
1497     </para>
1498    </listitem>
1499
1500    <listitem>
1501<!--
1502Author: Jeff Davis <jdavis@postgresql.org>
1503Branch: master [7821a0bf2] 2021-10-14 12:24:00 -0700
1504Branch: REL_14_STABLE [0b90f1c4c] 2021-10-14 12:24:22 -0700
1505Branch: REL_13_STABLE [20f785732] 2021-10-14 12:24:47 -0700
1506Branch: REL_12_STABLE [ab11f6e46] 2021-10-14 12:25:07 -0700
1507Branch: REL_11_STABLE [3f5d481ef] 2021-10-14 12:25:30 -0700
1508Branch: REL_10_STABLE [9364f64a2] 2021-10-14 12:25:48 -0700
1509Branch: REL9_6_STABLE [ae6abeb88] 2021-10-14 12:26:26 -0700
1510-->
1511     <para>
1512      Ensure that <function>GetSharedSecurityLabel()</function> can be
1513      used in a newly-started session that has not yet built its critical
1514      relation cache entries (Jeff Davis)
1515     </para>
1516    </listitem>
1517
1518    <listitem>
1519<!--
1520Author: Tom Lane <tgl@sss.pgh.pa.us>
1521Branch: master [9b8d68cc6] 2021-10-02 16:05:42 -0400
1522Branch: REL_14_STABLE [fa8db4879] 2021-10-02 16:06:09 -0400
1523Branch: REL_13_STABLE [9c76689de] 2021-10-02 16:06:23 -0400
1524Branch: REL_12_STABLE [e5b25f19b] 2021-10-02 16:06:45 -0400
1525Branch: REL_11_STABLE [9cc919b51] 2021-10-02 16:06:55 -0400
1526Branch: REL_10_STABLE [e323630cd] 2021-10-02 16:07:16 -0400
1527Branch: REL9_6_STABLE [dbec5a2fe] 2021-10-02 16:07:37 -0400
1528Branch: master [ad740067a] 2021-10-02 16:05:10 -0400
1529Branch: REL_14_STABLE [81464999b] 2021-10-02 16:06:09 -0400
1530Branch: REL_13_STABLE [7ba8eb81f] 2021-10-02 16:06:23 -0400
1531Branch: REL_12_STABLE [4721e8aa6] 2021-10-02 16:06:45 -0400
1532Branch: REL_11_STABLE [bb6d42669] 2021-10-02 16:06:55 -0400
1533Branch: REL_10_STABLE [cb0799db0] 2021-10-02 16:07:16 -0400
1534Branch: REL9_6_STABLE [37cbe0f79] 2021-10-02 16:07:36 -0400
1535Branch: master [c1aa3b3c0] 2021-10-04 14:52:39 -0400
1536Branch: REL_14_STABLE [919c08d90] 2021-10-04 14:52:17 -0400
1537Branch: REL_13_STABLE [c53ff69e1] 2021-10-04 14:52:17 -0400
1538Branch: REL_12_STABLE [07873a5dc] 2021-10-04 14:52:17 -0400
1539Branch: REL_11_STABLE [d0b0b70dc] 2021-10-04 14:52:17 -0400
1540Branch: REL_10_STABLE [cd2479142] 2021-10-04 14:52:17 -0400
1541Branch: REL9_6_STABLE [b5f34ae08] 2021-10-04 14:52:17 -0400
1542-->
1543     <para>
1544      Use the CLDR project's data to map Windows time zone names to IANA
1545      time zones (Tom Lane)
1546     </para>
1547
1548     <para>
1549      When running on Windows, <application>initdb</application> attempts
1550      to set the new cluster's <varname>timezone</varname> parameter to
1551      the IANA time zone matching the system's prevailing time zone.
1552      We were using a mapping table that we'd generated years ago and
1553      updated only fitfully; unsurprisingly, it contained a number of
1554      errors as well as omissions of recently-added zones.  It turns out
1555      that CLDR has been tracking the most appropriate mappings, so start
1556      using their data.  This change will not affect any existing
1557      installation, only newly-initialized clusters.
1558     </para>
1559    </listitem>
1560
1561    <listitem>
1562<!--
1563Author: Tom Lane <tgl@sss.pgh.pa.us>
1564Branch: master [937aafd6d] 2021-10-29 11:38:18 -0400
1565Branch: REL_14_STABLE [0c8a40b39] 2021-10-29 11:38:32 -0400
1566Branch: REL_13_STABLE [4cd72add0] 2021-10-29 11:38:38 -0400
1567Branch: REL_12_STABLE [14b8d25d6] 2021-10-29 11:38:47 -0400
1568Branch: REL_11_STABLE [91455f7c6] 2021-10-29 11:38:53 -0400
1569Branch: REL_10_STABLE [d0fe211ce] 2021-10-29 11:38:58 -0400
1570Branch: REL9_6_STABLE [22a498b9b] 2021-10-29 11:39:05 -0400
1571-->
1572     <para>
1573      Update time zone data files to <application>tzdata</application>
1574      release 2021e for DST law changes in Fiji, Jordan, Palestine, and
1575      Samoa, plus historical corrections for Barbados, Cook Islands,
1576      Guyana, Niue, Portugal, and Tonga.
1577     </para>
1578
1579     <para>
1580      Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton.
1581      Also, the following zones have been merged into nearby, more-populous
1582      zones whose clocks have agreed with them since 1970: Africa/Accra,
1583      America/Atikokan, America/Blanc-Sablon, America/Creston,
1584      America/Curacao, America/Nassau, America/Port_of_Spain,
1585      Antarctica/DumontDUrville, and Antarctica/Syowa.
1586      In all these cases, the previous zone name remains as an alias.
1587     </para>
1588    </listitem>
1589
1590   </itemizedlist>
1591
1592  </sect2>
1593 </sect1>
1594
1595 <sect1 id="release-12-8">
1596  <title>Release 12.8</title>
1597
1598  <formalpara>
1599  <title>Release date:</title>
1600  <para>2021-08-12</para>
1601  </formalpara>
1602
1603  <para>
1604   This release contains a variety of fixes from 12.7.
1605   For information about new features in major release 12, see
1606   <xref linkend="release-12"/>.
1607  </para>
1608
1609  <sect2>
1610   <title>Migration to Version 12.8</title>
1611
1612   <para>
1613    A dump/restore is not required for those running 12.X.
1614   </para>
1615
1616   <para>
1617    However, if you are upgrading from a version earlier than 12.6,
1618    see <xref linkend="release-12-6"/>.
1619   </para>
1620  </sect2>
1621
1622  <sect2>
1623   <title>Changes</title>
1624
1625   <itemizedlist>
1626
1627    <listitem>
1628<!--
1629Author: Tom Lane <tgl@sss.pgh.pa.us>
1630Branch: master Release: REL_14_BR [6ee41a301] 2021-05-31 12:03:00 -0400
1631Branch: REL_13_STABLE [fe6f63286] 2021-05-31 12:03:00 -0400
1632Branch: REL_12_STABLE [6f9e7f21f] 2021-05-31 12:03:00 -0400
1633Branch: REL_11_STABLE [fe194f731] 2021-05-31 12:03:00 -0400
1634-->
1635     <para>
1636      Fix mis-planning of repeated application of a projection step
1637      (Tom Lane)
1638     </para>
1639
1640     <para>
1641      The planner could create an incorrect plan in cases where two
1642      ProjectionPaths were stacked on top of each other.  The only known
1643      way to trigger that situation involves parallel sort operations, but
1644      there may be other instances.  The result would be crashes or
1645      incorrect query results.
1646      Disclosure of server memory contents is also possible.
1647      (CVE-2021-3677)
1648     </para>
1649    </listitem>
1650
1651    <listitem>
1652<!--
1653Author: Michael Paquier <michael@paquier.xyz>
1654Branch: master Release: REL_14_BR [01e6f1a84] 2021-05-25 10:10:09 +0900
1655Branch: REL_13_STABLE [a23c0b00f] 2021-05-25 10:11:13 +0900
1656Branch: REL_12_STABLE [3f8072be8] 2021-05-25 10:11:17 +0900
1657Branch: REL_11_STABLE [96918b76f] 2021-05-25 10:11:21 +0900
1658Branch: REL_10_STABLE [c64b5d10d] 2021-05-25 10:11:26 +0900
1659Branch: REL9_6_STABLE [7777df34d] 2021-05-25 10:11:33 +0900
1660-->
1661     <para>
1662      Disallow SSL renegotiation more completely (Michael Paquier)
1663     </para>
1664
1665     <para>
1666      SSL renegotiation has been disabled for some time, but the server
1667      would still cooperate with a client-initiated renegotiation request.
1668      A maliciously crafted renegotiation request could result in a server
1669      crash (see OpenSSL issue CVE-2021-3449).  Disable the feature
1670      altogether on OpenSSL versions that permit doing so, which are
1671      1.1.0h and newer.
1672     </para>
1673    </listitem>
1674
1675    <listitem>
1676<!--
1677Author: Tom Lane <tgl@sss.pgh.pa.us>
1678Branch: master Release: REL_14_BR [84f5c2908] 2021-05-21 14:03:59 -0400
1679Branch: REL_13_STABLE [d18ee6f92] 2021-05-21 14:03:53 -0400
1680Branch: REL_12_STABLE [41c6a5bec] 2021-05-21 14:03:53 -0400
1681Branch: REL_11_STABLE [ef9480509] 2021-05-21 14:03:53 -0400
1682Branch: master Release: REL_14_BR [3a09d75b4] 2021-06-10 12:27:27 -0400
1683Branch: REL_13_STABLE [6e43f1c2d] 2021-06-10 12:27:27 -0400
1684Branch: REL_12_STABLE [26383da7d] 2021-06-10 12:27:27 -0400
1685Branch: REL_11_STABLE [eea081ad0] 2021-06-10 12:27:27 -0400
1686Branch: master Release: REL_14_BR [d102aafb6] 2021-06-22 17:48:39 -0400
1687Branch: REL_13_STABLE [6f1321d5a] 2021-06-22 17:48:39 -0400
1688Branch: REL_12_STABLE [29d5d5761] 2021-06-22 17:48:39 -0400
1689Branch: REL_11_STABLE [77200c569] 2021-06-22 17:48:39 -0400
1690Branch: master [ef12f32c0] 2021-07-31 11:50:14 -0400
1691Branch: REL_14_STABLE [ec410c985] 2021-07-31 11:50:14 -0400
1692Branch: REL_13_STABLE [93f99693f] 2021-07-31 11:50:14 -0400
1693Branch: REL_12_STABLE [f26043645] 2021-07-31 11:50:14 -0400
1694Branch: REL_11_STABLE [cefb1230e] 2021-07-31 11:50:14 -0400
1695Branch: master Release: REL_14_BR [f21fadafa] 2021-05-20 18:32:37 -0400
1696Branch: REL_13_STABLE [c64183f23] 2021-05-20 18:32:37 -0400
1697Branch: REL_12_STABLE [8d341d6cb] 2021-05-20 18:32:37 -0400
1698Branch: REL_11_STABLE [0c1b2cb17] 2021-05-20 18:32:37 -0400
1699-->
1700     <para>
1701      Restore the Portal-level snapshot after <command>COMMIT</command>
1702      or <command>ROLLBACK</command> within a procedure (Tom Lane)
1703     </para>
1704
1705     <para>
1706      This change fixes cases where an attempt to fetch a toasted value
1707      immediately after <command>COMMIT</command>/<command>ROLLBACK</command>
1708      would fail with errors like <quote>no known snapshots</quote> or
1709      <quote>missing chunk number 0 for toast value</quote>.
1710     </para>
1711
1712     <para>
1713      Some extensions may attempt to execute SQL code outside of any
1714      Portal.  They are responsible for ensuring that an outer snapshot
1715      exists before doing so.  Previously, not providing a snapshot might
1716      work or it might not; now it will consistently fail
1717      with <quote>cannot execute SQL without an outer snapshot or
1718      portal</quote>.
1719     </para>
1720    </listitem>
1721
1722    <listitem>
1723<!--
1724Author: Tom Lane <tgl@sss.pgh.pa.us>
1725Branch: master Release: REL_14_BR [ba2c6d6ce] 2021-06-08 17:50:29 -0400
1726Branch: REL_13_STABLE [c1fd756fd] 2021-06-08 17:50:15 -0400
1727Branch: REL_12_STABLE [c3b508268] 2021-06-08 17:50:15 -0400
1728Branch: REL_11_STABLE [2757865fa] 2021-06-08 17:50:15 -0400
1729Branch: master Release: REL_14_BR [be9009890] 2021-06-08 18:40:06 -0400
1730Branch: REL_13_STABLE [c5b281841] 2021-06-08 18:40:06 -0400
1731Branch: REL_12_STABLE [182323300] 2021-06-08 18:40:06 -0400
1732Branch: REL_11_STABLE [5b7bf9f72] 2021-06-08 18:40:06 -0400
1733-->
1734     <para>
1735      Avoid misbehavior when persisting the output of a cursor that's
1736      reading a non-stable query (Tom Lane)
1737     </para>
1738
1739     <para>
1740      Previously, we'd always rewind and re-read the whole query result,
1741      possibly getting results different from the earlier execution,
1742      causing great confusion later.  For a NO SCROLL cursor, we can fix
1743      this by only storing the not-yet-read portion of the query output,
1744      which is sufficient since a NO SCROLL cursor can't be backed up.
1745      Cursors with the SCROLL option remain at hazard, but that was
1746      already documented to be an unsafe option to use with a non-stable
1747      query.  Make those documentation warnings stronger.
1748     </para>
1749
1750     <para>
1751      Also force NO SCROLL mode for the implicit cursor used by
1752      a <application>PL/pgSQL</application> FOR-over-query loop,
1753      to avoid this type of problem when persisting such a cursor
1754      during an intra-procedure commit.
1755     </para>
1756    </listitem>
1757
1758    <listitem>
1759<!--
1760Author: Tom Lane <tgl@sss.pgh.pa.us>
1761Branch: master Release: REL_14_BR [1103033ae] 2021-06-01 11:12:56 -0400
1762Branch: REL_13_STABLE [e5b0fffa1] 2021-06-01 11:12:56 -0400
1763Branch: REL_12_STABLE [762fe98b1] 2021-06-01 11:12:56 -0400
1764Branch: REL_11_STABLE [dc272157a] 2021-06-01 11:12:56 -0400
1765Branch: REL_10_STABLE [39862dde4] 2021-06-01 11:12:56 -0400
1766Branch: REL9_6_STABLE [3eca18522] 2021-06-01 11:12:56 -0400
1767-->
1768     <para>
1769      Reject <literal>SELECT ... GROUP BY GROUPING SETS (()) FOR
1770      UPDATE</literal> (Tom Lane)
1771     </para>
1772
1773     <para>
1774      This should be disallowed, just as <literal>FOR UPDATE</literal>
1775      with a plain <literal>GROUP BY</literal> is disallowed, but the test
1776      for that failed to handle empty grouping sets correctly.
1777      The end result would be a null-pointer dereference in the executor.
1778     </para>
1779    </listitem>
1780
1781    <listitem>
1782<!--
1783Author: Tom Lane <tgl@sss.pgh.pa.us>
1784Branch: master [a9da1934e] 2021-07-09 11:02:26 -0400
1785Branch: REL_14_STABLE [39b6e85f1] 2021-07-09 11:02:26 -0400
1786Branch: REL_13_STABLE [6edccac16] 2021-07-09 11:02:26 -0400
1787Branch: REL_12_STABLE [9c729bd30] 2021-07-09 11:02:26 -0400
1788Branch: REL_11_STABLE [158594f99] 2021-07-09 11:02:26 -0400
1789Branch: REL_10_STABLE [51df19a05] 2021-07-09 11:02:26 -0400
1790Branch: REL9_6_STABLE [f0271cb15] 2021-07-09 11:02:26 -0400
1791-->
1792     <para>
1793      Reject cases where a query in <literal>WITH</literal>
1794      rewrites to just <command>NOTIFY</command> (Tom Lane)
1795     </para>
1796
1797     <para>
1798      Such cases previously crashed.
1799     </para>
1800    </listitem>
1801
1802    <listitem>
1803<!--
1804Author: Dean Rasheed <dean.a.rasheed@gmail.com>
1805Branch: master [e7fc488ad] 2021-07-10 12:42:59 +0100
1806Branch: REL_14_STABLE [06883d58f] 2021-07-10 12:45:00 +0100
1807Branch: REL_13_STABLE [f23a9b8a4] 2021-07-10 12:46:13 +0100
1808Branch: REL_12_STABLE [357b66ef9] 2021-07-10 12:47:45 +0100
1809Branch: REL_11_STABLE [5763ef42c] 2021-07-10 12:48:59 +0100
1810Branch: REL_10_STABLE [54a0ec1bd] 2021-07-10 12:50:05 +0100
1811Branch: REL9_6_STABLE [f8abf6944] 2021-07-10 12:51:22 +0100
1812-->
1813     <para>
1814      In <type>numeric</type> multiplication, round the result rather than
1815      failing if it would have more than 16383 digits after the decimal
1816      point (Dean Rasheed)
1817     </para>
1818    </listitem>
1819
1820    <listitem>
1821<!--
1822Author: Dean Rasheed <dean.a.rasheed@gmail.com>
1823Branch: master [4dd5ce2fd] 2021-07-31 11:21:44 +0100
1824Branch: REL_14_STABLE [0d6b87497] 2021-07-31 11:23:48 +0100
1825Branch: REL_13_STABLE [053ec4e0c] 2021-07-31 11:25:39 +0100
1826Branch: REL_12_STABLE [5c62920fa] 2021-07-31 11:27:02 +0100
1827Branch: REL_11_STABLE [dcd0ab672] 2021-07-31 11:28:10 +0100
1828Branch: REL_10_STABLE [39b0bda67] 2021-07-31 11:29:50 +0100
1829Branch: REL9_6_STABLE [5cf350ce0] 2021-07-31 11:31:18 +0100
1830Branch: REL_11_STABLE [434ddfb79] 2021-08-05 22:24:28 +0100
1831Branch: master [2642df9fa] 2021-08-06 21:29:15 +0100
1832Branch: REL_14_STABLE [032556570] 2021-08-06 21:30:25 +0100
1833Branch: REL_13_STABLE [da188b993] 2021-08-06 21:31:20 +0100
1834Branch: REL_12_STABLE [cc4420f88] 2021-08-06 21:31:58 +0100
1835Branch: REL_11_STABLE [7a9c9acfe] 2021-08-06 21:32:46 +0100
1836Branch: REL_10_STABLE [f20b6bc96] 2021-08-06 21:33:25 +0100
1837Branch: REL9_6_STABLE [5b7b92ad7] 2021-08-06 21:34:04 +0100
1838-->
1839     <para>
1840      Fix corner-case errors and loss of precision when
1841      raising <type>numeric</type> values to very large powers
1842      (Dean Rasheed)
1843     </para>
1844    </listitem>
1845
1846    <listitem>
1847<!--
1848Author: Dean Rasheed <dean.a.rasheed@gmail.com>
1849Branch: master [226ec49ff] 2021-08-05 09:24:11 +0100
1850Branch: REL_14_STABLE [ecbdbdfd9] 2021-08-05 09:27:35 +0100
1851Branch: REL_13_STABLE [a72ad6315] 2021-08-05 09:29:13 +0100
1852Branch: REL_12_STABLE [43644bd3b] 2021-08-05 09:30:37 +0100
1853Branch: REL_11_STABLE [4851940a5] 2021-08-05 09:32:03 +0100
1854Branch: REL_10_STABLE [661558bc3] 2021-08-05 09:33:55 +0100
1855Branch: REL9_6_STABLE [ed3e1663c] 2021-08-05 09:35:46 +0100
1856-->
1857     <para>
1858      Fix division-by-zero failure in <function>to_char()</function>
1859      with <literal>EEEE</literal> format and a <type>numeric</type> input
1860      value less than 10^(-1001) (Dean Rasheed)
1861     </para>
1862    </listitem>
1863
1864    <listitem>
1865<!--
1866Author: David Rowley <drowley@postgresql.org>
1867Branch: master [55fe60938] 2021-07-09 14:04:30 +1200
1868Branch: REL_14_STABLE [6de3a21bb] 2021-07-09 14:04:40 +1200
1869Branch: REL_13_STABLE [6f88b68ff] 2021-07-09 14:04:49 +1200
1870Branch: REL_12_STABLE [efc42a1e1] 2021-07-09 14:04:56 +1200
1871Branch: REL_11_STABLE [45bad6a39] 2021-07-09 14:05:05 +1200
1872Branch: REL_10_STABLE [1efcd5720] 2021-07-09 14:05:15 +1200
1873Branch: REL9_6_STABLE [674ee3b76] 2021-07-09 14:05:24 +1200
1874Branch: REL_13_STABLE [87103002c] 2021-07-09 15:12:31 +1200
1875Branch: REL_12_STABLE [b18621139] 2021-07-09 15:13:01 +1200
1876Branch: REL_11_STABLE [137af4f27] 2021-07-09 15:13:29 +1200
1877Branch: REL_10_STABLE [dd76aa54a] 2021-07-09 15:14:01 +1200
1878Branch: REL9_6_STABLE [3e474a708] 2021-07-09 15:14:26 +1200
1879-->
1880     <para>
1881      Fix <function>pg_size_pretty(bigint)</function> to round negative
1882      values consistently with the way it rounds positive ones (and
1883      consistently with the <type>numeric</type> version) (Dean Rasheed,
1884      David Rowley)
1885     </para>
1886    </listitem>
1887
1888    <listitem>
1889<!--
1890Author: Tom Lane <tgl@sss.pgh.pa.us>
1891Branch: master Release: REL_14_BR [1250aad42] 2021-06-12 13:29:24 -0400
1892Branch: REL_13_STABLE [f479ea94b] 2021-06-12 13:29:24 -0400
1893Branch: REL_12_STABLE [7681b78fb] 2021-06-12 13:29:24 -0400
1894Branch: REL_11_STABLE [25d1ef1aa] 2021-06-12 13:29:24 -0400
1895Branch: REL_10_STABLE [26a053533] 2021-06-12 13:29:24 -0400
1896Branch: REL9_6_STABLE [c1ffbbcbc] 2021-06-12 13:29:24 -0400
1897-->
1898     <para>
1899      Make <literal>pg_filenode_relation(0, 0)</literal> return NULL
1900      rather than failing (Justin Pryzby)
1901     </para>
1902    </listitem>
1903
1904    <listitem>
1905<!--
1906Author: Tom Lane <tgl@sss.pgh.pa.us>
1907Branch: master [626731db2] 2021-07-11 12:54:24 -0400
1908Branch: REL_14_STABLE [69dfc36fd] 2021-07-11 12:54:24 -0400
1909Branch: REL_13_STABLE [1c612bc98] 2021-07-11 12:54:24 -0400
1910Branch: REL_12_STABLE [92340ba5a] 2021-07-11 12:54:24 -0400
1911Branch: REL_11_STABLE [6bd9ae173] 2021-07-11 12:54:24 -0400
1912Branch: REL_10_STABLE [1d49c8887] 2021-07-11 12:54:24 -0400
1913Branch: REL9_6_STABLE [734be249d] 2021-07-11 12:54:24 -0400
1914-->
1915     <para>
1916      Make <command>ALTER EXTENSION</command> lock the extension when
1917      adding or removing a member object (Tom Lane)
1918     </para>
1919
1920     <para>
1921      The previous coding allowed <command>ALTER EXTENSION
1922      ADD/DROP</command> to occur concurrently with <command>DROP
1923      EXTENSION</command>, leading to a crash or corrupt catalog entries.
1924     </para>
1925    </listitem>
1926
1927    <listitem>
1928<!--
1929Author: Amit Kapila <akapila@postgresql.org>
1930Branch: master [29abde637] 2021-07-19 10:36:15 +0530
1931Branch: REL_14_STABLE [40295d158] 2021-07-19 10:54:21 +0530
1932Branch: REL_13_STABLE [bfa2a926d] 2021-07-19 11:04:21 +0530
1933Branch: REL_12_STABLE [f2f459f18] 2021-07-19 11:15:03 +0530
1934Branch: REL_11_STABLE [eb158e74a] 2021-07-19 11:23:35 +0530
1935Branch: REL_10_STABLE [22fd784af] 2021-07-19 11:32:08 +0530
1936-->
1937     <para>
1938      Fix <command>ALTER SUBSCRIPTION</command> to reject an empty slot
1939      name (Japin Li)
1940     </para>
1941    </listitem>
1942
1943    <listitem>
1944<!--
1945Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1946Branch: master [df80fa2ee] 2021-07-16 13:01:43 -0400
1947Branch: REL_14_STABLE [eef92de11] 2021-07-16 13:01:43 -0400
1948Branch: REL_13_STABLE [c31516ae5] 2021-07-16 13:01:43 -0400
1949Branch: REL_12_STABLE [7584ec1f6] 2021-07-16 13:01:43 -0400
1950Branch: REL_11_STABLE [fed35bd4a] 2021-07-16 13:01:43 -0400
1951-->
1952     <para>
1953      When cloning a partitioned table's triggers to a new partition,
1954      ensure that their enabled status is copied
1955      (&Aacute;lvaro Herrera)
1956     </para>
1957    </listitem>
1958
1959    <listitem>
1960<!--
1961Author: Tom Lane <tgl@sss.pgh.pa.us>
1962Branch: master [9179a82d7] 2021-08-07 13:29:32 -0400
1963Branch: REL_14_STABLE [2c915905e] 2021-08-07 13:29:32 -0400
1964Branch: REL_13_STABLE [ba9f665a4] 2021-08-07 13:29:32 -0400
1965Branch: REL_12_STABLE [1ff1e4a60] 2021-08-07 13:29:32 -0400
1966Branch: REL_11_STABLE [d33fc4110] 2021-08-07 13:29:32 -0400
1967Branch: REL_10_STABLE [ac818984a] 2021-08-07 13:29:32 -0400
1968Branch: REL9_6_STABLE [c08b3a9eb] 2021-08-07 13:29:32 -0400
1969Author: Michael Paquier <michael@paquier.xyz>
1970Branch: master Release: REL_14_BR [187682c32] 2021-06-03 15:28:24 +0900
1971Branch: REL_13_STABLE [75d66d10e] 2021-06-03 15:28:37 +0900
1972Branch: REL_12_STABLE [4ceaa760b] 2021-06-03 15:28:41 +0900
1973Branch: REL_11_STABLE [dbc9dbba5] 2021-06-03 15:28:45 +0900
1974Branch: REL_10_STABLE [20f70f558] 2021-06-03 15:28:53 +0900
1975Branch: REL9_6_STABLE [d9525c46c] 2021-06-03 15:29:01 +0900
1976-->
1977     <para>
1978      Avoid alias conflicts in queries generated
1979      for <command>REFRESH MATERIALIZED VIEW CONCURRENTLY</command>
1980      (Tom Lane, Bharath Rupireddy)
1981     </para>
1982
1983     <para>
1984      This command failed on materialized views containing columns with
1985      certain names, notably <structfield>mv</structfield>
1986      and <structfield>newdata</structfield>.
1987     </para>
1988    </listitem>
1989
1990    <listitem>
1991<!--
1992Author: Tom Lane <tgl@sss.pgh.pa.us>
1993Branch: master [6310809c4] 2021-07-24 18:35:52 -0400
1994Branch: REL_14_STABLE [712ba6b8b] 2021-07-24 18:35:52 -0400
1995Branch: REL_13_STABLE [f47408cdc] 2021-07-24 18:35:52 -0400
1996Branch: REL_12_STABLE [899785b4f] 2021-07-24 18:35:52 -0400
1997Branch: REL_11_STABLE [7b2262a21] 2021-07-24 18:35:52 -0400
1998Branch: REL_10_STABLE [654372169] 2021-07-24 18:35:52 -0400
1999Branch: REL9_6_STABLE [1861390e6] 2021-07-24 18:35:52 -0400
2000-->
2001     <para>
2002      Fix <command>PREPARE TRANSACTION</command> to check correctly
2003      for conflicting session-lifespan and transaction-lifespan locks
2004      (Tom Lane)
2005     </para>
2006
2007     <para>
2008      A transaction cannot be prepared if it has both session-lifespan and
2009      transaction-lifespan locks on the same advisory-lock ID value.  This
2010      restriction was not fully checked, which could lead to a PANIC
2011      during <command>PREPARE TRANSACTION</command>.
2012     </para>
2013    </listitem>
2014
2015    <listitem>
2016<!--
2017Author: Tom Lane <tgl@sss.pgh.pa.us>
2018Branch: master Release: REL_14_BR [d21fca084] 2021-06-18 18:00:09 -0400
2019Branch: REL_13_STABLE [33af10c59] 2021-06-18 18:00:09 -0400
2020Branch: REL_12_STABLE [c58a41605] 2021-06-18 18:00:09 -0400
2021Branch: REL_11_STABLE [ea5ae3ae1] 2021-06-18 18:00:09 -0400
2022Branch: REL_10_STABLE [b7e3a4407] 2021-06-18 18:00:09 -0400
2023Branch: REL9_6_STABLE [0b29b41e5] 2021-06-18 18:00:09 -0400
2024-->
2025     <para>
2026      Fix misbehavior of <command>DROP OWNED BY</command> when the target
2027      role is listed more than once in an RLS policy (Tom Lane)
2028     </para>
2029    </listitem>
2030
2031    <listitem>
2032<!--
2033Author: Tom Lane <tgl@sss.pgh.pa.us>
2034Branch: master Release: REL_14_BR [5a0f1c8c0] 2021-06-25 13:59:38 -0400
2035Branch: REL_13_STABLE [ba815f00a] 2021-06-25 13:59:38 -0400
2036Branch: REL_12_STABLE [f851696a2] 2021-06-25 13:59:38 -0400
2037Branch: REL_11_STABLE [fea89d64e] 2021-06-25 13:59:38 -0400
2038Branch: REL_10_STABLE [f5b780c45] 2021-06-25 13:59:38 -0400
2039Branch: REL9_6_STABLE [9c7a150ae] 2021-06-25 13:59:38 -0400
2040-->
2041     <para>
2042      Skip unnecessary error tests when removing a role from an RLS policy
2043      during <command>DROP OWNED BY</command> (Tom Lane)
2044     </para>
2045
2046     <para>
2047      Notably, this fixes some cases where it was necessary to be a
2048      superuser to use <command>DROP OWNED BY</command>.
2049     </para>
2050    </listitem>
2051
2052    <listitem>
2053<!--
2054Author: Tom Lane <tgl@sss.pgh.pa.us>
2055Branch: master Release: REL_14_BR [4b1007445] 2021-05-21 15:12:08 -0400
2056Branch: REL_13_STABLE [849c7971d] 2021-05-21 15:12:19 -0400
2057Branch: REL_12_STABLE [61feb8670] 2021-05-21 15:12:37 -0400
2058-->
2059     <para>
2060      Disallow whole-row variables in <literal>GENERATED</literal>
2061      expressions (Tom Lane)
2062     </para>
2063
2064     <para>
2065      Use of a whole-row variable clearly violates the rule that a
2066      generated column cannot depend on itself, so such cases have no
2067      well-defined behavior.  The actual behavior frequently included a
2068      crash.
2069     </para>
2070    </listitem>
2071
2072    <listitem>
2073<!--
2074Author: Tom Lane <tgl@sss.pgh.pa.us>
2075Branch: master Release: REL_14_BR [2b0ee126b] 2021-05-21 15:02:06 -0400
2076Branch: REL_13_STABLE [77e3204ec] 2021-05-21 15:02:07 -0400
2077Branch: REL_12_STABLE [dfe51ffbe] 2021-05-21 15:02:07 -0400
2078-->
2079     <para>
2080      Fix usage of <structfield>tableoid</structfield>
2081      in <literal>GENERATED</literal> expressions (Tom Lane)
2082     </para>
2083
2084     <para>
2085      Some code paths failed to provide a valid value for this system
2086      column while evaluating a <literal>GENERATED</literal> expression.
2087     </para>
2088    </listitem>
2089
2090    <listitem>
2091<!--
2092Author: Andrew Dunstan <andrew@dunslane.net>
2093Branch: master Release: REL_14_BR [0a4efdc7e] 2021-06-18 06:51:12 -0400
2094Branch: REL_13_STABLE [5b6b5e5ee] 2021-06-18 07:44:58 -0400
2095Branch: REL_12_STABLE [6432bfe8a] 2021-06-18 07:46:21 -0400
2096Branch: REL_11_STABLE [306c31804] 2021-06-18 07:53:08 -0400
2097Branch: REL_11_STABLE [0d3b69ae0] 2021-06-18 11:45:45 -0400
2098-->
2099     <para>
2100      Don't store a <quote>fast default</quote> when adding a column to a
2101      foreign table (Andrew Dunstan)
2102     </para>
2103
2104     <para>
2105      The fast default is useless since no local heap storage exists for
2106      such a table, but it confused subsequent operations.  In addition to
2107      suppressing creation of such catalog entries in <command>ALTER
2108      TABLE</command> commands, adjust the downstream code to cope
2109      when one is incorrectly present.
2110     </para>
2111    </listitem>
2112
2113    <listitem>
2114<!--
2115Author: Michael Paquier <michael@paquier.xyz>
2116Branch: master Release: REL_14_BR [83158f74d] 2020-09-14 13:56:41 +0900
2117Branch: REL_13_STABLE [acb60edf0] 2021-06-28 10:39:09 +0900
2118Branch: REL_12_STABLE [e52f7cbec] 2021-06-28 10:43:01 +0900
2119Branch: REL_11_STABLE [08acba558] 2021-06-28 10:43:04 +0900
2120Branch: REL_10_STABLE [3c465883b] 2021-06-28 10:43:08 +0900
2121Branch: REL9_6_STABLE [d3d0cbeb6] 2021-06-28 10:43:13 +0900
2122Branch: master Release: REL_14_BR [09a69f6e2] 2021-06-28 11:17:05 +0900
2123Branch: REL_13_STABLE [fd7bc10ab] 2021-06-28 11:17:12 +0900
2124Branch: REL_12_STABLE [ce8949c4b] 2021-06-28 11:17:16 +0900
2125Branch: REL_11_STABLE [38ca11ade] 2021-06-28 11:17:20 +0900
2126Branch: REL_10_STABLE [5160d5bb1] 2021-06-28 11:17:25 +0900
2127Branch: REL9_6_STABLE [21257a8f6] 2021-06-28 11:17:30 +0900
2128-->
2129     <para>
2130      Allow index state flags to be updated transactionally
2131      (Michael Paquier, Andrey Lepikhov)
2132     </para>
2133
2134     <para>
2135      This avoids failures when dealing with index predicates that aren't
2136      really immutable.  While that's not considered a supported case, the
2137      original reason for using a non-transactional update here is long
2138      gone, so we may as well change it.
2139     </para>
2140    </listitem>
2141
2142    <listitem>
2143<!--
2144Author: Tom Lane <tgl@sss.pgh.pa.us>
2145Branch: REL_13_STABLE [102f31a20] 2021-06-18 12:09:22 -0400
2146Branch: REL_12_STABLE [b2c740c42] 2021-06-18 12:09:22 -0400
2147Branch: REL_11_STABLE [4b8b3562e] 2021-06-18 12:09:22 -0400
2148Branch: REL_10_STABLE [f172438ef] 2021-06-18 12:09:22 -0400
2149Branch: REL9_6_STABLE [1a3d30255] 2021-06-18 12:09:22 -0400
2150-->
2151     <para>
2152      Avoid corrupting the plan cache entry when <command>CREATE
2153      DOMAIN</command> or <command>ALTER DOMAIN</command> appears
2154      in a cached plan (Tom Lane)
2155     </para>
2156    </listitem>
2157
2158    <listitem>
2159<!--
2160Author: Tom Lane <tgl@sss.pgh.pa.us>
2161Branch: master Release: REL_14_BR [f560209c6] 2020-09-14 12:35:00 -0400
2162Branch: REL_13_STABLE [4a20de9d9] 2021-06-25 10:46:10 -0400
2163Branch: REL_12_STABLE [04a476057] 2021-06-25 10:46:10 -0400
2164Branch: REL_11_STABLE [c39983600] 2021-06-25 10:46:10 -0400
2165Branch: REL_10_STABLE [4040139f2] 2021-06-25 10:46:10 -0400
2166-->
2167     <para>
2168      Make walsenders show their latest replication commands
2169      in <structname>pg_stat_activity</structname> (Tom Lane)
2170     </para>
2171
2172     <para>
2173      Previously, a walsender would show its latest SQL command, which was
2174      confusing if it's now doing some replication operation instead.
2175      Now we show replication-protocol commands on the same footing as SQL
2176      commands.
2177     </para>
2178    </listitem>
2179
2180    <listitem>
2181<!--
2182Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2183Branch: master [93a0bf239] 2021-07-27 15:44:12 -0400
2184Branch: REL_14_STABLE [ad3b40eb2] 2021-07-27 15:44:12 -0400
2185Branch: REL_13_STABLE [b8f91d7f9] 2021-07-27 15:44:12 -0400
2186Branch: REL_12_STABLE [6feb229f5] 2021-07-27 15:44:12 -0400
2187Branch: REL_11_STABLE [ddd1eac99] 2021-07-27 15:44:12 -0400
2188Branch: REL_10_STABLE [04fa0e11a] 2021-07-27 15:44:12 -0400
2189Branch: REL9_6_STABLE [85ec6c322] 2021-07-27 15:44:12 -0400
2190-->
2191     <para>
2192      Make
2193      <structname>pg_settings</structname>.<structfield>pending_restart</structfield>
2194      show as true when the pertinent entry
2195      in <filename>postgresql.conf</filename> has been removed
2196      (&Aacute;lvaro Herrera)
2197     </para>
2198
2199     <para>
2200      <structfield>pending_restart</structfield> correctly showed the case
2201      where an entry that cannot be changed without a postmaster restart
2202      has been modified, but not where the entry had been removed
2203      altogether.
2204     </para>
2205    </listitem>
2206
2207    <listitem>
2208<!--
2209Author: Tom Lane <tgl@sss.pgh.pa.us>
2210Branch: master Release: REL_14_BR [889592344] 2021-06-02 14:38:14 -0400
2211Branch: REL_13_STABLE [6753a5b7e] 2021-06-02 14:38:14 -0400
2212Branch: REL_12_STABLE [bdd096f1a] 2021-06-02 14:38:14 -0400
2213-->
2214     <para>
2215      Fix mis-planning of queries involving regular tables that are
2216      inheritance children of foreign tables (Amit Langote)
2217     </para>
2218
2219     <para>
2220      <command>SELECT FOR UPDATE</command> and related commands would fail
2221      with assertion failures or <quote>could not find junk column</quote>
2222      errors in such cases.
2223     </para>
2224    </listitem>
2225
2226    <listitem>
2227<!--
2228Author: Robert Haas <rhaas@postgresql.org>
2229Branch: master Release: REL_14_BR [caba8f0d4] 2021-06-09 16:17:00 -0400
2230Branch: REL_13_STABLE [082656429] 2021-06-09 16:17:13 -0400
2231Branch: REL_12_STABLE [5d950c721] 2021-06-09 16:19:52 -0400
2232Branch: REL_11_STABLE [ca158c168] 2021-06-09 16:20:10 -0400
2233Branch: REL_10_STABLE [31bda6a22] 2021-06-09 16:20:28 -0400
2234Branch: REL9_6_STABLE [6eb5b9ae3] 2021-06-09 16:21:14 -0400
2235Branch: master Release: REL_14_BR [4dcb1d087] 2021-06-10 09:46:08 -0400
2236Branch: REL_13_STABLE [3465328aa] 2021-06-10 09:47:25 -0400
2237Branch: REL_12_STABLE [2208d71a0] 2021-06-10 09:34:39 -0400
2238Branch: REL_11_STABLE [534b9be80] 2021-06-10 09:43:35 -0400
2239Branch: REL_10_STABLE [1c2c6a9a2] 2021-06-10 09:48:07 -0400
2240Branch: REL9_6_STABLE [6cd0e55f9] 2021-06-10 09:51:00 -0400
2241Branch: REL9_6_STABLE [75212a854] 2021-06-09 16:16:21 -0400
2242Branch: REL_13_STABLE [99a0a2ada] 2021-06-09 12:28:39 -0400
2243Branch: REL_12_STABLE [6fc2febc2] 2021-06-09 12:29:00 -0400
2244Branch: REL_11_STABLE [38982b8b7] 2021-06-09 12:30:28 -0400
2245Branch: REL_10_STABLE [9778a191a] 2021-06-09 12:30:49 -0400
2246Author: Andrew Dunstan <andrew@dunslane.net>
2247Branch: master Release: REL_14_BR [c3652f976] 2021-06-12 08:43:54 -0400
2248Branch: REL_13_STABLE [45322bd9b] 2021-06-12 08:51:29 -0400
2249Branch: REL_12_STABLE [1730a3334] 2021-06-12 08:54:28 -0400
2250Branch: REL_11_STABLE [8b9e1275c] 2021-06-12 08:55:29 -0400
2251Branch: REL_10_STABLE [0cd8a55bd] 2021-06-12 08:55:39 -0400
2252Branch: REL9_6_STABLE [dee7ad20d] 2021-06-12 08:55:55 -0400
2253Branch: master Release: REL_14_BR [9d97c3408] 2021-06-13 07:19:34 -0400
2254Branch: REL_13_STABLE [47d5781cb] 2021-06-13 07:19:34 -0400
2255Branch: REL_12_STABLE [914c716ca] 2021-06-13 07:19:35 -0400
2256Branch: REL_11_STABLE [8cb3d95c2] 2021-06-13 07:19:36 -0400
2257Branch: REL_10_STABLE [319d616dd] 2021-06-13 07:19:38 -0400
2258Branch: REL9_6_STABLE [84cb4be71] 2021-06-13 07:19:40 -0400
2259Branch: master Release: REL_14_BR [54a5ed220] 2021-06-15 15:35:47 -0400
2260Branch: REL_13_STABLE [d906d106f] 2021-06-15 15:36:50 -0400
2261Branch: REL_12_STABLE [fb3d6b0e1] 2021-06-15 15:36:59 -0400
2262Branch: REL_11_STABLE [c0a758780] 2021-06-15 15:37:07 -0400
2263Branch: REL_10_STABLE [1dc53c914] 2021-06-15 15:37:15 -0400
2264Branch: REL9_6_STABLE [e46f6a078] 2021-06-15 15:37:24 -0400
2265-->
2266     <para>
2267      Fix corner-case failure of a new standby to follow a new primary
2268      (Dilip Kumar, Robert Haas)
2269     </para>
2270
2271     <para>
2272      Under a narrow combination of conditions, the standby could wind up
2273      trying to follow the wrong WAL timeline.
2274     </para>
2275    </listitem>
2276
2277    <listitem>
2278<!--
2279Author: Fujii Masao <fujii@postgresql.org>
2280Branch: master [a00c138b7] 2021-07-29 01:31:41 +0900
2281Branch: REL_14_STABLE [f2a3d7404] 2021-07-29 01:33:33 +0900
2282Branch: REL_13_STABLE [a66b05b42] 2021-07-29 01:34:13 +0900
2283Branch: REL_12_STABLE [d7ded08e6] 2021-07-29 01:35:00 +0900
2284Branch: REL_11_STABLE [02ef4d1e2] 2021-07-29 01:35:05 +0900
2285Branch: REL_10_STABLE [25fe5b2bb] 2021-07-29 01:35:10 +0900
2286Branch: REL9_6_STABLE [32d182dd0] 2021-07-29 01:35:52 +0900
2287-->
2288     <para>
2289      Update minimum recovery point when WAL replay of a transaction abort
2290      record causes file truncation (Fujii Masao)
2291     </para>
2292
2293     <para>
2294      File truncation is irreversible, so it's no longer safe to stop
2295      recovery at a point earlier than that record.  The corresponding
2296      case for transaction commit was fixed years ago, but this one was
2297      overlooked.
2298     </para>
2299    </listitem>
2300
2301    <listitem>
2302<!--
2303Author: Tom Lane <tgl@sss.pgh.pa.us>
2304Branch: master [50371df26] 2021-07-02 16:04:54 -0400
2305Branch: REL_14_STABLE [63a952167] 2021-07-02 16:05:20 -0400
2306Branch: REL_13_STABLE [7fc97752d] 2021-07-02 16:04:54 -0400
2307Branch: REL_12_STABLE [feff61557] 2021-07-02 16:04:54 -0400
2308Branch: REL_11_STABLE [32d50b895] 2021-07-02 16:04:54 -0400
2309Branch: REL_10_STABLE [0b5089e8c] 2021-07-02 16:04:54 -0400
2310-->
2311     <para>
2312      In walreceivers, avoid attempting catalog lookups after an error
2313      (Masahiko Sawada, Bharath Rupireddy)
2314     </para>
2315    </listitem>
2316
2317    <listitem>
2318<!--
2319Author: Fujii Masao <fujii@postgresql.org>
2320Branch: master Release: REL_14_BR [2945a488a] 2020-11-16 18:27:51 +0900
2321Branch: REL_13_STABLE [8d091922f] 2021-07-25 11:15:30 +0900
2322Branch: REL_12_STABLE [1bcfda30f] 2021-07-25 11:16:02 +0900
2323Branch: REL_11_STABLE [9c83398f8] 2021-07-25 11:16:13 +0900
2324Branch: REL_10_STABLE [710fabfa2] 2021-07-25 11:16:26 +0900
2325Branch: REL9_6_STABLE [8e5be9cfe] 2021-07-25 11:16:34 +0900
2326-->
2327     <para>
2328      Ensure that a standby server's startup process will respond to a
2329      shutdown signal promptly while waiting for WAL to arrive (Fujii
2330      Masao, Soumyadeep Chakraborty)
2331     </para>
2332    </listitem>
2333
2334    <listitem>
2335<!--
2336Author: Amit Kapila <akapila@postgresql.org>
2337Branch: master Release: REL_14_BR [b786304c2] 2021-06-28 09:29:38 +0530
2338Branch: REL_13_STABLE [741deb260] 2021-06-28 08:42:48 +0530
2339Branch: REL_12_STABLE [b75c1f687] 2021-06-28 09:17:10 +0530
2340Branch: REL_11_STABLE [c62c3769f] 2021-06-28 09:09:42 +0530
2341-->
2342     <para>
2343      Correctly clear shared state after failing to become a member of a
2344      transaction commit group (Amit Kapila)
2345     </para>
2346
2347     <para>
2348      Given the right timing, this could cause an assertion failure when
2349      some later session re-uses the same PGPROC object.
2350     </para>
2351    </listitem>
2352
2353    <listitem>
2354<!--
2355Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2356Branch: master Release: REL_14_BR [b6d8d2073] 2021-06-24 10:45:23 +0300
2357Branch: REL_13_STABLE [2a0ab13f8] 2021-06-24 10:45:34 +0300
2358Branch: REL_12_STABLE [caac19650] 2021-06-24 10:45:43 +0300
2359Branch: REL_11_STABLE [c78bb32c1] 2021-06-24 10:45:46 +0300
2360Branch: REL_10_STABLE [a5eacd86b] 2021-06-24 10:45:49 +0300
2361Branch: REL9_6_STABLE [85ae8ccb2] 2021-06-24 10:45:52 +0300
2362Branch: master Release: REL_14_BR [9b8ed0f52] 2021-06-24 11:19:03 +0300
2363Branch: REL_13_STABLE [6fb377e5f] 2021-06-24 11:19:31 +0300
2364Branch: REL_12_STABLE [8b01a403c] 2021-06-24 11:19:34 +0300
2365Branch: REL_11_STABLE [eb3bd243a] 2021-06-24 11:19:37 +0300
2366Branch: REL_10_STABLE [fbbc48995] 2021-06-24 11:19:40 +0300
2367Branch: REL9_6_STABLE [5956795cb] 2021-06-24 11:19:44 +0300
2368-->
2369     <para>
2370      Add locking to avoid reading incorrect relmapper data in the face of
2371      a concurrent write from another process (Heikki Linnakangas)
2372     </para>
2373    </listitem>
2374
2375    <listitem>
2376<!--
2377Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2378Branch: master Release: REL_14_BR [5cc1cd502] 2021-06-11 19:07:32 -0400
2379Branch: REL_13_STABLE [065ce069a] 2021-06-11 19:07:32 -0400
2380Branch: REL_12_STABLE [0c7efd975] 2021-06-11 19:07:32 -0400
2381-->
2382     <para>
2383      Improve progress reporting for the sort phase of a parallel btree
2384      index build (Matthias van de Meent)
2385     </para>
2386    </listitem>
2387
2388    <listitem>
2389<!--
2390Author: Tom Lane <tgl@sss.pgh.pa.us>
2391Branch: master Release: REL_14_BR [fe6a20ce5] 2021-06-12 12:59:15 -0400
2392Branch: REL_13_STABLE [8b5055812] 2021-06-12 12:59:15 -0400
2393Branch: REL_12_STABLE [1f280e833] 2021-06-12 12:59:15 -0400
2394Branch: REL_11_STABLE [9eecea7f3] 2021-06-12 12:59:15 -0400
2395Branch: REL_10_STABLE [4745c119e] 2021-06-12 12:59:15 -0400
2396-->
2397     <para>
2398      Improve checks for violations of replication protocol (Tom Lane)
2399     </para>
2400
2401     <para>
2402      Logical replication workers frequently used Asserts to check for
2403      cases that could be triggered by invalid or out-of-order replication
2404      commands.  This seems unwise, so promote these tests to regular
2405      error checks.
2406     </para>
2407    </listitem>
2408
2409    <listitem>
2410<!--
2411Author: Amit Kapila <akapila@postgresql.org>
2412Branch: master Release: REL_14_BR [6d0eb3855] 2021-05-21 07:54:27 +0530
2413Branch: REL_13_STABLE [c83c0257e] 2021-05-21 08:03:38 +0530
2414Branch: REL_12_STABLE [18c6242b7] 2021-05-21 08:17:25 +0530
2415Branch: REL_11_STABLE [71787b23e] 2021-05-21 08:31:10 +0530
2416-->
2417     <para>
2418      Fix deadlock when multiple logical replication workers try to
2419      truncate the same table (Peter Smith, Haiying Tang)
2420     </para>
2421    </listitem>
2422
2423    <listitem>
2424<!--
2425Author: Amit Kapila <akapila@postgresql.org>
2426Branch: master Release: REL_14_BR [4daa140a2] 2021-06-15 08:28:36 +0530
2427Branch: REL_13_STABLE [602a32a68] 2021-06-15 08:41:16 +0530
2428Branch: REL_12_STABLE [40ad7ebff] 2021-06-15 08:50:12 +0530
2429Branch: REL_11_STABLE [1f8a934e0] 2021-06-15 09:02:32 +0530
2430Branch: REL_10_STABLE [35f56c124] 2021-06-15 09:10:24 +0530
2431Branch: REL9_6_STABLE [43acadfce] 2021-06-15 09:18:38 +0530
2432Branch: REL_13_STABLE [56e366f67] 2021-06-24 15:21:50 +0530
2433Branch: REL_12_STABLE [72b51e214] 2021-06-24 15:25:13 +0530
2434Branch: REL_11_STABLE [e95f617ac] 2021-06-24 15:26:37 +0530
2435-->
2436     <para>
2437      Fix error cases and memory leaks in logical decoding of speculative
2438      insertions (Dilip Kumar)
2439     </para>
2440    </listitem>
2441
2442    <listitem>
2443<!--
2444Author: Jeff Davis <jdavis@postgresql.org>
2445Branch: master [dd0e37cc1] 2021-07-10 10:26:38 -0700
2446Branch: REL_14_STABLE [10a07973c] 2021-07-10 10:27:07 -0700
2447Branch: REL_13_STABLE [edd9a2bf7] 2021-07-10 10:27:27 -0700
2448Branch: REL_12_STABLE [5b1621d2f] 2021-07-10 10:28:15 -0700
2449Branch: REL_11_STABLE [52c168db9] 2021-07-10 10:28:33 -0700
2450-->
2451     <para>
2452      Avoid leaving an invalid record-type hash table entry behind after
2453      an error (Sait Talha Nisanci)
2454     </para>
2455
2456     <para>
2457      This could lead to later crashes or memory leakage.
2458     </para>
2459    </listitem>
2460
2461    <listitem>
2462<!--
2463Author: Tom Lane <tgl@sss.pgh.pa.us>
2464Branch: master Release: REL_14_BR [131ea3e90] 2021-06-16 19:30:17 -0400
2465Branch: REL_13_STABLE [d03a41d1c] 2021-06-16 19:30:17 -0400
2466Branch: REL_12_STABLE [17d962cca] 2021-06-16 19:30:17 -0400
2467Branch: REL_11_STABLE [9cf163266] 2021-06-16 19:30:17 -0400
2468Branch: REL_10_STABLE [a6f7745a3] 2021-06-16 19:30:17 -0400
2469Branch: REL9_6_STABLE [c50596cdc] 2021-06-16 19:30:17 -0400
2470-->
2471     <para>
2472      Fix plan cache reference leaks in some error cases in
2473      <command>CREATE TABLE ... AS EXECUTE</command> (Tom Lane)
2474     </para>
2475    </listitem>
2476
2477    <listitem>
2478<!--
2479Author: Thomas Munro <tmunro@postgresql.org>
2480Branch: master Release: REL_14_BR [b1d653890] 2021-05-29 15:12:34 +1200
2481Branch: REL_13_STABLE [d41fda6aa] 2021-05-29 15:13:44 +1200
2482Branch: REL_12_STABLE [82248f227] 2021-05-29 15:14:53 +1200
2483Branch: REL_11_STABLE [a15d84470] 2021-05-29 15:16:15 +1200
2484-->
2485     <para>
2486      Fix race condition in code for sharing tuple descriptors across
2487      parallel workers (Thomas Munro)
2488     </para>
2489
2490     <para>
2491      Given the right timing, a crash could result.
2492     </para>
2493    </listitem>
2494
2495    <listitem>
2496<!--
2497Author: Tom Lane <tgl@sss.pgh.pa.us>
2498Branch: master Release: REL_14_BR [30d8bad49] 2021-05-15 12:21:06 -0400
2499Branch: REL_13_STABLE [c3cc73e14] 2021-05-15 12:21:06 -0400
2500Branch: REL_12_STABLE [6bcb51968] 2021-05-15 12:21:06 -0400
2501Branch: REL_11_STABLE [6fcbaea7a] 2021-05-15 12:21:06 -0400
2502Branch: REL_10_STABLE [c76ceacbd] 2021-05-15 12:21:06 -0400
2503Branch: REL9_6_STABLE [5d195dc40] 2021-05-15 12:21:06 -0400
2504-->
2505     <para>
2506      Fix possible race condition when releasing BackgroundWorkerSlots
2507      (Tom Lane)
2508     </para>
2509
2510     <para>
2511      It's likely that this doesn't fix any observable bug on Intel
2512      hardware, but machines with weaker memory ordering rules could
2513      have problems.
2514     </para>
2515    </listitem>
2516
2517    <listitem>
2518<!--
2519Author: David Rowley <drowley@postgresql.org>
2520Branch: master [41469253e] 2021-07-13 12:40:16 +1200
2521Branch: REL_14_STABLE [a3b8d91cc] 2021-07-13 12:42:04 +1200
2522Branch: REL_13_STABLE [204f646a2] 2021-07-13 12:42:43 +1200
2523Branch: REL_12_STABLE [6f1c7a2d0] 2021-07-13 12:44:36 +1200
2524Branch: REL_11_STABLE [187e9c399] 2021-07-13 12:45:35 +1200
2525Branch: REL_10_STABLE [b55e478a4] 2021-07-13 12:46:12 +1200
2526Branch: REL9_6_STABLE [87b7a652b] 2021-07-13 12:46:52 +1200
2527Branch: master [5bd38d2f2] 2021-07-13 13:27:05 +1200
2528Branch: REL_14_STABLE [a92709fed] 2021-07-13 13:27:44 +1200
2529Branch: REL_13_STABLE [2fde8e49a] 2021-07-13 13:28:19 +1200
2530Branch: REL_12_STABLE [645c5d119] 2021-07-13 13:30:26 +1200
2531Branch: REL_11_STABLE [eff751ea5] 2021-07-13 13:31:00 +1200
2532Branch: REL_10_STABLE [d7f10f39c] 2021-07-13 13:31:29 +1200
2533Branch: REL9_6_STABLE [d0e44bae4] 2021-07-13 13:32:10 +1200
2534-->
2535     <para>
2536      Fix latent crash in sorting code (Ronan Dunklau)
2537     </para>
2538
2539     <para>
2540      One code path could attempt to free a null pointer.  The case
2541      appears unreachable in the core server's use of sorting, but perhaps
2542      it could be triggered by extensions.
2543     </para>
2544    </listitem>
2545
2546    <listitem>
2547<!--
2548Author: Tom Lane <tgl@sss.pgh.pa.us>
2549Branch: master Release: REL_14_BR [c3c35a733] 2021-05-14 15:07:34 -0400
2550Branch: REL_13_STABLE [dc714c120] 2021-05-14 15:07:34 -0400
2551Branch: REL_12_STABLE [4e046281f] 2021-05-14 15:07:34 -0400
2552Branch: REL_11_STABLE [d776045eb] 2021-05-14 15:07:34 -0400
2553Branch: REL_10_STABLE [e87a0d2e0] 2021-05-14 15:07:34 -0400
2554Branch: REL9_6_STABLE [5015d3c35] 2021-05-14 15:07:34 -0400
2555-->
2556     <para>
2557      Prevent infinite loops in SP-GiST index insertion (Tom Lane)
2558     </para>
2559
2560     <para>
2561      In the event that INCLUDE columns take up enough space to prevent a
2562      leaf index tuple from ever fitting on a page, the text_ops operator
2563      class would get into an infinite loop vainly trying to make the
2564      tuple fit.
2565      While pre-v11 versions don't have INCLUDE columns, back-patch this
2566      anti-looping fix to them anyway, as it seems like a good defense
2567      against bugs in operator classes.
2568     </para>
2569    </listitem>
2570
2571    <listitem>
2572<!--
2573Author: Tom Lane <tgl@sss.pgh.pa.us>
2574Branch: master Release: REL_14_BR [eb7a6b922] 2021-05-14 13:29:39 -0400
2575Branch: REL_13_STABLE [c1b72bf04] 2021-05-14 13:26:55 -0400
2576Branch: REL_12_STABLE [004288d3c] 2021-05-14 13:26:55 -0400
2577Branch: REL_11_STABLE [f4ee4082f] 2021-05-14 13:26:55 -0400
2578Branch: REL_10_STABLE [fe64adc93] 2021-05-14 13:26:55 -0400
2579Branch: REL9_6_STABLE [4c6cfcc37] 2021-05-14 13:26:55 -0400
2580Branch: master Release: REL_14_BR [e47f93f98] 2021-05-14 13:29:39 -0400
2581Branch: REL_13_STABLE [63831c162] 2021-05-14 12:54:26 -0400
2582Branch: REL_12_STABLE [4c646b179] 2021-05-14 12:54:26 -0400
2583Branch: REL_11_STABLE [8274f4517] 2021-05-14 12:54:26 -0400
2584Branch: REL_10_STABLE [39b8ccb08] 2021-05-14 12:54:26 -0400
2585Branch: REL9_6_STABLE [567328989] 2021-05-14 12:54:26 -0400
2586-->
2587     <para>
2588      Ensure that SP-GiST index insertion can be terminated by a query
2589      cancel request (Tom Lane, &Aacute;lvaro Herrera)
2590     </para>
2591    </listitem>
2592
2593    <listitem>
2594<!--
2595Author: Tom Lane <tgl@sss.pgh.pa.us>
2596Branch: master [d9809bf86] 2021-07-20 13:01:48 -0400
2597Branch: REL_14_STABLE [899564e01] 2021-07-20 13:01:48 -0400
2598Branch: REL_13_STABLE [0fce76b99] 2021-07-20 13:01:48 -0400
2599Branch: REL_12_STABLE [85189f54a] 2021-07-20 13:01:48 -0400
2600Branch: REL_11_STABLE [7321d5c3f] 2021-07-20 13:01:48 -0400
2601Branch: REL_10_STABLE [4eac891b1] 2021-07-20 13:01:48 -0400
2602Branch: REL9_6_STABLE [dffec69fe] 2021-07-20 13:01:48 -0400
2603-->
2604     <para>
2605      Fix uninitialized-variable bug that could
2606      cause <application>PL/pgSQL</application> to act as though
2607      an <literal>INTO</literal> clause
2608      specified <literal>STRICT</literal>, even though it didn't
2609      (Tom Lane)
2610     </para>
2611    </listitem>
2612
2613    <listitem>
2614<!--
2615Author: Tom Lane <tgl@sss.pgh.pa.us>
2616Branch: master [6f5d9bce5] 2021-06-28 14:17:41 -0400
2617Branch: REL_14_STABLE [cf1f545bf] 2021-06-28 14:17:42 -0400
2618Branch: REL_13_STABLE [1603deca3] 2021-06-28 14:17:42 -0400
2619Branch: REL_12_STABLE [240d56fc4] 2021-06-28 14:17:42 -0400
2620Branch: REL_11_STABLE [34c24e5a4] 2021-06-28 14:17:42 -0400
2621Branch: REL_10_STABLE [06a2b2fe5] 2021-06-28 14:17:42 -0400
2622Branch: REL9_6_STABLE [b54be47cd] 2021-06-28 14:17:42 -0400
2623-->
2624     <para>
2625      Don't abort the process for an out-of-memory failure in libpq's
2626      printing functions (Tom Lane)
2627     </para>
2628    </listitem>
2629
2630    <listitem>
2631<!--
2632Author: John Naylor <john.naylor@postgresql.org>
2633Branch: master [5fcf3945b] 2021-07-30 15:39:22 -0400
2634Branch: REL_14_STABLE [f051b87ac] 2021-07-30 16:28:43 -0400
2635Branch: REL_13_STABLE [171bf1cea] 2021-07-30 16:18:59 -0400
2636Branch: REL_12_STABLE [d9589eb62] 2021-07-30 15:59:10 -0400
2637Branch: REL_11_STABLE [c7181a32c] 2021-07-30 16:12:17 -0400
2638Branch: REL_10_STABLE [231c19a89] 2021-07-30 16:40:42 -0400
2639Branch: REL9_6_STABLE [cfcb0ceab] 2021-07-30 16:34:33 -0400
2640Branch: REL_11_STABLE [9455e7f50] 2021-07-30 18:54:38 -0400
2641Branch: REL_10_STABLE [f3cd6aeb8] 2021-07-30 18:54:10 -0400
2642Branch: REL9_6_STABLE [fa27389c5] 2021-07-30 18:52:55 -0400
2643-->
2644     <para>
2645      In <application>ecpg</application>, allow the <type>numeric</type>
2646      value <systemitem>INT_MIN</systemitem> (usually -2147483648) to be
2647      converted to integer (John Naylor)
2648     </para>
2649    </listitem>
2650
2651    <listitem>
2652<!--
2653Author: Tom Lane <tgl@sss.pgh.pa.us>
2654Branch: master Release: REL_14_BR [42f94f56b] 2021-06-07 14:15:25 -0400
2655Branch: REL_13_STABLE [5b6436874] 2021-06-07 14:15:25 -0400
2656Branch: REL_12_STABLE [fc896f45d] 2021-06-07 14:15:25 -0400
2657Branch: REL_11_STABLE [89a5499ef] 2021-06-07 14:15:25 -0400
2658Branch: REL_10_STABLE [4826fe4c5] 2021-06-07 14:15:25 -0400
2659Branch: REL9_6_STABLE [ac600c541] 2021-06-07 14:15:25 -0400
2660Branch: REL_10_STABLE [0b116346b] 2021-06-07 13:12:35 -0400
2661Branch: REL9_6_STABLE [7cdb97632] 2021-06-07 13:12:35 -0400
2662-->
2663     <para>
2664      In <application>psql</application> and other client programs, avoid
2665      overrunning the ends of strings when dealing with invalidly-encoded
2666      data (Tom Lane)
2667     </para>
2668
2669     <para>
2670      An incorrectly-encoded multibyte character near the end of a string
2671      could cause various processing loops to run past the string's
2672      terminating NUL, with results ranging from no detectable issue to
2673      a program crash, depending on what happens to be in the following
2674      memory.  This is reminiscent of CVE-2006-2313, although these
2675      particular cases do not appear to have interesting security
2676      consequences.
2677     </para>
2678    </listitem>
2679
2680    <listitem>
2681<!--
2682Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2683Branch: master [f0e21f2f6] 2021-07-16 17:29:22 -0400
2684Branch: REL_14_STABLE [3c5b7c628] 2021-07-16 17:29:22 -0400
2685Branch: REL_13_STABLE [cc340af33] 2021-07-16 17:29:22 -0400
2686Branch: REL_12_STABLE [5992c94dc] 2021-07-16 17:29:22 -0400
2687Branch: REL_11_STABLE [ccfc3cbb3] 2021-07-16 17:29:22 -0400
2688-->
2689     <para>
2690      Fix <application>pg_dump</application> to correctly handle triggers
2691      on partitioned tables whose enabled status is different from their
2692      parent triggers' status
2693      (Justin Pryzby, &Aacute;lvaro Herrera)
2694     </para>
2695    </listitem>
2696
2697    <listitem>
2698<!--
2699Author: Tom Lane <tgl@sss.pgh.pa.us>
2700Branch: master Release: REL_14_BR [f807e3410] 2021-06-13 14:32:42 -0400
2701Branch: REL_13_STABLE [bc7885b7f] 2021-06-13 14:32:42 -0400
2702Branch: REL_12_STABLE [b7c5823ac] 2021-06-13 14:32:42 -0400
2703Branch: REL_11_STABLE [73fa76241] 2021-06-13 14:32:42 -0400
2704Branch: REL_10_STABLE [05fccab6a] 2021-06-13 14:32:42 -0400
2705Branch: REL9_6_STABLE [dd53b46c7] 2021-06-13 14:32:42 -0400
2706-->
2707     <para>
2708      Avoid <quote>invalid creation date in header</quote> warnings
2709      observed when running <application>pg_restore</application> on an
2710      archive file created in a different time zone (Tom Lane)
2711     </para>
2712    </listitem>
2713
2714    <listitem>
2715<!--
2716Author: Bruce Momjian <bruce@momjian.us>
2717Branch: master [74cf7d46a] 2021-07-26 22:38:15 -0400
2718Branch: REL_14_STABLE [695b4a113] 2021-07-26 22:38:14 -0400
2719Branch: REL_13_STABLE [0a5e708e2] 2021-07-26 22:38:14 -0400
2720Branch: REL_12_STABLE [7626e9f2b] 2021-07-26 22:38:14 -0400
2721Branch: REL_11_STABLE [c4ba87f52] 2021-07-26 22:38:14 -0400
2722Branch: REL_10_STABLE [71121450e] 2021-07-26 22:38:14 -0400
2723Branch: REL9_6_STABLE [088dbf3bc] 2021-07-26 22:38:14 -0400
2724-->
2725     <para>
2726      Make <application>pg_upgrade</application> carry forward the old
2727      installation's <literal>oldestXID</literal> value (Bertrand Drouvot)
2728     </para>
2729
2730     <para>
2731      Previously, the new installation's <literal>oldestXID</literal> was
2732      set to a value old enough to (usually) force immediate
2733      anti-wraparound autovacuuming.  That's not desirable from a
2734      performance standpoint; what's worse, installations using large
2735      values of <varname>autovacuum_freeze_max_age</varname> could suffer
2736      unwanted forced shutdowns soon after an upgrade.
2737     </para>
2738    </listitem>
2739
2740    <listitem>
2741<!--
2742Author: Bruce Momjian <bruce@momjian.us>
2743Branch: master [e462856a7] 2021-08-03 11:58:15 -0400
2744Branch: REL_14_STABLE [4051a7775] 2021-08-03 11:58:15 -0400
2745Branch: REL_13_STABLE [a81c71e3a] 2021-08-03 11:58:15 -0400
2746Branch: REL_12_STABLE [49e319cea] 2021-08-03 11:58:15 -0400
2747Branch: REL_11_STABLE [3d2b6cd6f] 2021-08-03 11:58:14 -0400
2748Branch: REL_10_STABLE [58974a542] 2021-08-03 11:58:14 -0400
2749Branch: REL9_6_STABLE [5e531bb1d] 2021-08-03 11:58:14 -0400
2750Branch: master [9e51cc87f] 2021-08-03 12:26:08 -0400
2751Branch: REL_14_STABLE [3a0ba31a3] 2021-08-03 12:26:08 -0400
2752Branch: REL_13_STABLE [47a573d91] 2021-08-03 12:26:08 -0400
2753Branch: REL_12_STABLE [165506217] 2021-08-03 12:26:08 -0400
2754Branch: REL_11_STABLE [554a7648e] 2021-08-03 12:26:08 -0400
2755Branch: REL_10_STABLE [fcdc461f5] 2021-08-03 12:26:08 -0400
2756Branch: REL9_6_STABLE [3ab496ab8] 2021-08-03 12:26:08 -0400
2757-->
2758     <para>
2759      Extend <application>pg_upgrade</application> to detect and warn
2760      about extensions that should be upgraded (Bruce Momjian)
2761     </para>
2762
2763     <para>
2764      A script file is now produced containing the <command>ALTER
2765      EXTENSION UPDATE</command> commands needed to bring extensions up to
2766      the versions that are considered default in the new installation.
2767     </para>
2768    </listitem>
2769
2770    <listitem>
2771<!--
2772Author: Michael Paquier <michael@paquier.xyz>
2773Branch: master [7fbe0c8c4] 2021-07-20 12:12:39 +0900
2774Branch: REL_14_STABLE [3a0d2d0cb] 2021-07-20 12:12:47 +0900
2775Branch: REL_13_STABLE [fb2b86015] 2021-07-20 12:12:51 +0900
2776Branch: REL_12_STABLE [b9a0de15e] 2021-07-20 12:12:54 +0900
2777Branch: REL_11_STABLE [795a9166e] 2021-07-20 12:12:57 +0900
2778Branch: REL_10_STABLE [11dbad74c] 2021-07-20 12:13:01 +0900
2779Branch: master [4ef64c425] 2021-07-26 11:13:37 +0900
2780Branch: REL_14_STABLE [b0d286719] 2021-07-26 11:14:08 +0900
2781Branch: REL_13_STABLE [2c7395aad] 2021-07-26 11:14:11 +0900
2782Branch: REL_12_STABLE [c4ef3b81b] 2021-07-26 11:14:14 +0900
2783Branch: REL_11_STABLE [9c6fa3403] 2021-07-26 11:14:17 +0900
2784Branch: REL_10_STABLE [4372f0685] 2021-07-26 11:14:21 +0900
2785-->
2786     <para>
2787      Avoid problems when
2788      switching <application>pg_receivewal</application> between
2789      compressed and non-compressed WAL storage (Michael Paquier)
2790     </para>
2791    </listitem>
2792
2793    <listitem>
2794<!--
2795Author: Etsuro Fujita <efujita@postgresql.org>
2796Branch: master [aa769f80e] 2021-08-05 20:00:00 +0900
2797Branch: REL_14_STABLE [588d3f597] 2021-08-05 20:00:01 +0900
2798Branch: REL_13_STABLE [388a81bf4] 2021-08-05 20:00:02 +0900
2799Branch: REL_12_STABLE [bbc0cd8fa] 2021-08-05 20:00:04 +0900
2800-->
2801     <para>
2802      Fix <filename>contrib/postgres_fdw</filename> to work usefully with
2803      generated columns (Etsuro Fujita)
2804     </para>
2805
2806     <para>
2807      <filename>postgres_fdw</filename> will now behave reasonably with
2808      generated columns, so long as a generated column in a foreign table
2809      represents a generated column in the remote table.  <command>IMPORT
2810      FOREIGN SCHEMA</command> will now import generated columns that way
2811      by default.
2812     </para>
2813    </listitem>
2814
2815    <listitem>
2816<!--
2817Author: Tom Lane <tgl@sss.pgh.pa.us>
2818Branch: master [c7b7311f6] 2021-07-06 12:36:12 -0400
2819Branch: REL_14_STABLE [86d491421] 2021-07-06 12:36:12 -0400
2820Branch: REL_13_STABLE [bee18616a] 2021-07-06 12:36:13 -0400
2821Branch: REL_12_STABLE [bd2e68d0b] 2021-07-06 12:36:13 -0400
2822Branch: REL_11_STABLE [a9460dbf1] 2021-07-06 12:36:13 -0400
2823Branch: REL_10_STABLE [b23ac5aef] 2021-07-06 12:36:13 -0400
2824Branch: REL9_6_STABLE [67f925bbd] 2021-07-06 12:36:13 -0400
2825-->
2826     <para>
2827      In <filename>contrib/postgres_fdw</filename>, avoid attempting
2828      catalog lookups after an error (Tom Lane)
2829     </para>
2830
2831     <para>
2832      While this usually worked, it's not very safe since the error might
2833      have been one that made catalog access nonfunctional.  A side effect
2834      of the fix is that messages about data conversion errors will now
2835      mention the query's table and column aliases (if used) rather than
2836      the true underlying name of a foreign table or column.
2837     </para>
2838    </listitem>
2839
2840    <listitem>
2841<!--
2842Author: Tom Lane <tgl@sss.pgh.pa.us>
2843Branch: master Release: REL_14_BR [741d7f104] 2021-06-22 21:43:12 -0400
2844Branch: REL_13_STABLE [e2cde85ef] 2021-06-22 21:43:12 -0400
2845Branch: REL_12_STABLE [f228c401b] 2021-06-22 21:43:12 -0400
2846Branch: REL_11_STABLE [a1417e437] 2021-06-22 21:43:12 -0400
2847Branch: REL_10_STABLE [1f32b789d] 2021-06-22 21:43:12 -0400
2848Branch: REL9_6_STABLE [13f3fd9e4] 2021-06-22 21:43:12 -0400
2849Branch: master Release: REL_14_BR [4a054069a] 2021-06-23 11:13:00 -0400
2850Branch: REL_13_STABLE [b961bdfe1] 2021-06-23 11:12:31 -0400
2851Branch: REL_12_STABLE [d7da3ef08] 2021-06-23 11:12:31 -0400
2852Branch: REL_11_STABLE [b1aa0f228] 2021-06-23 11:12:31 -0400
2853Branch: REL_10_STABLE [0a8929ca0] 2021-06-23 11:12:31 -0400
2854Branch: REL9_6_STABLE [e535a8899] 2021-06-23 11:12:32 -0400
2855Branch: master Release: REL_14_BR [a443c1b2d] 2021-06-23 18:41:39 -0400
2856Branch: REL_13_STABLE [5179a1ab7] 2021-06-23 18:41:39 -0400
2857Branch: REL_12_STABLE [35e6b3bbf] 2021-06-23 18:41:39 -0400
2858Branch: REL_11_STABLE [94d8d8d89] 2021-06-23 18:41:39 -0400
2859Branch: REL_10_STABLE [5cb74a803] 2021-06-23 18:41:39 -0400
2860Branch: REL9_6_STABLE [ad9827a90] 2021-06-23 18:41:39 -0400
2861Branch: REL_12_STABLE [7a48dfbb8] 2021-06-24 11:30:32 -0400
2862Branch: REL_11_STABLE [c6cb62f61] 2021-06-24 11:30:32 -0400
2863Branch: REL_10_STABLE [024e064af] 2021-06-24 11:30:32 -0400
2864Branch: REL9_6_STABLE [e0a7036e1] 2021-06-24 11:30:32 -0400
2865Author: Michael Paquier <michael@paquier.xyz>
2866Branch: master Release: REL_13_BR [989d23b04] 2019-08-24 11:45:05 +0900
2867Branch: master Release: REL_13_BR [06fdc4e4d] 2019-08-24 12:34:37 +0900
2868Branch: REL_12_STABLE [96f3661e4] 2021-06-17 11:57:21 +0900
2869Branch: REL_11_STABLE [8f3229942] 2021-06-17 11:57:26 +0900
2870Branch: REL_10_STABLE [feac82fa8] 2021-06-17 11:57:35 +0900
2871Branch: REL9_6_STABLE [484c81bf7] 2021-06-17 11:57:44 +0900
2872Branch: master Release: REL_13_BR [9903338b5] 2019-08-24 11:35:43 +0900
2873Branch: REL_12_STABLE [a8f687927] 2021-06-17 11:01:16 +0900
2874Branch: REL_11_STABLE [834cb7269] 2021-06-17 11:01:20 +0900
2875Branch: REL_10_STABLE [0ed218048] 2021-06-17 11:01:25 +0900
2876Branch: REL9_6_STABLE [b7cd5c5b0] 2021-06-17 11:01:32 +0900
2877Author: Tom Lane <tgl@sss.pgh.pa.us>
2878Branch: master Release: REL_14_BR [642c0697c] 2021-06-27 12:45:04 -0400
2879Branch: REL_13_STABLE [2d0944865] 2021-06-27 12:45:04 -0400
2880Branch: REL_12_STABLE [bc031cf13] 2021-06-27 12:45:04 -0400
2881Branch: REL_11_STABLE [1acab1209] 2021-06-27 12:45:04 -0400
2882Branch: REL_10_STABLE [7676d9594] 2021-06-27 12:45:04 -0400
2883Branch: REL9_6_STABLE [de589c112] 2021-06-27 12:45:04 -0400
2884-->
2885     <para>
2886      Improve the isolation-test infrastructure (Tom Lane, Michael Paquier)
2887     </para>
2888
2889     <para>
2890      Allow isolation test steps to be annotated to show the expected
2891      completion order.  This allows getting stable results from
2892      otherwise-racy test cases, without the long delays that we
2893      previously used (not entirely successfully) to fend off race
2894      conditions.
2895      Allow non-quoted identifiers as isolation test session/step names
2896      (formerly, all such names had to be double-quoted).
2897      Detect and warn about unused steps in isolation tests.
2898      Improve display of query results in isolation tests.
2899      Remove isolationtester's <quote>dry-run</quote> mode.
2900      Remove memory leaks in isolationtester itself.
2901     </para>
2902    </listitem>
2903
2904    <listitem>
2905<!--
2906Author: Tom Lane <tgl@sss.pgh.pa.us>
2907Branch: master [9753324b7] 2021-07-05 16:51:57 -0400
2908Branch: REL_14_STABLE [07f1e0696] 2021-07-05 16:51:57 -0400
2909Branch: REL_13_STABLE [2f487116e] 2021-07-05 16:51:57 -0400
2910Branch: REL_12_STABLE [3edc2dbc0] 2021-07-05 16:51:57 -0400
2911Branch: REL_11_STABLE [76c23bbb4] 2021-07-05 16:51:57 -0400
2912Branch: REL_10_STABLE [8c3e36fcc] 2021-07-05 16:51:57 -0400
2913Branch: REL9_6_STABLE [b82eabec3] 2021-07-05 16:51:57 -0400
2914Branch: master Release: REL_14_BR [e135743ef] 2021-05-11 20:59:58 -0400
2915Branch: REL_13_STABLE [834d9284b] 2021-05-11 20:59:45 -0400
2916-->
2917     <para>
2918      Reduce overhead of cache-clobber testing (Tom Lane)
2919     </para>
2920    </listitem>
2921
2922    <listitem>
2923<!--
2924Author: Peter Eisentraut <peter@eisentraut.org>
2925Branch: master Release: REL_14_BR [4a682d85a] 2021-06-05 07:16:34 +0200
2926Branch: REL_13_STABLE [3989f8fb9] 2021-06-17 09:01:22 +0200
2927Branch: REL_12_STABLE [9438962ce] 2021-06-17 09:02:20 +0200
2928Branch: REL_11_STABLE [1a2752be8] 2021-06-17 09:02:44 +0200
2929Branch: REL_10_STABLE [6b6fbfd7e] 2021-06-17 09:03:30 +0200
2930Branch: REL9_6_STABLE [9c31e4165] 2021-06-17 09:04:15 +0200
2931Branch: REL_12_STABLE [70293e946] 2021-06-17 16:39:13 +0200
2932Branch: REL_11_STABLE [ba529a6ff] 2021-06-18 06:51:56 +0200
2933Branch: REL_10_STABLE [91709e10a] 2021-06-18 06:52:46 +0200
2934Branch: REL9_6_STABLE [ec52b886d] 2021-06-18 06:52:48 +0200
2935-->
2936     <para>
2937      Fix <application>PL/Python</application>'s regression tests to pass
2938      with Python 3.10 (Honza Horak)
2939     </para>
2940    </listitem>
2941
2942    <listitem>
2943<!--
2944Author: Tom Lane <tgl@sss.pgh.pa.us>
2945Branch: master [3779ac62d] 2021-07-24 13:41:17 -0400
2946Branch: REL_14_STABLE [89ad14cd7] 2021-07-24 13:41:17 -0400
2947Branch: REL_13_STABLE [c0a6f83de] 2021-07-24 13:41:17 -0400
2948Branch: REL_12_STABLE [4c8a14e8d] 2021-07-24 13:41:17 -0400
2949Branch: REL_11_STABLE [9329b9235] 2021-07-24 13:41:17 -0400
2950Branch: REL_10_STABLE [5a435289d] 2021-07-24 13:41:17 -0400
2951Branch: REL9_6_STABLE [7e09b504d] 2021-07-24 13:41:17 -0400
2952-->
2953     <para>
2954      Make <literal>printf("%s", NULL)</literal>
2955      print <literal>(null)</literal> instead of crashing (Tom Lane)
2956     </para>
2957
2958     <para>
2959      This should improve server robustness in corner cases, and it syncs
2960      our <function>printf</function> implementation with common libraries.
2961     </para>
2962    </listitem>
2963
2964    <listitem>
2965<!--
2966Author: Michael Paquier <michael@paquier.xyz>
2967Branch: master [17707c059] 2021-06-30 11:48:53 +0900
2968Branch: REL_14_STABLE [607a3a43b] 2021-06-30 11:49:10 +0900
2969Branch: REL_13_STABLE [41edb2db1] 2021-06-30 11:49:16 +0900
2970Branch: REL_12_STABLE [b5ee867a7] 2021-06-30 11:49:20 +0900
2971Branch: REL_11_STABLE [93d3d0cf3] 2021-06-30 11:49:24 +0900
2972Branch: REL_10_STABLE [d8569db76] 2021-06-30 11:49:29 +0900
2973Branch: REL9_6_STABLE [68bad2333] 2021-06-30 11:49:36 +0900
2974-->
2975     <para>
2976      Fix incorrect log message when point-in-time recovery stops at
2977      a <command>ROLLBACK PREPARED</command> record (Simon Riggs)
2978     </para>
2979    </listitem>
2980
2981    <listitem>
2982<!--
2983Author: Michael Paquier <michael@paquier.xyz>
2984Branch: REL_14_STABLE [0c83eb2e0] 2021-07-14 17:15:01 +0900
2985Branch: REL_13_STABLE [522624345] 2021-07-14 17:15:18 +0900
2986Branch: REL_12_STABLE [b242e1d23] 2021-07-14 17:15:26 +0900
2987Branch: REL_11_STABLE [85a8c3a4b] 2021-07-14 17:15:31 +0900
2988-->
2989     <para>
2990      Improve <command>ALTER TABLE</command>'s messages for
2991      wrong-relation-kind errors (Kyotaro Horiguchi)
2992     </para>
2993    </listitem>
2994
2995    <listitem>
2996<!--
2997Author: Fujii Masao <fujii@postgresql.org>
2998Branch: master [0e1275fb0] 2021-07-28 01:20:16 +0900
2999Branch: REL_14_STABLE [fd90f6ba7] 2021-07-28 01:21:35 +0900
3000Branch: REL_13_STABLE [92913fc29] 2021-07-28 01:21:52 +0900
3001Branch: REL_12_STABLE [de87c481f] 2021-07-28 01:24:24 +0900
3002Branch: REL_11_STABLE [42e6b5ccb] 2021-07-28 01:24:51 +0900
3003Branch: REL_10_STABLE [a84f95ffd] 2021-07-28 01:25:53 +0900
3004Branch: REL9_6_STABLE [78c21d79d] 2021-07-28 01:26:15 +0900
3005-->
3006     <para>
3007      Clarify error messages referring to <quote>non-negative</quote>
3008      values (Bharath Rupireddy)
3009     </para>
3010    </listitem>
3011
3012    <listitem>
3013<!--
3014Author: Tom Lane <tgl@sss.pgh.pa.us>
3015Branch: master [d0a02bdb8] 2021-07-09 12:38:55 -0400
3016Branch: REL_14_STABLE [5620ec833] 2021-07-09 12:38:55 -0400
3017Branch: REL_13_STABLE [55cccdfdf] 2021-07-09 12:38:55 -0400
3018Branch: REL_12_STABLE [a5377e7f7] 2021-07-09 12:38:55 -0400
3019Branch: REL_11_STABLE [b69e8ad6c] 2021-07-09 12:38:55 -0400
3020Branch: REL_10_STABLE [7e0b53ad6] 2021-07-09 12:38:55 -0400
3021Branch: REL9_6_STABLE [cd5d3aefa] 2021-07-09 12:38:55 -0400
3022Branch: master [31e8cfac5] 2021-07-09 14:15:41 -0400
3023Branch: REL_14_STABLE [7f2eca6f9] 2021-07-09 14:15:41 -0400
3024Branch: REL_13_STABLE [cbcf5ffb1] 2021-07-09 14:15:41 -0400
3025Branch: REL_12_STABLE [83a8bf24e] 2021-07-09 14:15:41 -0400
3026Branch: REL_11_STABLE [29a4fbd46] 2021-07-09 14:15:41 -0400
3027Branch: REL_10_STABLE [911488b42] 2021-07-09 14:15:41 -0400
3028Branch: REL9_6_STABLE [8c9c20899] 2021-07-09 14:15:41 -0400
3029Branch: master [53c38a086] 2021-07-09 16:59:07 -0400
3030Branch: REL_14_STABLE [9ffad7ae7] 2021-07-09 16:59:07 -0400
3031Branch: REL_13_STABLE [32d0bdbfc] 2021-07-09 16:59:07 -0400
3032Branch: REL_12_STABLE [e82cde74d] 2021-07-09 16:59:08 -0400
3033Branch: REL_11_STABLE [2c28c689f] 2021-07-09 16:59:08 -0400
3034Branch: REL_10_STABLE [56533fce7] 2021-07-09 16:59:08 -0400
3035Branch: REL9_6_STABLE [3c612d9f6] 2021-07-09 16:59:08 -0400
3036Branch: master [9f6be2e79] 2021-07-10 13:19:30 -0400
3037Branch: REL_14_STABLE [ebc346e5b] 2021-07-10 13:19:31 -0400
3038Branch: REL_13_STABLE [9fca23c1d] 2021-07-10 13:19:31 -0400
3039Branch: REL_12_STABLE [03fc042eb] 2021-07-10 13:19:31 -0400
3040Branch: REL_11_STABLE [946f62f2f] 2021-07-10 13:19:31 -0400
3041-->
3042     <para>
3043      Fix <application>configure</application> to work with OpenLDAP 2.5,
3044      which no longer has a separate <filename>libldap_r</filename>
3045      library (Adrian Ho, Tom Lane)
3046     </para>
3047
3048     <para>
3049      If there is no <filename>libldap_r</filename> library, we now
3050      silently assume that <filename>libldap</filename> is thread-safe.
3051     </para>
3052    </listitem>
3053
3054    <listitem>
3055<!--
3056Author: Andrew Dunstan <andrew@dunslane.net>
3057Branch: master [b8c4261e5] 2021-07-01 15:12:21 -0400
3058Branch: REL_14_STABLE [100e9ae53] 2021-07-01 15:15:09 -0400
3059Branch: REL_13_STABLE [bd0be7f7a] 2021-07-01 14:31:10 -0400
3060Branch: REL_12_STABLE [c71471c96] 2021-07-01 14:51:54 -0400
3061Branch: REL_11_STABLE [a7e3a390e] 2021-07-01 14:52:40 -0400
3062Branch: REL_10_STABLE [b796435be] 2021-07-01 15:07:20 -0400
3063Branch: REL9_6_STABLE [cbd5d7c85] 2021-07-01 15:11:53 -0400
3064Branch: master [7355c241e] 2021-07-01 15:47:46 -0400
3065Branch: REL_14_STABLE [1da2ea0cc] 2021-07-01 15:47:47 -0400
3066Branch: REL_13_STABLE [8d2be1402] 2021-07-01 15:40:42 -0400
3067Branch: REL_12_STABLE [383c29d1e] 2021-07-01 15:43:31 -0400
3068Branch: REL_11_STABLE [418041748] 2021-07-01 15:43:53 -0400
3069Branch: REL_10_STABLE [177531ee0] 2021-07-01 15:44:06 -0400
3070Branch: REL9_6_STABLE [1f7ea06d7] 2021-07-01 15:44:22 -0400
3071-->
3072     <para>
3073      Add new make targets <literal>world-bin</literal>
3074      and <literal>install-world-bin</literal> (Andrew Dunstan)
3075     </para>
3076
3077     <para>
3078      These are the same as <literal>world</literal>
3079      and <literal>install-world</literal> respectively, except that they
3080      do not build or install the documentation.
3081     </para>
3082    </listitem>
3083
3084    <listitem>
3085<!--
3086Author: Andrew Dunstan <andrew@dunslane.net>
3087Branch: master [a0fc81326] 2021-07-01 09:02:46 -0400
3088Branch: REL_14_STABLE [c4774ce33] 2021-07-01 08:46:21 -0400
3089Branch: REL_13_STABLE [a8b564b0c] 2021-07-01 08:46:38 -0400
3090Branch: REL_12_STABLE [a40f8ea0f] 2021-07-01 08:47:04 -0400
3091Branch: REL_11_STABLE [58ac8300b] 2021-07-01 08:47:21 -0400
3092Branch: REL_10_STABLE [16ed3ddbb] 2021-07-01 08:48:24 -0400
3093Branch: REL9_6_STABLE [d173a4699] 2021-07-01 09:01:36 -0400
3094-->
3095     <para>
3096      Fix make rule for TAP tests (<literal>prove_installcheck</literal>)
3097      to work in PGXS usage (Andrew Dunstan)
3098     </para>
3099    </listitem>
3100
3101    <listitem>
3102<!--
3103Author: Thomas Munro <tmunro@postgresql.org>
3104Branch: master Release: REL_14_BR [9b4e4cfe6] 2021-06-25 11:28:20 +1200
3105Branch: REL_13_STABLE [d9c05a9ec] 2021-06-25 11:29:00 +1200
3106Branch: REL_12_STABLE [47d22649e] 2021-06-25 11:29:20 +1200
3107Branch: REL_11_STABLE [6ada4fd06] 2021-06-25 11:29:47 +1200
3108-->
3109     <para>
3110      Adjust JIT code to prepare for forthcoming LLVM API change
3111      (Thomas Munro, Andres Freund)
3112     </para>
3113
3114     <para>
3115      LLVM 13 has made an incompatible API change that will cause crashing
3116      of our previous JIT compiler.
3117     </para>
3118    </listitem>
3119
3120    <listitem>
3121<!--
3122Author: Tom Lane <tgl@sss.pgh.pa.us>
3123Branch: master Release: REL_14_BR [126cdaf47] 2021-06-23 14:01:32 -0400
3124Branch: REL_13_STABLE [13f365568] 2021-06-23 14:01:32 -0400
3125Branch: REL_12_STABLE [7eaf65451] 2021-06-23 14:01:32 -0400
3126Branch: REL_11_STABLE [361acef7e] 2021-06-23 14:01:32 -0400
3127Branch: REL_10_STABLE [d3a845d1f] 2021-06-23 14:01:32 -0400
3128Branch: REL9_6_STABLE [006a829b2] 2021-06-23 14:01:33 -0400
3129-->
3130     <para>
3131      Avoid assuming that strings returned by GSSAPI libraries are
3132      null-terminated (Tom Lane)
3133     </para>
3134
3135     <para>
3136      The GSSAPI spec provides for a string pointer and length.  It seems
3137      that in practice the next byte after the string is usually zero,
3138      so that our previous coding didn't actually fail; but we do have
3139      a report of AddressSanitizer complaints.
3140     </para>
3141    </listitem>
3142
3143    <listitem>
3144<!--
3145Author: Michael Paquier <michael@paquier.xyz>
3146Branch: master Release: REL_14_BR [025110663] 2021-05-27 20:11:00 +0900
3147Branch: REL_13_STABLE [ab81d004e] 2021-05-27 20:11:21 +0900
3148Branch: REL_12_STABLE [a75268f1c] 2021-05-27 20:11:24 +0900
3149Branch: REL_11_STABLE [cf2e09544] 2021-05-27 20:11:29 +0900
3150Branch: REL_10_STABLE [8f507dbc6] 2021-05-27 20:11:33 +0900
3151Branch: REL9_6_STABLE [7a4f2e158] 2021-05-27 20:11:38 +0900
3152Branch: master Release: REL_14_BR [7ca37fb04] 2020-12-30 12:56:06 -0500
3153Branch: REL_13_STABLE [e2f21ff60] 2021-06-01 09:27:25 +0900
3154Branch: REL_12_STABLE [02037af3f] 2021-06-01 09:27:31 +0900
3155Branch: REL_13_STABLE [949e32ee5] 2021-06-08 13:40:03 +0900
3156Branch: REL_12_STABLE [b7684bd10] 2021-06-08 13:40:10 +0900
3157-->
3158     <para>
3159      Enable building with GSSAPI on MSVC (Michael Paquier)
3160     </para>
3161
3162     <para>
3163      Fix various incompatibilities with modern Kerberos builds.
3164     </para>
3165    </listitem>
3166
3167    <listitem>
3168<!--
3169Author: Andrew Dunstan <andrew@dunslane.net>
3170Branch: master Release: REL_14_BR [fb424ae85] 2021-05-28 09:30:16 -0400
3171Branch: REL_13_STABLE [c828a7246] 2021-05-28 09:31:50 -0400
3172Branch: REL_12_STABLE [ae3ef8569] 2021-05-28 09:32:09 -0400
3173Branch: REL_11_STABLE [3f70d7e44] 2021-05-28 09:32:24 -0400
3174Branch: REL_10_STABLE [a8c1062a1] 2021-05-28 09:32:31 -0400
3175Branch: REL9_6_STABLE [abbd70022] 2021-05-28 09:32:46 -0400
3176Branch: master Release: REL_14_BR [d69fcb9ca] 2021-05-28 09:35:11 -0400
3177Branch: REL_13_STABLE [bb18bc224] 2021-05-28 09:36:42 -0400
3178Branch: REL_12_STABLE [40a05cf24] 2021-05-28 09:35:42 -0400
3179Branch: REL_11_STABLE [a44a2b9ac] 2021-05-28 09:35:49 -0400
3180Branch: REL_10_STABLE [d5d89629c] 2021-05-28 09:35:55 -0400
3181Branch: REL9_6_STABLE [34a65fc63] 2021-05-28 09:36:10 -0400
3182-->
3183     <para>
3184      In MSVC builds, include <option>--with-pgport</option> in the set of
3185      configure options reported by <application>pg_config</application>,
3186      if it had been specified (Andrew Dunstan)
3187     </para>
3188    </listitem>
3189
3190   </itemizedlist>
3191
3192  </sect2>
3193 </sect1>
3194
3195 <sect1 id="release-12-7">
3196  <title>Release 12.7</title>
3197
3198  <formalpara>
3199  <title>Release date:</title>
3200  <para>2021-05-13</para>
3201  </formalpara>
3202
3203  <para>
3204   This release contains a variety of fixes from 12.6.
3205   For information about new features in major release 12, see
3206   <xref linkend="release-12"/>.
3207  </para>
3208
3209  <sect2>
3210   <title>Migration to Version 12.7</title>
3211
3212   <para>
3213    A dump/restore is not required for those running 12.X.
3214   </para>
3215
3216   <para>
3217    However, if you are upgrading from a version earlier than 12.6,
3218    see <xref linkend="release-12-6"/>.
3219   </para>
3220  </sect2>
3221
3222  <sect2>
3223   <title>Changes</title>
3224
3225   <itemizedlist>
3226
3227    <listitem>
3228<!--
3229Author: Tom Lane <tgl@sss.pgh.pa.us>
3230Branch: master [f02b9085a] 2021-05-10 10:44:38 -0400
3231Branch: REL_13_STABLE [467395bfd] 2021-05-10 10:44:38 -0400
3232Branch: REL_12_STABLE [3b0f6a7ae] 2021-05-10 10:44:38 -0400
3233Branch: REL_11_STABLE [06bfbe854] 2021-05-10 10:44:38 -0400
3234Branch: REL_10_STABLE [2fb809d3e] 2021-05-10 10:44:38 -0400
3235Branch: REL9_6_STABLE [0c1caa48d] 2021-05-10 10:44:38 -0400
3236-->
3237     <para>
3238      Prevent integer overflows in array subscripting calculations
3239      (Tom Lane)
3240     </para>
3241
3242     <para>
3243      The array code previously did not complain about cases where an
3244      array's lower bound plus length overflows an integer.  This resulted
3245      in later entries in the array becoming inaccessible (since their
3246      subscripts could not be written as integers), but more importantly
3247      it confused subsequent assignment operations.  This could lead to
3248      memory overwrites, with ensuing crashes or unwanted data
3249      modifications.
3250      (CVE-2021-32027)
3251     </para>
3252    </listitem>
3253
3254    <listitem>
3255<!--
3256Author: Tom Lane <tgl@sss.pgh.pa.us>
3257Branch: master [049e1e2ed] 2021-05-10 11:02:29 -0400
3258Branch: REL_13_STABLE [4a8656a7e] 2021-05-10 11:02:29 -0400
3259Branch: REL_12_STABLE [a5fa3e067] 2021-05-10 11:02:29 -0400
3260Branch: REL_11_STABLE [b7d1f32ff] 2021-05-10 11:02:29 -0400
3261Branch: REL_10_STABLE [52a441362] 2021-05-10 11:02:30 -0400
3262Branch: REL9_6_STABLE [0fcb8e2e0] 2021-05-10 11:02:30 -0400
3263-->
3264     <para>
3265      Fix mishandling of <quote>junk</quote> columns in <literal>INSERT
3266      ... ON CONFLICT ... UPDATE</literal> target lists (Tom Lane)
3267     </para>
3268
3269     <para>
3270      If the <literal>UPDATE</literal> list contains any multi-column
3271      sub-selects (which give rise to junk columns in addition to the
3272      results proper), the <literal>UPDATE</literal> path would end up
3273      storing tuples that include the values of the extra junk columns.
3274      That's fairly harmless in the short run, but if new columns are
3275      added to the table then the values would become accessible, possibly
3276      leading to malfunctions if they don't match the datatypes of the
3277      added columns.
3278     </para>
3279
3280     <para>
3281      In addition, in versions supporting cross-partition updates,
3282      a cross-partition update triggered by such a case had the reverse
3283      problem: the junk columns were removed from the target list,
3284      typically causing an immediate crash due to malfunction of the
3285      multi-column sub-select mechanism.
3286      (CVE-2021-32028)
3287     </para>
3288    </listitem>
3289
3290    <listitem>
3291<!--
3292Author: Tom Lane <tgl@sss.pgh.pa.us>
3293Branch: REL_13_STABLE [a71cfc56b] 2021-04-22 11:46:41 -0400
3294Branch: REL_12_STABLE [3fb93103a] 2021-04-22 11:46:41 -0400
3295Branch: REL_11_STABLE [27835b547] 2021-04-22 11:46:41 -0400
3296Author: Tom Lane <tgl@sss.pgh.pa.us>
3297Branch: master [d479d0028] 2021-04-22 17:30:55 -0400
3298Branch: REL_13_STABLE [2602ee468] 2021-04-22 17:30:42 -0400
3299Branch: REL_12_STABLE [05ce4bf8b] 2021-04-22 17:30:42 -0400
3300-->
3301     <para>
3302      Fix possibly-incorrect computation of <command>UPDATE
3303      ... RETURNING</command> outputs for joined cross-partition updates
3304      (Amit Langote, Etsuro Fujita)
3305     </para>
3306
3307     <para>
3308      If an <command>UPDATE</command> for a partitioned table caused a row
3309      to be moved to another partition with a physically different row
3310      type (for example, one with a different set of dropped columns),
3311      computation of <literal>RETURNING</literal> results for that row
3312      could produce errors or wrong answers.  No error is observed unless
3313      the <command>UPDATE</command> involves other tables being joined to
3314      the target table.
3315      (CVE-2021-32029)
3316     </para>
3317    </listitem>
3318
3319    <listitem>
3320<!--
3321Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3322Branch: master [6f70d7ca1] 2021-05-05 12:21:50 -0400
3323Branch: REL_13_STABLE [923c13520] 2021-05-05 12:14:21 -0400
3324Branch: REL_12_STABLE [abce26c9e] 2021-05-05 12:14:21 -0400
3325Branch: REL_11_STABLE [a25b98d2c] 2021-05-05 12:14:21 -0400
3326-->
3327     <para>
3328      Fix adjustment of constraint deferrability properties in
3329      partitioned tables (&Aacute;lvaro Herrera)
3330     </para>
3331
3332     <para>
3333      When applied to a foreign-key constraint of a partitioned table,
3334      <command>ALTER TABLE ... ALTER CONSTRAINT</command> failed to
3335      adjust the <literal>DEFERRABLE</literal> and/or
3336      <literal>INITIALLY DEFERRED</literal> markings of the constraints
3337      and triggers of leaf partitions.  This led to unexpected behavior of
3338      such constraints.  After updating to this version, any misbehaving
3339      partitioned tables can be fixed by executing a
3340      new <command>ALTER</command> command to set the desired properties.
3341     </para>
3342
3343     <para>
3344      This change also disallows applying such an <command>ALTER</command>
3345      directly to the constraints of leaf partitions.  The only supported
3346      case is for the whole partitioning hierarchy to have identical
3347      constraint properties, so such <command>ALTER</command>s must be
3348      applied at the partition root.
3349     </para>
3350    </listitem>
3351
3352    <listitem>
3353<!--
3354Author: Peter Eisentraut <peter@eisentraut.org>
3355Branch: master [a970edbed] 2021-05-04 12:09:08 +0200
3356Branch: REL_13_STABLE [64190d65f] 2021-05-04 12:10:22 +0200
3357Branch: REL_12_STABLE [13ff139a2] 2021-05-04 12:10:51 +0200
3358-->
3359     <para>
3360      When attaching a child table with <command>ALTER TABLE
3361      ... INHERIT</command>, insist that any generated columns in the
3362      parent be generated the same way in the child (Peter Eisentraut)
3363     </para>
3364    </listitem>
3365
3366    <listitem>
3367<!--
3368Author: Tom Lane <tgl@sss.pgh.pa.us>
3369Branch: master [f52c5d674] 2021-03-12 11:08:42 -0500
3370Branch: REL_13_STABLE [8a2297776] 2021-03-12 11:08:42 -0500
3371Branch: REL_12_STABLE [e7f7950f6] 2021-03-12 11:08:42 -0500
3372Branch: REL_11_STABLE [6c34f186c] 2021-03-12 11:08:42 -0500
3373Branch: REL_10_STABLE [e5794cd59] 2021-03-12 11:08:42 -0500
3374-->
3375     <para>
3376      Forbid marking an identity column as nullable (Vik Fearing)
3377     </para>
3378
3379     <para>
3380      <literal>GENERATED ... AS IDENTITY</literal> implies <literal>NOT
3381      NULL</literal>, so don't allow it to be combined with an
3382      explicit <literal>NULL</literal> specification.
3383     </para>
3384    </listitem>
3385
3386    <listitem>
3387<!--
3388Author: Tom Lane <tgl@sss.pgh.pa.us>
3389Branch: master [69d5ca484] 2021-04-13 15:10:18 -0400
3390Branch: REL_13_STABLE [c39aa1e87] 2021-04-13 15:10:18 -0400
3391Branch: REL_12_STABLE [a7fcb6285] 2021-04-13 15:10:18 -0400
3392Branch: REL_11_STABLE [c7f0275fb] 2021-04-13 15:10:18 -0400
3393Branch: REL_10_STABLE [46b6635b7] 2021-04-13 15:10:18 -0400
3394Branch: REL9_6_STABLE [041f4efd2] 2021-04-13 15:10:18 -0400
3395-->
3396     <para>
3397      Allow <literal>ALTER ROLE/DATABASE ... SET</literal> to set
3398      the <varname>role</varname>, <varname>session_authorization</varname>,
3399      and <varname>temp_buffers</varname> parameters (Tom Lane)
3400     </para>
3401
3402     <para>
3403      Previously, over-eager validity checks might reject these commands,
3404      even if the values would have worked when used later.  This created
3405      a command ordering hazard for dump/reload and upgrade scenarios.
3406     </para>
3407    </listitem>
3408
3409    <listitem>
3410<!--
3411Author: Michael Paquier <michael@paquier.xyz>
3412Branch: master [bd1208098] 2021-02-10 13:06:48 +0900
3413Branch: REL_13_STABLE [849383138] 2021-02-10 13:09:09 +0900
3414Branch: REL_12_STABLE [85edb1f26] 2021-02-10 13:09:12 +0900
3415Author: Michael Paquier <michael@paquier.xyz>
3416Branch: master [4f4726005] 2021-02-10 16:59:04 +0900
3417Branch: REL_13_STABLE [c6cd20d91] 2021-02-10 16:59:33 +0900
3418Branch: REL_12_STABLE [5b2945ec0] 2021-02-10 16:59:43 +0900
3419-->
3420     <para>
3421      Ensure that <command>REINDEX CONCURRENTLY</command> preserves any
3422      statistics target that's been set for the index (Michael Paquier)
3423     </para>
3424    </listitem>
3425
3426    <listitem>
3427<!--
3428Author: Fujii Masao <fujii@postgresql.org>
3429Branch: master [8a55cb5ba] 2021-02-19 21:57:52 +0900
3430Branch: REL_13_STABLE [422012c98] 2021-02-19 21:58:43 +0900
3431Branch: REL_12_STABLE [fadcc4e81] 2021-02-19 21:59:26 +0900
3432-->
3433     <para>
3434      Fix <command>COMMIT AND CHAIN</command> to work correctly when the
3435      current transaction has live savepoints (Fujii Masao)
3436     </para>
3437    </listitem>
3438
3439    <listitem>
3440<!--
3441Author: Tom Lane <tgl@sss.pgh.pa.us>
3442Branch: master [c402b02b9] 2021-04-12 14:37:49 -0400
3443Branch: REL_13_STABLE [8a7bd1e6c] 2021-04-12 14:37:22 -0400
3444Branch: REL_12_STABLE [27011bcff] 2021-04-12 14:37:22 -0400
3445Branch: REL_11_STABLE [fb2cca828] 2021-04-12 14:37:22 -0400
3446Branch: REL_10_STABLE [4b0aecee8] 2021-04-12 14:37:22 -0400
3447Branch: REL9_6_STABLE [a6158a4d9] 2021-04-12 14:37:22 -0400
3448-->
3449     <para>
3450      Fix bug with coercing the result of a <literal>COLLATE</literal>
3451      expression to a non-collatable type (Tom Lane)
3452     </para>
3453
3454     <para>
3455      This led to a parse tree in which the <literal>COLLATE</literal>
3456      appears to be applied to a non-collatable value.  While that
3457      normally has no real impact (since <literal>COLLATE</literal> has no
3458      effect at runtime), it was possible to construct views that would be
3459      rejected during dump/reload.
3460     </para>
3461    </listitem>
3462
3463    <listitem>
3464<!--
3465Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3466Branch: master [25936fd46] 2021-02-27 18:09:15 -0300
3467Branch: REL_13_STABLE [2688852a4] 2021-02-27 18:09:15 -0300
3468Branch: REL_12_STABLE [262eb990c] 2021-02-27 18:09:15 -0300
3469-->
3470     <para>
3471      Fix use-after-free bug in saving tuples for <literal>AFTER</literal>
3472      triggers (Amit Langote)
3473     </para>
3474
3475     <para>
3476      This could cause crashes in some situations.
3477     </para>
3478    </listitem>
3479
3480    <listitem>
3481<!--
3482Author: Tom Lane <tgl@sss.pgh.pa.us>
3483Branch: master [2efcd502e] 2021-04-30 14:10:26 -0400
3484Branch: REL_13_STABLE [4d225ba0e] 2021-04-30 14:10:26 -0400
3485Branch: REL_12_STABLE [89768ee69] 2021-04-30 14:10:26 -0400
3486Branch: REL_11_STABLE [ebc2ff076] 2021-04-30 14:10:26 -0400
3487Branch: REL_10_STABLE [0627f3630] 2021-04-30 14:10:26 -0400
3488Branch: REL9_6_STABLE [73bad52a9] 2021-04-30 14:10:26 -0400
3489-->
3490     <para>
3491      Disallow calling window functions and procedures via
3492      the <quote>fast path</quote> wire protocol message (Tom Lane)
3493     </para>
3494
3495     <para>
3496      Only plain functions are supported here.  While trying to call
3497      an aggregate function failed already, calling a window function
3498      would crash, and calling a procedure would work only if the
3499      procedure did no transaction control.
3500     </para>
3501    </listitem>
3502
3503    <listitem>
3504<!--
3505Author: Michael Paquier <michael@paquier.xyz>
3506Branch: master [f7aab36d6] 2021-04-28 11:17:58 +0900
3507Branch: REL_13_STABLE [f3c453787] 2021-04-28 11:18:17 +0900
3508Branch: REL_12_STABLE [7e76cb1d8] 2021-04-28 11:18:20 +0900
3509Branch: REL_11_STABLE [5b717e13c] 2021-04-28 11:18:24 +0900
3510Branch: REL_10_STABLE [90c9bad30] 2021-04-28 11:18:28 +0900
3511Branch: REL9_6_STABLE [6e41ff056] 2021-04-28 11:18:33 +0900
3512Author: Michael Paquier <michael@paquier.xyz>
3513Branch: master [f93f0b5b2] 2021-04-28 11:58:08 +0900
3514Branch: REL_13_STABLE [a928297bc] 2021-04-28 11:58:43 +0900
3515Branch: REL_12_STABLE [85a3e0be1] 2021-04-28 11:58:46 +0900
3516Branch: REL_11_STABLE [669f73666] 2021-04-28 11:58:50 +0900
3517Branch: REL_10_STABLE [b797918d2] 2021-04-28 11:58:55 +0900
3518Branch: REL9_6_STABLE [0d05a3a1d] 2021-04-28 11:59:00 +0900
3519-->
3520     <para>
3521      Extend <function>pg_identify_object_as_address()</function>
3522      to support event triggers (Joel Jacobson)
3523     </para>
3524    </listitem>
3525
3526    <listitem>
3527<!--
3528Author: Michael Paquier <michael@paquier.xyz>
3529Branch: master [7a3972597] 2021-04-12 11:30:50 +0900
3530Branch: REL_13_STABLE [be79debd9] 2021-04-12 11:31:26 +0900
3531Branch: REL_12_STABLE [82dd5706e] 2021-04-12 11:31:30 +0900
3532Branch: REL_11_STABLE [5656f2c3d] 2021-04-12 11:31:35 +0900
3533Branch: REL_10_STABLE [1cc110f68] 2021-04-12 11:31:40 +0900
3534Branch: REL9_6_STABLE [6540322fa] 2021-04-12 11:31:46 +0900
3535-->
3536     <para>
3537      Fix <function>to_char()</function>'s handling of Roman-numeral month
3538      format codes with negative intervals (Julien Rouhaud)
3539     </para>
3540
3541     <para>
3542      Previously, such cases would usually cause a crash.
3543     </para>
3544    </listitem>
3545
3546    <listitem>
3547<!--
3548Author: Tom Lane <tgl@sss.pgh.pa.us>
3549Branch: master [5c06abb9b] 2021-03-08 18:21:51 -0500
3550Branch: REL_13_STABLE [fe2b5386b] 2021-03-08 18:21:51 -0500
3551Branch: REL_12_STABLE [8fff8a874] 2021-03-08 18:21:51 -0500
3552Branch: REL_11_STABLE [ea42ccbce] 2021-03-08 18:21:51 -0500
3553Branch: REL_10_STABLE [37228ecde] 2021-03-08 18:21:51 -0500
3554-->
3555     <para>
3556      Check that the argument
3557      of <function>pg_import_system_collations()</function> is a valid
3558      schema OID (Tom Lane)
3559     </para>
3560    </listitem>
3561
3562    <listitem>
3563<!--
3564Author: Tom Lane <tgl@sss.pgh.pa.us>
3565Branch: master [b5a66e735] 2021-02-18 22:38:55 -0500
3566Branch: REL_13_STABLE [bf9d3a5f8] 2021-02-18 22:38:55 -0500
3567Branch: REL_12_STABLE [e7cddb5f2] 2021-02-18 22:38:55 -0500
3568Branch: REL_11_STABLE [6e6fecf49] 2021-02-18 22:38:55 -0500
3569Branch: REL_10_STABLE [b06450979] 2021-02-18 22:38:55 -0500
3570Branch: REL9_6_STABLE [ab208421e] 2021-02-18 22:38:55 -0500
3571-->
3572     <para>
3573      Fix use of uninitialized value while parsing an
3574      <literal>\{<replaceable>m</replaceable>,<replaceable>n</replaceable>\}</literal>
3575      quantifier in a BRE-mode regular expression (Tom Lane)
3576     </para>
3577
3578     <para>
3579      This error could cause the quantifier to act non-greedy, that is
3580      behave like an
3581      <literal>{<replaceable>m</replaceable>,<replaceable>n</replaceable>}?</literal>
3582      quantifier would do in full regular expressions.
3583     </para>
3584    </listitem>
3585
3586    <listitem>
3587<!--
3588Author: Tomas Vondra <tomas.vondra@postgresql.org>
3589Branch: master [33e52ad9a] 2021-03-26 22:34:58 +0100
3590Branch: REL_13_STABLE [67251c82a] 2021-03-26 22:37:45 +0100
3591Branch: REL_12_STABLE [88acb0135] 2021-03-26 22:40:00 +0100
3592Branch: REL_11_STABLE [2a307df1b] 2021-03-26 22:44:01 +0100
3593Branch: REL_10_STABLE [e5eb40eed] 2021-03-26 22:46:15 +0100
3594-->
3595     <para>
3596      Don't ignore system columns when estimating the number of groups
3597      using extended statistics (Tomas Vondra)
3598     </para>
3599
3600     <para>
3601      This led to strange estimates for queries such as <literal>SELECT
3602      ... GROUP BY a, b, ctid</literal>.
3603     </para>
3604    </listitem>
3605
3606    <listitem>
3607<!--
3608Author: Tom Lane <tgl@sss.pgh.pa.us>
3609Branch: master [ae4867ec7] 2021-02-12 16:26:47 -0500
3610Branch: REL_13_STABLE [3a02d68a9] 2021-02-12 16:26:47 -0500
3611Branch: REL_12_STABLE [0347470b3] 2021-02-12 16:26:47 -0500
3612Branch: REL_11_STABLE [a28df6fa3] 2021-02-12 16:26:47 -0500
3613Branch: REL_10_STABLE [374f1cefe] 2021-02-12 16:26:47 -0500
3614Branch: REL9_6_STABLE [f4d781dae] 2021-02-12 16:26:47 -0500
3615-->
3616     <para>
3617      Avoid divide-by-zero when estimating selectivity of a regular
3618      expression with a very long fixed prefix (Tom Lane)
3619     </para>
3620
3621     <para>
3622      This typically led to a <literal>NaN</literal> selectivity value,
3623      causing assertion failures or strange planner behavior.
3624     </para>
3625    </listitem>
3626
3627    <listitem>
3628<!--
3629Author: Tomas Vondra <tomas.vondra@postgresql.org>
3630Branch: master [23607a815] 2021-04-07 15:58:36 +0200
3631Branch: REL_13_STABLE [1aad1d181] 2021-04-07 15:59:30 +0200
3632Branch: REL_12_STABLE [847612fda] 2021-04-07 16:01:27 +0200
3633Branch: REL_11_STABLE [7d3a53461] 2021-04-07 16:02:51 +0200
3634Branch: REL_10_STABLE [e4f251be7] 2021-04-07 16:04:05 +0200
3635Branch: REL9_6_STABLE [df97ee6ea] 2021-04-07 16:05:21 +0200
3636-->
3637     <para>
3638      Fix access-off-the-end-of-the-table error in BRIN index bitmap scans
3639      (Tomas Vondra)
3640     </para>
3641
3642     <para>
3643      If the page range size used by a BRIN index isn't a power of two,
3644      there were corner cases in which a bitmap scan could try to fetch
3645      pages past the actual end of the table, leading to <quote>could not
3646      open file</quote> errors.
3647     </para>
3648    </listitem>
3649
3650    <listitem>
3651<!--
3652Author: Michael Paquier <michael@paquier.xyz>
3653Branch: master [595b9cba2] 2021-03-22 08:30:53 +0900
3654Branch: REL_13_STABLE [6e5ce888a] 2021-03-22 08:31:01 +0900
3655Branch: REL_12_STABLE [4b1dd9b1e] 2021-03-22 08:31:05 +0900
3656Branch: REL_11_STABLE [f1d550f18] 2021-03-22 08:31:09 +0900
3657Branch: REL_10_STABLE [1ec7162a8] 2021-03-22 08:31:14 +0900
3658-->
3659     <para>
3660      Avoid incorrect timeline change while recovering uncommitted
3661      two-phase transactions from WAL (Soumyadeep Chakraborty, Jimmy Yih,
3662      Kevin Yeap)
3663     </para>
3664
3665     <para>
3666      This error could lead to subsequent WAL records being written under
3667      the wrong timeline ID, leading to consistency problems, or even
3668      complete failure to be able to restart the server, later on.
3669     </para>
3670    </listitem>
3671
3672    <listitem>
3673<!--
3674Author: Fujii Masao <fujii@postgresql.org>
3675Branch: master [ad8b67492] 2021-04-06 02:25:37 +0900
3676Branch: REL_13_STABLE [e7bcfd717] 2021-04-06 02:27:11 +0900
3677Branch: REL_12_STABLE [dd5b7e486] 2021-04-06 02:27:22 +0900
3678Branch: REL_11_STABLE [b59d3abaf] 2021-04-06 02:27:30 +0900
3679Branch: REL_10_STABLE [b9cf9d7d3] 2021-04-06 02:27:39 +0900
3680Branch: REL9_6_STABLE [e3bf96216] 2021-04-06 02:27:48 +0900
3681-->
3682     <para>
3683      Ensure that locks are released while shutting down a standby
3684      server's startup process (Fujii Masao)
3685     </para>
3686
3687     <para>
3688      When a standby server is shut down while still in recovery, some
3689      locks might be left held.  This causes assertion failures in debug
3690      builds; it's unclear whether any serious consequence could occur
3691      in production builds.
3692     </para>
3693    </listitem>
3694
3695    <listitem>
3696<!--
3697Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3698Branch: master [4e8c0f1a0] 2021-05-07 11:46:37 -0400
3699Branch: REL_13_STABLE [ef70b6f8e] 2021-05-07 11:46:37 -0400
3700Branch: REL_12_STABLE [cfebc7080] 2021-05-07 11:46:37 -0400
3701Branch: REL_11_STABLE [b40865ebd] 2021-05-07 11:46:37 -0400
3702Branch: REL_10_STABLE [1803c7626] 2021-05-07 11:46:37 -0400
3703-->
3704     <para>
3705      Fix crash when a logical replication worker does <command>ALTER
3706      SUBSCRIPTION REFRESH</command> (Peter Smith)
3707     </para>
3708
3709     <para>
3710      The core code won't do this, but a replica trigger could.
3711     </para>
3712    </listitem>
3713
3714    <listitem>
3715<!--
3716Author: Thomas Munro <tmunro@postgresql.org>
3717Branch: master [f900a79ec] 2021-02-15 16:04:59 +1300
3718Branch: REL_13_STABLE [6c23e5ae9] 2021-02-15 16:05:42 +1300
3719Branch: REL_12_STABLE [a27f3a7f4] 2021-02-15 16:06:18 +1300
3720Branch: REL_11_STABLE [1fefe8879] 2021-02-15 16:06:25 +1300
3721Branch: REL_10_STABLE [800131df7] 2021-02-15 16:08:24 +1300
3722Branch: REL9_6_STABLE [09a3b19e3] 2021-02-15 16:09:14 +1300
3723-->
3724     <para>
3725      Ensure we default to <varname>wal_sync_method</varname>
3726      = <literal>fdatasync</literal> on recent FreeBSD (Thomas Munro)
3727     </para>
3728
3729     <para>
3730      FreeBSD 13 supports <literal>open_datasync</literal>, which would
3731      normally become the default choice.  However, it's unclear whether
3732      that is actually an improvement for Postgres, so preserve the
3733      existing default for now.
3734     </para>
3735    </listitem>
3736
3737    <listitem>
3738<!--
3739Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3740Branch: master [e798d095d] 2021-05-04 10:09:12 -0400
3741Branch: REL_13_STABLE [91a6b3862] 2021-05-04 10:09:11 -0400
3742Branch: REL_12_STABLE [72fabd4bf] 2021-05-04 10:09:11 -0400
3743-->
3744     <para>
3745      Pass the correct trigger OID to object post-alter hooks
3746      during <command>ALTER CONSTRAINT</command> (&Aacute;lvaro Herrera)
3747     </para>
3748
3749     <para>
3750      When updating trigger properties during <command>ALTER
3751      CONSTRAINT</command>, the post-alter hook was told that we are
3752      updating a trigger, but the constraint's OID was passed instead of
3753      the trigger's.
3754     </para>
3755    </listitem>
3756
3757    <listitem>
3758<!--
3759Author: Thomas Munro <tmunro@postgresql.org>
3760Branch: master [637668fb1] 2021-02-15 14:27:33 +1300
3761Branch: REL_13_STABLE [9fe40913c] 2021-02-15 14:20:42 +1300
3762Branch: REL_12_STABLE [840eda04e] 2021-02-15 14:20:52 +1300
3763Branch: REL_11_STABLE [acafdd9ed] 2021-02-15 14:21:01 +1300
3764Branch: REL_10_STABLE [4b426f77c] 2021-02-15 14:22:08 +1300
3765Branch: REL9_6_STABLE [8a07e5bd8] 2021-02-15 14:22:19 +1300
3766-->
3767     <para>
3768      Ensure we finish cleaning up when interrupted while detaching a DSM
3769      segment (Thomas Munro)
3770     </para>
3771
3772     <para>
3773      This error could result in temporary files not being cleaned up
3774      promptly after a parallel query.
3775     </para>
3776    </listitem>
3777
3778    <listitem>
3779<!--
3780Author: Tom Lane <tgl@sss.pgh.pa.us>
3781Branch: REL_12_STABLE [992cba94d] 2021-03-20 12:38:22 -0400
3782Branch: REL_11_STABLE [c49e287a8] 2021-03-20 12:38:22 -0400
3783Branch: REL_10_STABLE [7d9629ed2] 2021-03-20 12:38:22 -0400
3784-->
3785     <para>
3786      Fix memory leak while initializing server's SSL parameters (Michael
3787      Paquier)
3788     </para>
3789
3790     <para>
3791      This is ordinarily insignificant, but if the postmaster is
3792      repeatedly sent <systemitem>SIGHUP</systemitem> signals, the leak
3793      can build up over time.
3794     </para>
3795    </listitem>
3796
3797    <listitem>
3798<!--
3799Author: Tom Lane <tgl@sss.pgh.pa.us>
3800Branch: master [e835e89a0] 2021-03-20 12:47:21 -0400
3801Branch: REL_13_STABLE [4b41f6923] 2021-03-20 12:47:35 -0400
3802Branch: REL_12_STABLE [2f31414f4] 2021-03-20 12:47:42 -0400
3803Branch: REL_11_STABLE [8c830148d] 2021-03-20 12:47:48 -0400
3804Branch: REL_10_STABLE [ad6c19066] 2021-03-20 12:47:53 -0400
3805Author: Tom Lane <tgl@sss.pgh.pa.us>
3806Branch: master [9bacdf9f5] 2021-03-18 22:22:47 -0400
3807Branch: REL_13_STABLE [12354839e] 2021-03-18 22:21:58 -0400
3808Branch: REL_12_STABLE [4eca51d44] 2021-03-18 22:21:58 -0400
3809Branch: REL_11_STABLE [20f11ca0d] 2021-03-18 22:21:58 -0400
3810Branch: REL_10_STABLE [ba986b7bc] 2021-03-18 22:21:58 -0400
3811Author: Tom Lane <tgl@sss.pgh.pa.us>
3812Branch: master [377b7a830] 2021-03-18 22:22:47 -0400
3813Branch: REL_13_STABLE [642b0b69b] 2021-03-18 22:09:41 -0400
3814Branch: REL_12_STABLE [fc552f868] 2021-03-18 22:09:41 -0400
3815Branch: REL_11_STABLE [26a3ae06d] 2021-03-18 22:09:41 -0400
3816Branch: REL_10_STABLE [5058e95a6] 2021-03-18 22:09:41 -0400
3817Branch: REL9_6_STABLE [7e2521770] 2021-03-18 22:09:41 -0400
3818Author: Tom Lane <tgl@sss.pgh.pa.us>
3819Branch: master [d303849b0] 2021-03-18 22:22:47 -0400
3820Branch: REL_13_STABLE [eba939551] 2021-03-18 21:44:43 -0400
3821Branch: REL_12_STABLE [92bc14a10] 2021-03-18 21:44:43 -0400
3822Branch: REL_11_STABLE [099d2914f] 2021-03-18 21:44:43 -0400
3823Branch: REL_10_STABLE [0b618ddf8] 2021-03-18 21:44:43 -0400
3824Branch: REL9_6_STABLE [09e961929] 2021-03-18 21:44:43 -0400
3825Author: Tom Lane <tgl@sss.pgh.pa.us>
3826Branch: master [415ffdc22] 2021-03-18 22:22:47 -0400
3827Branch: REL_13_STABLE [ea3989f34] 2021-03-18 20:50:56 -0400
3828Branch: REL_12_STABLE [1452a0bb8] 2021-03-18 20:50:56 -0400
3829Author: Tom Lane <tgl@sss.pgh.pa.us>
3830Branch: master [28644fac1] 2021-03-18 22:22:47 -0400
3831Branch: REL_13_STABLE [536836970] 2021-03-18 20:37:09 -0400
3832Branch: REL_12_STABLE [fbcc9fe33] 2021-03-18 20:37:09 -0400
3833Branch: REL_11_STABLE [967b693ea] 2021-03-18 20:37:09 -0400
3834Branch: REL_10_STABLE [2bed650c4] 2021-03-18 20:37:09 -0400
3835Author: Tom Lane <tgl@sss.pgh.pa.us>
3836Branch: master [4b12ab18c] 2021-03-16 16:03:06 -0400
3837Branch: REL_13_STABLE [4d072bf2a] 2021-03-16 16:02:49 -0400
3838Branch: REL_12_STABLE [6e3475556] 2021-03-16 16:02:49 -0400
3839Branch: REL_11_STABLE [a2764d87d] 2021-03-16 16:02:50 -0400
3840Branch: REL_10_STABLE [7ce7f2b79] 2021-03-16 16:02:50 -0400
3841-->
3842     <para>
3843      Fix assorted minor memory leaks in the server (Tom Lane, Andres Freund)
3844     </para>
3845    </listitem>
3846
3847    <listitem>
3848<!--
3849Author: Tom Lane <tgl@sss.pgh.pa.us>
3850Branch: master [c2db458c1] 2021-04-13 13:37:07 -0400
3851Branch: REL_13_STABLE [97b7ad468] 2021-04-13 13:37:07 -0400
3852Branch: REL_12_STABLE [6530df6c2] 2021-04-13 13:37:07 -0400
3853Branch: REL_11_STABLE [22f2a98cf] 2021-04-13 13:37:07 -0400
3854-->
3855     <para>
3856      Fix failure when a PL/pgSQL <command>DO</command> block makes use of
3857      both composite-type variables and transaction control (Tom Lane)
3858     </para>
3859
3860     <para>
3861      Previously, such cases led to errors about leaked tuple descriptors.
3862     </para>
3863    </listitem>
3864
3865    <listitem>
3866<!--
3867Author: Tom Lane <tgl@sss.pgh.pa.us>
3868Branch: master [51c54bb60] 2021-03-11 14:43:45 -0500
3869Branch: REL_13_STABLE [3580b4a0c] 2021-03-11 14:43:45 -0500
3870Branch: REL_12_STABLE [56defbdd0] 2021-03-11 14:43:45 -0500
3871Branch: REL_11_STABLE [d3a557894] 2021-03-11 14:43:45 -0500
3872Branch: REL_10_STABLE [d2be6cdc5] 2021-03-11 14:43:45 -0500
3873Branch: REL9_6_STABLE [a98e53e10] 2021-03-11 14:43:45 -0500
3874-->
3875     <para>
3876      Prevent infinite loop in <application>libpq</application>
3877      if a ParameterDescription message with a corrupt length is received
3878      (Tom Lane)
3879     </para>
3880    </listitem>
3881
3882    <listitem>
3883<!--
3884Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3885Branch: master [75dbfe4ca] 2021-03-02 15:39:34 -0300
3886Branch: REL_13_STABLE [b52fd1e7c] 2021-03-02 15:39:34 -0300
3887Branch: REL_12_STABLE [f92776791] 2021-03-02 15:39:34 -0300
3888Branch: REL_11_STABLE [ae1c1d84e] 2021-03-02 15:39:34 -0300
3889Branch: REL_10_STABLE [926139dd0] 2021-03-02 15:39:34 -0300
3890-->
3891     <para>
3892      When <application>initdb</application> prints instructions about how
3893      to start the server, make the path shown
3894      for <application>pg_ctl</application> use backslash separators on
3895      Windows (Nitin Jadhav)
3896     </para>
3897    </listitem>
3898
3899    <listitem>
3900<!--
3901Author: Tom Lane <tgl@sss.pgh.pa.us>
3902Branch: master [ea8013854] 2021-03-23 14:27:50 -0400
3903Branch: REL_13_STABLE [c6eac71a8] 2021-03-23 14:27:50 -0400
3904Branch: REL_12_STABLE [beac4bd65] 2021-03-23 14:27:50 -0400
3905Branch: REL_11_STABLE [d75edab42] 2021-03-23 14:27:50 -0400
3906Branch: REL_10_STABLE [d5a905ed5] 2021-03-23 14:27:50 -0400
3907Branch: REL9_6_STABLE [4f670c64e] 2021-03-23 14:27:50 -0400
3908-->
3909     <para>
3910      Fix <application>psql</application> to restore the previous behavior
3911      of <literal>\connect
3912      service=<replaceable>something</replaceable></literal> (Tom Lane)
3913     </para>
3914
3915     <para>
3916      A previous bug fix caused environment variables (such
3917      as <varname>PGPORT</varname>) to override entries in the service
3918      file in this context.  Restore the previous behavior, in which the
3919      priority is the other way around.
3920     </para>
3921    </listitem>
3922
3923    <listitem>
3924<!--
3925Author: Fujii Masao <fujii@postgresql.org>
3926Branch: master [fe06819f1] 2021-02-19 22:01:25 +0900
3927Branch: REL_13_STABLE [be7485a1e] 2021-02-19 22:02:19 +0900
3928Branch: REL_12_STABLE [67b3ee292] 2021-02-19 22:02:44 +0900
3929-->
3930     <para>
3931      Fix <application>psql</application>'s <literal>ON_ERROR_ROLLBACK</literal>
3932      feature to handle <literal>COMMIT AND CHAIN</literal> commands
3933      correctly (Arthur Nascimento)
3934     </para>
3935
3936     <para>
3937      Previously, this case failed with <quote>savepoint
3938      "pg_psql_temporary_savepoint" does not exist</quote>.
3939     </para>
3940    </listitem>
3941
3942    <listitem>
3943<!--
3944Author: Tom Lane <tgl@sss.pgh.pa.us>
3945Branch: master [48d67fd89] 2021-03-12 12:20:15 -0500
3946Branch: REL_13_STABLE [6ed059933] 2021-03-12 12:20:15 -0500
3947Branch: REL_12_STABLE [60e5c2b14] 2021-03-12 12:20:15 -0500
3948Branch: REL_11_STABLE [33aa7d13d] 2021-03-12 12:20:15 -0500
3949Branch: REL_10_STABLE [8915e7906] 2021-03-12 12:20:15 -0500
3950Branch: REL9_6_STABLE [a42c4438b] 2021-03-12 12:20:15 -0500
3951-->
3952     <para>
3953      Fix race condition in detection of file modification by
3954      <application>psql</application>'s <literal>\e</literal> and related
3955      commands (Laurenz Albe)
3956     </para>
3957
3958     <para>
3959      A very fast typist could fool the code's file-timestamp-based
3960      detection of whether the temporary edit file was changed.
3961     </para>
3962    </listitem>
3963
3964    <listitem>
3965<!--
3966Author: Peter Eisentraut <peter@eisentraut.org>
3967Branch: master [feb270d10] 2021-05-04 14:18:16 +0200
3968Branch: REL_13_STABLE [a6a3a274a] 2021-05-04 14:18:23 +0200
3969Branch: REL_12_STABLE [bdaa0d2d7] 2021-05-04 14:18:33 +0200
3970-->
3971     <para>
3972      Fix <application>pg_dump</application>'s dumping of
3973      generated columns in partitioned tables (Peter Eisentraut)
3974     </para>
3975
3976     <para>
3977      A fix introduced in the previous minor release should not be applied
3978      to partitioned tables, only traditionally-inherited tables.
3979     </para>
3980    </listitem>
3981
3982    <listitem>
3983<!--
3984Author: Tom Lane <tgl@sss.pgh.pa.us>
3985Branch: master [ec03f2df1] 2021-04-01 13:34:16 -0400
3986Branch: REL_13_STABLE [35421a470] 2021-04-01 13:34:16 -0400
3987Branch: REL_12_STABLE [84c5e0dd2] 2021-04-01 13:34:16 -0400
3988Branch: REL_11_STABLE [25fe401d5] 2021-04-01 13:34:16 -0400
3989Branch: REL_10_STABLE [1b6961c8f] 2021-04-01 13:34:16 -0400
3990Branch: REL9_6_STABLE [2c9b857af] 2021-04-01 13:34:16 -0400
3991-->
3992     <para>
3993      Fix missed file version check
3994      in <application>pg_restore</application> (Tom Lane)
3995     </para>
3996
3997     <para>
3998      When reading a custom-format archive from a non-seekable source,
3999      <application>pg_restore</application> neglected to check the
4000      archive version.  If it was fed a newer archive version than it
4001      can support, it would fail messily later on.
4002     </para>
4003    </listitem>
4004
4005    <listitem>
4006<!--
4007Author: Tom Lane <tgl@sss.pgh.pa.us>
4008Branch: master [57c081de0] 2021-04-29 15:24:37 -0400
4009Branch: REL_13_STABLE [bbcfee0e5] 2021-04-29 15:24:37 -0400
4010Branch: REL_12_STABLE [ba86371b9] 2021-04-29 15:24:37 -0400
4011Branch: REL_11_STABLE [404946d40] 2021-04-29 15:24:37 -0400
4012Branch: REL_10_STABLE [d5722c927] 2021-04-29 15:24:37 -0400
4013Branch: REL9_6_STABLE [54a233071] 2021-04-29 15:24:38 -0400
4014-->
4015     <para>
4016      Add some more checks to <application>pg_upgrade</application> for
4017      user tables containing non-upgradable data types (Tom Lane)
4018     </para>
4019
4020     <para>
4021      Fix detection of some cases where a non-upgradable data type is
4022      embedded within a container type (such as an array or range).
4023      Also disallow upgrading when user tables contain columns of
4024      system-defined composite types, since those types' OIDs are not
4025      stable across versions.
4026     </para>
4027    </listitem>
4028
4029    <listitem>
4030<!--
4031Author: Fujii Masao <fujii@postgresql.org>
4032Branch: master [2eb1fc8b1] 2021-04-03 00:07:00 +0900
4033Branch: REL_13_STABLE [104164361] 2021-04-03 00:07:49 +0900
4034Branch: REL_12_STABLE [24bcce3bd] 2021-04-03 00:08:05 +0900
4035-->
4036     <para>
4037      Fix incorrect progress-reporting calculation
4038      in <application>pg_checksums</application> (Shinya Kato)
4039     </para>
4040    </listitem>
4041
4042    <listitem>
4043<!--
4044Author: Fujii Masao <fujii@postgresql.org>
4045Branch: master [51893c846] 2021-03-23 09:53:08 +0900
4046Branch: REL_13_STABLE [34279fd4f] 2021-03-23 09:54:38 +0900
4047Branch: REL_12_STABLE [4220e06f4] 2021-03-23 09:54:59 +0900
4048Branch: REL_11_STABLE [4a2627c41] 2021-03-23 09:55:21 +0900
4049Branch: REL_10_STABLE [5386a8506] 2021-03-23 09:55:33 +0900
4050Branch: REL9_6_STABLE [e73068b07] 2021-03-23 09:55:49 +0900
4051-->
4052     <para>
4053      Fix <application>pg_waldump</application> to
4054      count <literal>XACT</literal> records correctly when generating
4055      per-record statistics (Kyotaro Horiguchi)
4056     </para>
4057    </listitem>
4058
4059    <listitem>
4060<!--
4061Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4062Branch: master [8deb6b38d] 2021-02-23 17:30:21 -0300
4063Branch: REL_13_STABLE [28f4b6108] 2021-02-23 17:30:21 -0300
4064Branch: REL_12_STABLE [2796ae2ad] 2021-02-23 17:30:21 -0300
4065Branch: REL_11_STABLE [258391707] 2021-02-23 17:30:21 -0300
4066Branch: REL_10_STABLE [bf518fefa] 2021-02-23 17:30:21 -0300
4067Branch: REL9_6_STABLE [0ccebe779] 2021-02-23 17:30:21 -0300
4068-->
4069     <para>
4070      Fix <filename>contrib/amcheck</filename> to not complain about the
4071      tuple flags <literal>HEAP_XMAX_LOCK_ONLY</literal>
4072      and <literal>HEAP_KEYS_UPDATED</literal> both being set
4073      (Julien Rouhaud)
4074     </para>
4075
4076     <para>
4077      This is a valid state after <literal>SELECT FOR UPDATE</literal>.
4078     </para>
4079    </listitem>
4080
4081    <listitem>
4082<!--
4083Author: Noah Misch <noah@leadboat.com>
4084Branch: master [455dbc010] 2021-04-12 19:24:41 -0700
4085Branch: REL_13_STABLE [13881199e] 2021-04-12 19:24:58 -0700
4086Branch: REL_12_STABLE [4749c7ff4] 2021-04-12 19:27:09 -0700
4087Branch: REL_11_STABLE [c8da16ba1] 2021-04-12 19:27:31 -0700
4088Branch: REL_10_STABLE [fb9812b6c] 2021-04-12 19:27:36 -0700
4089Branch: REL9_6_STABLE [f488d19f3] 2021-04-12 19:27:38 -0700
4090-->
4091     <para>
4092      Adjust VPATH build rules to support recent Oracle Developer Studio
4093      compiler versions (Noah Misch)
4094     </para>
4095    </listitem>
4096
4097    <listitem>
4098<!--
4099Author: Noah Misch <noah@leadboat.com>
4100Branch: master [c3556f6fa] 2021-04-12 19:24:21 -0700
4101Branch: REL_13_STABLE [766c8fce5] 2021-04-12 19:24:24 -0700
4102Branch: REL_12_STABLE [e3ac7d176] 2021-04-12 19:24:25 -0700
4103Branch: REL_11_STABLE [4a3de4092] 2021-04-12 19:24:25 -0700
4104Branch: REL_10_STABLE [72a9bd047] 2021-04-12 19:24:25 -0700
4105Branch: REL9_6_STABLE [14652a19f] 2021-04-12 19:24:26 -0700
4106-->
4107     <para>
4108      Fix testing of PL/Python for Python 3 on Solaris (Noah Misch)
4109     </para>
4110    </listitem>
4111
4112   </itemizedlist>
4113
4114  </sect2>
4115 </sect1>
4116
4117 <sect1 id="release-12-6">
4118  <title>Release 12.6</title>
4119
4120  <formalpara>
4121  <title>Release date:</title>
4122  <para>2021-02-11</para>
4123  </formalpara>
4124
4125  <para>
4126   This release contains a variety of fixes from 12.5.
4127   For information about new features in major release 12, see
4128   <xref linkend="release-12"/>.
4129  </para>
4130
4131  <sect2>
4132   <title>Migration to Version 12.6</title>
4133
4134   <para>
4135    A dump/restore is not required for those running 12.X.
4136   </para>
4137
4138   <para>
4139    However, see the second and third changelog items below,
4140    which describe cases in which reindexing indexes after the upgrade
4141    may be advisable.
4142   </para>
4143
4144   <para>
4145    Also, if you are upgrading from a version earlier than 12.2,
4146    see <xref linkend="release-12-2"/>.
4147   </para>
4148  </sect2>
4149
4150  <sect2>
4151   <title>Changes</title>
4152
4153   <itemizedlist>
4154
4155    <listitem>
4156<!--
4157Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4158Branch: master [6214e2b22] 2021-02-08 11:01:51 +0200
4159Branch: REL_13_STABLE [8e56684d5] 2021-02-08 11:01:55 +0200
4160Branch: REL_12_STABLE [f50e88899] 2021-02-08 11:01:55 +0200
4161Branch: REL_11_STABLE [cb5868cc1] 2021-02-08 11:01:55 +0200
4162-->
4163     <para>
4164      Fix information leakage in constraint-violation error messages
4165      (Heikki Linnakangas)
4166     </para>
4167
4168     <para>
4169      If an <command>UPDATE</command> command attempts to move a row to a
4170      different partition but finds that it violates some constraint on
4171      the new partition, and the columns in that partition are in
4172      different physical positions than in the parent table, the error
4173      message could reveal the contents of columns that the user does not
4174      have <literal>SELECT</literal> privilege on.
4175      (CVE-2021-3393)
4176     </para>
4177    </listitem>
4178
4179    <listitem>
4180<!--
4181Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4182Branch: master [6b4d3046f] 2021-01-20 11:58:03 +0200
4183Branch: REL_13_STABLE [b8403d140] 2021-01-20 11:58:25 +0200
4184Branch: REL_12_STABLE [0326635dd] 2021-01-20 11:58:27 +0200
4185-->
4186     <para>
4187      Fix incorrect detection of concurrent page splits while inserting
4188      into a GiST index (Heikki Linnakangas)
4189     </para>
4190
4191     <para>
4192      Concurrent insertions could lead to a corrupt index with entries
4193      placed in the wrong pages.  It's recommended to reindex any GiST
4194      index that's been subject to concurrent insertions.
4195     </para>
4196    </listitem>
4197
4198    <listitem>
4199<!--
4200Author: Noah Misch <noah@leadboat.com>
4201Branch: master [8a54e12a3] 2021-01-30 00:00:27 -0800
4202Branch: REL_13_STABLE [86a5b309c] 2021-01-30 00:00:42 -0800
4203Branch: REL_12_STABLE [be843ce29] 2021-01-30 00:01:56 -0800
4204Branch: REL_11_STABLE [d1ab4bf6e] 2021-01-30 00:02:08 -0800
4205Branch: REL_10_STABLE [179775135] 2021-01-30 00:02:11 -0800
4206Branch: REL9_6_STABLE [d683d6528] 2021-01-30 00:04:05 -0800
4207Branch: REL9_5_STABLE [77a0e14f0] 2021-01-30 00:05:34 -0800
4208-->
4209     <para>
4210      Fix <command>CREATE INDEX CONCURRENTLY</command> to wait for
4211      concurrent prepared transactions (Andrey Borodin)
4212     </para>
4213
4214     <para>
4215      At the point where <command>CREATE INDEX CONCURRENTLY</command>
4216      waits for all concurrent transactions to complete so that it can see
4217      rows they inserted, it must also wait for all prepared transactions
4218      to complete, for the same reason.  Its failure to do so meant that
4219      rows inserted by prepared transactions might be omitted from the new
4220      index, causing queries relying on the index to miss such rows.
4221      In installations that have enabled prepared transactions
4222      (<varname>max_prepared_transactions</varname> &gt; 0),
4223      it's recommended to reindex any concurrently-built indexes in
4224      case this problem occurred when they were built.
4225     </para>
4226    </listitem>
4227
4228    <listitem>
4229<!--
4230Author: Tom Lane <tgl@sss.pgh.pa.us>
4231Branch: master [9624321ec] 2021-02-03 19:38:43 -0500
4232Branch: REL_13_STABLE [57868d957] 2021-02-03 19:38:29 -0500
4233Branch: REL_12_STABLE [77e760d5c] 2021-02-03 19:38:29 -0500
4234Branch: REL_11_STABLE [1c3a87746] 2021-02-03 19:38:29 -0500
4235-->
4236     <para>
4237      Avoid crash when a <literal>CALL</literal> or <literal>DO</literal>
4238      statement that performs a transaction rollback is executed via
4239      extended query protocol (Thomas Munro, Tom Lane)
4240     </para>
4241
4242     <para>
4243      In <productname>PostgreSQL</productname> 13, this case reliably
4244      caused a null-pointer dereference.  In earlier versions the bug
4245      seems to have no visible symptoms, but it's not quite clear that
4246      it could never cause a problem.
4247     </para>
4248    </listitem>
4249
4250    <listitem>
4251<!--
4252Author: Tom Lane <tgl@sss.pgh.pa.us>
4253Branch: master [1d9351a87] 2021-01-28 13:41:55 -0500
4254Branch: REL_13_STABLE [7f1921cb9] 2021-01-28 13:41:55 -0500
4255Branch: REL_12_STABLE [7c53a8067] 2021-01-28 13:41:55 -0500
4256Branch: REL_11_STABLE [6f94531b0] 2021-01-28 13:41:55 -0500
4257-->
4258     <para>
4259      Fix partition pruning logic to handle asymmetric hash partition sets
4260      (Tom Lane)
4261     </para>
4262
4263     <para>
4264      If a hash-partitioned table has unequally-sized partitions (that is,
4265      varying modulus values), or it lacks partitions for some remainder
4266      values, then the planner's pruning logic could mistakenly conclude
4267      that some partitions don't need to be scanned, leading to failure to
4268      find rows that the query should find.
4269     </para>
4270    </listitem>
4271
4272    <listitem>
4273<!--
4274Author: Tom Lane <tgl@sss.pgh.pa.us>
4275Branch: master [a0efda88a] 2021-01-19 13:25:33 -0500
4276Branch: REL_13_STABLE [188cd4f44] 2021-01-19 13:25:40 -0500
4277Branch: REL_12_STABLE [625315996] 2021-01-19 13:25:45 -0500
4278Branch: REL_11_STABLE [794562d07] 2021-01-19 13:25:49 -0500
4279Branch: REL_10_STABLE [fac54bd5e] 2021-01-19 13:25:54 -0500
4280Branch: REL9_6_STABLE [fe8edbb82] 2021-01-19 13:26:01 -0500
4281Branch: REL9_5_STABLE [0ab177bec] 2021-01-19 13:26:05 -0500
4282-->
4283     <para>
4284      Avoid incorrect results when <literal>WHERE CURRENT OF</literal> is
4285      applied to a cursor whose plan contains a MergeAppend node (Tom
4286      Lane)
4287     </para>
4288
4289     <para>
4290      This case is unsupported (in general, a cursor using <literal>ORDER
4291      BY</literal> is not guaranteed to be simply updatable); but the code
4292      previously did not reject it, and could silently give false matches.
4293     </para>
4294    </listitem>
4295
4296    <listitem>
4297<!--
4298Author: Tom Lane <tgl@sss.pgh.pa.us>
4299Branch: master [60661bbf2] 2021-01-18 18:32:30 -0500
4300Branch: REL_13_STABLE [f0f53195b] 2021-01-18 18:32:40 -0500
4301Branch: REL_12_STABLE [ba80489c6] 2021-01-18 18:32:45 -0500
4302Branch: REL_11_STABLE [de622e677] 2021-01-18 18:32:49 -0500
4303Branch: REL_10_STABLE [5cd94de77] 2021-01-18 18:32:55 -0500
4304Branch: REL9_6_STABLE [ffbf17463] 2021-01-18 18:33:02 -0500
4305Branch: REL9_5_STABLE [33a46993f] 2021-01-18 18:33:07 -0500
4306-->
4307     <para>
4308      Fix crash when <literal>WHERE CURRENT OF</literal> is applied to a
4309      cursor whose plan contains a custom scan node (David Geier)
4310     </para>
4311    </listitem>
4312
4313    <listitem>
4314<!--
4315Author: Tom Lane <tgl@sss.pgh.pa.us>
4316Branch: master [55dc86eca] 2021-01-21 15:37:23 -0500
4317Branch: REL_13_STABLE [73fc2e5ba] 2021-01-21 15:37:23 -0500
4318Branch: REL_12_STABLE [1cce024fd] 2021-01-21 15:37:23 -0500
4319-->
4320     <para>
4321      Fix planner's mishandling of placeholders whose evaluation should be
4322      delayed by an outer join (Tom Lane)
4323     </para>
4324
4325     <para>
4326      This occurs in particular with trivial subqueries containing lateral
4327      references to outer-join outputs.  The mistake could result in a
4328      malformed plan.  The known cases trigger a <quote>failed to assign
4329      all NestLoopParams to plan nodes</quote> error, but other symptoms
4330      may be possible.
4331     </para>
4332    </listitem>
4333
4334    <listitem>
4335<!--
4336Author: Tom Lane <tgl@sss.pgh.pa.us>
4337Branch: master [e98c90099] 2020-12-05 16:16:13 -0500
4338Branch: REL_13_STABLE [7d43b76f6] 2020-12-05 16:16:13 -0500
4339Branch: REL_12_STABLE [77a94c30d] 2020-12-05 16:16:13 -0500
4340-->
4341     <para>
4342      Fix planner's handling of placeholders during removal of useless
4343      RESULT RTEs (Tom Lane)
4344     </para>
4345
4346     <para>
4347      This oversight could lead to <quote>no relation entry for
4348      relid <replaceable>N</replaceable></quote> planner errors.
4349     </para>
4350    </listitem>
4351
4352    <listitem>
4353<!--
4354Author: Tom Lane <tgl@sss.pgh.pa.us>
4355Branch: master [b1738ff6a] 2020-11-30 12:22:43 -0500
4356Branch: REL_13_STABLE [666a4de93] 2020-11-30 12:22:43 -0500
4357Branch: REL_12_STABLE [4f728a1f5] 2020-11-30 12:22:43 -0500
4358Branch: REL_11_STABLE [caecab229] 2020-11-30 12:22:43 -0500
4359Branch: REL_10_STABLE [785f4462d] 2020-11-30 12:22:43 -0500
4360Branch: REL9_6_STABLE [ab4cbb4bc] 2020-11-30 12:22:43 -0500
4361Branch: REL9_5_STABLE [8c5da2d51] 2020-11-30 12:22:43 -0500
4362-->
4363     <para>
4364      Fix planner's handling of a placeholder that is computed at some
4365      join level and used only at that same level (Tom Lane)
4366     </para>
4367
4368     <para>
4369      This oversight could lead to <quote>failed to build
4370      any <replaceable>N</replaceable>-way joins</quote> planner errors.
4371     </para>
4372    </listitem>
4373
4374    <listitem>
4375<!--
4376Author: Andrew Gierth <rhodiumtoad@postgresql.org>
4377Branch: master [660b89928] 2020-11-24 21:58:32 +0000
4378Branch: REL_13_STABLE [6dda05704] 2020-11-24 21:16:58 +0000
4379Branch: REL_12_STABLE [ae5aa26dc] 2020-11-24 21:17:02 +0000
4380Branch: REL_11_STABLE [018e7d98d] 2020-11-24 21:18:37 +0000
4381Branch: REL_10_STABLE [321c87e5c] 2020-11-24 21:18:59 +0000
4382Branch: REL9_6_STABLE [6402afd98] 2020-11-24 21:19:50 +0000
4383Branch: REL9_5_STABLE [59ed45e27] 2020-11-24 21:36:09 +0000
4384-->
4385     <para>
4386      Be more careful about whether index AMs support mark/restore
4387      (Andrew Gierth)
4388     </para>
4389
4390     <para>
4391      This prevents errors about missing support functions in rare edge
4392      cases.
4393     </para>
4394    </listitem>
4395
4396    <listitem>
4397<!--
4398Author: Thomas Munro <tmunro@postgresql.org>
4399Branch: master Release: REL_13_BR [d061ea21f] 2020-01-31 17:29:38 +1300
4400Branch: REL_12_STABLE [2ded1f1fb] 2020-11-20 10:51:30 +1300
4401Branch: REL_11_STABLE [0455f78dd] 2020-11-20 10:52:38 +1300
4402Branch: REL_10_STABLE [f5332503e] 2020-11-20 10:53:08 +1300
4403-->
4404     <para>
4405      Adjust settings to make it more difficult to run out of DSM slots
4406      during heavy usage of parallel queries (Thomas Munro)
4407     </para>
4408    </listitem>
4409
4410    <listitem>
4411<!--
4412Author: Fujii Masao <fujii@postgresql.org>
4413Branch: master [2ad78a87f] 2021-01-15 12:44:17 +0900
4414Branch: REL_13_STABLE [60369db86] 2021-01-15 12:45:25 +0900
4415Branch: REL_12_STABLE [19a1d7685] 2021-01-15 12:45:51 +0900
4416Branch: REL_11_STABLE [97b025ebe] 2021-01-15 12:46:26 +0900
4417-->
4418     <para>
4419      Fix overestimate of the amount of shared memory needed for parallel
4420      queries (Takayuki Tsunakawa)
4421     </para>
4422    </listitem>
4423
4424    <listitem>
4425<!--
4426Author: Michael Paquier <michael@paquier.xyz>
4427Branch: master [21378e1fe] 2021-01-20 11:38:17 +0900
4428Branch: REL_13_STABLE [31e0f9d76] 2021-01-20 11:39:14 +0900
4429Branch: REL_12_STABLE [5ad672fc2] 2021-01-20 11:39:17 +0900
4430Branch: REL_11_STABLE [1c3a4d44d] 2021-01-20 11:39:21 +0900
4431Branch: REL_10_STABLE [74ee3abcf] 2021-01-20 11:39:24 +0900
4432Branch: REL9_6_STABLE [7dc3be9df] 2021-01-20 11:39:31 +0900
4433Branch: REL9_5_STABLE [0ddb529cf] 2021-01-20 11:39:35 +0900
4434-->
4435     <para>
4436      Fix <command>ALTER DEFAULT PRIVILEGES</command> to handle duplicated
4437      arguments safely (Michael Paquier)
4438     </para>
4439
4440     <para>
4441      Duplicate role or schema names within the same command could lead
4442      to <quote>tuple already updated by self</quote> errors or
4443      unique-constraint violations.
4444     </para>
4445    </listitem>
4446
4447    <listitem>
4448<!--
4449Author: Noah Misch <noah@leadboat.com>
4450Branch: master [08db7c63f] 2020-12-25 10:41:59 -0800
4451Branch: REL_13_STABLE [9f8a48bb2] 2020-12-25 10:42:02 -0800
4452Branch: REL_12_STABLE [c96698806] 2020-12-25 10:42:03 -0800
4453Branch: REL_11_STABLE [e83e8509b] 2020-12-25 10:42:03 -0800
4454Branch: REL_10_STABLE [d7c197f46] 2020-12-25 10:42:03 -0800
4455Branch: REL9_6_STABLE [b81d3791e] 2020-12-25 10:42:04 -0800
4456Branch: REL9_5_STABLE [90383a613] 2020-12-25 10:42:04 -0800
4457Branch: REL_10_STABLE [d176b9d5e] 2020-12-25 11:02:56 -0800
4458Branch: REL9_6_STABLE [3f920e876] 2020-12-25 11:03:05 -0800
4459Branch: REL9_5_STABLE [14649bf50] 2020-12-25 11:06:23 -0800
4460-->
4461     <para>
4462      Flush ACL-related caches when <structname>pg_authid</structname>
4463      changes (Noah Misch)
4464     </para>
4465
4466     <para>
4467      This change ensures that permissions-related decisions will promptly
4468      reflect the results of <command>ALTER ROLE ... [NO] INHERIT</command>.
4469     </para>
4470    </listitem>
4471
4472    <listitem>
4473<!--
4474Author: Tom Lane <tgl@sss.pgh.pa.us>
4475Branch: master [f7f83a55b] 2020-12-01 14:02:27 -0500
4476Branch: REL_13_STABLE [dffc82a5b] 2020-12-01 14:02:27 -0500
4477Branch: REL_12_STABLE [5f9b05ada] 2020-12-01 14:02:28 -0500
4478Branch: REL_11_STABLE [28bb8c496] 2020-12-01 14:02:28 -0500
4479Branch: REL_10_STABLE [d98e27dc6] 2020-12-01 14:02:28 -0500
4480Branch: REL9_6_STABLE [f00c44002] 2020-12-01 14:02:28 -0500
4481Branch: REL9_5_STABLE [fb500296d] 2020-12-01 14:02:28 -0500
4482-->
4483     <para>
4484      Prevent misprocessing of ambiguous <command>CREATE TABLE
4485      LIKE</command> clauses (Tom Lane)
4486     </para>
4487
4488     <para>
4489      A <literal>LIKE</literal> clause is re-examined after initial
4490      creation of the new table, to handle importation of indexes and
4491      such.  It was possible for this re-examination to find a different
4492      table of the same name, causing unexpected behavior; one example is
4493      where the new table is a temporary table of the same name as
4494      the <literal>LIKE</literal> target.
4495     </para>
4496    </listitem>
4497
4498    <listitem>
4499<!--
4500Author: Tom Lane <tgl@sss.pgh.pa.us>
4501Branch: master [97390fe8a] 2020-11-19 15:03:17 -0500
4502Branch: REL_13_STABLE [98f3f1d5c] 2020-11-19 15:03:17 -0500
4503Branch: REL_12_STABLE [87ab46421] 2020-11-19 15:03:17 -0500
4504Branch: REL_11_STABLE [c690ebbef] 2020-11-19 15:03:17 -0500
4505Branch: REL_10_STABLE [513db7b70] 2020-11-19 15:03:17 -0500
4506Branch: REL9_6_STABLE [159b6775f] 2020-11-19 15:03:17 -0500
4507Branch: REL9_5_STABLE [6631d5f26] 2020-11-19 15:03:17 -0500
4508-->
4509     <para>
4510      Rearrange order of operations in <command>CREATE TABLE
4511      LIKE</command> so that indexes are cloned before building foreign
4512      key constraints (Tom Lane)
4513     </para>
4514
4515     <para>
4516      This fixes the case where a self-referential foreign key constraint
4517      declared in the outer <command>CREATE TABLE</command> depends on an
4518      index that's coming from the <literal>LIKE </literal> clause.
4519     </para>
4520    </listitem>
4521
4522    <listitem>
4523<!--
4524Author: Tomas Vondra <tomas.vondra@postgresql.org>
4525Branch: master [c9a0dc348] 2021-01-15 23:31:22 +0100
4526Branch: REL_13_STABLE [d26d4c717] 2021-01-15 23:32:54 +0100
4527Branch: REL_12_STABLE [943a113bc] 2021-01-15 23:33:16 +0100
4528Branch: REL_11_STABLE [f52db9694] 2021-01-15 23:33:44 +0100
4529Branch: REL_10_STABLE [c22539756] 2021-01-15 23:34:02 +0100
4530-->
4531     <para>
4532      Disallow <command>CREATE STATISTICS</command> on system catalogs
4533      (Tomas Vondra)
4534     </para>
4535    </listitem>
4536
4537    <listitem>
4538<!--
4539Author: Tom Lane <tgl@sss.pgh.pa.us>
4540Branch: master [dd705a039] 2021-02-06 15:17:01 -0500
4541Branch: REL_13_STABLE [4353bc878] 2021-02-06 15:17:01 -0500
4542Branch: REL_12_STABLE [f73321957] 2021-02-06 15:17:01 -0500
4543Branch: REL_11_STABLE [580069037] 2021-02-06 15:17:02 -0500
4544Branch: REL_10_STABLE [ad85e5efa] 2021-02-06 15:17:02 -0500
4545Branch: REL9_6_STABLE [7736ab05f] 2021-02-06 15:17:02 -0500
4546Branch: REL9_5_STABLE [5ad03374b] 2021-02-06 15:17:02 -0500
4547-->
4548     <para>
4549      Disallow converting an inheritance child table to a view
4550      (Tom Lane)
4551     </para>
4552    </listitem>
4553
4554    <listitem>
4555<!--
4556Author: Thomas Munro <tmunro@postgresql.org>
4557Branch: master [9f35f9437] 2020-12-01 13:21:03 +1300
4558Branch: REL_13_STABLE [fd3a75d82] 2020-12-01 13:22:01 +1300
4559Branch: REL_12_STABLE [50f338574] 2020-12-01 13:37:00 +1300
4560Branch: REL_11_STABLE [d5706ad7b] 2020-12-01 13:46:27 +1300
4561Branch: REL_10_STABLE [22701755d] 2020-12-01 14:43:04 +1300
4562Branch: REL9_6_STABLE [d0bbe2122] 2020-12-01 14:50:41 +1300
4563Branch: REL9_5_STABLE [e00928de8] 2020-12-01 14:54:49 +1300
4564-->
4565     <para>
4566      Ensure that disk space allocated for a dropped relation is released
4567      promptly at commit (Thomas Munro)
4568     </para>
4569
4570     <para>
4571      Previously, if the dropped relation spanned multiple 1GB segments,
4572      only the first segment was truncated immediately.  Other segments
4573      were simply unlinked, which doesn't authorize the kernel to release
4574      the storage so long as any other backends still have the files open.
4575     </para>
4576    </listitem>
4577
4578    <listitem>
4579<!--
4580Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4581Branch: master [ebfe2dbd6] 2021-01-14 15:32:14 -0300
4582Branch: REL_13_STABLE [5b01a6f13] 2021-01-14 15:32:14 -0300
4583Branch: REL_12_STABLE [c9b702552] 2021-01-14 15:32:14 -0300
4584Branch: REL_11_STABLE [c442b32c2] 2021-01-14 15:32:14 -0300
4585-->
4586     <para>
4587      Prevent dropping a tablespace that is referenced by a partitioned
4588      relation, but is not used for any actual storage (&Aacute;lvaro
4589      Herrera)
4590     </para>
4591
4592     <para>
4593      Previously this was allowed, but subsequent operations on the
4594      partitioned relation would fail.
4595     </para>
4596    </listitem>
4597
4598    <listitem>
4599<!--
4600Author: Fujii Masao <fujii@postgresql.org>
4601Branch: master [3df51ca8b] 2020-11-27 20:16:44 +0900
4602Branch: REL_13_STABLE [dcc20946a] 2020-11-27 20:17:33 +0900
4603Branch: REL_12_STABLE [fce17e486] 2020-11-27 20:18:02 +0900
4604-->
4605     <para>
4606      Fix progress reporting for <command>CLUSTER</command> (Matthias van
4607      de Meent)
4608     </para>
4609    </listitem>
4610
4611    <listitem>
4612<!--
4613Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4614Branch: master [c444472af] 2021-02-05 11:14:56 +0200
4615Branch: REL_13_STABLE [c87cbd51e] 2021-02-05 11:19:48 +0200
4616Branch: REL_12_STABLE [9b0ce8957] 2021-02-05 11:16:33 +0200
4617Branch: REL_11_STABLE [d9b4163c5] 2021-02-05 11:16:53 +0200
4618Branch: REL_10_STABLE [c06632e48] 2021-02-05 11:17:07 +0200
4619Branch: REL9_6_STABLE [e152ccc7f] 2021-02-05 11:17:13 +0200
4620Branch: REL9_5_STABLE [aaf266157] 2021-02-05 11:17:27 +0200
4621-->
4622     <para>
4623      Fix handling of backslash-escaped multibyte characters
4624      in <command>COPY FROM</command> (Heikki Linnakangas)
4625     </para>
4626
4627     <para>
4628      A backslash followed by a multibyte character was not handled
4629      correctly.  In some client character encodings, this could lead to
4630      misinterpreting part of a multibyte character as a field separator
4631      or end-of-copy-data marker.
4632     </para>
4633    </listitem>
4634
4635    <listitem>
4636<!--
4637Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4638Branch: master [2cccb627f] 2020-11-18 12:39:15 +0200
4639Branch: REL_13_STABLE [340ae3cfb] 2020-11-20 14:41:14 +0200
4640Branch: REL_12_STABLE [888fa2bae] 2020-11-20 14:46:47 +0200
4641Branch: REL_11_STABLE [57b5d8484] 2020-11-20 14:49:25 +0200
4642Branch: REL_10_STABLE [1dbe627fd] 2020-11-20 14:49:42 +0200
4643Branch: REL9_6_STABLE [02a2dbe91] 2020-11-20 14:57:15 +0200
4644Branch: REL9_5_STABLE [ded7db4c1] 2020-11-20 14:57:51 +0200
4645-->
4646     <para>
4647      Avoid preallocating executor hash tables
4648      in <command>EXPLAIN</command> without <literal>ANALYZE</literal>
4649      (Alexey Bashtanov)
4650     </para>
4651    </listitem>
4652
4653    <listitem>
4654<!--
4655Author: Tom Lane <tgl@sss.pgh.pa.us>
4656Branch: master [9c83b54a9] 2020-11-28 14:03:40 -0500
4657Branch: REL_13_STABLE [f5de090cc] 2020-11-28 14:03:40 -0500
4658Branch: REL_12_STABLE [cbc7a7a10] 2020-11-28 14:03:40 -0500
4659Branch: REL_11_STABLE [40f2fbe71] 2020-11-28 14:03:40 -0500
4660Branch: REL_10_STABLE [f6324bbbe] 2020-11-28 14:03:40 -0500
4661Branch: REL9_6_STABLE [8a4069766] 2020-11-28 14:03:40 -0500
4662Branch: REL9_5_STABLE [60d6c7143] 2020-11-28 14:03:40 -0500
4663-->
4664     <para>
4665      Fix recently-introduced race conditions
4666      in <command>LISTEN</command>/<command>NOTIFY</command> queue
4667      handling (Tom Lane)
4668     </para>
4669
4670     <para>
4671      A newly-listening backend could attempt to read SLRU pages that
4672      were in process of being truncated, possibly causing an error.
4673     </para>
4674
4675     <para>
4676      The queue tail pointer could become
4677      set to a value that's not equal to the queue position of any
4678      backend, resulting in effective disabling of the queue truncation
4679      logic.  Continued use of <command>NOTIFY</command> then led to
4680      queue-fill warnings, and eventually to inability to send any more
4681      notifies until the server is restarted.
4682     </para>
4683    </listitem>
4684
4685    <listitem>
4686<!--
4687Author: Tom Lane <tgl@sss.pgh.pa.us>
4688Branch: master [ff5d5611c] 2020-12-21 13:11:50 -0500
4689Branch: REL_13_STABLE [38d30a14b] 2020-12-21 13:11:51 -0500
4690Branch: REL_12_STABLE [38bef9e43] 2020-12-21 13:11:29 -0500
4691Branch: REL_11_STABLE [75c8ef5ae] 2020-12-21 13:11:29 -0500
4692Branch: REL_10_STABLE [542248f9d] 2020-12-21 13:11:30 -0500
4693Branch: REL9_6_STABLE [1d5f3f976] 2020-12-21 13:11:30 -0500
4694Branch: REL9_5_STABLE [edcdbc44e] 2020-12-21 13:11:30 -0500
4695-->
4696     <para>
4697      Allow the <type>jsonb</type> concatenation operator to handle all
4698      combinations of JSON data types (Tom Lane)
4699     </para>
4700
4701     <para>
4702      We can concatenate two JSON objects or two JSON arrays.  Handle
4703      other cases by wrapping non-array inputs in one-element arrays,
4704      then performing an array concatenation.  Previously, some
4705      combinations of inputs followed this rule but others arbitrarily
4706      threw an error.
4707     </para>
4708    </listitem>
4709
4710    <listitem>
4711<!--
4712Author: Tom Lane <tgl@sss.pgh.pa.us>
4713Branch: master [afcc8772e] 2021-01-08 12:16:00 -0500
4714Branch: REL_13_STABLE [49c928c0c] 2021-01-08 12:16:00 -0500
4715Branch: REL_12_STABLE [8354371d0] 2021-01-08 12:16:00 -0500
4716Branch: REL_11_STABLE [769908811] 2021-01-08 12:16:00 -0500
4717Branch: REL_10_STABLE [2d540ac5f] 2021-01-08 12:16:00 -0500
4718Branch: REL9_6_STABLE [085a1cfb3] 2021-01-08 12:16:00 -0500
4719Branch: REL9_5_STABLE [0c23f30fa] 2021-01-08 12:16:00 -0500
4720-->
4721     <para>
4722      Fix use of uninitialized value while parsing a <literal>*</literal>
4723      quantifier in a BRE-mode regular expression (Tom Lane)
4724     </para>
4725
4726     <para>
4727      This error could cause the quantifier to act non-greedy, that is
4728      behave like a <literal>*?</literal> quantifier would do in full
4729      regular expressions.
4730     </para>
4731    </listitem>
4732
4733    <listitem>
4734<!--
4735Author: Dean Rasheed <dean.a.rasheed@gmail.com>
4736Branch: master [bc43b7c2c] 2021-01-05 11:15:28 +0000
4737Branch: REL_13_STABLE [e15c384d7] 2021-01-05 11:08:59 +0000
4738Branch: REL_12_STABLE [258b77005] 2021-01-05 11:07:12 +0000
4739Branch: REL_11_STABLE [160a9e425] 2021-01-05 11:05:58 +0000
4740Branch: REL_10_STABLE [275b190b3] 2021-01-05 11:04:41 +0000
4741Branch: REL9_6_STABLE [9a299dff2] 2021-01-05 11:02:46 +0000
4742Branch: master [fead67c24] 2021-01-05 11:52:42 +0000
4743Branch: REL_13_STABLE [5777b6ea2] 2021-01-05 11:51:21 +0000
4744Branch: REL_12_STABLE [740780a61] 2021-01-05 11:50:11 +0000
4745Branch: REL_11_STABLE [ab042d010] 2021-01-05 11:48:45 +0000
4746Branch: REL_10_STABLE [0097193b1] 2021-01-05 11:46:44 +0000
4747Branch: REL9_6_STABLE [f0b9bada5] 2021-01-05 11:45:17 +0000
4748-->
4749     <para>
4750      Fix numeric <function>power()</function> for the case where the
4751      exponent is exactly <literal>INT_MIN</literal> (-2147483648)
4752      (Dean Rasheed)
4753     </para>
4754
4755     <para>
4756      Previously, a result with no significant digits was produced.
4757     </para>
4758    </listitem>
4759
4760    <listitem>
4761<!--
4762Author: Tom Lane <tgl@sss.pgh.pa.us>
4763Branch: master [4bd3fad80] 2021-01-04 18:32:44 -0500
4764Branch: REL_13_STABLE [9e7d87ca8] 2021-01-04 18:32:40 -0500
4765Branch: REL_12_STABLE [7c98759e0] 2021-01-04 18:32:40 -0500
4766Branch: REL_11_STABLE [50a420bee] 2021-01-04 18:32:40 -0500
4767-->
4768     <para>
4769      Fix integer-overflow cases in <function>substring()</function>
4770      functions (Tom Lane, Pavel Stehule)
4771     </para>
4772
4773     <para>
4774      If the specified starting index and length overflow an integer when
4775      added together, <function>substring()</function> misbehaved, either
4776      throwing a bogus <quote>negative substring length</quote> error for
4777      a case that should succeed, or failing to complain that a negative
4778      length is negative (and instead returning the whole string, in most
4779      cases).
4780     </para>
4781    </listitem>
4782
4783    <listitem>
4784<!--
4785Author: Noah Misch <noah@leadboat.com>
4786Branch: master [6db992833] 2021-01-16 12:21:35 -0800
4787Branch: REL_13_STABLE [6eb3fc7fc] 2021-01-16 12:21:38 -0800
4788Branch: REL_12_STABLE [66087f7e9] 2021-01-16 12:21:39 -0800
4789Branch: REL_11_STABLE [677f6cb1d] 2021-01-16 12:21:39 -0800
4790Branch: REL_10_STABLE [9afba9b0e] 2021-01-16 12:21:39 -0800
4791Branch: REL9_6_STABLE [1a31d8c52] 2021-01-16 12:21:39 -0800
4792Branch: REL9_5_STABLE [c424c75f5] 2021-01-16 12:21:39 -0800
4793-->
4794     <para>
4795      Prevent possible data loss from incorrect detection of the
4796      wraparound point of an SLRU log
4797      (Noah Misch)
4798     </para>
4799
4800     <para>
4801      The wraparound point typically falls in the middle of a page, which
4802      must be rounded off to a page boundary, and that was not done
4803      correctly.  No issue could arise unless an installation had gotten
4804      to within one page of SLRU overflow, which is unlikely in a
4805      properly-functioning system.  If this did happen, it would manifest
4806      in later <quote>apparent wraparound</quote> or <quote>could not
4807      access status of transaction</quote> errors.
4808     </para>
4809    </listitem>
4810
4811    <listitem>
4812<!--
4813Author: Amit Kapila <akapila@postgresql.org>
4814Branch: master [ee1b38f65] 2021-01-13 08:19:50 +0530
4815Branch: REL_13_STABLE [0685c5c1b] 2021-01-13 08:31:45 +0530
4816Branch: REL_12_STABLE [0b2ae3c92] 2021-01-13 08:40:06 +0530
4817Branch: REL_11_STABLE [7adc408f4] 2021-01-13 08:50:13 +0530
4818Branch: REL_10_STABLE [636b6f99c] 2021-01-13 09:01:57 +0530
4819Branch: REL9_6_STABLE [f2b268ee0] 2021-01-13 09:12:59 +0530
4820Branch: REL9_5_STABLE [4bccceaa9] 2021-01-13 09:22:03 +0530
4821-->
4822     <para>
4823      Fix memory leak in walsender processes while sending new snapshots
4824      for logical decoding (Amit Kapila)
4825     </para>
4826    </listitem>
4827
4828    <listitem>
4829<!--
4830Author: Jeff Davis <jdavis@postgresql.org>
4831Branch: master [a58db3aa1] 2020-12-14 23:47:30 -0800
4832Branch: REL_13_STABLE [fde5f130c] 2020-12-14 23:48:44 -0800
4833Branch: REL_12_STABLE [706d84fe7] 2020-12-14 23:48:04 -0800
4834Branch: REL_11_STABLE [4ee058a3b] 2020-12-14 23:49:06 -0800
4835Branch: REL_10_STABLE [ac7df6e8f] 2020-12-14 23:49:29 -0800
4836Branch: REL9_6_STABLE [f10da1e9c] 2020-12-14 23:49:57 -0800
4837Branch: REL9_5_STABLE [133a0906d] 2020-12-14 23:50:20 -0800
4838-->
4839     <para>
4840      Fix walsender to accept additional commands after
4841      terminating replication (Jeff Davis)
4842     </para>
4843    </listitem>
4844
4845    <listitem>
4846<!--
4847Author: Fujii Masao <fujii@postgresql.org>
4848Branch: master [8900b5a9d] 2021-01-06 12:39:18 +0900
4849Branch: REL_13_STABLE [0f8977b3f] 2021-01-06 12:30:37 +0900
4850Branch: REL_12_STABLE [9f540f840] 2021-01-06 12:31:23 +0900
4851Branch: REL_11_STABLE [e83771880] 2021-01-06 12:31:55 +0900
4852Branch: REL_10_STABLE [4c20e78f1] 2021-01-06 12:32:32 +0900
4853Branch: REL9_6_STABLE [0307b98d8] 2021-01-06 12:33:28 +0900
4854-->
4855     <para>
4856      Ensure detection of deadlocks between hot standby backends and the
4857      startup (WAL-application) process (Fujii Masao)
4858     </para>
4859
4860     <para>
4861      The startup process did not run the deadlock detection code, so that
4862      in situations where the startup process is last to join a circular
4863      wait situation, the deadlock might never be recognized.
4864     </para>
4865    </listitem>
4866
4867    <listitem>
4868<!--
4869Author: Peter Geoghegan <pg@bowt.ie>
4870Branch: master [422881744] 2020-12-30 16:29:05 -0800
4871Branch: REL_13_STABLE [7a57960ba] 2020-12-30 16:29:03 -0800
4872Branch: REL_12_STABLE [4f70e0910] 2020-12-30 16:29:01 -0800
4873Branch: master [32d6287d2] 2020-12-30 17:21:42 -0800
4874Branch: REL_13_STABLE [55e535226] 2020-12-30 17:21:41 -0800
4875Branch: REL_12_STABLE [5f95664e1] 2020-12-30 17:21:39 -0800
4876-->
4877     <para>
4878      Fix possible failure to detect recovery conflicts while deleting an
4879      index entry that references a HOT chain (Peter Geoghegan)
4880     </para>
4881
4882     <para>
4883      The code failed to traverse the HOT chain and might thus compute a
4884      too-old XID horizon, which could lead to incorrect conflict
4885      processing in hot standby.  The practical impact of this bug is
4886      limited; in most cases the correct XID horizon would be found anyway
4887      from nearby operations.
4888     </para>
4889    </listitem>
4890
4891    <listitem>
4892<!--
4893Author: Tom Lane <tgl@sss.pgh.pa.us>
4894Branch: master [860fe27ee] 2020-12-30 11:38:42 -0500
4895Branch: REL_13_STABLE [861e96717] 2020-12-30 11:38:42 -0500
4896Branch: REL_12_STABLE [3ca19490b] 2020-12-30 11:38:42 -0500
4897-->
4898     <para>
4899      Ensure that a nonempty value
4900      of <varname>krb_server_keyfile</varname> always overrides any
4901      setting of <varname>KRB5_KTNAME</varname> in the server's
4902      environment (Tom Lane)
4903     </para>
4904
4905     <para>
4906      Previously, which setting took precedence depended on whether the
4907      client requests GSS encryption.
4908     </para>
4909    </listitem>
4910
4911    <listitem>
4912<!--
4913Author: Tom Lane <tgl@sss.pgh.pa.us>
4914Branch: master [3995c4249] 2020-12-28 17:58:58 -0500
4915Branch: REL_13_STABLE [d05e14d78] 2020-12-28 17:58:58 -0500
4916Branch: REL_12_STABLE [7ed616f81] 2020-12-28 17:58:58 -0500
4917-->
4918     <para>
4919      In server log messages about failing to match connections
4920      to <filename>pg_hba.conf</filename> entries, include details about
4921      whether GSS encryption has been activated (Kyotaro Horiguchi, Tom
4922      Lane)
4923     </para>
4924
4925     <para>
4926      This is relevant data if <literal>hostgssenc</literal>
4927      or <literal>hostnogssenc</literal> entries exist.
4928     </para>
4929    </listitem>
4930
4931    <listitem>
4932<!--
4933Author: Tom Lane <tgl@sss.pgh.pa.us>
4934Branch: master [622ae4621] 2020-12-28 17:44:17 -0500
4935Branch: REL_13_STABLE [c1c88bf03] 2020-12-28 17:44:17 -0500
4936Branch: REL_12_STABLE [4cfdd8a47] 2020-12-28 17:44:17 -0500
4937-->
4938     <para>
4939      Fix assorted issues in server's support for GSS encryption (Tom Lane)
4940     </para>
4941
4942     <para>
4943      Remove pointless restriction that only GSS authentication
4944      can be used on a GSS-encrypted connection.
4945      Add GSS encryption information to connection-authorized log messages.
4946      Include GSS-related space when computing the required size of
4947      shared memory (this omission could have caused problems with very
4948      high <varname>max_connections</varname> settings).
4949      Avoid possible infinite recursion when reporting an unrecoverable
4950      GSS encryption error.
4951     </para>
4952    </listitem>
4953
4954    <listitem>
4955<!--
4956Author: Tom Lane <tgl@sss.pgh.pa.us>
4957Branch: master [7519bd16d] 2020-12-24 17:00:43 -0500
4958Branch: REL_13_STABLE [0217ad806] 2020-12-24 17:00:43 -0500
4959Branch: REL_12_STABLE [3d8068edc] 2020-12-24 17:00:43 -0500
4960Branch: REL_11_STABLE [b99b6b9d6] 2020-12-24 17:00:43 -0500
4961Branch: REL_10_STABLE [1a6b1c460] 2020-12-24 17:00:43 -0500
4962-->
4963     <para>
4964      Ensure that unserviced requests for background workers are cleaned
4965      up when the postmaster begins a <quote>smart</quote>
4966      or <quote>fast</quote> shutdown sequence (Tom Lane)
4967     </para>
4968
4969     <para>
4970      Previously, there was a race condition whereby a child process that
4971      had requested a background worker just before shutdown could wait
4972      indefinitely, preventing shutdown from completing.
4973     </para>
4974    </listitem>
4975
4976    <listitem>
4977<!--
4978Author: Michael Paquier <michael@paquier.xyz>
4979Branch: master [6db27037b] 2020-12-23 12:51:22 +0900
4980Branch: REL_13_STABLE [1e54664ee] 2020-12-23 12:51:35 +0900
4981Branch: REL_12_STABLE [67a9411d2] 2020-12-23 12:51:39 +0900
4982Branch: REL_11_STABLE [35ad5c7c7] 2020-12-23 12:51:42 +0900
4983Branch: REL_10_STABLE [f3ee99df7] 2020-12-23 12:51:46 +0900
4984Branch: REL9_6_STABLE [0b54a80a3] 2020-12-23 12:51:51 +0900
4985-->
4986     <para>
4987      Fix portability problem in parsing
4988      of <varname>recovery_target_xid</varname> values (Michael Paquier)
4989     </para>
4990
4991     <para>
4992      The target XID is potentially 64 bits wide, but it was parsed
4993      with <function>strtoul()</function>, causing misbehavior on
4994      platforms where <type>long</type> is 32 bits (such as Windows).
4995     </para>
4996    </listitem>
4997
4998    <listitem>
4999<!--
5000Author: Tom Lane <tgl@sss.pgh.pa.us>
5001Branch: master [275b3411d] 2020-11-30 14:38:00 -0500
5002Branch: REL_13_STABLE [fac31b2cd] 2020-11-30 14:38:00 -0500
5003Branch: REL_12_STABLE [16a1e1ea4] 2020-11-30 14:38:00 -0500
5004Branch: REL_11_STABLE [942e441ee] 2020-11-30 14:38:00 -0500
5005-->
5006     <para>
5007      Avoid trying to use parallel index build in a standalone backend
5008      (Yulin Pei)
5009     </para>
5010    </listitem>
5011
5012    <listitem>
5013<!--
5014Author: Tom Lane <tgl@sss.pgh.pa.us>
5015Branch: master [29d29d652] 2020-11-15 16:10:58 -0500
5016Branch: REL_13_STABLE [7c89246d0] 2020-11-15 16:10:48 -0500
5017Branch: REL_12_STABLE [4ac8ee9d4] 2020-11-15 16:10:48 -0500
5018Branch: REL_11_STABLE [9cebe4952] 2020-11-15 16:10:48 -0500
5019-->
5020     <para>
5021      Allow index AMs to support included columns without necessarily
5022      supporting multiple key columns (Tom Lane)
5023     </para>
5024    </listitem>
5025
5026    <listitem>
5027<!--
5028Author: Andrew Gierth <rhodiumtoad@postgresql.org>
5029Branch: master [a3367aa3c] 2021-01-28 10:53:10 +0000
5030Branch: REL_13_STABLE [75e3cca42] 2021-01-28 11:09:40 +0000
5031Branch: REL_12_STABLE [30f912a41] 2021-01-28 11:09:49 +0000
5032Branch: REL_11_STABLE [f7f2a28d4] 2021-01-28 11:09:57 +0000
5033-->
5034     <para>
5035      Avoid assertion failure during parallel aggregation of an
5036      aggregate with a non-strict deserialization function (Andrew Gierth)
5037     </para>
5038
5039     <para>
5040      No such aggregate functions exist in
5041      core <productname>PostgreSQL</productname>, but some extensions
5042      such as PostGIS provide some.  The mistake is harmless anyway in a
5043      non-assert build.
5044     </para>
5045    </listitem>
5046
5047    <listitem>
5048<!--
5049Author: Tom Lane <tgl@sss.pgh.pa.us>
5050Branch: master [07d46fceb] 2021-01-25 13:03:43 -0500
5051Branch: REL_13_STABLE [a26194f22] 2021-01-25 13:03:11 -0500
5052Branch: REL_12_STABLE [4641b2a30] 2021-01-25 13:03:11 -0500
5053Branch: REL_11_STABLE [a7cdd3f71] 2021-01-25 13:03:11 -0500
5054Branch: REL_10_STABLE [d09e8789f] 2021-01-25 13:03:11 -0500
5055Branch: REL9_6_STABLE [57a7d6f49] 2021-01-25 13:03:12 -0500
5056Branch: REL9_5_STABLE [41309f716] 2021-01-25 13:03:12 -0500
5057-->
5058     <para>
5059      Avoid assertion failure in <function>pg_get_functiondef()</function>
5060      when examining a function with a <literal>TRANSFORM</literal> option
5061      (Tom Lane)
5062     </para>
5063    </listitem>
5064
5065    <listitem>
5066<!--
5067Author: Tom Lane <tgl@sss.pgh.pa.us>
5068Branch: master [ea80d8d94] 2020-12-28 11:41:25 -0500
5069Branch: REL_13_STABLE [0ea25ed10] 2020-12-28 11:41:25 -0500
5070Branch: REL_12_STABLE [fd1347f9d] 2020-12-28 11:41:25 -0500
5071Branch: REL_11_STABLE [2e15f48d9] 2020-12-28 11:41:25 -0500
5072Branch: master [5f2e09bcc] 2020-12-28 11:55:23 -0500
5073Branch: REL_13_STABLE [63d78d106] 2020-12-28 11:55:32 -0500
5074Branch: REL_12_STABLE [d37965965] 2020-12-28 11:55:37 -0500
5075Branch: REL_11_STABLE [7966b41de] 2020-12-28 11:55:41 -0500
5076-->
5077     <para>
5078      Fix data structure misallocation in
5079      PL/pgSQL's <command>CALL</command> statement (Tom Lane)
5080     </para>
5081
5082     <para>
5083      A <command>CALL</command> in a PL/pgSQL procedure, to another
5084      procedure that has OUT parameters, would fail if the called
5085      procedure did a <command>COMMIT</command>
5086      or <command>ROLLBACK</command>.
5087     </para>
5088    </listitem>
5089
5090    <listitem>
5091<!--
5092Author: Tom Lane <tgl@sss.pgh.pa.us>
5093Branch: master [ff6ce9a3a] 2020-12-28 15:43:44 -0500
5094Branch: REL_13_STABLE [06b844c2b] 2020-12-28 15:43:44 -0500
5095Branch: REL_12_STABLE [b3a5bf719] 2020-12-28 15:43:44 -0500
5096-->
5097     <para>
5098      In <application>libpq</application>, do not skip trying SSL after
5099      GSS encryption (Tom Lane)
5100     </para>
5101
5102     <para>
5103      If we successfully made a GSS-encrypted connection, but then failed
5104      during authentication, we would fall back to an unencrypted
5105      connection rather than next trying an SSL-encrypted connection.
5106      This could lead to unexpected connection failure, or to silently
5107      getting an unencrypted connection where an encrypted one is
5108      expected.  Fortunately, GSS encryption could only succeed if both
5109      client and server hold valid tickets in the same Kerberos
5110      infrastructure.  It seems unlikely for that to be true in an
5111      environment that requires SSL encryption instead.
5112     </para>
5113    </listitem>
5114
5115    <listitem>
5116<!--
5117Author: Tom Lane <tgl@sss.pgh.pa.us>
5118Branch: master [7e5e1bba0] 2020-11-29 15:22:04 -0500
5119Branch: REL_13_STABLE [72b930f50] 2020-11-29 15:22:04 -0500
5120Branch: REL_12_STABLE [3958abdad] 2020-11-29 15:22:04 -0500
5121Branch: REL_11_STABLE [777ac03a6] 2020-11-29 15:22:04 -0500
5122Branch: REL_10_STABLE [946277fd4] 2020-11-29 15:22:04 -0500
5123Branch: REL9_6_STABLE [3f59a05f0] 2020-11-29 15:22:04 -0500
5124Branch: REL9_5_STABLE [e2d5de150] 2020-11-29 15:22:04 -0500
5125-->
5126     <para>
5127      In <application>psql</application>, re-allow including a password
5128      in a <replaceable>connection_string</replaceable> argument of a
5129      <command>\connect</command> command (Tom Lane)
5130     </para>
5131
5132     <para>
5133      This used to work, but a recent bug fix caused the password to be
5134      ignored (resulting in prompting for a password).
5135     </para>
5136    </listitem>
5137
5138    <listitem>
5139<!--
5140Author: Tom Lane <tgl@sss.pgh.pa.us>
5141Branch: master [314fb9bae] 2020-11-25 16:19:25 -0500
5142Branch: REL_13_STABLE [a0ef08172] 2020-11-25 16:19:25 -0500
5143Branch: REL_12_STABLE [ea7a167da] 2020-11-25 16:19:25 -0500
5144-->
5145     <para>
5146      In <application>psql</application>'s <command>\d</command> commands,
5147      don't truncate the display of column default values (Tom Lane)
5148     </para>
5149
5150     <para>
5151      Formerly, they were arbitrarily truncated at 128 characters.
5152     </para>
5153    </listitem>
5154
5155    <listitem>
5156<!--
5157Author: Tom Lane <tgl@sss.pgh.pa.us>
5158Branch: master [f76a85000] 2021-01-26 13:04:52 -0500
5159Branch: REL_13_STABLE [64bdb6e5f] 2021-01-26 13:04:52 -0500
5160Branch: REL_12_STABLE [82f97d33f] 2021-01-26 13:04:52 -0500
5161Branch: REL_11_STABLE [3fa7b9078] 2021-01-26 13:04:52 -0500
5162Branch: REL_10_STABLE [564cb2579] 2021-01-26 13:04:52 -0500
5163Branch: REL9_6_STABLE [2c2e134b7] 2021-01-26 13:04:52 -0500
5164Branch: REL9_5_STABLE [131825cd5] 2021-01-26 13:04:52 -0500
5165-->
5166     <para>
5167      Fix assorted bugs
5168      in <application>psql</application>'s <command>\help</command>
5169      command (Kyotaro Horiguchi, Tom Lane)
5170     </para>
5171
5172     <para>
5173      <command>\help</command> with two argument words failed to find a
5174      command description using only the first word, for
5175      example <literal>\help reset all</literal> should show the help
5176      for <command>RESET</command> but did not.
5177      Also, <command>\help</command> often failed to invoke the pager when
5178      it should.  It also leaked memory.
5179     </para>
5180    </listitem>
5181
5182    <listitem>
5183<!--
5184Author: Peter Eisentraut <peter@eisentraut.org>
5185Branch: master [0bf83648a] 2021-02-03 11:27:13 +0100
5186Branch: REL_13_STABLE [1d3ce0223] 2021-02-03 11:43:01 +0100
5187Branch: REL_12_STABLE [1dd6baf78] 2021-02-03 11:58:15 +0100
5188-->
5189     <para>
5190      Fix <application>pg_dump</application>'s dumping of inherited
5191      generated columns (Peter Eisentraut)
5192     </para>
5193
5194     <para>
5195      The previous behavior resulted in (harmless) errors during restore.
5196     </para>
5197    </listitem>
5198
5199    <listitem>
5200<!--
5201Author: Tom Lane <tgl@sss.pgh.pa.us>
5202Branch: master [9eabfe300] 2021-01-12 13:37:38 -0500
5203Branch: REL_13_STABLE [0011c5a0f] 2021-01-12 13:37:38 -0500
5204Branch: REL_12_STABLE [436d9c5ca] 2021-01-12 13:37:38 -0500
5205Branch: REL_11_STABLE [9f15188a1] 2021-01-12 13:37:38 -0500
5206Branch: master [8e396a773] 2021-01-14 16:19:38 -0500
5207Branch: REL_13_STABLE [79d3ac72f] 2021-01-14 16:19:38 -0500
5208Branch: REL_12_STABLE [0d221ecec] 2021-01-14 16:19:38 -0500
5209Branch: REL_11_STABLE [bb12a7f42] 2021-01-14 16:19:38 -0500
5210Branch: REL_10_STABLE [1c9791f66] 2021-01-14 16:19:38 -0500
5211-->
5212     <para>
5213      In <application>pg_dump</application>, ensure that the restore
5214      script runs <command>ALTER PUBLICATION ADD TABLE</command> commands
5215      as the owner of the publication, and similarly runs <command>ALTER
5216      INDEX ATTACH PARTITION</command> commands as the owner of the
5217      partitioned index (Tom Lane)
5218     </para>
5219
5220     <para>
5221      Previously, these commands would be run by the role that started the
5222      restore script; which will usually work, but in corner cases that
5223      role might not have adequate permissions.
5224     </para>
5225    </listitem>
5226
5227    <listitem>
5228<!--
5229Author: Noah Misch <noah@leadboat.com>
5230Branch: master [f713ff7c6] 2021-01-16 12:21:35 -0800
5231Branch: REL_13_STABLE [b8daf894f] 2021-01-16 12:21:38 -0800
5232Branch: REL_12_STABLE [a0d31b1c9] 2021-01-16 12:21:39 -0800
5233Branch: REL_11_STABLE [c6ff165f9] 2021-01-16 12:21:39 -0800
5234Branch: REL_10_STABLE [b933c9c0b] 2021-01-16 12:21:39 -0800
5235Branch: REL9_6_STABLE [ad2b7c9bb] 2021-01-16 12:21:39 -0800
5236-->
5237     <para>
5238      Fix <application>pg_dump</application> to handle <literal>WITH
5239      GRANT OPTION</literal> in an extension's initial privileges
5240      (Noah Misch)
5241     </para>
5242
5243     <para>
5244      If an extension's script creates an object and grants privileges
5245      on it with grant option, then later the user revokes such
5246      privileges, <application>pg_dump</application> would generate
5247      incorrect SQL for reproducing the situation.  (Few if any extensions
5248      do this today.)
5249     </para>
5250    </listitem>
5251
5252    <listitem>
5253<!--
5254Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5255Branch: master [2b4f31303] 2020-12-03 15:57:48 +0200
5256Branch: REL_13_STABLE [abd0abfb7] 2020-12-03 15:57:52 +0200
5257Branch: REL_12_STABLE [020f153db] 2020-12-03 15:57:54 +0200
5258Branch: REL_11_STABLE [63e316f0b] 2020-12-03 15:57:57 +0200
5259Branch: REL_10_STABLE [8b5c353ec] 2020-12-03 15:58:00 +0200
5260Branch: REL9_6_STABLE [0740857de] 2020-12-03 15:58:02 +0200
5261Branch: REL9_5_STABLE [81e3c868f] 2020-12-03 15:58:06 +0200
5262Branch: master [36a4ac20f] 2020-12-04 18:26:46 +0200
5263Branch: REL_13_STABLE [e41a2efbc] 2020-12-04 18:24:34 +0200
5264Branch: REL_12_STABLE [ad3fb04b9] 2020-12-04 18:24:57 +0200
5265Branch: REL_11_STABLE [cda50f211] 2020-12-04 18:25:12 +0200
5266Branch: REL_10_STABLE [45d363145] 2020-12-04 18:25:23 +0200
5267Branch: REL9_6_STABLE [a075c84f2] 2020-12-04 18:25:45 +0200
5268Branch: REL9_5_STABLE [1dd608bba] 2020-12-04 18:25:54 +0200
5269Branch: master [6ba581cf1] 2020-12-07 14:50:20 +0200
5270Branch: REL_13_STABLE [e6dc04d43] 2020-12-07 14:50:37 +0200
5271Branch: REL_12_STABLE [98f8cdd48] 2020-12-07 14:55:22 +0200
5272Branch: REL_11_STABLE [10d9c9d03] 2020-12-07 14:55:23 +0200
5273Branch: REL_10_STABLE [d137b14c3] 2020-12-07 14:55:25 +0200
5274Branch: REL9_6_STABLE [3ea8e660c] 2020-12-07 14:55:27 +0200
5275Branch: REL9_5_STABLE [beb6b45ab] 2020-12-07 14:55:28 +0200
5276-->
5277     <para>
5278      In <application>pg_rewind</application>, ensure that all WAL is
5279      accounted for when rewinding a standby server
5280      (Ian Barwick, Heikki Linnakangas)
5281     </para>
5282    </listitem>
5283
5284    <listitem>
5285<!--
5286Author: Tom Lane <tgl@sss.pgh.pa.us>
5287Branch: master [c21ea4d53] 2021-01-13 14:52:59 -0500
5288Branch: REL_13_STABLE [6b045ca6c] 2021-01-13 14:52:49 -0500
5289Branch: REL_12_STABLE [3e214fafc] 2021-01-13 14:52:49 -0500
5290Branch: REL_11_STABLE [d8bb22ab3] 2021-01-13 14:52:49 -0500
5291-->
5292     <para>
5293      In <application>pgbench</application>, disallow a digit as the first
5294      character of a variable name (Fabien Coelho)
5295     </para>
5296
5297     <para>
5298      This prevents trying to substitute variables into timestamp literal
5299      values, which may contain strings like <literal>12:34</literal>.
5300     </para>
5301    </listitem>
5302
5303    <listitem>
5304<!--
5305Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5306Branch: REL_13_STABLE [f17e8f33f] 2021-01-26 16:42:13 -0300
5307Branch: REL_12_STABLE [fdf9d0054] 2021-01-26 16:42:13 -0300
5308Branch: REL_11_STABLE [fdd405c63] 2021-01-26 16:42:13 -0300
5309Branch: REL_10_STABLE [11a708f81] 2021-01-26 16:42:13 -0300
5310Branch: REL9_6_STABLE [bcae842b9] 2021-01-26 16:42:13 -0300
5311Branch: REL9_5_STABLE [f2dc96236] 2021-01-26 16:42:13 -0300
5312-->
5313     <para>
5314      Report the correct database name in connection failure error
5315      messages from some client programs (&Aacute;lvaro Herrera)
5316     </para>
5317
5318     <para>
5319      If the database name was defaulted rather than given on the command
5320      line, <application>pg_dumpall</application>,
5321      <application>pgbench</application>, <application>oid2name</application>,
5322      and <application>vacuumlo</application> would produce misleading
5323      error messages after a connection failure.
5324     </para>
5325    </listitem>
5326
5327    <listitem>
5328<!--
5329Author: Tom Lane <tgl@sss.pgh.pa.us>
5330Branch: master [5c0f7cc54] 2021-02-02 13:49:08 -0500
5331Branch: REL_13_STABLE [586891394] 2021-02-02 13:49:08 -0500
5332Branch: REL_12_STABLE [742846958] 2021-02-02 13:49:08 -0500
5333Branch: REL_11_STABLE [5fc5ff61c] 2021-02-02 13:49:08 -0500
5334Branch: REL_10_STABLE [2671125c7] 2021-02-02 13:49:08 -0500
5335Branch: REL9_6_STABLE [608cf2bfd] 2021-02-02 13:49:08 -0500
5336Branch: REL9_5_STABLE [f0f9ed68d] 2021-02-02 13:49:08 -0500
5337-->
5338     <para>
5339      Fix memory leak in <filename>contrib/auto_explain</filename>
5340      (Japin Li)
5341     </para>
5342
5343     <para>
5344      Memory consumed while producing the <literal>EXPLAIN</literal>
5345      output was not freed until the end of the current transaction (for a
5346      top-level statement) or the end of the surrounding statement (for a
5347      nested statement).  This was particularly a problem
5348      with <varname>log_nested_statements</varname> enabled.
5349     </para>
5350    </listitem>
5351
5352    <listitem>
5353<!--
5354Author: Fujii Masao <fujii@postgresql.org>
5355Branch: master [e3ebcca84] 2020-12-28 19:56:13 +0900
5356Branch: REL_13_STABLE [546f14374] 2020-12-28 19:57:51 +0900
5357Branch: REL_12_STABLE [e792ca4ac] 2020-12-28 19:59:00 +0900
5358Branch: REL_11_STABLE [294cdd7d0] 2020-12-28 19:59:40 +0900
5359Branch: REL_10_STABLE [744357d84] 2020-12-28 20:00:15 +0900
5360Branch: REL9_6_STABLE [03b7a1ee7] 2020-12-28 20:00:54 +0900
5361Branch: REL9_5_STABLE [b5c73eef8] 2020-12-28 20:01:31 +0900
5362-->
5363     <para>
5364      In <filename>contrib/postgres_fdw</filename>, avoid leaking open
5365      connections to remote servers when a user mapping or foreign server
5366      object is dropped (Bharath Rupireddy)
5367     </para>
5368
5369     <para>
5370      Open connections that depend on a dropped user mapping or foreign
5371      server can no longer be referenced, but formerly they were kept
5372      around anyway for the duration of the local session.
5373     </para>
5374    </listitem>
5375
5376    <listitem>
5377<!--
5378Author: Michael Paquier <michael@paquier.xyz>
5379Branch: master [28d1601ad] 2020-12-08 15:22:12 +0900
5380Branch: REL_13_STABLE [dfd8bf2b9] 2020-12-08 15:22:38 +0900
5381Branch: REL_12_STABLE [d7ecba937] 2020-12-08 15:22:43 +0900
5382Branch: REL_11_STABLE [b88afd8b6] 2020-12-08 15:22:48 +0900
5383Branch: REL_10_STABLE [5ba1df0f1] 2020-12-08 15:22:53 +0900
5384Branch: REL9_6_STABLE [95992e5ed] 2020-12-08 15:22:59 +0900
5385Branch: REL9_5_STABLE [f95d9fd81] 2020-12-08 15:23:02 +0900
5386-->
5387     <para>
5388      In <filename>contrib/pgcrypto</filename>, check for error returns
5389      from OpenSSL's EVP functions (Michael Paquier)
5390     </para>
5391
5392     <para>
5393      We do not really expect errors here, but this change silences
5394      warnings from static analysis tools.
5395     </para>
5396    </listitem>
5397
5398    <listitem>
5399<!--
5400Author: Tom Lane <tgl@sss.pgh.pa.us>
5401Branch: master [ff769831e] 2020-12-22 13:23:49 -0500
5402Branch: REL_13_STABLE [4b0292253] 2020-12-22 13:23:49 -0500
5403Branch: REL_12_STABLE [f581e5383] 2020-12-22 13:23:49 -0500
5404Branch: REL_11_STABLE [a1bd14d54] 2020-12-22 13:23:49 -0500
5405-->
5406     <para>
5407      Make <filename>contrib/pg_prewarm</filename> more robust when the
5408      cluster is shut down before prewarming is complete (Tom Lane)
5409     </para>
5410
5411     <para>
5412      Previously, autoprewarm would rewrite its status file with only the
5413      block numbers that it had managed to load so far, thus perhaps
5414      largely disabling the prewarm functionality in the next startup.
5415      Instead, suppress status file updates until the initial loading pass
5416      is complete.
5417     </para>
5418    </listitem>
5419
5420    <listitem>
5421<!--
5422Author: Andrew Gierth <rhodiumtoad@postgresql.org>
5423Branch: master [3836d4b64] 2020-11-12 14:34:37 +0000
5424Branch: REL_13_STABLE [48ab1fa30] 2020-11-12 14:59:06 +0000
5425Branch: REL_12_STABLE [7f69ed4ae] 2020-11-12 14:56:58 +0000
5426Branch: REL_11_STABLE [7e3dc147d] 2020-11-12 14:57:04 +0000
5427Branch: REL_10_STABLE [068de9dd4] 2020-11-12 14:57:08 +0000
5428Branch: REL9_6_STABLE [245a35f96] 2020-11-12 14:57:13 +0000
5429Branch: REL9_5_STABLE [4b212b7c8] 2020-11-12 14:55:51 +0000
5430-->
5431     <para>
5432      In <filename>contrib/pg_trgm</filename>'s GiST index support, avoid
5433      crash in the rare case that picksplit is called on exactly two index
5434      items (Andrew Gierth, Alexander Korotkov)
5435     </para>
5436    </listitem>
5437
5438    <listitem>
5439<!--
5440Author: Tom Lane <tgl@sss.pgh.pa.us>
5441Branch: master [ec29427ce] 2020-11-10 22:51:54 -0500
5442Branch: REL_13_STABLE [afce7908d] 2020-11-10 22:51:55 -0500
5443Branch: REL_12_STABLE [171c457cd] 2020-11-10 22:51:55 -0500
5444Branch: REL_11_STABLE [3a89ea0eb] 2020-11-10 22:51:56 -0500
5445Branch: REL_10_STABLE [e87139b43] 2020-11-10 22:51:57 -0500
5446Branch: REL9_6_STABLE [cd39c23a2] 2020-11-10 22:51:57 -0500
5447Branch: REL9_5_STABLE [210564a74] 2020-11-10 22:51:58 -0500
5448-->
5449     <para>
5450      Fix miscalculation of timeouts
5451      in <filename>contrib/pg_prewarm</filename>
5452      and <filename>contrib/postgres_fdw</filename>
5453      (Alexey Kondratov, Tom Lane)
5454     </para>
5455
5456     <para>
5457      The main loop in <filename>contrib/pg_prewarm</filename>'s
5458      autoprewarm parent process underestimated its desired sleep time by
5459      a factor of 1000, causing it to consume much more CPU than intended.
5460      When waiting for a result from a remote
5461      server, <filename>contrib/postgres_fdw</filename> overestimated the
5462      desired timeout by a factor of 1000 (though this error had been
5463      mitigated by imposing a clamp to 60 seconds).
5464     </para>
5465
5466     <para>
5467      Both of these errors stemmed from incorrectly converting
5468      seconds-and-microseconds to milliseconds.  Introduce a new
5469      API <function>TimestampDifferenceMilliseconds()</function>
5470      to make it easier to get this right in the future.
5471     </para>
5472    </listitem>
5473
5474    <listitem>
5475<!--
5476Author: Tom Lane <tgl@sss.pgh.pa.us>
5477Branch: master [4823621db] 2021-01-15 11:28:51 -0500
5478Branch: REL_13_STABLE [f44ae4db5] 2021-01-15 11:29:05 -0500
5479Branch: REL_12_STABLE [f5d044eae] 2021-01-15 11:29:13 -0500
5480Branch: REL_11_STABLE [046c8face] 2021-01-15 11:29:18 -0500
5481Branch: REL_10_STABLE [5fa060c8f] 2021-01-15 11:29:26 -0500
5482Branch: REL9_6_STABLE [fc6d08b27] 2021-01-15 11:29:34 -0500
5483Branch: REL9_5_STABLE [3934543c2] 2021-01-15 11:29:43 -0500
5484Branch: master [9d23c15a0] 2021-01-20 12:07:23 -0500
5485Branch: REL_13_STABLE [6671e8194] 2021-01-20 12:07:31 -0500
5486Branch: REL_12_STABLE [561dd8d8a] 2021-01-20 12:07:35 -0500
5487Branch: REL_11_STABLE [cbcff1729] 2021-01-20 12:07:41 -0500
5488Branch: REL_10_STABLE [a3345383d] 2021-01-20 12:07:46 -0500
5489Branch: REL9_6_STABLE [cbcf7b130] 2021-01-20 12:07:52 -0500
5490Branch: REL9_5_STABLE [175f716a8] 2021-01-20 12:07:57 -0500
5491-->
5492     <para>
5493      Improve <application>configure</application>'s heuristics for
5494      selecting <varname>PG_SYSROOT</varname> on macOS (Tom Lane)
5495     </para>
5496
5497     <para>
5498      The new method is more likely to produce desirable results when
5499      Xcode is newer than the underlying operating system.  Choosing
5500      a sysroot that does not match the OS version may result in
5501      nonfunctional executables.
5502     </para>
5503    </listitem>
5504
5505    <listitem>
5506<!--
5507Author: Tom Lane <tgl@sss.pgh.pa.us>
5508Branch: master [49407dc32] 2020-11-20 00:07:09 -0500
5509Branch: REL_13_STABLE [9e9a31bd0] 2020-11-20 00:58:26 -0500
5510Branch: REL_12_STABLE [5b8360427] 2020-11-20 00:58:26 -0500
5511Branch: REL_11_STABLE [d01e37845] 2020-11-20 00:58:26 -0500
5512Branch: REL_10_STABLE [153bf8d20] 2020-11-20 00:58:26 -0500
5513Branch: REL9_6_STABLE [e7abc1111] 2020-11-20 00:58:26 -0500
5514Branch: REL9_5_STABLE [2bb8c0f1d] 2020-11-20 00:58:26 -0500
5515-->
5516     <para>
5517      While building on macOS, specify <option>-isysroot</option> in
5518      link steps as well as compile steps (James Hilliard)
5519     </para>
5520
5521     <para>
5522      This likewise improves the results when Xcode is out of sync with
5523      the operating system.
5524     </para>
5525    </listitem>
5526
5527    <listitem>
5528<!--
5529Author: Andres Freund <andres@anarazel.de>
5530Branch: master [9543f0861] 2020-12-07 19:34:13 -0800
5531Branch: REL_13_STABLE [4f64daf73] 2020-12-07 18:32:56 -0800
5532Branch: REL_12_STABLE [b07490b91] 2020-12-07 18:39:32 -0800
5533Branch: REL_11_STABLE [f4f924b3e] 2020-12-07 18:40:27 -0800
5534Branch: master [6c57f2ed1] 2020-11-09 20:01:33 -0800
5535Branch: REL_13_STABLE [6a192c77d] 2020-12-07 18:32:32 -0800
5536Branch: REL_12_STABLE [fa7a52fb9] 2020-12-07 18:39:32 -0800
5537Branch: REL_11_STABLE [90eb343ef] 2020-12-07 18:40:27 -0800
5538-->
5539     <para>
5540      Fix JIT compilation to be compatible with LLVM 11 and LLVM 12
5541      (Andres Freund)
5542     </para>
5543    </listitem>
5544
5545    <listitem>
5546<!--
5547Author: Andres Freund <andres@anarazel.de>
5548Branch: master [5da871bfa] 2020-12-07 19:34:13 -0800
5549Branch: REL_13_STABLE [01c6370a3] 2020-12-07 18:33:03 -0800
5550Branch: REL_12_STABLE [27b57f806] 2020-12-07 18:39:32 -0800
5551Branch: REL_11_STABLE [1e16ad101] 2020-12-07 18:40:27 -0800
5552-->
5553     <para>
5554      Fix potential mishandling of references to boolean variables in
5555      JIT expression compilation (Andres Freund)
5556     </para>
5557
5558     <para>
5559      No field reports attributable to this have been seen, but it seems
5560      likely that it could cause problems on some architectures.
5561     </para>
5562    </listitem>
5563
5564    <listitem>
5565<!--
5566Author: Tom Lane <tgl@sss.pgh.pa.us>
5567Branch: master [ad84ecc98] 2020-11-16 15:16:39 -0500
5568Branch: REL_13_STABLE [53c7b4f62] 2020-11-16 15:16:39 -0500
5569Branch: REL_12_STABLE [029fa664e] 2020-11-16 15:16:39 -0500
5570Branch: REL_11_STABLE [89aa30a17] 2020-11-16 15:16:39 -0500
5571-->
5572     <para>
5573      Fix compile failure with ICU 68 and later (Tom Lane)
5574     </para>
5575    </listitem>
5576
5577    <listitem>
5578<!--
5579Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5580Branch: master [677f74e5b] 2020-12-01 11:46:56 -0300
5581Branch: REL_13_STABLE [5a1d1b954] 2020-12-01 11:46:56 -0300
5582Branch: REL_12_STABLE [f0ff52f25] 2020-12-01 11:46:56 -0300
5583Branch: REL_11_STABLE [49aaabdf8] 2020-12-01 11:46:56 -0300
5584-->
5585     <para>
5586      Avoid <function>memcpy()</function> with a NULL source pointer and
5587      zero count during partitioned index creation (&Aacute;lvaro Herrera)
5588     </para>
5589
5590     <para>
5591      While such a call is not known to cause problems in itself, some
5592      compilers assume that the arguments of <function>memcpy()</function>
5593      are never NULL, which could result in incorrect optimization of
5594      nearby code.
5595     </para>
5596    </listitem>
5597
5598    <listitem>
5599<!--
5600Author: Tom Lane <tgl@sss.pgh.pa.us>
5601Branch: master [c7edf4ac2] 2021-01-24 16:29:47 -0500
5602Branch: REL_13_STABLE [58a545344] 2021-01-24 16:29:47 -0500
5603Branch: REL_12_STABLE [5db6ba303] 2021-01-24 16:29:47 -0500
5604Branch: REL_11_STABLE [c82c015b5] 2021-01-24 16:29:47 -0500
5605Branch: REL_10_STABLE [728971d5f] 2021-01-24 16:29:48 -0500
5606Branch: REL9_6_STABLE [7e0786751] 2021-01-24 16:29:48 -0500
5607Branch: REL9_5_STABLE [c26a0865d] 2021-01-24 16:29:48 -0500
5608-->
5609     <para>
5610      Update time zone data files to <application>tzdata</application>
5611      release 2021a for DST law changes in Russia (Volgograd zone) and
5612      South Sudan, plus historical corrections for Australia, Bahamas,
5613      Belize, Bermuda, Ghana, Israel, Kenya, Nigeria, Palestine,
5614      Seychelles, and Vanuatu.
5615     </para>
5616
5617     <para>
5618      Notably, the Australia/Currie zone has been corrected to the point
5619      where it is identical to Australia/Hobart.
5620     </para>
5621    </listitem>
5622
5623   </itemizedlist>
5624
5625  </sect2>
5626 </sect1>
5627
5628 <sect1 id="release-12-5">
5629  <title>Release 12.5</title>
5630
5631  <formalpara>
5632  <title>Release date:</title>
5633  <para>2020-11-12</para>
5634  </formalpara>
5635
5636  <para>
5637   This release contains a variety of fixes from 12.4.
5638   For information about new features in major release 12, see
5639   <xref linkend="release-12"/>.
5640  </para>
5641
5642  <sect2>
5643   <title>Migration to Version 12.5</title>
5644
5645   <para>
5646    A dump/restore is not required for those running 12.X.
5647   </para>
5648
5649   <para>
5650    However, if you are upgrading from a version earlier than 12.2,
5651    see <xref linkend="release-12-2"/>.
5652   </para>
5653  </sect2>
5654
5655  <sect2>
5656   <title>Changes</title>
5657
5658   <itemizedlist>
5659
5660    <listitem>
5661<!--
5662Author: Noah Misch <noah@leadboat.com>
5663Branch: master [0c3185e96] 2020-11-09 07:32:09 -0800
5664Branch: REL_13_STABLE [c90c84b3f] 2020-11-09 07:32:12 -0800
5665Branch: REL_12_STABLE [ac8f6243c] 2020-11-09 07:32:12 -0800
5666Branch: REL_11_STABLE [43ebfea5a] 2020-11-09 07:32:13 -0800
5667Branch: REL_10_STABLE [f97ecea1e] 2020-11-09 07:32:13 -0800
5668Branch: REL9_6_STABLE [ff3de4c21] 2020-11-09 07:32:13 -0800
5669Branch: REL9_5_STABLE [aefc625de] 2020-11-09 07:32:14 -0800
5670-->
5671     <para>
5672      Block <command>DECLARE CURSOR ... WITH HOLD</command> and firing of
5673      deferred triggers within index expressions and materialized view
5674      queries (Noah Misch)
5675     </para>
5676
5677     <para>
5678      This is essentially a leak in the <quote>security restricted
5679      operation</quote> sandbox mechanism.  An attacker having permission
5680      to create non-temporary SQL objects could parlay this leak to
5681      execute arbitrary SQL code as a superuser.
5682     </para>
5683
5684     <para>
5685      The <productname>PostgreSQL</productname> Project thanks
5686      Etienne Stalmans for reporting this problem.
5687      (CVE-2020-25695)
5688     </para>
5689    </listitem>
5690
5691    <listitem>
5692<!--
5693Author: Tom Lane <tgl@sss.pgh.pa.us>
5694Branch: master [a45bc8a4f] 2020-09-24 18:19:38 -0400
5695Branch: REL_13_STABLE [cb8885ac4] 2020-09-24 18:19:38 -0400
5696Branch: REL_12_STABLE [fb93f784f] 2020-09-24 18:19:38 -0400
5697Branch: REL_11_STABLE [1738a61c8] 2020-09-24 18:19:39 -0400
5698Branch: REL_10_STABLE [1888ff8d0] 2020-09-24 18:19:39 -0400
5699Branch: REL9_6_STABLE [7c154f2fd] 2020-09-24 18:19:39 -0400
5700Branch: REL9_5_STABLE [56b46d3a1] 2020-09-24 18:19:39 -0400
5701Branch: master [8e5793ab6] 2020-10-19 19:03:46 -0400
5702Branch: REL_13_STABLE [1814f915b] 2020-10-19 19:03:46 -0400
5703Branch: REL_12_STABLE [c6d0b9b16] 2020-10-19 19:03:46 -0400
5704Branch: REL_11_STABLE [5a9f99bed] 2020-10-19 19:03:47 -0400
5705Branch: REL_10_STABLE [68f236993] 2020-10-19 19:03:47 -0400
5706Branch: REL9_6_STABLE [5c78f7977] 2020-10-19 19:03:47 -0400
5707Branch: REL9_5_STABLE [da129a04a] 2020-10-19 19:03:47 -0400
5708-->
5709     <para>
5710      Fix usage of complex connection-string parameters
5711      in <application>pg_dump</application>,
5712      <application>pg_restore</application>,
5713      <application>clusterdb</application>,
5714      <application>reindexdb</application>,
5715      and <application>vacuumdb</application> (Tom Lane)
5716     </para>
5717
5718     <para>
5719      The <option>-d</option> parameter
5720      of <application>pg_dump</application>
5721      and <application>pg_restore</application>, or
5722      the <option>--maintenance-db</option> parameter of the other
5723      programs mentioned, can be a <quote>connection string</quote>
5724      containing multiple connection parameters rather than just a
5725      database name.  In cases where these programs need to initiate
5726      additional connections, such as parallel processing or processing of
5727      multiple databases, the connection string was forgotten and just the
5728      basic connection parameters (database name, host, port, and
5729      username) were used for the additional connections.  This could lead
5730      to connection failures if the connection string included any other
5731      essential information, such as non-default SSL or GSS parameters.
5732      Worse, the connection might succeed but not be encrypted as
5733      intended, or be vulnerable to man-in-the-middle attacks that the
5734      intended connection parameters would have prevented.
5735      (CVE-2020-25694)
5736     </para>
5737    </listitem>
5738
5739    <listitem>
5740<!--
5741Author: Tom Lane <tgl@sss.pgh.pa.us>
5742Branch: master [85c54287a] 2020-10-21 16:19:00 -0400
5743Branch: REL_13_STABLE [2e4af4110] 2020-10-21 16:19:00 -0400
5744Branch: REL_12_STABLE [f656517ec] 2020-10-21 16:19:01 -0400
5745Branch: REL_11_STABLE [20be76d5c] 2020-10-21 16:19:01 -0400
5746Branch: REL_10_STABLE [8175da6e7] 2020-10-21 16:19:02 -0400
5747Branch: REL9_6_STABLE [870a23230] 2020-10-21 16:18:41 -0400
5748Branch: REL9_5_STABLE [6997da09a] 2020-10-21 16:18:41 -0400
5749-->
5750     <para>
5751      When <application>psql</application>'s <command>\connect</command>
5752      command re-uses connection parameters, ensure that all
5753      non-overridden parameters from a previous connection string are
5754      re-used (Tom Lane)
5755     </para>
5756
5757     <para>
5758      This avoids cases where reconnection might fail due to omission of
5759      relevant parameters, such as non-default SSL or GSS options.
5760      Worse, the reconnection might succeed but not be encrypted as
5761      intended, or be vulnerable to man-in-the-middle attacks that the
5762      intended connection parameters would have prevented.
5763      This is largely the same problem as just cited
5764      for <application>pg_dump</application> et al,
5765      although <application>psql</application>'s behavior is more complex
5766      since the user may intentionally override some connection
5767      parameters.
5768      (CVE-2020-25694)
5769     </para>
5770    </listitem>
5771
5772    <listitem>
5773<!--
5774Author: Noah Misch <noah@leadboat.com>
5775Branch: master [098fb0079] 2020-11-09 07:32:09 -0800
5776Branch: REL_13_STABLE [67029845b] 2020-11-09 07:32:12 -0800
5777Branch: REL_12_STABLE [3855e5b47] 2020-11-09 07:32:13 -0800
5778Branch: REL_11_STABLE [7b356c78f] 2020-11-09 07:32:13 -0800
5779Branch: REL_10_STABLE [a498db87b] 2020-11-09 07:32:13 -0800
5780Branch: REL9_6_STABLE [12fd81cb7] 2020-11-09 07:32:14 -0800
5781Branch: REL9_5_STABLE [a54dfbee1] 2020-11-09 07:32:14 -0800
5782-->
5783     <para>
5784      Prevent <application>psql</application>'s <command>\gset</command>
5785      command from modifying specially-treated variables (Noah Misch)
5786     </para>
5787
5788     <para>
5789      <command>\gset</command> without a prefix would overwrite whatever
5790      variables the server told it to.  Thus, a compromised server could
5791      set specially-treated variables such as <varname>PROMPT1</varname>,
5792      giving the ability to execute arbitrary shell code in the user's
5793      session.
5794     </para>
5795
5796     <para>
5797      The <productname>PostgreSQL</productname> Project thanks
5798      Nick Cleaton for reporting this problem.
5799      (CVE-2020-25696)
5800     </para>
5801    </listitem>
5802
5803    <listitem>
5804<!--
5805Author: Noah Misch <noah@leadboat.com>
5806Branch: master [566372b3d] 2020-08-15 10:15:53 -0700
5807Branch: REL_13_STABLE Release: REL_13_0 [592a589a0] 2020-08-15 10:15:56 -0700
5808Branch: REL_12_STABLE [30e68a2ab] 2020-08-15 10:15:56 -0700
5809Branch: REL_11_STABLE [d4031d784] 2020-08-15 10:15:57 -0700
5810Branch: REL_10_STABLE [e525770dd] 2020-08-15 10:15:57 -0700
5811Branch: REL9_6_STABLE [5ae01df6f] 2020-08-15 10:15:57 -0700
5812Branch: REL9_5_STABLE [3fbbf64ce] 2020-08-15 10:15:57 -0700
5813Branch: REL_12_STABLE [06e50d8f7] 2020-08-15 16:15:59 -0700
5814Branch: REL_11_STABLE [6af0b12a5] 2020-08-15 16:16:15 -0700
5815Branch: REL_10_STABLE [e8e44e890] 2020-08-15 16:16:29 -0700
5816Branch: REL9_6_STABLE [85aa22cb1] 2020-08-15 16:16:34 -0700
5817Branch: REL9_5_STABLE [d8a22a387] 2020-08-15 16:16:42 -0700
5818-->
5819     <para>
5820      Prevent possible data loss from concurrent truncations of SLRU logs
5821      (Noah Misch)
5822     </para>
5823
5824     <para>
5825      This rare problem would manifest in later <quote>apparent
5826      wraparound</quote> or <quote>could not access status of
5827      transaction</quote> errors.
5828     </para>
5829    </listitem>
5830
5831    <listitem>
5832<!--
5833Author: Thomas Munro <tmunro@postgresql.org>
5834Branch: master [aca74843e] 2020-09-24 10:39:52 +1200
5835Branch: REL_13_STABLE [052014a20] 2020-09-24 10:27:22 +1200
5836Branch: REL_12_STABLE [7664cc869] 2020-09-24 10:30:47 +1200
5837Branch: REL_11_STABLE [c5a5bd0bb] 2020-09-24 10:31:57 +1200
5838Branch: REL_10_STABLE [dd36d6b00] 2020-09-24 10:33:00 +1200
5839Branch: REL9_6_STABLE [d38e15979] 2020-09-24 10:35:10 +1200
5840Branch: REL9_5_STABLE [23d8b3577] 2020-09-24 10:36:27 +1200
5841-->
5842     <para>
5843      Ensure that SLRU directories are properly fsync'd during checkpoints
5844      (Thomas Munro)
5845     </para>
5846
5847     <para>
5848      This prevents possible data loss in a subsequent operating system
5849      crash.
5850     </para>
5851    </listitem>
5852
5853    <listitem>
5854<!--
5855Author: Tom Lane <tgl@sss.pgh.pa.us>
5856Branch: master [d907bd054] 2020-11-03 15:41:32 -0500
5857Branch: REL_13_STABLE [768dbef0d] 2020-11-03 15:41:32 -0500
5858Branch: REL_12_STABLE [136f87ea5] 2020-11-03 15:41:32 -0500
5859Branch: REL_11_STABLE [501035a0a] 2020-11-03 15:41:32 -0500
5860Branch: REL_10_STABLE [df4405b78] 2020-11-03 15:41:32 -0500
5861Branch: REL9_6_STABLE [04c4b495b] 2020-11-03 15:41:32 -0500
5862Branch: REL9_5_STABLE [77df80cf6] 2020-11-03 15:41:32 -0500
5863-->
5864     <para>
5865      Fix <command>ALTER ROLE</command> for users with
5866      the <literal>BYPASSRLS</literal> attribute (Tom Lane, Stephen Frost)
5867     </para>
5868
5869     <para>
5870      The <literal>BYPASSRLS</literal> attribute is only allowed to be
5871      changed by superusers, but other <command>ALTER ROLE</command>
5872      operations, such as password changes, should be allowed with only
5873      ordinary permission checks.  The previous coding erroneously
5874      restricted all changes on such a role to superusers.
5875     </para>
5876    </listitem>
5877
5878    <listitem>
5879<!--
5880Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5881Branch: master [bbb927b4d] 2020-10-20 19:22:09 -0300
5882Branch: REL_13_STABLE [5f6463a20] 2020-10-20 19:22:09 -0300
5883Branch: REL_12_STABLE [0e6b6f8c7] 2020-10-20 19:22:09 -0300
5884Branch: REL_11_STABLE [a795f6782] 2020-10-20 19:22:09 -0300
5885-->
5886     <para>
5887      Ensure that <command>ALTER TABLE ONLY ... ENABLE/DISABLE
5888      TRIGGER</command> does not recurse to child tables
5889      (&Aacute;lvaro Herrera)
5890     </para>
5891
5892     <para>
5893      Previously the <literal>ONLY</literal> flag was ignored.
5894     </para>
5895    </listitem>
5896
5897    <listitem>
5898<!--
5899Author: Tom Lane <tgl@sss.pgh.pa.us>
5900Branch: master [e5fac1cb1] 2020-09-16 13:38:26 -0400
5901Branch: REL_13_STABLE Release: REL_13_0 [17280b31c] 2020-09-16 13:38:26 -0400
5902Branch: REL_12_STABLE [511690ec5] 2020-09-16 13:38:26 -0400
5903-->
5904     <para>
5905      Avoid unnecessary recursion to partitions in <command>ALTER TABLE
5906      SET NOT NULL</command>, when the target column is already
5907      marked <literal>NOT NULL</literal> (Tom Lane)
5908     </para>
5909
5910     <para>
5911      This avoids a potential deadlock in
5912      parallel <application>pg_restore</application>.
5913     </para>
5914    </listitem>
5915
5916    <listitem>
5917<!--
5918Author: Tom Lane <tgl@sss.pgh.pa.us>
5919Branch: master [502898192] 2020-08-21 15:00:47 -0400
5920Branch: REL_13_STABLE Release: REL_13_0 [894f5dea7] 2020-08-21 15:00:48 -0400
5921Branch: REL_12_STABLE [d9253df12] 2020-08-21 15:00:43 -0400
5922Branch: REL_11_STABLE [373796524] 2020-08-21 15:00:43 -0400
5923Branch: REL_10_STABLE [e22e29c25] 2020-08-21 15:00:43 -0400
5924Branch: REL9_6_STABLE [37681d7e9] 2020-08-21 15:00:43 -0400
5925Branch: REL9_5_STABLE [21f8b1811] 2020-08-21 15:00:43 -0400
5926Branch: master [19f5a37b9] 2020-09-13 12:51:21 -0400
5927Branch: REL_13_STABLE Release: REL_13_0 [b380484a8] 2020-09-13 12:51:21 -0400
5928Branch: REL_12_STABLE [1371a1e41] 2020-09-13 12:51:21 -0400
5929Branch: REL_11_STABLE [f11210013] 2020-09-13 12:51:21 -0400
5930Branch: REL_10_STABLE [783a21eff] 2020-09-13 12:51:21 -0400
5931Branch: REL9_6_STABLE [1a9c93ec3] 2020-09-13 12:51:21 -0400
5932Branch: REL9_5_STABLE [86b8ef139] 2020-09-13 12:51:21 -0400
5933-->
5934     <para>
5935      Fix handling of expressions in <command>CREATE TABLE LIKE</command>
5936      with inheritance (Tom Lane)
5937     </para>
5938
5939     <para>
5940      If a <command>CREATE TABLE</command> command uses
5941      both <literal>LIKE</literal> and traditional inheritance, column
5942      references in <literal>CHECK</literal> constraints and expression
5943      indexes that came from a <literal>LIKE</literal> parent table tended
5944      to get mis-numbered, resulting in wrong answers and/or bizarre error
5945      messages.  The same could happen in <literal>GENERATED</literal>
5946      expressions, in branches that have that feature.
5947     </para>
5948    </listitem>
5949
5950    <listitem>
5951<!--
5952Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5953Branch: master [afc7e0ad5] 2020-09-01 13:40:43 -0400
5954Branch: REL_13_STABLE Release: REL_13_0 [15dad5776] 2020-09-01 13:40:43 -0400
5955Branch: REL_12_STABLE [7067ba1b4] 2020-09-01 13:40:43 -0400
5956Branch: REL_11_STABLE [f00f5e0c1] 2020-09-01 13:40:43 -0400
5957-->
5958     <para>
5959      Disallow <command>DROP INDEX CONCURRENTLY</command> on a partitioned
5960      table (&Aacute;lvaro Herrera, Michael Paquier)
5961     </para>
5962
5963     <para>
5964      This case failed anyway, but with a confusing error message.
5965     </para>
5966    </listitem>
5967
5968    <listitem>
5969<!--
5970Author: Tom Lane <tgl@sss.pgh.pa.us>
5971Branch: master [5b7bfc397] 2020-11-05 11:44:32 -0500
5972Branch: REL_13_STABLE [44b973b91] 2020-11-05 11:44:32 -0500
5973Branch: REL_12_STABLE [0bdf1ef3d] 2020-11-05 11:44:32 -0500
5974Branch: REL_11_STABLE [7dc18c619] 2020-11-05 11:44:32 -0500
5975-->
5976     <para>
5977      Allow <command>LOCK TABLE</command> to succeed on a self-referential
5978      view (Tom Lane)
5979     </para>
5980
5981     <para>
5982      It previously threw an error complaining about infinite recursion,
5983      but there seems no need to disallow the case.
5984     </para>
5985    </listitem>
5986
5987    <listitem>
5988<!--
5989Author: Michael Paquier <michael@paquier.xyz>
5990Branch: master [b17ff07aa] 2020-11-01 21:22:07 +0900
5991Branch: REL_13_STABLE [bb62df46b] 2020-11-01 21:24:10 +0900
5992Branch: REL_12_STABLE [41a033b50] 2020-11-01 21:24:15 +0900
5993-->
5994     <para>
5995      Retain statistics about an index across <command>REINDEX
5996      CONCURRENTLY</command> (Michael Paquier, Fabr&iacute;zio de Royes Mello)
5997     </para>
5998
5999     <para>
6000      Non-concurrent reindexing has always preserved such statistics.
6001     </para>
6002    </listitem>
6003
6004    <listitem>
6005<!--
6006Author: Michael Paquier <michael@paquier.xyz>
6007Branch: master [e66bcfb4c] 2020-09-29 14:15:57 +0900
6008Branch: REL_13_STABLE [1aedaba78] 2020-09-29 14:16:12 +0900
6009Branch: REL_12_STABLE [8aa4496dd] 2020-09-29 14:16:18 +0900
6010-->
6011     <para>
6012      Fix incorrect progress reporting from <command>REINDEX
6013      CONCURRENTLY</command> (Matthias van de Meent, Michael Paquier)
6014     </para>
6015    </listitem>
6016
6017    <listitem>
6018<!--
6019Author: Tom Lane <tgl@sss.pgh.pa.us>
6020Branch: master [ad77039fa] 2020-10-28 13:47:02 -0400
6021Branch: REL_13_STABLE [70492195b] 2020-10-28 13:47:02 -0400
6022Branch: REL_12_STABLE [43330cdd4] 2020-10-28 13:47:02 -0400
6023-->
6024     <para>
6025      Ensure that <literal>GENERATED</literal> columns are updated when
6026      the column(s) they depend on are updated via a rule or an updatable
6027      view (Tom Lane)
6028     </para>
6029
6030     <para>
6031      This fix also takes care of possible failure to fire a
6032      column-specific trigger in such cases.
6033     </para>
6034    </listitem>
6035
6036    <listitem>
6037<!--
6038Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6039Branch: master [f481d2823] 2020-09-08 19:35:15 -0300
6040Branch: REL_13_STABLE Release: REL_13_0 [d0230a43f] 2020-09-08 19:35:15 -0300
6041Branch: REL_12_STABLE [ef1e1250e] 2020-09-08 19:35:15 -0300
6042-->
6043     <para>
6044      Recheck default partition constraints while routing an inserted or
6045      updated tuple to the correct partition (Amit Langote,
6046      &Aacute;lvaro Herrera)
6047     </para>
6048
6049     <para>
6050      This fixes race conditions when partitions are added concurrently
6051      with the insertion.
6052     </para>
6053    </listitem>
6054
6055    <listitem>
6056<!--
6057Author: Tom Lane <tgl@sss.pgh.pa.us>
6058Branch: master [72647ac3b] 2020-09-28 14:12:38 -0400
6059Branch: REL_13_STABLE [61a78c71a] 2020-09-28 14:12:38 -0400
6060Branch: REL_12_STABLE [29f20db85] 2020-09-28 14:12:38 -0400
6061-->
6062     <para>
6063      Fix failures with collation-dependent partition bound expressions
6064      (Tom Lane)
6065     </para>
6066    </listitem>
6067
6068    <listitem>
6069<!--
6070Author: Peter Eisentraut <peter@eisentraut.org>
6071Branch: master [560564d3a] 2020-11-04 12:46:28 +0100
6072Branch: REL_13_STABLE [82d4a2a7d] 2020-11-04 12:46:38 +0100
6073Branch: REL_12_STABLE [ea9087938] 2020-11-04 12:46:52 +0100
6074-->
6075     <para>
6076      Support hashing of text arrays (Peter Eisentraut)
6077     </para>
6078
6079     <para>
6080      Array hashing failed if the array element type is collatable.
6081      Notably, this prevented using hash partitioning with a text array
6082      column as partition key.
6083     </para>
6084    </listitem>
6085
6086    <listitem>
6087<!--
6088Author: Tom Lane <tgl@sss.pgh.pa.us>
6089Branch: master [489c9c340] 2020-09-30 15:40:23 -0400
6090Branch: REL_13_STABLE [99fd38c02] 2020-09-30 15:40:23 -0400
6091Branch: REL_12_STABLE [c5232dca8] 2020-09-30 15:40:23 -0400
6092Branch: REL_11_STABLE [b0fe0b022] 2020-09-30 15:40:23 -0400
6093Branch: REL_10_STABLE [db96be24c] 2020-09-30 15:40:23 -0400
6094Branch: REL9_6_STABLE [19e798268] 2020-09-30 15:40:23 -0400
6095Branch: REL9_5_STABLE [4857e6fe1] 2020-09-30 15:40:23 -0400
6096-->
6097     <para>
6098      Fix off-by-one conversion of negative years to BC dates
6099      in <function>to_date()</function>
6100      and <function>to_timestamp()</function> (Dar Alathar-Yemen, Tom Lane)
6101     </para>
6102
6103     <para>
6104      Also, arrange for the combination of a negative year and an
6105      explicit <quote>BC</quote> marker to cancel out and produce AD.
6106     </para>
6107    </listitem>
6108
6109    <listitem>
6110<!--
6111Author: Fujii Masao <fujii@postgresql.org>
6112Branch: master [fd26f7823] 2020-09-29 16:21:46 +0900
6113Branch: REL_13_STABLE [059caf36c] 2020-09-29 16:23:57 +0900
6114Branch: REL_12_STABLE [4d342b9d4] 2020-09-29 16:24:20 +0900
6115Branch: REL_11_STABLE [462ff7966] 2020-09-29 16:24:47 +0900
6116Branch: REL_10_STABLE [334417538] 2020-09-29 16:25:08 +0900
6117Branch: REL9_6_STABLE [7be02a3bf] 2020-09-29 16:25:20 +0900
6118Branch: REL9_5_STABLE [40a8fb1e0] 2020-09-29 16:25:51 +0900
6119-->
6120     <para>
6121      Ensure that standby servers will archive WAL timeline history files
6122      when <varname>archive_mode</varname> is set
6123      to <literal>always</literal> (Grigory Smolkin, Fujii Masao)
6124     </para>
6125
6126     <para>
6127      This oversight could lead to failure of subsequent PITR recovery
6128      attempts.
6129     </para>
6130    </listitem>
6131
6132    <listitem>
6133<!--
6134Author: Tom Lane <tgl@sss.pgh.pa.us>
6135Branch: master [3d65b0593] 2020-09-16 12:07:31 -0400
6136Branch: REL_13_STABLE Release: REL_13_0 [3e3f8f202] 2020-09-16 12:07:31 -0400
6137Branch: REL_12_STABLE [8580631ff] 2020-09-16 12:07:31 -0400
6138Branch: REL_11_STABLE [2c74f7139] 2020-09-16 12:07:31 -0400
6139Branch: REL_10_STABLE [d6d70f89a] 2020-09-16 12:07:31 -0400
6140-->
6141     <para>
6142      Fix <quote>cache lookup failed for relation 0</quote>
6143      failures in logical replication workers (Tom Lane)
6144     </para>
6145
6146     <para>
6147      The real-world impact is small, since the failure is unlikely, and
6148      if it does happen the worker would just exit and be restarted.
6149     </para>
6150    </listitem>
6151
6152    <listitem>
6153<!--
6154Author: Tom Lane <tgl@sss.pgh.pa.us>
6155Branch: master [c8746f999] 2020-09-04 20:33:36 -0400
6156Branch: REL_13_STABLE Release: REL_13_0 [9b81a30f9] 2020-09-04 20:33:37 -0400
6157Branch: REL_12_STABLE [9b47ee6e7] 2020-09-04 20:20:05 -0400
6158Branch: REL_11_STABLE [7156a0eac] 2020-09-04 20:20:05 -0400
6159Branch: REL_10_STABLE [9b8a8516e] 2020-09-04 20:20:06 -0400
6160-->
6161     <para>
6162      Prevent logical replication workers from sending redundant ping
6163      requests (Tom Lane)
6164     </para>
6165    </listitem>
6166
6167    <listitem>
6168<!--
6169Author: Tom Lane <tgl@sss.pgh.pa.us>
6170Branch: master [0038f9438] 2020-08-14 13:26:57 -0400
6171Branch: REL_13_STABLE Release: REL_13_0 [1c6066fbd] 2020-08-14 13:26:57 -0400
6172Branch: REL_12_STABLE [42566a250] 2020-08-14 13:26:57 -0400
6173Branch: REL_11_STABLE [250aaa2de] 2020-08-14 13:26:57 -0400
6174Branch: REL_10_STABLE [326b5fe0f] 2020-08-14 13:26:57 -0400
6175Branch: REL9_6_STABLE [b4d8be9f6] 2020-08-14 13:26:57 -0400
6176-->
6177     <para>
6178      During <quote>smart</quote> shutdown, don't terminate background
6179      processes until all client (foreground) sessions are done (Tom Lane)
6180     </para>
6181
6182     <para>
6183      The previous behavior broke parallel query processing, since the
6184      postmaster would terminate parallel workers and refuse to launch any
6185      new ones.  It also caused autovacuum to cease functioning, which
6186      could have dire long-term effects if the surviving client sessions
6187      make a lot of data changes.
6188     </para>
6189    </listitem>
6190
6191    <listitem>
6192<!--
6193Author: Tom Lane <tgl@sss.pgh.pa.us>
6194Branch: master Release: REL_13_BR [9abb2bfc0] 2019-10-13 15:48:26 -0400
6195Branch: REL_12_STABLE [8b53dbada] 2020-10-15 12:50:57 -0400
6196Branch: REL_11_STABLE [85834023a] 2020-10-15 12:50:57 -0400
6197Branch: REL_10_STABLE [4e95733b0] 2020-10-15 12:50:57 -0400
6198Branch: REL9_6_STABLE [7753ca49d] 2020-10-15 12:50:57 -0400
6199-->
6200     <para>
6201      Avoid recursive consumption of stack space while processing signals
6202      in the postmaster (Tom Lane)
6203     </para>
6204
6205     <para>
6206      Heavy use of parallel processing has been observed to cause
6207      postmaster crashes due to too many concurrent signals requesting
6208      creation of a parallel worker process.
6209     </para>
6210    </listitem>
6211
6212    <listitem>
6213<!--
6214Author: Tom Lane <tgl@sss.pgh.pa.us>
6215Branch: master [bedadc732] 2020-09-09 15:32:45 -0400
6216Branch: REL_13_STABLE Release: REL_13_0 [35e59398a] 2020-09-09 15:32:34 -0400
6217Branch: REL_12_STABLE [d038c6c63] 2020-09-09 15:32:34 -0400
6218Branch: REL_11_STABLE [67dde49a3] 2020-09-09 15:32:34 -0400
6219Branch: REL_10_STABLE [95cd8902e] 2020-09-09 15:32:34 -0400
6220Branch: REL9_6_STABLE [b2eaddd9b] 2020-09-09 15:32:34 -0400
6221Branch: REL9_5_STABLE [581855b6a] 2020-09-09 15:32:34 -0400
6222Branch: master [58c6feccf] 2020-09-10 12:06:37 -0400
6223Branch: REL_13_STABLE Release: REL_13_0 [3f29aa48b] 2020-09-10 12:06:26 -0400
6224Branch: REL_12_STABLE [4e10c0c8a] 2020-09-10 12:06:26 -0400
6225Branch: REL_11_STABLE [93871b693] 2020-09-10 12:06:26 -0400
6226Branch: REL_10_STABLE [ac695b8f2] 2020-09-10 12:06:26 -0400
6227Branch: REL9_6_STABLE [dc71c6409] 2020-09-10 12:06:26 -0400
6228Branch: REL9_5_STABLE [e2c9bedc9] 2020-09-10 12:06:26 -0400
6229-->
6230     <para>
6231      Avoid running <systemitem>atexit</systemitem> handlers when exiting
6232      due to SIGQUIT (Kyotaro Horiguchi, Tom Lane)
6233     </para>
6234
6235     <para>
6236      Most server processes followed this practice already, but the
6237      archiver process was overlooked.  Backends that were still waiting
6238      for a client startup packet got it wrong, too.
6239     </para>
6240    </listitem>
6241
6242    <listitem>
6243<!--
6244Author: Tom Lane <tgl@sss.pgh.pa.us>
6245Branch: master [4d346def1] 2020-08-22 14:46:40 -0400
6246Branch: REL_13_STABLE Release: REL_13_0 [de627adaa] 2020-08-22 14:46:40 -0400
6247Branch: REL_12_STABLE [6b701eaaa] 2020-08-22 14:46:40 -0400
6248Branch: REL_11_STABLE [b439adcab] 2020-08-22 14:46:40 -0400
6249Branch: REL_10_STABLE [6fa403e61] 2020-08-22 14:46:40 -0400
6250Branch: REL9_6_STABLE [d3701bc8a] 2020-08-22 14:46:40 -0400
6251Branch: REL9_5_STABLE [7edd36eae] 2020-08-22 14:46:40 -0400
6252-->
6253     <para>
6254      Avoid misoptimization of subquery qualifications that reference
6255      apparently-constant grouping columns (Tom Lane)
6256     </para>
6257
6258     <para>
6259      A <quote>constant</quote> subquery output column isn't really
6260      constant if it is a grouping column that appears in only some of the
6261      grouping sets.
6262     </para>
6263    </listitem>
6264
6265    <listitem>
6266<!--
6267Author: Tom Lane <tgl@sss.pgh.pa.us>
6268Branch: master [d7885b1f8] 2020-10-06 11:43:53 -0400
6269Branch: REL_13_STABLE [b7f166efa] 2020-10-06 11:43:53 -0400
6270Branch: REL_12_STABLE [3d69efc4f] 2020-10-06 11:43:54 -0400
6271-->
6272     <para>
6273      Fix possible crash when considering partition-wise joins
6274      during GEQO planning (Tom Lane)
6275     </para>
6276    </listitem>
6277
6278    <listitem>
6279<!--
6280Author: Tom Lane <tgl@sss.pgh.pa.us>
6281Branch: master [1e7629d2c] 2020-08-14 22:14:03 -0400
6282Branch: REL_13_STABLE Release: REL_13_0 [b538e83f1] 2020-08-14 22:14:03 -0400
6283Branch: REL_12_STABLE [912fb290c] 2020-08-14 22:14:03 -0400
6284Branch: REL_11_STABLE [9d472b51e] 2020-08-14 22:14:03 -0400
6285Branch: REL_10_STABLE [dea07098a] 2020-08-14 22:14:03 -0400
6286Branch: REL9_6_STABLE [7241edc4f] 2020-08-14 22:14:03 -0400
6287Branch: REL9_5_STABLE [5190707d7] 2020-08-14 22:14:03 -0400
6288-->
6289     <para>
6290      Avoid failure when SQL function inlining changes the shape of a
6291      potentially-hashable subplan comparison expression (Tom Lane)
6292     </para>
6293    </listitem>
6294
6295    <listitem>
6296<!--
6297Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6298Branch: master [a811ea5bd] 2020-08-13 17:33:49 -0400
6299Branch: REL_13_STABLE Release: REL_13_0 [2f29fd4cb] 2020-08-13 17:33:49 -0400
6300Branch: REL_12_STABLE [1122a903e] 2020-08-13 17:33:49 -0400
6301Branch: REL_11_STABLE [704de3739] 2020-08-13 17:33:49 -0400
6302Branch: REL_10_STABLE [385cbe8e4] 2020-08-13 17:33:49 -0400
6303Branch: REL9_6_STABLE [e5902117d] 2020-08-13 17:33:49 -0400
6304Branch: REL9_5_STABLE [40bceae7b] 2020-08-13 17:33:49 -0400
6305Branch: master [6e70443ed] 2020-08-17 16:20:06 -0400
6306Branch: REL_13_STABLE Release: REL_13_0 [b83f1bcca] 2020-08-17 16:20:06 -0400
6307Branch: REL_12_STABLE [4f47c8e7d] 2020-08-17 16:20:06 -0400
6308Branch: REL_11_STABLE [060e5bd70] 2020-08-17 16:20:06 -0400
6309Branch: REL_10_STABLE [3a45ac076] 2020-08-17 16:20:05 -0400
6310Branch: REL9_6_STABLE [d4d214903] 2020-08-17 16:20:05 -0400
6311Branch: REL9_5_STABLE [aa4da2674] 2020-08-17 16:20:05 -0400
6312-->
6313     <para>
6314      While building or re-building an index, tolerate the appearance of
6315      new HOT chains due to concurrent updates
6316      (Anastasia Lubennikova, &Aacute;lvaro Herrera)
6317     </para>
6318
6319     <para>
6320      This oversight could lead to <quote>failed to find parent tuple for
6321      heap-only tuple</quote> errors.
6322     </para>
6323    </listitem>
6324
6325    <listitem>
6326<!--
6327Author: Amit Kapila <akapila@postgresql.org>
6328Branch: master [b7f2dd959] 2020-09-17 16:11:48 +0530
6329Branch: REL_13_STABLE Release: REL_13_0 [0abd9cd2f] 2020-09-17 15:16:46 +0530
6330Branch: REL_12_STABLE [4bc63462d] 2020-09-17 15:38:47 +0530
6331Branch: REL_11_STABLE [956891fab] 2020-09-17 15:53:25 +0530
6332Branch: REL_10_STABLE [fcc3665a0] 2020-09-17 15:59:42 +0530
6333-->
6334     <para>
6335      Fix failure of parallel B-tree index scans when the index condition
6336      is unsatisfiable (James Hunter)
6337     </para>
6338    </listitem>
6339
6340    <listitem>
6341<!--
6342Author: Tomas Vondra <tomas.vondra@postgresql.org>
6343Branch: master [7577dd848] 2020-11-07 00:39:19 +0100
6344Branch: REL_13_STABLE [6a7b55f37] 2020-11-07 00:40:06 +0100
6345Branch: REL_12_STABLE [8149e9f9a] 2020-11-07 00:40:40 +0100
6346Branch: REL_11_STABLE [895d0f0e8] 2020-11-07 00:41:02 +0100
6347Branch: REL_10_STABLE [0b96fc977] 2020-11-07 00:41:19 +0100
6348Branch: REL9_6_STABLE [bae31e75f] 2020-11-07 00:41:36 +0100
6349Branch: REL9_5_STABLE [d2d3a4bd3] 2020-11-07 00:41:52 +0100
6350-->
6351     <para>
6352      Ensure that data is detoasted before being inserted into a BRIN
6353      index (Tomas Vondra)
6354     </para>
6355
6356     <para>
6357      Index entries are not supposed to contain out-of-line TOAST
6358      pointers, but BRIN didn't get that memo.  This could lead to errors
6359      like <quote>missing chunk number 0 for toast value NNN</quote>.
6360      (If you are faced with such an error from an existing
6361      index, <command>REINDEX</command> should be enough to fix it.)
6362     </para>
6363    </listitem>
6364
6365    <listitem>
6366<!--
6367Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6368Branch: master [1f42d35a1] 2020-08-12 15:33:36 -0400
6369Branch: REL_13_STABLE Release: REL_13_0 [8782ea2f3] 2020-08-12 15:33:36 -0400
6370Branch: REL_12_STABLE [0426c75e7] 2020-08-12 15:33:36 -0400
6371Branch: REL_11_STABLE [7af39993a] 2020-08-12 15:33:36 -0400
6372Branch: REL_10_STABLE [721ef4d28] 2020-08-12 15:33:36 -0400
6373Branch: REL9_6_STABLE [7a3c261fb] 2020-08-12 15:33:36 -0400
6374Branch: REL9_5_STABLE [ce3a8fde8] 2020-08-12 15:33:36 -0400
6375-->
6376     <para>
6377      Handle concurrent desummarization correctly during BRIN index scans
6378      (Alexander Lakhin, &Aacute;lvaro Herrera)
6379     </para>
6380
6381     <para>
6382      Previously, if a page range was desummarized at just the wrong time,
6383      an index scan might falsely raise an error indicating index
6384      corruption.
6385     </para>
6386    </listitem>
6387
6388    <listitem>
6389<!--
6390Author: Tom Lane <tgl@sss.pgh.pa.us>
6391Branch: master [10564ee02] 2020-08-27 17:36:13 -0400
6392Branch: REL_13_STABLE Release: REL_13_0 [1df14a566] 2020-08-27 17:36:13 -0400
6393Branch: REL_12_STABLE [ff3c16d1e] 2020-08-27 17:36:13 -0400
6394Branch: REL_11_STABLE [11ecf4bd2] 2020-08-27 17:36:13 -0400
6395Branch: REL_10_STABLE [0d3ad6540] 2020-08-27 17:36:13 -0400
6396Branch: REL9_6_STABLE [0dfec43c8] 2020-08-27 17:36:13 -0400
6397Branch: REL9_5_STABLE [fabd2f9c9] 2020-08-27 17:36:13 -0400
6398-->
6399     <para>
6400      Fix rare <quote>lost saved point in index</quote> errors in scans of
6401      multicolumn GIN indexes (Tom Lane)
6402     </para>
6403    </listitem>
6404
6405    <listitem>
6406<!--
6407Author: Tom Lane <tgl@sss.pgh.pa.us>
6408Branch: master [371668a83] 2020-10-12 18:01:34 -0400
6409Branch: REL_13_STABLE [962ab473e] 2020-10-12 18:01:34 -0400
6410Branch: REL_12_STABLE [12945874e] 2020-10-12 18:01:34 -0400
6411-->
6412     <para>
6413      Fix buffered GiST index builds to work when the index has included
6414      columns (Pavel Borisov)
6415     </para>
6416    </listitem>
6417
6418    <listitem>
6419<!--
6420Author: Tom Lane <tgl@sss.pgh.pa.us>
6421Branch: master [0a4b34031] 2020-11-02 21:11:50 -0500
6422Branch: REL_13_STABLE [a58a631b4] 2020-11-02 21:11:50 -0500
6423Branch: REL_12_STABLE [d3befe9b9] 2020-11-02 21:11:50 -0500
6424Branch: REL_11_STABLE [f28b089cb] 2020-11-02 21:11:50 -0500
6425Branch: REL_10_STABLE [7827497ba] 2020-11-02 21:11:50 -0500
6426-->
6427     <para>
6428      Fix unportable use of <function>getnameinfo()</function>
6429      in <structname>pg_hba_file_rules</structname> view (Tom Lane)
6430     </para>
6431
6432     <para>
6433      On FreeBSD 11, and possibly other platforms, the
6434      view's <structfield>address</structfield>
6435      and <structfield>netmask</structfield> columns were always null due
6436      to this error.
6437     </para>
6438    </listitem>
6439
6440    <listitem>
6441<!--
6442Author: Noah Misch <noah@leadboat.com>
6443Branch: master [f90e80b91] 2020-10-31 08:43:28 -0700
6444Branch: REL_13_STABLE [ab2e2ce46] 2020-10-31 08:43:32 -0700
6445Branch: REL_12_STABLE [741b84e9f] 2020-10-31 08:44:13 -0700
6446Branch: REL_11_STABLE [045466675] 2020-10-31 08:45:19 -0700
6447-->
6448     <para>
6449      Avoid crash if <varname>debug_query_string</varname> is NULL
6450      when starting a parallel worker (Noah Misch)
6451     </para>
6452    </listitem>
6453
6454    <listitem>
6455<!--
6456Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6457Branch: master [ced138e8c] 2020-09-15 21:03:14 -0300
6458Branch: REL_13_STABLE Release: REL_13_0 [873cb8fca] 2020-09-15 21:03:14 -0300
6459Author: Tom Lane <tgl@sss.pgh.pa.us>
6460Branch: REL_12_STABLE [93f726c04] 2020-10-27 15:37:13 -0400
6461Branch: REL_11_STABLE [66c036b4f] 2020-10-27 15:37:13 -0400
6462Branch: REL_10_STABLE [41c742a43] 2020-10-27 15:37:13 -0400
6463Branch: REL9_6_STABLE [cc623ed2f] 2020-10-27 15:37:13 -0400
6464Branch: REL9_5_STABLE [7978ad025] 2020-10-27 15:37:13 -0400
6465-->
6466     <para>
6467      Fix use-after-free hazard when an event trigger monitors
6468      an <command>ALTER TABLE</command> operation (Jehan-Guillaume de
6469      Rorthais)
6470     </para>
6471    </listitem>
6472
6473    <listitem>
6474<!--
6475Author: Tom Lane <tgl@sss.pgh.pa.us>
6476Branch: master [ba9f18abd] 2020-10-25 13:57:46 -0400
6477Branch: REL_13_STABLE [d88d8ad28] 2020-10-25 13:57:46 -0400
6478Branch: REL_12_STABLE [de78c1007] 2020-10-25 13:57:46 -0400
6479Branch: master [20d3fe900] 2020-10-26 11:36:53 -0400
6480Branch: master [8b39345a9] 2020-11-08 13:08:36 -0500
6481Branch: REL_13_STABLE [7aeb6404f] 2020-11-08 13:08:36 -0500
6482Branch: REL_12_STABLE [94ec005f3] 2020-11-08 13:08:36 -0500
6483-->
6484     <para>
6485      Avoid failures when a <literal>BEFORE ROW UPDATE</literal> trigger
6486      returns the <quote>old</quote> row of a table having dropped
6487      or <quote>missing</quote> columns (Amit Langote, Tom Lane)
6488     </para>
6489
6490     <para>
6491      This method of suppressing an update could result in crashes,
6492      unexpected <literal>CHECK</literal> constraint failures, or
6493      incorrect <literal>RETURNING</literal> output,
6494      because <quote>missing</quote> columns would read as NULLs for those
6495      purposes.  (A column is <quote>missing</quote> for this purpose if
6496      it was added by <command>ALTER TABLE ADD COLUMN</command> with a
6497      non-NULL, but constant, default value.)  Dropped columns could cause
6498      trouble as well.
6499     </para>
6500    </listitem>
6501
6502    <listitem>
6503<!--
6504Author: Tom Lane <tgl@sss.pgh.pa.us>
6505Branch: master [19ad7e1d7] 2020-09-06 12:55:13 -0400
6506Branch: REL_13_STABLE Release: REL_13_0 [f04203ab7] 2020-09-06 12:55:28 -0400
6507Branch: REL_12_STABLE [f45dd3fed] 2020-09-06 12:55:37 -0400
6508Branch: REL_11_STABLE [baef6e5e9] 2020-09-06 12:55:44 -0400
6509Branch: REL_10_STABLE [f71b93b86] 2020-09-06 12:55:51 -0400
6510Branch: REL9_6_STABLE [2939f613f] 2020-09-06 12:55:59 -0400
6511Branch: REL9_5_STABLE [e0b4c7dd0] 2020-09-06 12:56:10 -0400
6512-->
6513     <para>
6514      Fix incorrect error message about inconsistent moving-aggregate
6515      data types (Jeff Janes)
6516     </para>
6517    </listitem>
6518
6519    <listitem>
6520<!--
6521Author: Tom Lane <tgl@sss.pgh.pa.us>
6522Branch: master [be4b0c007] 2020-09-03 16:52:09 -0400
6523Branch: REL_13_STABLE Release: REL_13_0 [17424e79d] 2020-09-03 16:52:09 -0400
6524Branch: REL_12_STABLE [82dd373f2] 2020-09-03 16:52:09 -0400
6525Branch: REL_11_STABLE [526df0a23] 2020-09-03 16:52:09 -0400
6526Branch: REL_10_STABLE [2a938c793] 2020-09-03 16:52:09 -0400
6527Branch: REL9_6_STABLE [2500e51e7] 2020-09-03 16:52:09 -0400
6528Branch: REL9_5_STABLE [3738651f5] 2020-09-03 16:52:09 -0400
6529-->
6530     <para>
6531      Avoid lockup when a parallel worker reports a very long error
6532      message (Vignesh C)
6533     </para>
6534    </listitem>
6535
6536    <listitem>
6537<!--
6538Author: Peter Eisentraut <peter@eisentraut.org>
6539Branch: REL_13_STABLE [1f53d0b9f] 2020-10-20 14:09:16 +0200
6540Branch: REL_12_STABLE [bd0677bb8] 2020-10-20 14:31:52 +0200
6541Branch: REL_11_STABLE [6e03a8a30] 2020-10-20 14:50:43 +0200
6542Branch: REL_10_STABLE [f78ebbe68] 2020-10-20 15:19:47 +0200
6543Branch: REL9_6_STABLE [d4e654d15] 2020-10-20 15:35:31 +0200
6544Branch: REL9_5_STABLE [d27c18d26] 2020-10-20 17:22:41 +0200
6545-->
6546     <para>
6547      Avoid unnecessary failure when transferring very large payloads
6548      through shared memory queues (Markus Wanner)
6549     </para>
6550    </listitem>
6551
6552    <listitem>
6553<!--
6554Author: Andres Freund <andres@anarazel.de>
6555Branch: master [72559438f] 2020-10-15 14:29:53 -0700
6556Branch: REL_13_STABLE [ae3e75aba] 2020-10-15 14:30:40 -0700
6557Branch: REL_12_STABLE [c8a2bb0f1] 2020-10-15 14:31:32 -0700
6558Branch: REL_11_STABLE [f3dee5b9a] 2020-10-15 15:06:16 -0700
6559Branch: master [fe2a16d8b] 2020-10-15 18:17:00 -0700
6560Branch: REL_13_STABLE [efc9a8e98] 2020-10-15 18:17:00 -0700
6561Branch: REL_12_STABLE [c835c7ffe] 2020-10-15 18:17:01 -0700
6562Branch: REL_11_STABLE [4a4f4487d] 2020-10-15 18:17:01 -0700
6563-->
6564     <para>
6565      Fix incorrect handling of template function attributes in JIT code
6566      generation (Andres Freund)
6567     </para>
6568
6569     <para>
6570      This has been shown to cause crashes on <literal>s390x</literal>,
6571      and very possibly there are other cases on other platforms.
6572     </para>
6573    </listitem>
6574
6575    <listitem>
6576<!--
6577Author: Tom Lane <tgl@sss.pgh.pa.us>
6578Branch: master [e55f718fc] 2020-09-26 16:04:06 -0400
6579Branch: REL_13_STABLE [f7873900f] 2020-09-26 16:04:06 -0400
6580Branch: REL_12_STABLE [bda32733c] 2020-09-26 16:04:06 -0400
6581Branch: REL_11_STABLE [dd89ba578] 2020-09-26 16:04:06 -0400
6582Branch: REL_10_STABLE [de6725deb] 2020-09-26 16:04:06 -0400
6583Branch: REL9_6_STABLE [acab757ce] 2020-09-26 16:04:06 -0400
6584Branch: REL9_5_STABLE [bf34ae930] 2020-09-26 16:04:06 -0400
6585-->
6586     <para>
6587      Fix relation cache memory leaks with RLS policies (Tom Lane)
6588     </para>
6589    </listitem>
6590
6591    <listitem>
6592<!--
6593Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6594Branch: master [623644f02] 2020-11-06 22:52:16 -0300
6595Branch: REL_13_STABLE [d94d37f8c] 2020-11-06 22:52:15 -0300
6596Branch: REL_12_STABLE [8ad6a0c1b] 2020-11-06 22:52:15 -0300
6597-->
6598     <para>
6599      Fix edge-case memory leak
6600      in <function>index_get_partition()</function> (Justin Pryzby)
6601     </para>
6602    </listitem>
6603
6604    <listitem>
6605<!--
6606Author: Tom Lane <tgl@sss.pgh.pa.us>
6607Branch: master [397ea901e] 2020-10-12 13:31:24 -0400
6608Branch: REL_13_STABLE [9343bfefa] 2020-10-12 13:31:24 -0400
6609Branch: REL_12_STABLE [f35c11770] 2020-10-12 13:31:24 -0400
6610Branch: REL_11_STABLE [cfa4cff30] 2020-10-12 13:31:24 -0400
6611Branch: REL_10_STABLE [a5c77e6b8] 2020-10-12 13:31:24 -0400
6612Branch: REL9_6_STABLE [c7573ab1e] 2020-10-12 13:31:24 -0400
6613Branch: REL9_5_STABLE [43ca5e07d] 2020-10-12 13:31:24 -0400
6614-->
6615     <para>
6616      Fix small memory leak when SIGHUP processing decides that a new GUC
6617      variable value cannot be applied without a restart (Tom Lane)
6618     </para>
6619    </listitem>
6620
6621    <listitem>
6622<!--
6623Author: Tom Lane <tgl@sss.pgh.pa.us>
6624Branch: master [a6b1f5365] 2020-09-29 11:18:30 -0400
6625Branch: REL_13_STABLE [f0e4ec74e] 2020-09-29 11:18:30 -0400
6626Branch: REL_12_STABLE [c1e044bb3] 2020-09-29 11:18:31 -0400
6627Branch: REL_11_STABLE [13a1901ba] 2020-09-29 11:18:31 -0400
6628-->
6629     <para>
6630      Fix memory leaks
6631      in <application>PL/pgsql</application>'s <command>CALL</command>
6632      processing (Pavel Stehule, Tom Lane)
6633     </para>
6634    </listitem>
6635
6636    <listitem>
6637<!--
6638Author: Tom Lane <tgl@sss.pgh.pa.us>
6639Branch: master [b55b4dad9] 2020-09-01 13:14:44 -0400
6640Branch: REL_13_STABLE Release: REL_13_0 [4178b7499] 2020-09-01 13:14:44 -0400
6641Branch: REL_12_STABLE [55aea0c70] 2020-09-01 13:14:44 -0400
6642Branch: REL_11_STABLE [df8020b32] 2020-09-01 13:14:44 -0400
6643Branch: REL_10_STABLE [0c0a3a859] 2020-09-01 13:14:44 -0400
6644Branch: REL9_6_STABLE [ba23174dd] 2020-09-01 13:14:44 -0400
6645Branch: REL9_5_STABLE [8d486cfbf] 2020-09-01 13:14:44 -0400
6646Branch: master [4d41823c5] 2020-09-04 21:01:58 -0400
6647Branch: REL_13_STABLE Release: REL_13_0 [8df601bd4] 2020-09-04 21:01:59 -0400
6648Branch: REL_12_STABLE [fc37c6f61] 2020-09-04 21:01:59 -0400
6649Branch: REL_11_STABLE [d7ae549e3] 2020-09-04 21:01:59 -0400
6650Branch: REL_10_STABLE [546479f34] 2020-09-04 21:01:59 -0400
6651-->
6652     <para>
6653      Make <application>libpq</application> support arbitrary-length lines
6654      in <filename>.pgpass</filename> files (Tom Lane)
6655     </para>
6656
6657     <para>
6658      This is mostly useful to allow using very long security tokens as
6659      passwords.
6660     </para>
6661    </listitem>
6662
6663    <listitem>
6664<!--
6665Author: Tom Lane <tgl@sss.pgh.pa.us>
6666Branch: master [7d00a6b2d] 2020-10-17 16:53:48 -0400
6667Branch: REL_13_STABLE [d2074daeb] 2020-10-19 11:23:51 -0400
6668Branch: REL_12_STABLE [407580aab] 2020-10-19 11:23:51 -0400
6669Branch: REL_11_STABLE [883226441] 2020-10-19 11:23:52 -0400
6670Branch: REL_10_STABLE [6670e9107] 2020-10-19 11:23:52 -0400
6671Branch: REL9_6_STABLE [cdc7ace16] 2020-10-19 11:23:52 -0400
6672Branch: REL9_5_STABLE [6acc31a20] 2020-10-19 11:23:52 -0400
6673-->
6674     <para>
6675      In <application>libpq</application> for Windows,
6676      call <function>WSAStartup()</function> once per process
6677      and <function>WSACleanup()</function> not at all (Tom Lane,
6678      Alexander Lakhin)
6679     </para>
6680
6681     <para>
6682      Previously, <application>libpq</application>
6683      invoked <function>WSAStartup()</function> at connection start
6684      and <function>WSACleanup()</function> at connection cleanup.
6685      However, it appears that calling <function>WSACleanup()</function>
6686      can interfere with other program operations; notably, we have
6687      observed rare failures to emit expected output to stdout.  There
6688      appear to be no ill effects from omitting the call, so do that.
6689      (This also eliminates a performance issue from repeated DLL loads and
6690      unloads when a program performs a series of database connections.)
6691     </para>
6692    </listitem>
6693
6694    <listitem>
6695<!--
6696Author: Tom Lane <tgl@sss.pgh.pa.us>
6697Branch: master [21d36747d] 2020-10-24 13:12:08 -0400
6698Branch: REL_13_STABLE [fd048e0cb] 2020-10-24 13:12:19 -0400
6699Branch: REL_12_STABLE [bdc79ddd1] 2020-10-24 13:12:26 -0400
6700Branch: REL_11_STABLE [12a73f29f] 2020-10-24 13:12:31 -0400
6701Branch: REL_10_STABLE [f38b66ec0] 2020-10-24 13:12:41 -0400
6702Branch: REL9_6_STABLE [379c43bda] 2020-10-24 13:12:47 -0400
6703Branch: REL9_5_STABLE [758b45e83] 2020-10-24 13:12:53 -0400
6704-->
6705     <para>
6706      Fix <application>ecpg</application> library's per-thread
6707      initialization logic for Windows (Tom Lane, Alexander Lakhin)
6708     </para>
6709
6710     <para>
6711      Multi-threaded <application>ecpg</application> applications could
6712      suffer rare misbehavior due to incorrect locking.
6713     </para>
6714    </listitem>
6715
6716    <listitem>
6717<!--
6718Author: Tom Lane <tgl@sss.pgh.pa.us>
6719Branch: master [66f8687a8] 2020-10-28 14:35:53 -0400
6720Branch: REL_13_STABLE [ba4f5413e] 2020-10-28 14:35:53 -0400
6721Branch: REL_12_STABLE [cb0982ba9] 2020-10-28 14:35:53 -0400
6722Branch: REL_11_STABLE [9eb250339] 2020-10-28 14:35:53 -0400
6723Branch: REL_10_STABLE [504f963f7] 2020-10-28 14:35:53 -0400
6724Branch: REL9_6_STABLE [204d77969] 2020-10-28 14:35:53 -0400
6725Branch: REL9_5_STABLE [aff06436c] 2020-10-28 14:35:53 -0400
6726-->
6727     <para>
6728      On Windows, make <application>psql</application> read the output of
6729      a backtick command in text mode, not binary mode (Tom Lane)
6730     </para>
6731
6732     <para>
6733      This ensures proper handling of newlines.
6734     </para>
6735    </listitem>
6736
6737    <listitem>
6738<!--
6739Author: Andrew Dunstan <andrew@dunslane.net>
6740Branch: master [3eb3d3e78] 2020-09-04 13:54:54 -0400
6741Branch: REL_13_STABLE Release: REL_13_0 [72857482c] 2020-09-04 13:55:11 -0400
6742Branch: REL_12_STABLE [616110eac] 2020-09-04 13:55:03 -0400
6743Author: Tom Lane <tgl@sss.pgh.pa.us>
6744Branch: master [9e5f1f21a] 2020-10-07 12:51:02 -0400
6745Branch: REL_13_STABLE [2ea624b4b] 2020-10-07 12:51:03 -0400
6746Branch: REL_12_STABLE [d8c2a2199] 2020-10-07 12:51:04 -0400
6747Branch: REL_11_STABLE [f2c6e94f0] 2020-10-07 12:51:05 -0400
6748Branch: REL_10_STABLE [0c79dcb36] 2020-10-07 12:51:05 -0400
6749Branch: REL9_6_STABLE [710c0a66d] 2020-10-07 12:51:06 -0400
6750Branch: REL9_5_STABLE [0bfe356c5] 2020-10-07 12:51:06 -0400
6751-->
6752     <para>
6753      Ensure that <application>pg_dump</application> collects per-column
6754      information about extension configuration tables (Fabr&iacute;zio de
6755      Royes Mello, Tom Lane)
6756     </para>
6757
6758     <para>
6759      Failure to do this led to crashes when
6760      specifying <option>--inserts</option>, or underspecified (though
6761      usually correct) <command>COPY</command> commands when
6762      using <command>COPY</command> to reload the tables' data.
6763     </para>
6764    </listitem>
6765
6766    <listitem>
6767<!--
6768Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6769Branch: master [2ba5b2db7] 2020-08-14 17:33:31 -0400
6770Branch: REL_13_STABLE Release: REL_13_0 [b7cc21c57] 2020-08-14 17:33:31 -0400
6771Branch: REL_12_STABLE [3dadcb2b3] 2020-08-14 17:33:31 -0400
6772-->
6773     <para>
6774      Ensure that parallel <application>pg_restore</application> processes
6775      foreign keys referencing partitioned tables in the correct order
6776      (&Aacute;lvaro Herrera)
6777     </para>
6778
6779     <para>
6780      Previously, it might try to restore a foreign key constraint before
6781      the required indexes were all in place, leading to an error.
6782     </para>
6783    </listitem>
6784
6785    <listitem>
6786<!--
6787Author: Bruce Momjian <bruce@momjian.us>
6788Branch: master [3c0471b5f] 2020-10-15 19:33:46 -0400
6789Branch: REL_13_STABLE [59cfff65b] 2020-10-15 19:33:45 -0400
6790Branch: REL_12_STABLE [a106236d8] 2020-10-15 19:33:43 -0400
6791Branch: REL_11_STABLE [eb421c83b] 2020-10-15 19:33:42 -0400
6792Branch: REL_10_STABLE [85fedf39f] 2020-10-15 19:33:36 -0400
6793Branch: REL9_6_STABLE [39c23c199] 2020-10-15 19:33:36 -0400
6794Branch: REL9_5_STABLE [d9ae2297b] 2020-10-15 19:33:36 -0400
6795Branch: master [536de14e2] 2020-10-15 20:37:20 -0400
6796Branch: REL_13_STABLE [79fe23465] 2020-10-15 20:37:20 -0400
6797Branch: REL_12_STABLE [0ab7ca98a] 2020-10-15 20:37:20 -0400
6798Branch: REL_11_STABLE [16be4e435] 2020-10-15 20:37:19 -0400
6799Branch: REL_10_STABLE [6e34cc8ab] 2020-10-15 20:37:19 -0400
6800Branch: REL9_6_STABLE [9dcffe69a] 2020-10-15 20:37:19 -0400
6801Branch: REL9_5_STABLE [b05672c72] 2020-10-15 20:37:19 -0400
6802-->
6803     <para>
6804      Make <application>pg_upgrade</application> check for pre-existence
6805      of tablespace directories in the target cluster (Bruce Momjian)
6806     </para>
6807    </listitem>
6808
6809    <listitem>
6810<!--
6811Author: Michael Paquier <michael@paquier.xyz>
6812Branch: master [ca2a12c93] 2020-10-19 09:36:56 +0900
6813Branch: REL_13_STABLE [1bd9b2b23] 2020-10-19 09:37:50 +0900
6814Branch: REL_12_STABLE [57bdf29dd] 2020-10-19 09:37:55 +0900
6815Branch: REL_11_STABLE [914139081] 2020-10-19 09:38:01 +0900
6816Branch: REL_10_STABLE [e8d36f9ec] 2020-10-19 09:38:06 +0900
6817Branch: REL9_6_STABLE [994a02f7f] 2020-10-19 09:38:13 +0900
6818Branch: REL9_5_STABLE [099238322] 2020-10-19 09:38:18 +0900
6819-->
6820     <para>
6821      Fix potential memory leak in <filename>contrib/pgcrypto</filename>
6822      (Michael Paquier)
6823     </para>
6824    </listitem>
6825
6826    <listitem>
6827<!--
6828Author: Tom Lane <tgl@sss.pgh.pa.us>
6829Branch: master [02a75f836] 2020-10-16 11:59:13 -0400
6830Branch: REL_13_STABLE [3d338a46a] 2020-10-16 11:59:25 -0400
6831Branch: REL_12_STABLE [7004ce758] 2020-10-16 11:59:31 -0400
6832Branch: REL_11_STABLE [1eb2d7e3e] 2020-10-16 11:59:36 -0400
6833Branch: REL_10_STABLE [3e1a4c260] 2020-10-16 11:59:41 -0400
6834Branch: REL9_6_STABLE [e15115b4d] 2020-10-16 11:59:47 -0400
6835Branch: REL9_5_STABLE [9c3032881] 2020-10-16 11:59:52 -0400
6836-->
6837     <para>
6838      Add check for an unlikely failure case
6839      in <filename>contrib/pgcrypto</filename> (Daniel Gustafsson)
6840     </para>
6841    </listitem>
6842
6843    <listitem>
6844<!--
6845Author: Tom Lane <tgl@sss.pgh.pa.us>
6846Branch: master [4a071afbd] 2020-10-29 15:28:14 -0400
6847Branch: REL_13_STABLE [ee03baad2] 2020-10-29 15:28:28 -0400
6848Branch: REL_12_STABLE [25b587f03] 2020-10-29 15:28:35 -0400
6849Branch: REL_11_STABLE [24d769b90] 2020-10-29 15:28:41 -0400
6850Branch: REL_10_STABLE [c39f4e81d] 2020-10-29 15:28:47 -0400
6851-->
6852     <para>
6853      Fix recently-added <type>timetz</type> test case so it works when
6854      the USA is not observing daylight savings time (Tom Lane)
6855     </para>
6856    </listitem>
6857
6858    <listitem>
6859<!--
6860Author: Tom Lane <tgl@sss.pgh.pa.us>
6861Branch: master [c4a803ac7] 2020-10-16 21:53:33 -0400
6862Branch: REL_13_STABLE [3f26dca76] 2020-10-16 21:53:43 -0400
6863Branch: REL_12_STABLE [b39c94097] 2020-10-16 21:53:50 -0400
6864Branch: REL_11_STABLE [2b9166dbc] 2020-10-16 21:53:55 -0400
6865Branch: REL_10_STABLE [aae4097b0] 2020-10-16 21:54:03 -0400
6866Branch: REL9_6_STABLE [13dbf4ab8] 2020-10-16 21:54:09 -0400
6867Branch: REL9_5_STABLE [c8cb243cb] 2020-10-16 21:54:14 -0400
6868Branch: master [7d6d6bce4] 2020-10-22 21:23:47 -0400
6869Branch: REL_13_STABLE [96ed2ae93] 2020-10-22 21:24:01 -0400
6870Branch: REL_12_STABLE [78ccf7f42] 2020-10-22 21:24:07 -0400
6871Branch: REL_11_STABLE [02f86d523] 2020-10-22 21:24:12 -0400
6872Branch: REL_10_STABLE [a357cc05d] 2020-10-22 21:24:17 -0400
6873Branch: REL9_6_STABLE [05a36321a] 2020-10-22 21:24:23 -0400
6874Branch: REL9_5_STABLE [0abebb58f] 2020-10-22 21:24:28 -0400
6875-->
6876     <para>
6877      Update time zone data files to <application>tzdata</application>
6878      release 2020d for DST law changes in Fiji, Morocco, Palestine, the
6879      Canadian Yukon, Macquarie Island, and Casey Station (Antarctica);
6880      plus historical corrections for France, Hungary, Monaco, and
6881      Palestine.
6882     </para>
6883    </listitem>
6884
6885    <listitem>
6886<!--
6887Author: Tom Lane <tgl@sss.pgh.pa.us>
6888Branch: master [ce0e97f80] 2020-10-16 21:40:16 -0400
6889Branch: REL_13_STABLE [e0cf5e9b2] 2020-10-16 21:40:16 -0400
6890Branch: REL_12_STABLE [3d13a8307] 2020-10-16 21:40:16 -0400
6891Branch: REL_11_STABLE [4a2528bfa] 2020-10-16 21:40:16 -0400
6892Branch: REL_10_STABLE [41eeeb348] 2020-10-16 21:40:16 -0400
6893Branch: REL9_6_STABLE [5515c73a6] 2020-10-16 21:40:16 -0400
6894Branch: REL9_5_STABLE [38fac9c1f] 2020-10-16 21:40:16 -0400
6895Branch: master [c5054da0d] 2020-10-22 21:15:22 -0400
6896Branch: REL_13_STABLE [0e551533b] 2020-10-22 21:15:37 -0400
6897Branch: REL_12_STABLE [f56c42e50] 2020-10-22 21:16:04 -0400
6898Branch: REL_11_STABLE [d2ffe0a00] 2020-10-22 21:16:16 -0400
6899Branch: REL_10_STABLE [34285083b] 2020-10-22 21:16:23 -0400
6900Branch: REL9_6_STABLE [58f9f52a3] 2020-10-22 21:16:31 -0400
6901Branch: REL9_5_STABLE [ff26f804a] 2020-10-22 21:16:38 -0400
6902-->
6903     <para>
6904      Sync our copy of the timezone library with IANA tzcode release 2020d
6905      (Tom Lane)
6906     </para>
6907
6908     <para>
6909      This absorbs upstream's change of <application>zic</application>'s
6910      default output option from <quote>fat</quote>
6911      to <quote>slim</quote>.  That's just cosmetic for our purposes, as
6912      we continue to select the <quote>fat</quote> mode in pre-v13
6913      branches.  This change also ensures
6914      that <function>strftime()</function> does not
6915      change <varname>errno</varname> unless it fails.
6916     </para>
6917    </listitem>
6918
6919   </itemizedlist>
6920
6921  </sect2>
6922 </sect1>
6923
6924 <sect1 id="release-12-4">
6925  <title>Release 12.4</title>
6926
6927  <formalpara>
6928  <title>Release date:</title>
6929  <para>2020-08-13</para>
6930  </formalpara>
6931
6932  <para>
6933   This release contains a variety of fixes from 12.3.
6934   For information about new features in major release 12, see
6935   <xref linkend="release-12"/>.
6936  </para>
6937
6938  <sect2>
6939   <title>Migration to Version 12.4</title>
6940
6941   <para>
6942    A dump/restore is not required for those running 12.X.
6943   </para>
6944
6945   <para>
6946    However, if you are upgrading from a version earlier than 12.2,
6947    see <xref linkend="release-12-2"/>.
6948   </para>
6949  </sect2>
6950
6951  <sect2>
6952   <title>Changes</title>
6953
6954   <itemizedlist>
6955
6956    <listitem>
6957<!--
6958Author: Noah Misch <noah@leadboat.com>
6959Branch: master [11da97024] 2020-08-10 09:22:54 -0700
6960Branch: REL_13_STABLE [412c5c401] 2020-08-10 09:22:58 -0700
6961Branch: REL_12_STABLE [64a71062e] 2020-08-10 09:22:58 -0700
6962Branch: REL_11_STABLE [5a936d64c] 2020-08-10 09:22:59 -0700
6963Branch: REL_10_STABLE [dd5d99516] 2020-08-10 09:22:59 -0700
6964Branch: master [cec57b1a0] 2020-08-10 09:22:54 -0700
6965Branch: REL_13_STABLE [b601f24c8] 2020-08-10 09:22:58 -0700
6966Branch: REL_12_STABLE [515ee4a7e] 2020-08-10 09:22:58 -0700
6967Branch: REL_11_STABLE [613ed8a58] 2020-08-10 09:22:59 -0700
6968Branch: REL_10_STABLE [b793d6af9] 2020-08-10 09:22:59 -0700
6969-->
6970     <para>
6971      Set a secure <varname>search_path</varname> in logical replication
6972      walsenders and apply workers (Noah Misch)
6973     </para>
6974
6975     <para>
6976      A malicious user of either the publisher or subscriber database
6977      could potentially cause execution of arbitrary SQL code by the role
6978      running replication, which is often a superuser.  Some of the risks
6979      here are equivalent to those described in CVE-2018-1058, and are
6980      mitigated in this patch by ensuring that the replication sender and
6981      receiver execute with empty <varname>search_path</varname> settings.
6982      (As with CVE-2018-1058, that change might cause problems for
6983      under-qualified names used in replicated tables' DDL.)  Other risks
6984      are inherent in replicating objects that belong to untrusted roles;
6985      the most we can do is document that there is a hazard to consider.
6986      (CVE-2020-14349)
6987     </para>
6988    </listitem>
6989
6990    <listitem>
6991<!--
6992Author: Tom Lane <tgl@sss.pgh.pa.us>
6993Branch: master [7eeb1d986] 2020-08-10 10:44:42 -0400
6994Branch: REL_13_STABLE [98ca64899] 2020-08-10 10:44:42 -0400
6995Branch: REL_12_STABLE [3ba967084] 2020-08-10 10:44:42 -0400
6996Branch: REL_11_STABLE [afa358786] 2020-08-10 10:44:43 -0400
6997Branch: REL_10_STABLE [96cbfe92d] 2020-08-10 10:44:43 -0400
6998Branch: REL9_6_STABLE [2ea8a60fc] 2020-08-10 10:44:43 -0400
6999Branch: REL9_5_STABLE [6b11a4687] 2020-08-10 10:44:43 -0400
7000-->
7001     <para>
7002      Make contrib modules' installation scripts more secure (Tom Lane)
7003     </para>
7004
7005     <para>
7006      Attacks similar to those described in CVE-2018-1058 could be carried
7007      out against an extension installation script, if the attacker can
7008      create objects in either the extension's target schema or the schema
7009      of some prerequisite extension.  Since extensions often require
7010      superuser privilege to install, this can open a path to obtaining
7011      superuser privilege.  To mitigate this risk, be more careful about
7012      the <varname>search_path</varname> used to run an installation
7013      script; disable <varname>check_function_bodies</varname> within the
7014      script; and fix catalog-adjustment queries used in some contrib
7015      modules to ensure they are secure.  Also provide documentation to
7016      help third-party extension authors make their installation scripts
7017      secure.  This is not a complete solution; extensions that depend on
7018      other extensions can still be at risk if installed carelessly.
7019      (CVE-2020-14350)
7020     </para>
7021    </listitem>
7022
7023    <listitem>
7024<!--
7025Author: Etsuro Fujita <efujita@postgresql.org>
7026Branch: master [13838740f] 2020-07-28 11:00:00 +0900
7027Branch: REL_13_STABLE [cebe10a5f] 2020-07-28 11:00:00 +0900
7028Branch: REL_12_STABLE [62c4a7729] 2020-07-28 11:00:02 +0900
7029Branch: REL_11_STABLE [bead29dec] 2020-07-28 11:00:03 +0900
7030Branch: master [199cec977] 2020-08-07 14:45:00 +0900
7031Branch: REL_13_STABLE [79a3ab1e9] 2020-08-07 14:45:01 +0900
7032Branch: REL_12_STABLE [4f2693229] 2020-08-07 14:45:02 +0900
7033Branch: REL_11_STABLE [1db9c80f8] 2020-08-07 14:45:04 +0900
7034-->
7035     <para>
7036      Fix edge cases in partition pruning (Etsuro Fujita, Dmitry Dolgov)
7037     </para>
7038
7039     <para>
7040      When there are multiple partition key columns, generation of pruning
7041      tests could misbehave if some columns had no
7042      constraining <literal>WHERE</literal> clauses or multiple
7043      constraining clauses.  This could lead to server crashes, incorrect
7044      query results, or assertion failures.
7045     </para>
7046    </listitem>
7047
7048    <listitem>
7049<!--
7050Author: Tom Lane <tgl@sss.pgh.pa.us>
7051Branch: master [689696c71] 2020-07-14 18:56:56 -0400
7052Branch: REL_13_STABLE [e38705b5c] 2020-07-14 18:56:49 -0400
7053Branch: REL_12_STABLE [de797e823] 2020-07-14 18:56:49 -0400
7054Branch: REL_11_STABLE [e9f031172] 2020-07-14 18:56:49 -0400
7055-->
7056     <para>
7057      Fix construction of parameterized BitmapAnd and BitmapOr index scans
7058      on the inside of partition-wise nestloop joins (Tom Lane)
7059     </para>
7060
7061     <para>
7062      A plan in which such a scan needed to use a value from the outside
7063      of the join would usually crash at execution.
7064     </para>
7065    </listitem>
7066
7067    <listitem>
7068<!--
7069Author: Tom Lane <tgl@sss.pgh.pa.us>
7070Branch: master [7a980dfc6] 2020-08-05 15:38:55 -0400
7071Branch: REL_13_STABLE [c43a36fa8] 2020-08-05 15:38:55 -0400
7072Branch: REL_12_STABLE [f992da210] 2020-08-05 15:38:55 -0400
7073-->
7074     <para>
7075      Fix incorrect plan execution when a partitioned table is subject to
7076      both static and run-time partition pruning in the same query, and a
7077      new partition is added concurrently with the query (Amit Langote,
7078      Tom Lane)
7079     </para>
7080    </listitem>
7081
7082    <listitem>
7083<!--
7084Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7085Branch: master [470687b4a] 2020-08-08 12:31:55 -0400
7086Branch: REL_13_STABLE [900429d0c] 2020-08-08 12:31:55 -0400
7087Branch: REL_12_STABLE [85cb4ec50] 2020-08-08 12:31:55 -0400
7088Branch: REL_11_STABLE [1fa6eec97] 2020-08-08 12:31:55 -0400
7089Branch: REL_10_STABLE [d81387da9] 2020-08-08 12:31:55 -0400
7090Branch: REL9_6_STABLE [55d42c917] 2020-08-08 12:31:55 -0400
7091Branch: REL9_5_STABLE [ca8e87ea0] 2020-08-08 12:31:55 -0400
7092-->
7093     <para>
7094      In logical replication walsender, fix failure to send feedback
7095      messages after sending a keepalive message (&Aacute;lvaro Herrera)
7096     </para>
7097
7098     <para>
7099      This is a relatively minor problem when using built-in logical
7100      replication, because the built-in walreceiver will send a feedback
7101      reply (which clears the incorrect state) fairly frequently anyway.
7102      But with some other replication systems, such
7103      as <application>pglogical</application>, it causes significant
7104      performance issues.
7105     </para>
7106    </listitem>
7107
7108    <listitem>
7109<!--
7110Author: Tom Lane <tgl@sss.pgh.pa.us>
7111Branch: master [d5daae47d] 2020-07-20 13:40:16 -0400
7112Branch: REL_13_STABLE [2f1f189cf] 2020-07-20 13:40:16 -0400
7113Branch: REL_12_STABLE [71e561bd4] 2020-07-20 13:40:16 -0400
7114Branch: REL_11_STABLE [e8de627a3] 2020-07-20 13:40:16 -0400
7115Branch: REL_10_STABLE [39d6aec19] 2020-07-20 13:40:16 -0400
7116-->
7117     <para>
7118      Fix firing of column-specific <literal>UPDATE</literal> triggers in
7119      logical replication subscribers (Tom Lane)
7120     </para>
7121
7122     <para>
7123      The code neglected to account for the possibility of column numbers
7124      being different between the publisher and subscriber tables, so that
7125      if those were indeed different, wrong decisions might be made about
7126      which triggers to fire.
7127     </para>
7128    </listitem>
7129
7130    <listitem>
7131<!--
7132Author: Michael Paquier <michael@paquier.xyz>
7133Branch: master [b48df818d] 2020-06-18 16:34:59 +0900
7134Branch: REL_13_STABLE [43e70addf] 2020-06-18 16:35:29 +0900
7135Branch: REL_12_STABLE [16f43122d] 2020-06-18 16:35:32 +0900
7136Branch: REL_11_STABLE [1657e14b5] 2020-06-18 16:35:36 +0900
7137-->
7138     <para>
7139      Update oldest xmin and LSN values
7140      during <function>pg_replication_slot_advance()</function> (Michael
7141      Paquier)
7142     </para>
7143
7144     <para>
7145      This function previously failed to do that, possibly preventing
7146      resource cleanup (such as removal of no-longer-needed WAL segments)
7147      after manual advancement of a replication slot.
7148     </para>
7149    </listitem>
7150
7151    <listitem>
7152<!--
7153Author: Tom Lane <tgl@sss.pgh.pa.us>
7154Branch: master [78e73e875] 2020-07-31 11:43:12 -0400
7155Branch: REL_13_STABLE [11dce63d6] 2020-07-31 11:43:12 -0400
7156Branch: REL_12_STABLE [70248d8f5] 2020-07-31 11:43:12 -0400
7157Branch: REL_11_STABLE [da596fb4b] 2020-07-31 11:43:12 -0400
7158Branch: REL_10_STABLE [5e724125a] 2020-07-31 11:43:12 -0400
7159Branch: REL9_6_STABLE [8ab00b9fe] 2020-07-31 11:43:13 -0400
7160-->
7161     <para>
7162      Fix slow execution of <function>ts_headline()</function> (Tom Lane)
7163     </para>
7164
7165     <para>
7166      The phrase-search fix added in our previous set of minor releases
7167      could cause <function>ts_headline()</function> to take unreasonable
7168      amounts of time for long documents; to make matters worse, the query
7169      was not cancellable within the troublesome loop.
7170     </para>
7171    </listitem>
7172
7173    <listitem>
7174<!--
7175Author: Joe Conway <mail@joeconway.com>
7176Branch: master Release: REL_13_BR [887cdff4d] 2020-05-28 13:19:00 -0400
7177Branch: REL_12_STABLE [3ccae5445] 2020-05-28 13:19:10 -0400
7178Branch: REL_11_STABLE [36758c472] 2020-05-28 13:19:16 -0400
7179Branch: REL_10_STABLE [2cbe3a954] 2020-05-28 13:17:11 -0400
7180Branch: REL9_6_STABLE [28e2c6eac] 2020-05-28 13:17:20 -0400
7181Branch: REL9_5_STABLE [bfb9595a7] 2020-05-28 13:17:28 -0400
7182-->
7183     <para>
7184      Ensure the <function>repeat()</function> function can be interrupted
7185      by query cancel (Joe Conway)
7186     </para>
7187    </listitem>
7188
7189    <listitem>
7190<!--
7191Author: Tom Lane <tgl@sss.pgh.pa.us>
7192Branch: master [183926da3] 2020-07-09 16:02:23 -0400
7193Branch: REL_13_STABLE [601d419b2] 2020-07-09 16:02:23 -0400
7194Branch: REL_12_STABLE [2564e2d08] 2020-07-09 16:02:23 -0400
7195Branch: REL_11_STABLE [90b418f81] 2020-07-09 16:02:23 -0400
7196Branch: REL_10_STABLE [765ad260a] 2020-07-09 16:02:23 -0400
7197-->
7198     <para>
7199      Fix <function>pg_current_logfile()</function> to not include a
7200      carriage return (<literal>\r</literal>) in its result on Windows
7201      (Tom Lane)
7202     </para>
7203    </listitem>
7204
7205    <listitem>
7206<!--
7207Author: Joe Conway <mail@joeconway.com>
7208Branch: master [96d1f423f] 2020-07-04 06:26:53 -0400
7209Branch: REL_13_STABLE [0025c3a2c] 2020-07-04 06:28:21 -0400
7210Branch: REL_12_STABLE [015e899a7] 2020-07-04 06:28:44 -0400
7211Branch: REL_11_STABLE [c2cdaf0cb] 2020-07-04 06:29:03 -0400
7212Branch: master [1d05627fc] 2020-07-04 13:46:31 -0400
7213Branch: REL_13_STABLE [c536da177] 2020-07-04 13:47:07 -0400
7214Branch: REL_12_STABLE [b615b2365] 2020-07-04 13:47:21 -0400
7215Branch: REL_11_STABLE [1243aa9b2] 2020-07-04 13:47:31 -0400
7216-->
7217     <para>
7218      Ensure that <function>pg_read_file()</function> and related
7219      functions read until EOF is reached (Joe Conway)
7220     </para>
7221
7222     <para>
7223      Previously, if not given a specific data length to read, these
7224      functions would stop at whatever file length was reported
7225      by <function>stat()</function>.  That's unhelpful for pipes and
7226      other sorts of virtual files.
7227     </para>
7228    </listitem>
7229
7230    <listitem>
7231<!--
7232Author: Alexander Korotkov <akorotkov@postgresql.org>
7233Branch: master [df646509f] 2020-07-11 03:21:00 +0300
7234Branch: REL_13_STABLE [89a0b1a7c] 2020-07-11 03:21:48 +0300
7235Branch: REL_12_STABLE [f4ae676e3] 2020-07-11 03:21:57 +0300
7236-->
7237     <para>
7238      Forbid numeric <literal>NaN</literal> values in <type>jsonpath</type>
7239      computations (Alexander Korotkov)
7240     </para>
7241
7242     <para>
7243      Neither SQL nor JSON have the concept of <literal>NaN</literal>
7244      (not-a-number), but the <type>jsonpath</type> code attempted to
7245      allow such values anyway.  This necessarily leads to nonstandard
7246      behavior, so it seems better to reject such values at the outset.
7247     </para>
7248    </listitem>
7249
7250    <listitem>
7251<!--
7252Author: Tom Lane <tgl@sss.pgh.pa.us>
7253Branch: master [03109a530] 2020-06-13 13:43:40 -0400
7254Branch: REL_13_STABLE [33dd9bb3b] 2020-06-13 13:43:40 -0400
7255Branch: REL_12_STABLE [874372a94] 2020-06-13 13:43:24 -0400
7256-->
7257     <para>
7258      Handle single <literal>Inf</literal> or <literal>NaN</literal>
7259      inputs correctly in floating-point aggregates (Tom Lane)
7260     </para>
7261
7262     <para>
7263      The affected aggregates are
7264      <function>corr()</function>,
7265      <function>covar_pop()</function>,
7266      <function>regr_intercept()</function>,
7267      <function>regr_r2()</function>,
7268      <function>regr_slope()</function>,
7269      <function>regr_sxx()</function>,
7270      <function>regr_sxy()</function>,
7271      <function>regr_syy()</function>,
7272      <function>stddev_pop()</function>, and
7273      <function>var_pop()</function>.
7274      The correct answer in such cases is <literal>NaN</literal>, but an
7275      algorithmic change introduced in <productname>PostgreSQL</productname>
7276      v12 had caused these aggregates to produce zero instead.
7277     </para>
7278    </listitem>
7279
7280    <listitem>
7281<!--
7282Author: Tom Lane <tgl@sss.pgh.pa.us>
7283Branch: master [77a3be32f] 2020-06-11 17:38:42 -0400
7284Branch: REL_13_STABLE [ee788ba99] 2020-06-11 17:38:42 -0400
7285Branch: REL_12_STABLE [4284e1184] 2020-06-11 17:38:42 -0400
7286Branch: REL_11_STABLE [49e0a42dd] 2020-06-11 17:38:42 -0400
7287Branch: REL_10_STABLE [411a4626e] 2020-06-11 17:38:42 -0400
7288Branch: REL9_6_STABLE [36df06e25] 2020-06-11 17:38:42 -0400
7289-->
7290     <para>
7291      Fix mis-handling of <literal>NaN</literal> inputs during parallel
7292      aggregation on <type>numeric</type>-type columns (Tom Lane)
7293     </para>
7294
7295     <para>
7296      If some partial aggregation workers found only <literal>NaN</literal>s
7297      while others found only non-<literal>NaN</literal>s, the results
7298      were combined incorrectly, possibly leading to the wrong overall
7299      result (i.e., not <literal>NaN</literal> when it should be).
7300     </para>
7301    </listitem>
7302
7303    <listitem>
7304<!--
7305Author: Tom Lane <tgl@sss.pgh.pa.us>
7306Branch: master Release: REL_13_BR [a9632830b] 2020-06-04 16:42:23 -0400
7307Branch: REL_12_STABLE [a958b07bc] 2020-06-04 16:42:08 -0400
7308Branch: REL_11_STABLE [6490376e5] 2020-06-04 16:42:08 -0400
7309Branch: REL_10_STABLE [b2c64f571] 2020-06-04 16:42:08 -0400
7310Branch: REL_10_STABLE [9a9ba4c4d] 2020-06-04 17:57:19 -0400
7311-->
7312     <para>
7313      Reject time-of-day values greater than 24 hours (Tom Lane)
7314     </para>
7315
7316     <para>
7317      The intention of the datetime input code is to
7318      allow <quote>24:00:00</quote> or
7319      equivalently <quote>23:59:60</quote>, but no larger value.
7320      However, the range check was miscoded so that it would
7321      accept <quote>23:59:60.<replaceable>nnn</replaceable></quote> with
7322      nonzero fractional-second <replaceable>nnn</replaceable>.  In
7323      timestamp values this would result in wrapping into the first second
7324      of the next day.  In <type>time</type> and <type>timetz</type>
7325      values, the stored value would actually be more than 24 hours,
7326      causing dump/reload failures and possibly other misbehavior.
7327     </para>
7328    </listitem>
7329
7330    <listitem>
7331<!--
7332Author: Tom Lane <tgl@sss.pgh.pa.us>
7333Branch: master [63d2ac23b] 2020-06-22 11:46:41 -0400
7334Branch: REL_13_STABLE [57f8b9913] 2020-06-22 11:46:41 -0400
7335Branch: REL_12_STABLE [d3d875518] 2020-06-22 11:46:41 -0400
7336Branch: REL_11_STABLE [35a8e227e] 2020-06-22 11:46:41 -0400
7337Branch: REL_10_STABLE [6d9f7a094] 2020-06-22 11:46:41 -0400
7338Branch: REL9_6_STABLE [bd53ea2b2] 2020-06-22 11:46:41 -0400
7339Branch: REL9_5_STABLE [dda25c599] 2020-06-22 11:46:41 -0400
7340-->
7341     <para>
7342      Undo double-quoting of index names in <command>EXPLAIN</command>'s
7343      non-text output formats (Tom Lane, Euler Taveira)
7344     </para>
7345    </listitem>
7346
7347    <listitem>
7348<!--
7349Author: Amit Kapila <akapila@postgresql.org>
7350Branch: master [2a2494229] 2020-07-25 10:20:39 +0530
7351Branch: REL_13_STABLE [b15367ae3] 2020-07-25 10:31:19 +0530
7352Branch: REL_12_STABLE [bdaa84e38] 2020-07-25 10:38:46 +0530
7353Branch: REL_11_STABLE [603c18b7e] 2020-07-25 10:48:09 +0530
7354Branch: REL_10_STABLE [f963b5bc0] 2020-07-25 10:57:20 +0530
7355-->
7356     <para>
7357      Fix <command>EXPLAIN</command>'s accounting for resource usage,
7358      particularly buffer accesses, in parallel workers in a plan
7359      using <literal>Gather Merge</literal> nodes
7360      (Jehan-Guillaume de Rorthais)
7361     </para>
7362    </listitem>
7363
7364    <listitem>
7365<!--
7366Author: David Rowley <drowley@postgresql.org>
7367Branch: master [f1fcf2d3b] 2020-07-14 16:55:35 +1200
7368Branch: REL_13_STABLE [b82730429] 2020-07-14 16:57:41 +1200
7369Branch: REL_12_STABLE [1231a0b0e] 2020-07-14 17:03:12 +1200
7370Branch: REL_11_STABLE [d2761b680] 2020-07-14 16:59:57 +1200
7371Branch: REL_10_STABLE [4e02f88a4] 2020-07-14 17:00:28 +1200
7372Branch: REL9_6_STABLE [c732df133] 2020-07-14 17:00:57 +1200
7373Branch: REL9_5_STABLE [e20003fa0] 2020-07-14 17:01:25 +1200
7374-->
7375     <para>
7376      Fix timing of constraint revalidation in <command>ALTER
7377      TABLE</command> (David Rowley)
7378     </para>
7379
7380     <para>
7381      If <command>ALTER TABLE</command> needs to fully rewrite the table's
7382      contents (for example, due to change of a column's data type) and
7383      also needs to scan the table to re-validate foreign keys
7384      or <literal>CHECK</literal> constraints, it sometimes did things in
7385      the wrong order, leading to odd errors such as <quote>could not read
7386      block 0 in file "base/nnnnn/nnnnn": read only 0 of 8192 bytes</quote>.
7387     </para>
7388    </listitem>
7389
7390    <listitem>
7391<!--
7392Author: Michael Paquier <michael@paquier.xyz>
7393Branch: master Release: REL_13_BR [1127f0e39] 2020-06-05 10:26:02 +0900
7394Branch: REL_12_STABLE [75f147924] 2020-06-05 10:29:27 +0900
7395-->
7396     <para>
7397      Fix <command>REINDEX CONCURRENTLY</command> to preserve the index's
7398      replication identity flag (Michael Paquier)
7399     </para>
7400
7401     <para>
7402      Previously, reindexing a table's replica identity index caused the
7403      setting to be lost, preventing old tuple values from being included
7404      in future logical-decoding output.
7405     </para>
7406    </listitem>
7407
7408    <listitem>
7409<!--
7410Author: Tom Lane <tgl@sss.pgh.pa.us>
7411Branch: REL_12_STABLE [798b4faef] 2020-07-20 15:54:24 -0400
7412Branch: REL_11_STABLE [855195a7b] 2020-07-20 15:54:24 -0400
7413Branch: REL_12_STABLE [b7103bbe3] 2020-07-21 11:40:46 -0400
7414Branch: REL_11_STABLE [99b0c5da3] 2020-07-21 11:40:47 -0400
7415Branch: REL_10_STABLE [ae3d40b0c] 2020-07-21 11:40:47 -0400
7416-->
7417     <para>
7418      Work around incorrect not-null markings for
7419      <structname>pg_subscription</structname>.<structfield>subslotname</structfield>
7420      and <structname>pg_subscription_rel</structname>.<structfield>srsublsn</structfield>
7421      (Tom Lane)
7422     </para>
7423
7424     <para>
7425      The bootstrap catalog data incorrectly marks these two catalog
7426      columns as always non-null.  There's no easy way to correct that
7427      mistake in existing installations (though v13 and later will have
7428      the correct markings).  The main place that depends on that marking
7429      being correct is JIT-enabled tuple deconstruction, so teach it to
7430      explicitly ignore the marking for these two columns.  Also adjust
7431      some C code that accessed <structfield>srsublsn</structfield> without
7432      checking to see if it's null; a crash from that is improbable but
7433      perhaps not impossible.
7434     </para>
7435    </listitem>
7436
7437    <listitem>
7438<!--
7439Author: Tom Lane <tgl@sss.pgh.pa.us>
7440Branch: master [a742ecf9c] 2020-07-13 20:38:20 -0400
7441Branch: REL_13_STABLE [0734dbc45] 2020-07-13 20:38:20 -0400
7442Branch: REL_12_STABLE [d3b642ad9] 2020-07-13 20:38:21 -0400
7443Branch: REL_11_STABLE [3753df8f8] 2020-07-13 20:38:21 -0400
7444Branch: REL_10_STABLE [6443cd2e2] 2020-07-13 20:38:21 -0400
7445Branch: REL9_6_STABLE [dc6bb0994] 2020-07-13 20:38:21 -0400
7446Branch: REL9_5_STABLE [80d8f6d1d] 2020-07-13 20:38:21 -0400
7447-->
7448     <para>
7449      Cope with <literal>LATERAL</literal> references in restriction
7450      clauses attached to an un-flattened sub-<literal>SELECT</literal> in
7451      the <literal>FROM</literal> clause (Tom Lane)
7452     </para>
7453
7454     <para>
7455      This oversight could result in assertion failures or crashes at
7456      query execution.
7457     </para>
7458    </listitem>
7459
7460    <listitem>
7461<!--
7462Author: Tom Lane <tgl@sss.pgh.pa.us>
7463Branch: master Release: REL_13_BR [044c99bc5] 2020-06-05 16:18:50 -0400
7464Branch: REL_12_STABLE [022cd0bfd] 2020-06-05 16:18:50 -0400
7465Branch: master [bd0d893aa] 2020-07-21 19:41:03 -0400
7466Branch: REL_13_STABLE [cc4dd2a7a] 2020-07-21 19:40:44 -0400
7467Branch: REL_12_STABLE [171633ff5] 2020-07-21 19:40:44 -0400
7468-->
7469     <para>
7470      Use the query-specified collation for operators invoked during
7471      selectivity estimation (Tom Lane)
7472     </para>
7473
7474     <para>
7475      Previously, the collation of the underlying database column was
7476      used.  But using the query's collation is arguably more correct.
7477      More importantly, now that we have nondeterministic collations,
7478      there are cases where an operator will fail outright if given a
7479      nondeterministic collation.  We don't want planning to fail in cases
7480      where the query itself would work, so this means that we must use
7481      the query's collation when invoking operators for estimation
7482      purposes.
7483     </para>
7484    </listitem>
7485
7486    <listitem>
7487<!--
7488Author: Tom Lane <tgl@sss.pgh.pa.us>
7489Branch: master [ca5e93f76] 2020-07-03 19:01:21 -0400
7490Branch: REL_13_STABLE [9233624b1] 2020-07-03 19:01:21 -0400
7491Branch: REL_12_STABLE [153c14cdd] 2020-07-03 19:01:21 -0400
7492Branch: REL_11_STABLE [ef799bdd0] 2020-07-03 19:01:21 -0400
7493Branch: REL_10_STABLE [5144a40f3] 2020-07-03 19:01:22 -0400
7494Branch: REL9_6_STABLE [69a3fe6e6] 2020-07-03 19:01:22 -0400
7495Branch: REL9_5_STABLE [d83d59e42] 2020-07-03 19:01:22 -0400
7496-->
7497     <para>
7498      Avoid believing that a never-analyzed foreign table has zero tuples
7499      (Tom Lane)
7500     </para>
7501
7502     <para>
7503      This primarily affected the planner's estimate of the number of
7504      groups that would be obtained by <literal>GROUP BY</literal>.
7505     </para>
7506    </listitem>
7507
7508    <listitem>
7509<!--
7510Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7511Branch: master [986529ce4] 2020-07-09 20:13:25 -0400
7512Branch: REL_13_STABLE [c3a79e719] 2020-07-09 20:13:25 -0400
7513Branch: REL_12_STABLE [ca5001a36] 2020-07-09 20:13:25 -0400
7514Branch: REL_11_STABLE [907283576] 2020-07-09 20:13:25 -0400
7515Branch: REL_10_STABLE [40316dfed] 2020-07-09 20:13:24 -0400
7516-->
7517     <para>
7518      Remove bogus warning about <quote>leftover placeholder tuple</quote>
7519      in BRIN index de-summarization (&Aacute;lvaro Herrera)
7520     </para>
7521
7522     <para>
7523      The case can occur legitimately after a cancelled vacuum, so warning
7524      about it is overly noisy.
7525     </para>
7526    </listitem>
7527
7528    <listitem>
7529<!--
7530Author: Tom Lane <tgl@sss.pgh.pa.us>
7531Branch: master [f7b5988cc] 2020-07-03 17:01:34 -0400
7532Branch: REL_13_STABLE [cfe89f5e6] 2020-07-03 17:01:34 -0400
7533Branch: REL_12_STABLE [8b83e0160] 2020-07-03 17:01:34 -0400
7534Branch: REL_11_STABLE [79ed1d99d] 2020-07-03 17:01:34 -0400
7535Author: Magnus Hagander <magnus@hagander.net>
7536Branch: master [ecd9e9f0b] 2020-07-03 15:09:06 +0200
7537Branch: REL_13_STABLE [1d94c3965] 2020-07-03 15:10:12 +0200
7538Branch: REL_12_STABLE [28a862e9d] 2020-07-03 15:10:33 +0200
7539Branch: REL_11_STABLE [4aa02d072] 2020-07-03 15:10:41 +0200
7540-->
7541     <para>
7542      Fix selection of tablespaces for <quote>shared fileset</quote>
7543      temporary files (Magnus Hagander, Tom Lane)
7544     </para>
7545
7546     <para>
7547      If <varname>temp_tablespaces</varname> is empty or explicitly names
7548      the database's primary tablespace, such files got placed into
7549      the <literal>pg_default</literal> tablespace rather than the
7550      database's primary tablespace as expected.
7551     </para>
7552    </listitem>
7553
7554    <listitem>
7555<!--
7556Author: Alexander Korotkov <akorotkov@postgresql.org>
7557Branch: master [a44dd932f] 2020-06-20 17:34:51 +0300
7558Branch: REL_13_STABLE [39aafc88c] 2020-06-20 18:14:51 +0300
7559Branch: REL_12_STABLE [396a44a01] 2020-06-20 17:35:55 +0300
7560Branch: REL_11_STABLE [3f88e2d78] 2020-06-20 17:35:59 +0300
7561-->
7562     <para>
7563      Fix corner-case error in masking of SP-GiST index pages during WAL
7564      consistency checking (Alexander Korotkov)
7565     </para>
7566
7567     <para>
7568      This could cause false failure reports
7569      when <varname>wal_consistency_checking</varname> is enabled.
7570     </para>
7571    </listitem>
7572
7573    <listitem>
7574<!--
7575Author: Thomas Munro <tmunro@postgresql.org>
7576Branch: master [7897e3bb9] 2020-06-16 16:59:07 +1200
7577Branch: REL_13_STABLE [3e0b08c40] 2020-06-16 17:00:06 +1200
7578Branch: REL_12_STABLE [28ee12669] 2020-06-16 17:00:21 +1200
7579Branch: REL_11_STABLE [9c14d6024] 2020-06-16 17:00:37 +1200
7580Branch: REL_10_STABLE [95647a1c7] 2020-06-16 17:00:53 +1200
7581Branch: REL9_6_STABLE [02b71f06b] 2020-06-16 17:01:07 +1200
7582Branch: REL9_5_STABLE [89020a92f] 2020-06-16 17:01:22 +1200
7583Branch: master [42dee8b8e] 2020-07-23 21:10:49 +1200
7584Branch: REL_13_STABLE [6b366190d] 2020-07-23 21:15:01 +1200
7585Branch: REL_12_STABLE [8bf4e69a7] 2020-07-23 21:17:47 +1200
7586Branch: REL_11_STABLE [028f0c3a8] 2020-07-23 21:18:02 +1200
7587Branch: REL_10_STABLE [fac4145bf] 2020-07-23 21:18:13 +1200
7588Branch: REL9_6_STABLE [47adb2488] 2020-07-23 21:18:25 +1200
7589Branch: REL9_5_STABLE [3725c8ce4] 2020-07-23 21:18:34 +1200
7590-->
7591     <para>
7592      Improve error handling in the server's <filename>buffile</filename>
7593      module (Thomas Munro)
7594     </para>
7595
7596     <para>
7597      Fix some cases where I/O errors were indistinguishable from reaching
7598      EOF, or were not reported at all.  Also add details such as block
7599      numbers and byte counts where appropriate.
7600     </para>
7601    </listitem>
7602
7603    <listitem>
7604<!--
7605Author: Peter Geoghegan <pg@bowt.ie>
7606Branch: master [5940ffb22] 2020-06-11 10:09:47 -0700
7607Branch: REL_13_STABLE [6df7105e5] 2020-06-11 10:09:45 -0700
7608Branch: REL_12_STABLE [e620a38c2] 2020-06-11 10:09:43 -0700
7609Branch: REL_11_STABLE [dd616f2ec] 2020-06-11 10:09:40 -0700
7610Branch: REL_10_STABLE [19a6e1bc3] 2020-06-11 10:09:37 -0700
7611Branch: REL9_6_STABLE [e81dc2b7e] 2020-06-11 10:09:35 -0700
7612Branch: REL9_5_STABLE [c05f6b354] 2020-06-11 10:09:32 -0700
7613-->
7614     <para>
7615      Fix conflict-checking anomalies in <literal>SERIALIZABLE</literal>
7616      isolation mode (Peter Geoghegan)
7617     </para>
7618
7619     <para>
7620      If a concurrently-inserted tuple was updated by a different
7621      concurrent transaction, and neither tuple version was visible to the
7622      current transaction's snapshot, serialization conflict checking
7623      could draw the wrong conclusions about whether the tuple was relevant
7624      to the results of the current transaction.  This could allow a
7625      serializable transaction to commit when it should have failed with a
7626      serialization error.
7627     </para>
7628    </listitem>
7629
7630    <listitem>
7631<!--
7632Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7633Branch: master Release: REL_13_BR [242dfcbaf] 2020-05-15 16:50:34 -0400
7634Branch: REL_12_STABLE [1d84751c6] 2020-05-15 16:50:34 -0400
7635Branch: REL_11_STABLE [37b5c5fde] 2020-05-15 16:50:34 -0400
7636Branch: REL_10_STABLE [09f2752b0] 2020-05-15 16:50:34 -0400
7637Branch: REL9_6_STABLE [4649eb919] 2020-05-15 16:50:34 -0400
7638Branch: REL9_5_STABLE [0a319699d] 2020-05-15 16:50:34 -0400
7639-->
7640     <para>
7641      Avoid repeated marking of dead btree index entries as dead (Masahiko
7642      Sawada)
7643     </para>
7644
7645     <para>
7646      While functionally harmless, this led to useless WAL traffic when
7647      checksums are enabled or <varname>wal_log_hints</varname> is on.
7648     </para>
7649    </listitem>
7650
7651    <listitem>
7652<!--
7653Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7654Branch: master Release: REL_13_BR [e8abf585a] 2020-05-14 08:39:26 +0300
7655Branch: REL_12_STABLE [891a2007e] 2020-05-14 08:40:19 +0300
7656-->
7657     <para>
7658      Fix checkpointer process to discard file sync requests
7659      when <varname>fsync</varname> is off (Heikki Linnakangas)
7660     </para>
7661
7662     <para>
7663      Such requests are treated as no-ops if <varname>fsync</varname> is
7664      off, but we forgot to remove them from the checkpointer's table of
7665      pending actions.  This would lead to bloat of that table, as well as
7666      possible assertion failures if <varname>fsync</varname> is later
7667      re-enabled.
7668     </para>
7669    </listitem>
7670
7671    <listitem>
7672<!--
7673Author: Robert Haas <rhaas@postgresql.org>
7674Branch: master Release: REL_13_BR [303640199] 2019-12-19 09:06:54 -0500
7675Branch: REL_12_STABLE [bcbc27251] 2020-08-06 13:58:23 -0400
7676Branch: REL_11_STABLE [f7013683d] 2020-08-06 14:06:24 -0400
7677Branch: master Release: REL_13_BR [f05798014] 2020-04-26 13:48:33 +0200
7678Branch: REL_12_STABLE [7c78040f6] 2020-08-06 14:55:00 -0400
7679Branch: REL_11_STABLE [495a9b1fb] 2020-08-06 15:01:55 -0400
7680-->
7681     <para>
7682      Avoid trouble during cleanup of a non-exclusive backup when JIT
7683      compilation has been activated during the backup (Robert Haas)
7684     </para>
7685    </listitem>
7686
7687    <listitem>
7688<!--
7689Author: Thomas Munro <tmunro@postgresql.org>
7690Branch: master [57cb80630] 2020-06-08 13:57:24 +1200
7691Branch: REL_13_STABLE [acefa2cca] 2020-06-08 13:58:10 +1200
7692Branch: REL_12_STABLE [72766ad63] 2020-06-08 13:58:35 +1200
7693Branch: REL_11_STABLE [48eb6a3c8] 2020-06-08 13:59:57 +1200
7694Branch: REL_10_STABLE [fd11b842e] 2020-06-08 14:01:07 +1200
7695Branch: REL9_6_STABLE [644cac32a] 2020-06-08 14:01:51 +1200
7696Branch: REL9_5_STABLE [09dc17486] 2020-06-08 14:02:20 +1200
7697-->
7698     <para>
7699      Fix failure of some code paths to acquire the correct lock before
7700      modifying <filename>pg_control</filename> (Nathan Bossart, Fujii
7701      Masao)
7702     </para>
7703
7704     <para>
7705      This oversight could allow <filename>pg_control</filename> to be
7706      written out with an inconsistent checksum, possibly causing trouble
7707      later, including inability to restart the database if it crashed
7708      before the next <filename>pg_control</filename> update.
7709     </para>
7710    </listitem>
7711
7712    <listitem>
7713<!--
7714Author: Michael Paquier <michael@paquier.xyz>
7715Branch: master Release: REL_13_BR [ce1c5b9ae] 2020-06-01 14:41:18 +0900
7716Branch: REL_12_STABLE [894041eb2] 2020-06-01 14:41:25 +0900
7717Branch: REL_11_STABLE [8bc74490d] 2020-06-01 14:41:32 +0900
7718Branch: REL_10_STABLE [a36f21620] 2020-06-01 14:41:37 +0900
7719Branch: REL9_6_STABLE [e2fa9732f] 2020-06-01 14:41:42 +0900
7720Branch: REL9_5_STABLE [a8c6eb5b4] 2020-06-01 14:41:46 +0900
7721Author: Michael Paquier <michael@paquier.xyz>
7722Branch: master Release: REL_13_BR [e786be5fc] 2020-06-01 10:32:06 +0900
7723Branch: REL_12_STABLE [95e389b3c] 2020-06-01 10:32:53 +0900
7724-->
7725     <para>
7726      Fix errors in <function>currtid()</function>
7727      and <function>currtid2()</function> (Michael Paquier)
7728     </para>
7729
7730     <para>
7731      These functions (which are undocumented and used only by ancient
7732      versions of the ODBC driver) contained coding errors that could
7733      result in crashes, or in confusing error messages such as <quote>could
7734      not open file</quote> when applied to a relation having no storage.
7735     </para>
7736    </listitem>
7737
7738    <listitem>
7739<!--
7740Author: Michael Paquier <michael@paquier.xyz>
7741Branch: master Release: REL_13_BR [c1669fd58] 2020-06-04 10:17:49 +0900
7742Branch: REL_12_STABLE [03aa25b6e] 2020-06-04 10:18:02 +0900
7743Branch: REL_11_STABLE [b41a85f53] 2020-06-04 10:18:06 +0900
7744Branch: REL_10_STABLE [5ed8b4a98] 2020-06-04 10:18:11 +0900
7745Branch: REL9_6_STABLE [e7a134b58] 2020-06-04 10:18:17 +0900
7746Branch: REL9_5_STABLE [4a9809e34] 2020-06-04 10:18:27 +0900
7747Author: Tom Lane <tgl@sss.pgh.pa.us>
7748Branch: master Release: REL_13_BR [f88bd3139] 2020-06-03 12:36:23 -0400
7749Branch: REL_12_STABLE [3d474a079] 2020-06-03 12:36:24 -0400
7750Branch: REL_11_STABLE [7a8cb4a61] 2020-06-03 12:36:00 -0400
7751Branch: REL_10_STABLE [0c735c686] 2020-06-03 12:36:00 -0400
7752-->
7753     <para>
7754      Avoid calling <function>elog()</function>
7755      or <function>palloc()</function> while holding a spinlock (Michael
7756      Paquier, Tom Lane)
7757     </para>
7758
7759     <para>
7760      Logic associated with replication slots had several violations of
7761      this coding rule.  While the odds of trouble are quite low, an error
7762      in the called function would lead to a stuck spinlock.
7763     </para>
7764    </listitem>
7765
7766    <listitem>
7767<!--
7768Author: Michael Paquier <michael@paquier.xyz>
7769Branch: master Release: REL_13_BR [7ccb2f54d] 2020-05-16 18:15:18 +0900
7770Branch: REL_12_STABLE [b4ded2f22] 2020-05-16 18:16:31 +0900
7771Branch: REL_11_STABLE [70ae82b9b] 2020-05-16 18:16:37 +0900
7772Branch: REL_10_STABLE [3acb30b49] 2020-05-16 18:16:41 +0900
7773-->
7774     <para>
7775      Fix assertion in logical replication subscriber to allow use
7776      of <literal>REPLICA IDENTITY FULL</literal> (Euler Taveira)
7777     </para>
7778
7779     <para>
7780      This was just an incorrect assertion, so it has no impact on
7781      standard production builds.
7782     </para>
7783    </listitem>
7784
7785    <listitem>
7786<!--
7787Author: Tom Lane <tgl@sss.pgh.pa.us>
7788Branch: master Release: REL_13_BR [7247e243a] 2020-06-07 13:44:13 -0400
7789Branch: REL_12_STABLE [2edf14f5a] 2020-06-07 13:44:13 -0400
7790-->
7791     <para>
7792      Ensure that <application>libpq</application> continues to try to
7793      read from the database connection socket after a write failure
7794      (Tom Lane)
7795     </para>
7796
7797     <para>
7798      This is important not only to ensure that we collect any final error
7799      message from a dying server process, but because we do not consider
7800      the connection lost until we see a read failure.  This oversight
7801      allowed <application>libpq</application> to continue trying to
7802      send <command>COPY</command> data indefinitely after a mid-transfer
7803      loss of connection, rather than reporting failure to the application.
7804     </para>
7805    </listitem>
7806
7807    <listitem>
7808<!--
7809Author: Tom Lane <tgl@sss.pgh.pa.us>
7810Branch: master [25fe5ac45] 2020-07-13 11:58:08 -0400
7811Branch: REL_13_STABLE [8e6f134a9] 2020-07-13 11:58:09 -0400
7812Branch: REL_12_STABLE [e8b22a8a2] 2020-07-13 11:57:55 -0400
7813-->
7814     <para>
7815      Fix bugs in <application>libpq</application>'s management of GSS
7816      encryption state (Tom Lane)
7817     </para>
7818
7819     <para>
7820      A connection using GSS encryption could freeze up when attempting to
7821      reset it after a server restart, or when moving on to the next one of
7822      a list of candidate servers.
7823     </para>
7824    </listitem>
7825
7826    <listitem>
7827<!--
7828Author: Michael Meskes <meskes@postgresql.org>
7829Branch: master [e576f71fb] 2020-06-30 18:34:41 +0200
7830Branch: REL_13_STABLE [70dc45e8c] 2020-06-30 19:35:22 +0200
7831Branch: REL_12_STABLE [6425d6f6a] 2020-06-30 18:35:21 +0200
7832-->
7833     <para>
7834      Fix <application>ecpg</application> crash with <type>bytea</type>
7835      and cursor variables (Jehan-Guillaume de Rorthais)
7836     </para>
7837    </listitem>
7838
7839    <listitem>
7840<!--
7841Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7842Branch: master [ae3259c55] 2020-06-19 16:46:07 -0400
7843Branch: REL_13_STABLE [e74559c97] 2020-06-19 16:46:07 -0400
7844Branch: REL_12_STABLE [5b52008a6] 2020-06-19 16:46:07 -0400
7845Branch: REL_11_STABLE [2e155d90d] 2020-06-19 16:46:07 -0400
7846Branch: REL_10_STABLE [411febd53] 2020-06-19 16:46:07 -0400
7847Branch: REL9_6_STABLE [83762d0a9] 2020-06-19 16:46:07 -0400
7848Branch: REL9_5_STABLE [bbbce94dc] 2020-06-19 16:46:06 -0400
7849-->
7850     <para>
7851      Report out-of-disk-space errors properly
7852      in <application>pg_dump</application>
7853      and <application>pg_basebackup</application> (Justin Pryzby, Tom
7854      Lane, &Aacute;lvaro Herrera)
7855     </para>
7856
7857     <para>
7858      Some code paths could produce silly reports like <quote>could not
7859      write file: Success</quote>.
7860     </para>
7861    </listitem>
7862
7863    <listitem>
7864<!--
7865Author: Tom Lane <tgl@sss.pgh.pa.us>
7866Branch: master [f009591d6] 2020-07-17 13:04:05 -0400
7867Branch: REL_13_STABLE [71e8e66f7] 2020-07-17 13:04:06 -0400
7868Branch: REL_12_STABLE [66232220e] 2020-07-17 13:03:50 -0400
7869Branch: master [a8d0732ac] 2020-07-17 13:04:05 -0400
7870Branch: REL_13_STABLE [447cf2f8e] 2020-07-17 13:04:06 -0400
7871Branch: REL_12_STABLE [39a068ce6] 2020-07-17 12:14:28 -0400
7872-->
7873     <para>
7874      Make <application>pg_restore</application> cope with
7875      data-offset-less custom-format archive files when it needs to
7876      restore data items out of order (David Gilman, Tom Lane)
7877     </para>
7878
7879     <para>
7880      <application>pg_dump</application> will produce such files if it
7881      cannot seek its output (for example, if the output is piped to
7882      something).  This fix primarily improves the ability to do a
7883      parallel restore from such a file.
7884     </para>
7885    </listitem>
7886
7887    <listitem>
7888<!--
7889Author: Tom Lane <tgl@sss.pgh.pa.us>
7890Branch: master [ea9125304] 2020-07-11 13:36:50 -0400
7891Branch: REL_13_STABLE [bc9aaac1a] 2020-07-11 13:36:50 -0400
7892Branch: REL_12_STABLE [5fea14f4b] 2020-07-11 13:36:50 -0400
7893Branch: REL_11_STABLE [4fdc559c8] 2020-07-11 13:36:50 -0400
7894Branch: REL_10_STABLE [2d43c3057] 2020-07-11 13:36:51 -0400
7895Branch: REL9_6_STABLE [303322c5a] 2020-07-11 13:36:51 -0400
7896Branch: REL9_5_STABLE [db820b9a9] 2020-07-11 13:36:51 -0400
7897-->
7898     <para>
7899      Fix parallel restore of tables having both table-level privileges
7900      and per-column privileges (Tom Lane)
7901     </para>
7902
7903     <para>
7904      The table-level privilege grants have to be applied first, but a
7905      parallel restore did not reliably order them that way; this could
7906      lead to <quote>tuple concurrently updated</quote> errors, or to
7907      disappearance of some per-column privilege grants.  The fix for this
7908      is to include dependency links between such entries in the archive
7909      file, meaning that a new dump has to be taken with a
7910      corrected <application>pg_dump</application> to ensure that the
7911      problem will not recur.
7912     </para>
7913    </listitem>
7914
7915    <listitem>
7916<!--
7917Author: Bruce Momjian <bruce@momjian.us>
7918Branch: master [3f5863e15] 2020-06-15 20:59:40 -0400
7919Branch: REL_13_STABLE [a2c72851a] 2020-06-15 20:59:40 -0400
7920Branch: REL_12_STABLE [8e933596c] 2020-06-15 20:59:40 -0400
7921Branch: REL_11_STABLE [aeb785c0f] 2020-06-15 20:59:40 -0400
7922Branch: REL_10_STABLE [9170da96d] 2020-06-15 20:59:40 -0400
7923Branch: REL9_6_STABLE [5c1bfd627] 2020-06-15 20:59:40 -0400
7924Branch: REL9_5_STABLE [39c698cff] 2020-06-15 20:59:40 -0400
7925-->
7926     <para>
7927      Ensure that <application>pg_upgrade</application> runs
7928      with <varname>vacuum_defer_cleanup_age</varname> set to zero in the
7929      target cluster (Bruce Momjian)
7930     </para>
7931
7932     <para>
7933      If the target cluster's configuration has been modified to
7934      set <varname>vacuum_defer_cleanup_age</varname> to a nonzero value,
7935      that prevented freezing of the system catalogs from working properly,
7936      which caused the upgrade to fail in confusing ways.  Ensure that any
7937      such setting is overridden for the duration of the upgrade.
7938     </para>
7939    </listitem>
7940
7941    <listitem>
7942<!--
7943Author: Noah Misch <noah@leadboat.com>
7944Branch: master Release: REL_13_BR [cee9cadb5] 2020-05-13 20:42:09 -0700
7945Branch: REL_12_STABLE [73a5c0d81] 2020-05-13 20:42:24 -0700
7946Branch: REL_11_STABLE [a26789452] 2020-05-13 20:42:37 -0700
7947Branch: REL_10_STABLE [970ed4493] 2020-05-13 20:42:42 -0700
7948Branch: REL9_6_STABLE [1ab5b672e] 2020-05-13 20:42:46 -0700
7949Branch: REL9_5_STABLE [595b4115c] 2020-05-13 20:42:49 -0700
7950Author: Noah Misch <noah@leadboat.com>
7951Branch: master Release: REL_13_BR [8222a9d9a] 2020-05-13 20:42:09 -0700
7952Branch: REL_12_STABLE [7130be8aa] 2020-05-13 20:42:23 -0700
7953Branch: REL_11_STABLE [357012e17] 2020-05-13 20:42:34 -0700
7954Branch: REL_10_STABLE [a28db2081] 2020-05-13 20:42:42 -0700
7955-->
7956     <para>
7957      Fix <application>pg_recvlogical</application> to drain pending
7958      messages before exiting (Noah Misch)
7959     </para>
7960
7961     <para>
7962      Without this, the replication sender might detect a send failure and
7963      exit without making the expected final update to the replication
7964      slot's LSN position.  That led to re-transmitting data after the
7965      next connection.  It was also possible to miss error messages sent
7966      after the last data that <application>pg_recvlogical</application>
7967      wants to consume.
7968     </para>
7969    </listitem>
7970
7971    <listitem>
7972<!--
7973Author: Michael Paquier <michael@paquier.xyz>
7974Branch: master [1d09fb1f0] 2020-07-15 15:17:23 +0900
7975Branch: REL_13_STABLE [5f89bb4cf] 2020-07-15 15:17:32 +0900
7976Branch: REL_12_STABLE [92927477f] 2020-07-15 15:17:36 +0900
7977Branch: REL_11_STABLE [c6d33d144] 2020-07-15 15:17:44 +0900
7978Branch: REL_10_STABLE [23924feca] 2020-07-15 15:17:49 +0900
7979Branch: REL9_6_STABLE [14fe80413] 2020-07-15 15:17:55 +0900
7980Branch: REL9_5_STABLE [18ec25412] 2020-07-15 15:18:01 +0900
7981-->
7982     <para>
7983      Fix <application>pg_rewind</application>'s handling of just-deleted
7984      files in the source data directory (Justin Pryzby, Michael Paquier)
7985     </para>
7986
7987     <para>
7988      When working with an on-line source database, concurrent file
7989      deletions are possible, but <application>pg_rewind</application>
7990      would get confused if deletion happened between seeing a file's
7991      directory entry and examining it with <function>stat()</function>.
7992     </para>
7993    </listitem>
7994
7995    <listitem>
7996<!--
7997Author: Michael Paquier <michael@paquier.xyz>
7998Branch: master [932f9fb50] 2020-07-16 15:52:37 +0900
7999Branch: REL_13_STABLE [beebbb39d] 2020-07-16 15:52:54 +0900
8000Branch: REL_12_STABLE [cd113a0b4] 2020-07-16 15:52:58 +0900
8001Branch: REL_11_STABLE [de559c2b0] 2020-07-16 15:53:01 +0900
8002Branch: REL_10_STABLE [800ec48f5] 2020-07-16 15:53:04 +0900
8003Branch: REL9_6_STABLE [a452b239e] 2020-07-16 15:53:09 +0900
8004Branch: REL9_5_STABLE [ab7ce97ec] 2020-07-16 15:53:12 +0900
8005-->
8006     <para>
8007      Make <application>pg_test_fsync</application> use binary I/O mode on
8008      Windows (Michael Paquier)
8009     </para>
8010
8011     <para>
8012      Previously it wrote the test file in text mode, which is not an
8013      accurate reflection of <productname>PostgreSQL</productname>'s
8014      actual usage.
8015     </para>
8016    </listitem>
8017
8018    <listitem>
8019<!--
8020Author: Alexander Korotkov <akorotkov@postgresql.org>
8021Branch: master Release: REL_13_BR [34dae902c] 2020-05-14 12:44:44 +0300
8022Branch: REL_12_STABLE [ae1f9b0a9] 2020-05-14 12:46:08 +0300
8023Branch: REL_11_STABLE [b9a45d8db] 2020-05-14 12:46:15 +0300
8024-->
8025     <para>
8026      Fix <filename>contrib/amcheck</filename> to not complain about
8027      deleted index pages that are empty (Alexander Korotkov)
8028     </para>
8029
8030     <para>
8031      This state of affairs is normal during WAL replay.
8032     </para>
8033    </listitem>
8034
8035    <listitem>
8036<!--
8037Author: Joe Conway <mail@joeconway.com>
8038Branch: master Release: REL_13_BR [9003b76e1] 2020-05-28 13:44:54 -0400
8039Branch: REL_12_STABLE [e8eb48595] 2020-05-28 13:44:59 -0400
8040Branch: REL_11_STABLE [49a00e07c] 2020-05-28 13:45:02 -0400
8041Branch: REL_10_STABLE [43d3d7318] 2020-05-28 13:45:06 -0400
8042Branch: REL9_6_STABLE [43d7934a3] 2020-05-28 13:45:11 -0400
8043Branch: REL9_5_STABLE [f140d9b6e] 2020-05-28 13:45:15 -0400
8044-->
8045     <para>
8046      Fix failure to initialize local state correctly
8047      in <filename>contrib/dblink</filename> (Joe Conway)
8048     </para>
8049
8050     <para>
8051      With the right combination of circumstances, this could lead to
8052      <function>dblink_close()</function> issuing an unexpected
8053      remote <command>COMMIT</command>.
8054     </para>
8055    </listitem>
8056
8057    <listitem>
8058<!--
8059Author: Tom Lane <tgl@sss.pgh.pa.us>
8060Branch: master [b9b610577] 2020-07-23 17:20:01 -0400
8061Branch: REL_13_STABLE [7dab4569d] 2020-07-23 17:20:01 -0400
8062Branch: REL_12_STABLE [3d4a77815] 2020-07-23 17:20:02 -0400
8063Branch: REL_11_STABLE [475c69c97] 2020-07-23 17:20:03 -0400
8064Branch: REL_10_STABLE [d8ec3b126] 2020-07-23 17:20:03 -0400
8065Branch: REL9_6_STABLE [ccf964a80] 2020-07-23 17:20:04 -0400
8066Branch: REL9_5_STABLE [d0519e9fe] 2020-07-23 17:20:04 -0400
8067-->
8068     <para>
8069      Fix <filename>contrib/pgcrypto</filename>'s misuse
8070      of <function>deflate()</function> (Tom Lane)
8071     </para>
8072
8073     <para>
8074      The <function>pgp_sym_encrypt</function> functions could produce
8075      incorrect compressed data due to mishandling
8076      of <application>zlib</application>'s API requirements.  We have no
8077      reports of this error manifesting with
8078      stock <application>zlib</application>, but it can be seen when using
8079      IBM's <application>zlibNX</application> implementation.
8080     </para>
8081    </listitem>
8082
8083    <listitem>
8084<!--
8085Author: Michael Paquier <michael@paquier.xyz>
8086Branch: master [a3ab7a707] 2020-07-27 15:58:32 +0900
8087Branch: REL_13_STABLE [0caf1fc6e] 2020-07-27 15:58:54 +0900
8088Branch: REL_12_STABLE [5bd087eb5] 2020-07-27 15:58:59 +0900
8089Branch: REL_11_STABLE [202fc4ca5] 2020-07-27 15:59:03 +0900
8090Branch: REL_10_STABLE [9729f9979] 2020-07-27 15:59:07 +0900
8091Branch: REL9_6_STABLE [8a60f541f] 2020-07-27 15:59:13 +0900
8092Branch: REL9_5_STABLE [aaa132a65] 2020-07-27 15:59:22 +0900
8093Branch: REL_11_STABLE [1785ac8ad] 2020-08-02 11:00:12 -0400
8094Branch: REL_10_STABLE [e1b4135cf] 2020-08-02 11:00:12 -0400
8095-->
8096     <para>
8097      Fix corner case in decompression logic
8098      in <filename>contrib/pgcrypto</filename>'s
8099      <function>pgp_sym_decrypt</function> functions (Kyotaro Horiguchi,
8100      Michael Paquier)
8101     </para>
8102
8103     <para>
8104      A compressed stream can validly end with an empty packet, but the
8105      decompressor failed to handle this and would complain about corrupt
8106      data.
8107     </para>
8108    </listitem>
8109
8110    <listitem>
8111<!--
8112Author: Amit Kapila <akapila@postgresql.org>
8113Branch: master Release: REL_13_BR [a16915545] 2020-05-14 09:24:33 +0530
8114Branch: REL_12_STABLE [98171e59a] 2020-05-14 09:34:46 +0530
8115Branch: REL_11_STABLE [1fbfc3d8a] 2020-05-14 09:39:04 +0530
8116Branch: REL_10_STABLE [33b772801] 2020-05-14 09:44:21 +0530
8117Branch: REL9_6_STABLE [a1466e194] 2020-05-14 09:50:10 +0530
8118Branch: REL9_5_STABLE [650952aeb] 2020-05-14 09:55:04 +0530
8119-->
8120     <para>
8121      Support building our NLS code with Microsoft Visual Studio 2015 or
8122      later (Juan Jos&eacute; Santamar&iacute;a Flecha, Davinder Singh,
8123      Amit Kapila)
8124     </para>
8125    </listitem>
8126
8127    <listitem>
8128<!--
8129Author: Michael Paquier <michael@paquier.xyz>
8130Branch: master Release: REL_13_BR [d2a995990] 2020-05-21 14:41:15 +0900
8131Branch: REL_12_STABLE [089baec6f] 2020-05-21 14:41:30 +0900
8132Branch: REL_11_STABLE [bb24af50d] 2020-05-21 14:41:33 +0900
8133Branch: REL_10_STABLE [8dfc7d888] 2020-05-21 14:41:36 +0900
8134Branch: REL9_6_STABLE [57dc672c2] 2020-05-21 14:41:40 +0900
8135Branch: REL9_5_STABLE [8de137017] 2020-05-21 14:41:43 +0900
8136-->
8137     <para>
8138      Avoid possible failure of our MSVC install script when there is a
8139      file named <filename>configure</filename> several levels above the
8140      source code tree (Arnold M&uuml;ller)
8141     </para>
8142
8143     <para>
8144      This could confuse some logic that looked
8145      for <filename>configure</filename> to identify the top level of the
8146      source tree.
8147     </para>
8148    </listitem>
8149
8150   </itemizedlist>
8151
8152  </sect2>
8153 </sect1>
8154
8155 <sect1 id="release-12-3">
8156  <title>Release 12.3</title>
8157
8158  <formalpara>
8159  <title>Release date:</title>
8160  <para>2020-05-14</para>
8161  </formalpara>
8162
8163  <para>
8164   This release contains a variety of fixes from 12.2.
8165   For information about new features in major release 12, see
8166   <xref linkend="release-12"/>.
8167  </para>
8168
8169  <sect2>
8170   <title>Migration to Version 12.3</title>
8171
8172   <para>
8173    A dump/restore is not required for those running 12.X.
8174   </para>
8175
8176   <para>
8177    However, if you are upgrading from a version earlier than 12.2,
8178    see <xref linkend="release-12-2"/>.
8179   </para>
8180  </sect2>
8181
8182  <sect2>
8183   <title>Changes</title>
8184
8185   <itemizedlist>
8186
8187    <listitem>
8188<!--
8189Author: David Rowley <drowley@postgresql.org>
8190Branch: master [3cb02e307] 2020-04-18 14:10:37 +1200
8191Branch: REL_12_STABLE [a375f11c4] 2020-04-18 14:11:21 +1200
8192-->
8193     <para>
8194      Fix possible failure with <literal>GENERATED</literal> columns
8195      (David Rowley)
8196     </para>
8197
8198     <para>
8199      If a <literal>GENERATED</literal> column's value is an exact copy of
8200      another column of the table (and it is a pass-by-reference data
8201      type), it was possible to crash or insert corrupted data into the
8202      table.  While it would be rather pointless for
8203      a <literal>GENERATED</literal> expression to just duplicate another
8204      column, an expression using a function that sometimes returns its
8205      input unchanged could create the situation.
8206     </para>
8207    </listitem>
8208
8209    <listitem>
8210<!--
8211Author: Peter Eisentraut <peter@eisentraut.org>
8212Branch: master [086ffddf3] 2020-05-08 11:31:57 +0200
8213Branch: REL_12_STABLE [14751c340] 2020-05-08 11:31:46 +0200
8214-->
8215     <para>
8216      Handle inheritance of generated columns better (Peter Eisentraut)
8217     </para>
8218
8219     <para>
8220      When a table column is inherited during <command>CREATE TABLE
8221      ... INHERITS</command>, disallow changing any generation properties
8222      when the parent column is already
8223      marked <literal>GENERATED</literal>; but allow a child column to be
8224      marked <literal>GENERATED</literal> when its parent is not.
8225     </para>
8226    </listitem>
8227
8228    <listitem>
8229<!--
8230Author: Peter Eisentraut <peter@eisentraut.org>
8231Branch: master [e92e4a2b6] 2020-04-09 16:36:45 +0200
8232Branch: REL_12_STABLE [f06d583c5] 2020-04-09 16:34:30 +0200
8233-->
8234     <para>
8235      Fix cross-column references in <command>CREATE TABLE LIKE INCLUDING
8236      GENERATED</command> (Peter Eisentraut)
8237     </para>
8238
8239     <para>
8240      <command>CREATE TABLE ... LIKE</command> failed when trying to copy
8241      a <literal>GENERATED</literal> expression that references a
8242      physically-later column.
8243     </para>
8244    </listitem>
8245
8246    <listitem>
8247<!--
8248Author: Peter Eisentraut <peter@eisentraut.org>
8249Branch: master [501e41dd3] 2020-05-08 08:39:17 +0200
8250Branch: REL_12_STABLE [bf7233ee4] 2020-05-08 09:18:15 +0200
8251Branch: REL_11_STABLE [03a8a5f2d] 2020-05-08 09:30:57 +0200
8252-->
8253     <para>
8254      Propagate <command>ALTER TABLE ... SET STORAGE</command> to indexes
8255      (Peter Eisentraut)
8256     </para>
8257
8258     <para>
8259      Non-expression index columns have always copied
8260      the <structfield>attstorage</structfield> property of their table
8261      column at creation.  Update them when <command>ALTER TABLE ... SET
8262      STORAGE</command> is done, to maintain consistency.
8263     </para>
8264    </listitem>
8265
8266    <listitem>
8267<!--
8268Author: Michael Paquier <michael@paquier.xyz>
8269Branch: master [a40caf5f8] 2020-04-06 11:03:49 +0900
8270Branch: REL_12_STABLE [3e62dd3a9] 2020-04-06 11:05:47 +0900
8271Branch: REL_11_STABLE [41faafbd7] 2020-04-06 11:05:54 +0900
8272Branch: REL_10_STABLE [cef2b8d52] 2020-04-06 11:05:57 +0900
8273Branch: REL9_6_STABLE [61a161fe4] 2020-04-06 11:06:04 +0900
8274Branch: REL9_5_STABLE [3f77a6702] 2020-04-06 11:06:07 +0900
8275-->
8276     <para>
8277      Preserve the <structfield>indisclustered</structfield> setting of
8278      indexes rewritten by <command>ALTER TABLE</command> (Amit Langote,
8279      Justin Pryzby)
8280     </para>
8281
8282     <para>
8283      Previously, <command>ALTER TABLE</command> lost track of which index
8284      had been used for <command>CLUSTER</command>.
8285     </para>
8286    </listitem>
8287
8288    <listitem>
8289<!--
8290Author: Peter Eisentraut <peter@eisentraut.org>
8291Branch: master [1cc9c2412] 2020-03-13 11:57:06 +0100
8292Branch: REL_12_STABLE [c9ef507e8] 2020-03-13 11:57:20 +0100
8293Branch: REL_11_STABLE [15cbbf81a] 2020-03-13 12:24:44 +0100
8294Branch: REL_10_STABLE [02530da73] 2020-03-13 13:03:28 +0100
8295Branch: REL9_6_STABLE [2f0dd9d93] 2020-03-13 13:21:05 +0100
8296Branch: REL9_5_STABLE [c15d35041] 2020-03-13 13:21:30 +0100
8297-->
8298     <para>
8299      Preserve the replica identity properties of indexes rewritten
8300      by <command>ALTER TABLE</command> (Quan Zongliang, Peter Eisentraut)
8301     </para>
8302    </listitem>
8303
8304    <listitem>
8305<!--
8306Author: Michael Paquier <michael@paquier.xyz>
8307Branch: master [d79fb88ac] 2020-03-03 10:12:28 +0900
8308Branch: REL_12_STABLE [f087d63a4] 2020-03-03 10:12:49 +0900
8309-->
8310     <para>
8311      Preserve the <structfield>indisclustered</structfield> setting of
8312      indexes rebuilt by <command>REINDEX CONCURRENTLY</command>
8313      (Justin Pryzby)
8314     </para>
8315    </listitem>
8316
8317    <listitem>
8318<!--
8319Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
8320Branch: master [5be594caf] 2020-05-06 12:29:41 -0400
8321Branch: REL_12_STABLE [2eea49471] 2020-05-06 12:29:41 -0400
8322Branch: REL_11_STABLE [59273a7ce] 2020-05-06 12:29:41 -0400
8323Branch: REL_10_STABLE [4d21263ff] 2020-05-06 12:29:41 -0400
8324Branch: REL9_6_STABLE [2bf56f50e] 2020-05-06 12:29:41 -0400
8325Branch: REL9_5_STABLE [91d97462c] 2020-05-06 12:29:41 -0400
8326-->
8327     <para>
8328      Lock objects sooner during <command>DROP OWNED BY</command>
8329      (&Aacute;lvaro Herrera)
8330     </para>
8331
8332     <para>
8333      This avoids failures in race-condition cases where another session is
8334      deleting some of the same objects.
8335     </para>
8336    </listitem>
8337
8338    <listitem>
8339<!--
8340Author: Andrew Gierth <rhodiumtoad@postgresql.org>
8341Branch: master [d9a4cce29] 2020-04-25 05:09:30 +0100
8342Branch: REL_12_STABLE [d0360632d] 2020-04-25 05:10:24 +0100
8343Branch: REL_11_STABLE [0f4970d1a] 2020-04-25 05:10:19 +0100
8344Branch: REL_10_STABLE [287f6d2d9] 2020-04-25 05:10:13 +0100
8345Branch: REL9_6_STABLE [86b7a4e6f] 2020-04-25 05:10:10 +0100
8346Branch: REL9_5_STABLE [b3824ca22] 2020-04-25 05:10:05 +0100
8347-->
8348     <para>
8349      Fix error-case processing for <command>CREATE ROLE ... IN
8350      ROLE</command> (Andrew Gierth)
8351     </para>
8352
8353     <para>
8354      Some error cases would be reported as <quote>unexpected node
8355      type</quote> or the like, instead of the intended message.
8356     </para>
8357    </listitem>
8358
8359    <listitem>
8360<!--
8361Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
8362Branch: master [afccd76f1] 2020-04-21 13:57:00 -0400
8363Branch: REL_12_STABLE [e26c8a6b3] 2020-04-21 13:57:00 -0400
8364Branch: REL_11_STABLE [0b83c4721] 2020-04-21 13:57:00 -0400
8365-->
8366     <para>
8367      Ensure that when a partition is detached, any triggers cloned from
8368      its formerly-parent table are removed (Justin Pryzby)
8369     </para>
8370    </listitem>
8371
8372    <listitem>
8373<!--
8374Author: Michael Paquier <michael@paquier.xyz>
8375Branch: master [c0187869a] 2020-04-08 15:04:51 +0900
8376Branch: REL_12_STABLE [0a9ae1800] 2020-04-08 15:04:57 +0900
8377-->
8378     <para>
8379      Fix crash when <literal>COLLATE</literal> is applied to a
8380      non-collatable type in a partition bound expression (Dmitry Dolgov)
8381     </para>
8382    </listitem>
8383
8384    <listitem>
8385<!--
8386Author: Tom Lane <tgl@sss.pgh.pa.us>
8387Branch: master [501b01879] 2020-04-01 14:49:49 -0400
8388Branch: REL_12_STABLE [76ea60696] 2020-04-01 14:49:49 -0400
8389Branch: REL_11_STABLE [76ddc88f4] 2020-04-01 14:49:49 -0400
8390-->
8391     <para>
8392      Ensure that unique indexes over partitioned tables match the
8393      equality semantics of the partitioning key (Guancheng Luo)
8394     </para>
8395
8396     <para>
8397      This would only be an issue with index opclasses that have unusual
8398      notions of equality, but it's wrong in theory, so check.
8399     </para>
8400    </listitem>
8401
8402    <listitem>
8403<!--
8404Author: Magnus Hagander <magnus@hagander.net>
8405Branch: master [7e4e57474] 2020-04-20 12:53:40 +0200
8406Branch: REL_12_STABLE [212e712a5] 2020-04-20 12:56:26 +0200
8407Branch: REL_11_STABLE [3d4652f67] 2020-04-20 12:57:12 +0200
8408Branch: REL_10_STABLE [d0bb66572] 2020-04-20 12:57:24 +0200
8409-->
8410     <para>
8411      Ensure that members of the <literal>pg_read_all_stats</literal> role
8412      can read all statistics views, as expected (Magnus Hagander)
8413     </para>
8414
8415     <para>
8416      The functions underlying
8417      the <structname>pg_stat_progress_*</structname> views had not gotten
8418      this memo.
8419     </para>
8420    </listitem>
8421
8422    <listitem>
8423<!--
8424Author: Tom Lane <tgl@sss.pgh.pa.us>
8425Branch: master [baf17ad9d] 2020-04-24 12:02:36 -0400
8426Branch: REL_12_STABLE [64e49a67e] 2020-04-24 12:02:36 -0400
8427Branch: REL_11_STABLE [776f6d3d0] 2020-04-24 12:02:36 -0400
8428-->
8429     <para>
8430      Repair performance regression in
8431      <structname>information_schema</structname>.<structname>triggers</structname>
8432      view (Tom Lane)
8433     </para>
8434
8435     <para>
8436      This patch redefines that view so that an
8437      outer <literal>WHERE</literal> clause constraining the table name
8438      can be pushed down into the view, allowing its calculations to be
8439      done only for triggers belonging to the table of interest rather
8440      than all triggers in the database.  In a database with many triggers
8441      this would make a significant speed difference for queries of that
8442      form.  Since things worked that way before v11, this is a potential
8443      performance regression.  Users who find this to be a problem can fix
8444      it by replacing the view definition (or, perhaps, just deleting and
8445      reinstalling the whole <structname>information_schema</structname>
8446      schema).
8447     </para>
8448    </listitem>
8449
8450    <listitem>
8451<!--
8452Author: Tom Lane <tgl@sss.pgh.pa.us>
8453Branch: master [607f8ce74] 2020-02-13 13:37:43 -0500
8454Branch: REL_12_STABLE [764a554d6] 2020-02-13 13:37:43 -0500
8455-->
8456     <para>
8457      Repair performance regression in floating point overflow/underflow
8458      detection (Emre Hasegeli)
8459     </para>
8460
8461     <para>
8462      Previous refactoring had resulted in <function>isinf()</function>
8463      being called extra times in some hot code paths.
8464     </para>
8465    </listitem>
8466
8467    <listitem>
8468<!--
8469Author: Tom Lane <tgl@sss.pgh.pa.us>
8470Branch: master [e81e5741a] 2020-04-27 12:21:04 -0400
8471Branch: REL_12_STABLE [18f7e856c] 2020-04-27 12:21:04 -0400
8472Branch: REL_11_STABLE [98a4d6950] 2020-04-27 12:21:04 -0400
8473Branch: REL_10_STABLE [072a86327] 2020-04-27 12:21:04 -0400
8474Branch: REL9_6_STABLE [22dcb6c20] 2020-04-27 12:21:04 -0400
8475-->
8476     <para>
8477      Fix full text search to handle NOT above a phrase search correctly
8478      (Tom Lane)
8479     </para>
8480
8481     <para>
8482      Queries such as <literal>!(foo&lt;-&gt;bar)</literal> failed to find
8483      matching rows when implemented as a GiST or GIN index search.
8484     </para>
8485    </listitem>
8486
8487    <listitem>
8488<!--
8489Author: Tom Lane <tgl@sss.pgh.pa.us>
8490Branch: master [db89f0e3a] 2020-05-07 15:59:51 -0400
8491Branch: REL_12_STABLE [e1d70ba43] 2020-05-07 15:59:51 -0400
8492Branch: REL_11_STABLE [5db48808c] 2020-05-07 15:59:52 -0400
8493Branch: REL_10_STABLE [26cf16a93] 2020-05-07 15:59:52 -0400
8494Branch: REL9_6_STABLE [7c9d9aa5c] 2020-05-07 15:59:52 -0400
8495-->
8496     <para>
8497      Fix full text search for cases where a phrase search includes an
8498      item with both prefix matching and a weight restriction (Tom Lane)
8499     </para>
8500    </listitem>
8501
8502    <listitem>
8503<!--
8504Author: Tom Lane <tgl@sss.pgh.pa.us>
8505Branch: master [c9b0c678d] 2020-04-09 13:19:23 -0400
8506Branch: REL_12_STABLE [841378947] 2020-04-09 13:19:23 -0400
8507Branch: REL_11_STABLE [91be1d190] 2020-04-09 13:19:23 -0400
8508Branch: REL_10_STABLE [5f7247b3b] 2020-04-09 13:19:23 -0400
8509Branch: REL9_6_STABLE [c81de3a82] 2020-04-09 13:19:23 -0400
8510Branch: master [2e0e409e3] 2020-04-09 15:38:43 -0400
8511Branch: REL_12_STABLE [07453e9e3] 2020-04-09 15:38:52 -0400
8512Branch: REL_11_STABLE [d9a3fe4c5] 2020-04-09 15:38:57 -0400
8513Branch: REL_10_STABLE [9be664d71] 2020-04-09 15:39:02 -0400
8514Branch: REL9_6_STABLE [c2599b93d] 2020-04-09 15:39:09 -0400
8515Branch: master [b10f8bb9f] 2020-04-09 12:36:59 -0400
8516Branch: REL_12_STABLE [1306edeae] 2020-04-09 12:36:59 -0400
8517Branch: REL_11_STABLE [ff081d6bb] 2020-04-09 12:37:00 -0400
8518Branch: REL_10_STABLE [afab39986] 2020-04-09 12:37:00 -0400
8519Branch: REL9_6_STABLE [638519156] 2020-04-09 12:37:00 -0400
8520-->
8521     <para>
8522      Fix <function>ts_headline()</function> to make better headline
8523      selections when working with phrase queries (Tom Lane)
8524     </para>
8525    </listitem>
8526
8527    <listitem>
8528<!--
8529Author: Tom Lane <tgl@sss.pgh.pa.us>
8530Branch: master [e41955faf] 2020-04-03 13:15:45 -0400
8531Branch: REL_12_STABLE [05f4a8818] 2020-04-03 13:15:30 -0400
8532Branch: REL_11_STABLE [0912fb39c] 2020-04-03 13:15:30 -0400
8533Branch: REL_10_STABLE [44c763fe9] 2020-04-03 13:15:30 -0400
8534Branch: REL9_6_STABLE [49b0d13d7] 2020-04-03 13:15:30 -0400
8535Branch: REL9_5_STABLE [8150f7813] 2020-04-03 13:15:30 -0400
8536Branch: REL9_5_STABLE [e82b6e00a] 2020-04-06 12:29:54 -0400
8537-->
8538     <para>
8539      Fix bugs in <varname>gin_fuzzy_search_limit</varname> processing
8540      (Ad&eacute; Heyward, Tom Lane)
8541     </para>
8542
8543     <para>
8544      A small value of <varname>gin_fuzzy_search_limit</varname> could
8545      result in unexpected slowness due to unintentionally rescanning the
8546      same index page many times.  Another code path failed to apply the
8547      intended filtering at all, possibly returning too many values.
8548     </para>
8549    </listitem>
8550
8551    <listitem>
8552<!--
8553Author: Tom Lane <tgl@sss.pgh.pa.us>
8554Branch: master [41a194f49] 2020-04-07 20:50:28 -0400
8555Branch: REL_12_STABLE [35d1eefb2] 2020-04-07 20:50:02 -0400
8556Branch: REL_11_STABLE [5fae66410] 2020-04-07 20:50:02 -0400
8557Branch: REL_10_STABLE [4c7a311a2] 2020-04-07 20:50:02 -0400
8558Branch: REL9_6_STABLE [049e9f48e] 2020-04-07 20:50:02 -0400
8559Branch: REL9_5_STABLE [ebd194ac5] 2020-04-07 20:50:02 -0400
8560-->
8561     <para>
8562      Allow input of type <type>circle</type> to accept the format
8563      <quote><literal>(<replaceable>x</replaceable>,<replaceable>y</replaceable>),<replaceable>r</replaceable></literal></quote>
8564      as the documentation says it does (David Zhang)
8565     </para>
8566    </listitem>
8567
8568    <listitem>
8569<!--
8570Author: Tom Lane <tgl@sss.pgh.pa.us>
8571Branch: master [26a944cf2] 2020-04-07 15:57:58 -0400
8572Branch: REL_12_STABLE [6e6b74a20] 2020-04-07 16:30:55 -0400
8573Branch: REL_11_STABLE [5d79fc60c] 2020-04-07 16:30:55 -0400
8574Branch: REL_10_STABLE [889786e0e] 2020-04-07 16:30:55 -0400
8575Branch: REL9_6_STABLE [e40c4d491] 2020-04-07 16:30:55 -0400
8576Branch: REL9_5_STABLE [dbb121038] 2020-04-07 16:30:55 -0400
8577-->
8578     <para>
8579      Make the <function>get_bit()</function>
8580      and <function>set_bit()</function> functions cope
8581      with <type>bytea</type> strings longer than 256MB (Movead Li)
8582     </para>
8583
8584     <para>
8585      Since the bit number argument is only <type>int4</type>, it's
8586      impossible to use these functions to access bits beyond the first
8587      256MB of a long <type>bytea</type>.  We'll widen the argument
8588      to <type>int8</type> in v13, but in the meantime, allow these
8589      functions to work on the initial substring of a
8590      long <type>bytea</type>.
8591     </para>
8592    </listitem>
8593
8594    <listitem>
8595<!--
8596Author: Tom Lane <tgl@sss.pgh.pa.us>
8597Branch: master [82e801852] 2020-03-31 12:57:55 -0400
8598Branch: REL_12_STABLE [ee40e8975] 2020-03-31 12:57:55 -0400
8599Branch: REL_11_STABLE [5b22ff764] 2020-03-31 12:57:55 -0400
8600Branch: REL_10_STABLE [83f7761d8] 2020-03-31 12:57:55 -0400
8601-->
8602     <para>
8603      Ignore file-not-found errors in <function>pg_ls_waldir()</function>
8604      and allied functions (Tom Lane)
8605     </para>
8606
8607     <para>
8608      This prevents a race condition failure if a file is removed between
8609      when we see its directory entry and when we attempt
8610      to <function>stat()</function> it.
8611     </para>
8612    </listitem>
8613
8614    <listitem>
8615<!--
8616Author: Tom Lane <tgl@sss.pgh.pa.us>
8617Branch: master [085b6b667] 2020-03-11 15:27:59 -0400
8618Branch: REL_12_STABLE [3c8864fc1] 2020-03-11 15:27:59 -0400
8619Branch: REL_11_STABLE [63b51dfec] 2020-03-11 15:27:59 -0400
8620Branch: REL_10_STABLE [05283dd5b] 2020-03-11 15:28:00 -0400
8621Branch: master [a029a0641] 2020-03-11 18:24:11 -0400
8622Branch: REL_12_STABLE [630590d6f] 2020-03-11 18:24:13 -0400
8623Branch: REL_11_STABLE [13f353b0e] 2020-03-11 18:24:14 -0400
8624Branch: REL_10_STABLE [064e029e6] 2020-03-11 18:24:15 -0400
8625Branch: master [b4570d33a] 2020-03-16 21:05:52 -0400
8626Branch: REL_12_STABLE [2a89455aa] 2020-03-16 21:05:53 -0400
8627Branch: REL_11_STABLE [819d55257] 2020-03-16 21:05:54 -0400
8628Branch: REL_10_STABLE [5e4a0b719] 2020-03-16 21:05:55 -0400
8629Branch: REL9_6_STABLE [cd6a05187] 2020-03-16 21:05:56 -0400
8630Branch: REL9_5_STABLE [da254148f] 2020-03-16 21:05:29 -0400
8631-->
8632     <para>
8633      Avoid possibly leaking an open-file descriptor for a directory
8634      in <function>pg_ls_dir()</function>,
8635      <function>pg_timezone_names()</function>,
8636      <function>pg_tablespace_databases()</function>, and allied functions
8637      (Justin Pryzby)
8638     </para>
8639    </listitem>
8640
8641    <listitem>
8642<!--
8643Author: Tom Lane <tgl@sss.pgh.pa.us>
8644Branch: master [4dbcb3f84] 2020-03-14 14:42:22 -0400
8645Branch: REL_12_STABLE [390984f92] 2020-03-14 14:42:22 -0400
8646Branch: REL_11_STABLE [540ef37cc] 2020-03-14 14:42:22 -0400
8647Branch: REL_10_STABLE [61d14971d] 2020-03-14 14:42:22 -0400
8648Branch: REL9_6_STABLE [30e491653] 2020-03-14 14:42:22 -0400
8649Branch: REL9_5_STABLE [a1ef0f373] 2020-03-14 14:42:22 -0400
8650-->
8651     <para>
8652      Fix polymorphic-function type resolution to correctly infer the
8653      actual type of an <type>anyarray</type> output when given only
8654      an <type>anyrange</type> input (Tom Lane)
8655     </para>
8656    </listitem>
8657
8658    <listitem>
8659<!--
8660Author: Stephen Frost <sfrost@snowman.net>
8661Branch: master [b68a560f8] 2020-05-02 11:39:26 -0400
8662Branch: REL_12_STABLE [79e594cf0] 2020-05-02 11:39:32 -0400
8663-->
8664     <para>
8665      Fix server's connection-startup logic for case where a GSSAPI
8666      connection is rejected because support is not compiled in, and the
8667      client then tries SSL instead (Andrew Gierth)
8668     </para>
8669
8670     <para>
8671      This led to a bogus <quote>unsupported frontend protocol</quote>
8672      failure.
8673     </para>
8674    </listitem>
8675
8676    <listitem>
8677<!--
8678Author: Tom Lane <tgl@sss.pgh.pa.us>
8679Branch: master [46da7bf67] 2020-05-05 13:10:17 -0400
8680Branch: REL_12_STABLE [987717d7c] 2020-05-05 13:10:09 -0400
8681-->
8682     <para>
8683      Fix memory leakage during GSSAPI encryption (Tom Lane)
8684     </para>
8685
8686     <para>
8687      Both the backend and libpq would leak memory equivalent to the total
8688      amount of data sent during the session, if GSSAPI encryption is in use.
8689     </para>
8690    </listitem>
8691
8692    <listitem>
8693<!--
8694Author: Andres Freund <andres@anarazel.de>
8695Branch: master [299298bc8] 2020-04-22 19:53:06 -0700
8696Branch: REL_12_STABLE [95695c784] 2020-04-22 19:55:53 -0700
8697-->
8698     <para>
8699      Fix query-lifespan memory leak for a set-returning function used in
8700      a query's <literal>FROM</literal> clause (Andres Freund)
8701     </para>
8702    </listitem>
8703
8704    <listitem>
8705<!--
8706Author: Tom Lane <tgl@sss.pgh.pa.us>
8707Branch: master [58c47ccff] 2020-02-29 13:48:09 -0500
8708Branch: REL_12_STABLE [96d783ae5] 2020-02-29 13:48:10 -0500
8709Branch: REL_11_STABLE [9eb6b652a] 2020-02-29 13:48:10 -0500
8710-->
8711     <para>
8712      Avoid leakage of a hashed subplan's hash tables across multiple
8713      executions (Andreas Karlsson, Tom Lane)
8714     </para>
8715
8716     <para>
8717      This mistake could result in severe memory bloat if a query
8718      re-executed a hashed subplan enough times.
8719     </para>
8720    </listitem>
8721
8722    <listitem>
8723<!--
8724Author: Tom Lane <tgl@sss.pgh.pa.us>
8725Branch: master [a477bfc1d] 2020-02-26 18:14:12 -0500
8726Branch: REL_12_STABLE [30d5c6bf2] 2020-02-26 18:14:13 -0500
8727-->
8728     <para>
8729      Improve planner's handling of no-op domain coercions (Tom Lane)
8730     </para>
8731
8732     <para>
8733      Fix some cases where a domain coercion that does nothing was not
8734      completely removed from expressions.
8735     </para>
8736    </listitem>
8737
8738    <listitem>
8739<!--
8740Author: Tom Lane <tgl@sss.pgh.pa.us>
8741Branch: master [d12bdba77] 2020-04-21 15:58:42 -0400
8742Branch: REL_12_STABLE [5a4efd100] 2020-04-21 15:58:42 -0400
8743Branch: REL_11_STABLE [56259c377] 2020-04-21 15:58:42 -0400
8744Branch: REL_10_STABLE [e6c17c85a] 2020-04-21 15:58:42 -0400
8745Branch: REL9_6_STABLE [5c1c27eef] 2020-04-21 15:58:43 -0400
8746Branch: REL9_5_STABLE [36714f8ca] 2020-04-21 15:58:43 -0400
8747-->
8748     <para>
8749      Avoid unlikely crash when <command>REINDEX</command> is terminated
8750      by a session-shutdown signal (Tom Lane)
8751     </para>
8752    </listitem>
8753
8754    <listitem>
8755<!--
8756Author: Tom Lane <tgl@sss.pgh.pa.us>
8757Branch: master [5c27bce7f] 2020-04-11 12:29:06 -0400
8758Branch: REL_12_STABLE [8ffb86644] 2020-04-11 12:29:06 -0400
8759Branch: REL_11_STABLE [f3d06e524] 2020-04-11 12:29:06 -0400
8760Branch: REL_10_STABLE [1e6bb6125] 2020-04-11 12:29:06 -0400
8761Branch: REL9_6_STABLE [242ca479f] 2020-04-11 12:29:06 -0400
8762Branch: REL9_5_STABLE [30ce86367] 2020-04-11 12:29:06 -0400
8763-->
8764     <para>
8765      Prevent printout of possibly-incorrect hash join table statistics
8766      in <command>EXPLAIN</command> (Konstantin Knizhnik, Tom Lane, Thomas
8767      Munro)
8768     </para>
8769    </listitem>
8770
8771    <listitem>
8772<!--
8773Author: Fujii Masao <fujii@postgresql.org>
8774Branch: master [007491979] 2020-02-19 20:37:26 +0900
8775Branch: REL_12_STABLE [16e6c968b] 2020-02-19 20:38:38 +0900
8776Branch: REL_11_STABLE [414ed1ca2] 2020-02-19 20:39:02 +0900
8777Branch: REL_10_STABLE [79f344d52] 2020-02-19 20:39:37 +0900
8778Branch: REL9_6_STABLE [307c27037] 2020-02-19 20:40:38 +0900
8779Branch: REL9_5_STABLE [4a3f164b7] 2020-02-19 20:43:59 +0900
8780-->
8781     <para>
8782      Fix reporting of elapsed time for heap truncation steps
8783      in <command>VACUUM VERBOSE</command> (Tatsuhito Kasahara)
8784     </para>
8785    </listitem>
8786
8787    <listitem>
8788<!--
8789Author: Peter Geoghegan <pg@bowt.ie>
8790Branch: master [73a076b03] 2020-05-01 09:51:09 -0700
8791Branch: REL_12_STABLE [40708eaaf] 2020-05-01 09:51:08 -0700
8792Branch: REL_11_STABLE [d3944c364] 2020-05-01 09:51:06 -0700
8793-->
8794     <para>
8795      Fix possible undercounting of deleted B-tree index pages
8796      in <command>VACUUM VERBOSE</command> output (Peter Geoghegan)
8797     </para>
8798    </listitem>
8799
8800    <listitem>
8801<!--
8802Author: Peter Geoghegan <pg@bowt.ie>
8803Branch: master [b0229f26d] 2020-05-01 08:39:52 -0700
8804Branch: REL_12_STABLE [05b73261c] 2020-05-01 08:39:51 -0700
8805Branch: REL_11_STABLE [e4fa6c929] 2020-05-01 08:39:49 -0700
8806Branch: master [69cf853fe] 2020-05-01 12:19:44 -0700
8807Branch: REL_12_STABLE [e1477db92] 2020-05-01 12:19:42 -0700
8808Branch: REL_11_STABLE [573478564] 2020-05-01 12:19:39 -0700
8809-->
8810     <para>
8811      Fix wrong bookkeeping for oldest deleted page in a B-tree index
8812      (Peter Geoghegan)
8813     </para>
8814
8815     <para>
8816      This could cause subtly wrong decisions about
8817      when <command>VACUUM</command> can skip an index cleanup scan;
8818      although it appears there may be no significant user-visible effects
8819      from that.
8820     </para>
8821    </listitem>
8822
8823    <listitem>
8824<!--
8825Author: Fujii Masao <fujii@postgresql.org>
8826Branch: master [f2ff20359] 2020-05-08 10:36:40 +0900
8827Branch: REL_12_STABLE [a354d0153] 2020-05-08 10:38:01 +0900
8828Branch: REL_11_STABLE [cc534fc3b] 2020-05-08 10:38:45 +0900
8829Branch: REL_10_STABLE [3a48740e8] 2020-05-08 10:39:08 +0900
8830-->
8831     <para>
8832      Ensure that TimelineHistoryRead and TimelineHistoryWrite wait states
8833      are reported in all code paths that read or write timeline history
8834      files (Masahiro Ikeda)
8835     </para>
8836    </listitem>
8837
8838    <listitem>
8839<!--
8840Author: Fujii Masao <fujii@postgresql.org>
8841Branch: master [17d3fcdc3] 2020-03-10 00:14:43 +0900
8842Branch: REL_12_STABLE [82c04e483] 2020-03-10 00:15:25 +0900
8843Branch: REL_11_STABLE [e54183cb0] 2020-03-10 00:16:48 +0900
8844Branch: REL_10_STABLE [e9c4eaacd] 2020-03-10 00:18:24 +0900
8845Branch: REL9_6_STABLE [d1b414e7e] 2020-03-10 00:19:57 +0900
8846Branch: REL9_5_STABLE [c9a47b81e] 2020-03-10 00:23:22 +0900
8847-->
8848     <para>
8849      Avoid possibly showing <quote>waiting</quote> twice in a process's
8850      PS status (Masahiko Sawada)
8851     </para>
8852    </listitem>
8853
8854    <listitem>
8855<!--
8856Author: Tom Lane <tgl@sss.pgh.pa.us>
8857Branch: master [fe3036527] 2020-03-31 17:06:22 -0400
8858Branch: REL_12_STABLE [6c426cd43] 2020-03-31 17:06:22 -0400
8859-->
8860     <para>
8861      Avoid race condition when <command>ANALYZE</command> replaces the
8862      catalog tuple for extended statistics data (Dean Rasheed)
8863     </para>
8864    </listitem>
8865
8866    <listitem>
8867<!--
8868Author: Michael Paquier <michael@paquier.xyz>
8869Branch: master [dd9ac7d5d] 2020-03-31 08:27:47 +0900
8870Branch: REL_12_STABLE [3ec8576a0] 2020-03-31 08:27:54 +0900
8871-->
8872     <para>
8873      Remove ill-considered skip of <quote>redundant</quote>
8874      anti-wraparound vacuums (Michael Paquier)
8875     </para>
8876
8877     <para>
8878      This avoids a corner case where autovacuum could get into a loop of
8879      repeatedly trying and then skipping the same vacuum job.
8880     </para>
8881    </listitem>
8882
8883    <listitem>
8884<!--
8885Author: Peter Geoghegan <pg@bowt.ie>
8886Branch: master [4b42a8993] 2020-03-30 12:03:59 -0700
8887Branch: REL_12_STABLE [97cda93d8] 2020-03-30 12:03:57 -0700
8888-->
8889     <para>
8890      Ensure INCLUDE'd columns are always removed from B-tree pivot tuples
8891      (Peter Geoghegan)
8892     </para>
8893
8894     <para>
8895      This mistake wasted space in some rare cases, but was otherwise
8896      harmless.
8897     </para>
8898    </listitem>
8899
8900    <listitem>
8901<!--
8902Author: Michael Paquier <michael@paquier.xyz>
8903Branch: master [61d7c7bce] 2020-03-10 15:38:17 +0900
8904Branch: REL_12_STABLE [8bca5f935] 2020-03-10 15:38:34 +0900
8905-->
8906     <para>
8907      Cope with invalid TOAST indexes that could be left over after a
8908      failed <command>REINDEX CONCURRENTLY</command> (Julien Rouhaud)
8909     </para>
8910    </listitem>
8911
8912    <listitem>
8913<!--
8914Author: Michael Paquier <michael@paquier.xyz>
8915Branch: master [fbcf08711] 2020-03-05 12:50:15 +0900
8916Branch: REL_12_STABLE [26876127b] 2020-03-05 12:50:23 +0900
8917-->
8918     <para>
8919      Ensure that valid index dependencies are left behind after a
8920      failed <command>REINDEX CONCURRENTLY</command> (Michael Paquier)
8921     </para>
8922
8923     <para>
8924      Previously the old index could be left with
8925      no <structname>pg_depend</structname> links at all, so that for
8926      example it would not get dropped if the parent table is dropped.
8927     </para>
8928    </listitem>
8929
8930    <listitem>
8931<!--
8932Author: Tom Lane <tgl@sss.pgh.pa.us>
8933Branch: master [80d76be51] 2020-02-28 20:28:34 -0500
8934Branch: REL_12_STABLE [d7684c38a] 2020-02-28 20:28:34 -0500
8935Branch: REL_11_STABLE [7ea20a2bc] 2020-02-28 20:28:34 -0500
8936-->
8937     <para>
8938      Avoid failure if autovacuum tries to access a just-dropped temporary
8939      schema (Tom Lane)
8940     </para>
8941
8942     <para>
8943      This hazard only arises if a superuser manually drops a temporary
8944      schema; which isn't normal practice, but should work.
8945     </para>
8946    </listitem>
8947
8948    <listitem>
8949<!--
8950Author: Michael Paquier <michael@paquier.xyz>
8951Branch: master [4e87c4836] 2020-04-24 08:48:28 +0900
8952Branch: REL_12_STABLE [22db5269b] 2020-04-24 08:48:35 +0900
8953Branch: REL_11_STABLE [2d24ca00b] 2020-04-24 08:48:40 +0900
8954Branch: REL_10_STABLE [02657c421] 2020-04-24 08:48:45 +0900
8955Branch: REL9_6_STABLE [c2d8ae0df] 2020-04-24 08:48:51 +0900
8956Branch: REL9_5_STABLE [9eff11653] 2020-04-24 08:48:55 +0900
8957Branch: master [f9c1b8dba] 2020-04-24 11:33:41 +0900
8958Branch: REL_12_STABLE [26057550d] 2020-04-24 11:33:58 +0900
8959Branch: REL_11_STABLE [0d04e9d76] 2020-04-24 11:34:03 +0900
8960Branch: REL_10_STABLE [3d9cae5ad] 2020-04-24 11:34:06 +0900
8961Branch: REL9_6_STABLE [11f004699] 2020-04-24 11:34:11 +0900
8962Branch: REL9_5_STABLE [a4726998d] 2020-04-24 11:34:16 +0900
8963-->
8964     <para>
8965      Avoid premature recycling of WAL segments during crash recovery
8966      (Jehan-Guillaume de Rorthais)
8967     </para>
8968
8969     <para>
8970      WAL segments that become ready to be archived during crash recovery
8971      were potentially recycled without being archived.
8972     </para>
8973    </listitem>
8974
8975    <listitem>
8976<!--
8977Author: Fujii Masao <fujii@postgresql.org>
8978Branch: master [4bd0ad9e4] 2020-04-08 00:49:29 +0900
8979Branch: REL_12_STABLE [683e0ef55] 2020-05-09 12:00:27 +0900
8980Branch: REL_11_STABLE [dcd1569fb] 2020-05-09 12:04:51 +0900
8981Branch: REL_10_STABLE [660f1fc40] 2020-05-09 12:11:11 +0900
8982Branch: REL9_6_STABLE [70b597974] 2020-05-09 12:16:37 +0900
8983Branch: REL9_5_STABLE [e3f5b148e] 2020-05-09 12:19:47 +0900
8984-->
8985     <para>
8986      Avoid scanning irrelevant timelines during archive recovery (Kyotaro
8987      Horiguchi)
8988     </para>
8989
8990     <para>
8991      This can eliminate many attempts to fetch non-existent WAL files from
8992      archive storage, which is helpful if archive access is slow.
8993     </para>
8994    </listitem>
8995
8996    <listitem>
8997<!--
8998Author: Amit Kapila <akapila@postgresql.org>
8999Branch: master [e3ff789ac] 2020-02-19 08:15:49 +0530
9000Branch: REL_12_STABLE [59112f235] 2020-02-19 08:27:15 +0530
9001Branch: REL_11_STABLE [bff456d7a] 2020-02-19 08:35:16 +0530
9002Branch: REL_10_STABLE [b448aa441] 2020-02-19 08:44:16 +0530
9003Branch: REL9_6_STABLE [59c1a03f0] 2020-02-19 08:52:08 +0530
9004Branch: REL9_5_STABLE [05555f7aa] 2020-02-19 08:59:18 +0530
9005-->
9006     <para>
9007      Remove bogus <quote>subtransaction logged without previous top-level
9008      txn record</quote> error check in logical decoding (Arseny Sher,
9009      Amit Kapila)
9010     </para>
9011
9012     <para>
9013      This condition is legitimately reachable in various scenarios, so
9014      remove the check.
9015     </para>
9016    </listitem>
9017
9018    <listitem>
9019<!--
9020Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9021Branch: master [bcd1c3630] 2020-03-17 16:13:18 -0300
9022Branch: REL_12_STABLE [e58e13e84] 2020-03-17 16:13:18 -0300
9023-->
9024     <para>
9025      Avoid possible failure after a replication slot copy, due to
9026      premature removal of WAL data (Masahiko Sawada, Arseny Sher)
9027     </para>
9028    </listitem>
9029
9030    <listitem>
9031<!--
9032Author: Peter Eisentraut <peter@eisentraut.org>
9033Branch: master [49bf81536] 2020-03-26 13:29:20 +0100
9034Branch: REL_12_STABLE [223e9c77d] 2020-03-26 13:31:07 +0100
9035Branch: REL_11_STABLE [ba4cc05ce] 2020-03-26 13:51:07 +0100
9036Branch: REL_10_STABLE [f36a10434] 2020-03-26 13:51:22 +0100
9037Branch: REL9_6_STABLE [2d8597ba6] 2020-03-26 14:01:56 +0100
9038Branch: REL9_5_STABLE [ce28a43ff] 2020-03-26 14:08:15 +0100
9039Branch: master [a9d9bdd3a] 2020-04-05 10:02:00 +0200
9040Branch: REL_12_STABLE [d278d4e1a] 2020-04-05 10:03:04 +0200
9041Branch: REL_11_STABLE [250041a56] 2020-04-05 10:03:41 +0200
9042Branch: REL_10_STABLE [038c9bbe9] 2020-04-05 10:04:13 +0200
9043Branch: REL9_6_STABLE [3dcaea4b0] 2020-04-05 10:04:26 +0200
9044Branch: REL9_5_STABLE [72b2b9c52] 2020-04-05 10:05:18 +0200
9045-->
9046     <para>
9047      Ensure that a replication
9048      slot's <literal>io_in_progress_lock</literal> is released in failure
9049      code paths (Pavan Deolasee)
9050     </para>
9051
9052     <para>
9053      This could result in a walsender later becoming stuck waiting for
9054      the lock.
9055     </para>
9056    </listitem>
9057
9058    <listitem>
9059<!--
9060Author: Peter Eisentraut <peter@eisentraut.org>
9061Branch: master [ad3ae6477] 2020-02-17 15:20:57 +0100
9062Branch: REL_12_STABLE [4a97f647d] 2020-02-17 15:21:12 +0100
9063-->
9064     <para>
9065      Ensure that generated columns are correctly handled during updates
9066      issued by logical replication (Peter Eisentraut)
9067     </para>
9068    </listitem>
9069
9070    <listitem>
9071<!--
9072Author: Tom Lane <tgl@sss.pgh.pa.us>
9073Branch: master [f332241a6] 2020-04-18 14:02:44 -0400
9074Branch: REL_12_STABLE [00ef5d52c] 2020-04-18 14:02:44 -0400
9075Branch: REL_11_STABLE [b3fa6d016] 2020-04-18 14:02:44 -0400
9076Branch: REL_10_STABLE [63ecdaf75] 2020-04-18 14:02:44 -0400
9077Branch: REL9_6_STABLE [c65c1aa82] 2020-04-18 14:02:45 -0400
9078-->
9079     <para>
9080      Fix race conditions in synchronous standby management (Tom Lane)
9081     </para>
9082
9083     <para>
9084      During a change in the <varname>synchronous_standby_names</varname>
9085      setting, there was a window in which wrong decisions could be made
9086      about whether it is OK to release transactions that are waiting for
9087      synchronous commit.  Another hazard for similarly wrong decisions
9088      existed if a walsender process exited and was immediately replaced
9089      by another.
9090     </para>
9091    </listitem>
9092
9093    <listitem>
9094<!--
9095Author: Amit Kapila <akapila@postgresql.org>
9096Branch: master [b4f140869] 2020-03-18 09:27:14 +0530
9097Branch: REL_12_STABLE [e37824136] 2020-03-18 09:33:01 +0530
9098Branch: REL_11_STABLE [18c41cb6b] 2020-03-18 09:37:08 +0530
9099Branch: REL_10_STABLE [569f9354b] 2020-03-18 09:46:52 +0530
9100Branch: REL9_6_STABLE [fe27ce1c1] 2020-03-18 10:08:56 +0530
9101Branch: REL9_5_STABLE [6bdfe428d] 2020-03-18 10:10:27 +0530
9102-->
9103     <para>
9104      Add missing SQLSTATE values to a few error reports (Sawada Masahiko)
9105     </para>
9106    </listitem>
9107
9108    <listitem>
9109<!--
9110Author: Tom Lane <tgl@sss.pgh.pa.us>
9111Branch: master [761a5688b] 2020-02-19 14:45:17 -0500
9112Branch: REL_12_STABLE [32aa14d40] 2020-02-19 14:44:58 -0500
9113Branch: REL_11_STABLE [612d207bc] 2020-02-19 14:44:58 -0500
9114Branch: REL_10_STABLE [6af63cf8c] 2020-02-19 14:44:58 -0500
9115Branch: REL9_6_STABLE [3e5308969] 2020-02-19 14:44:58 -0500
9116Branch: REL9_5_STABLE [bbefb1154] 2020-02-19 14:44:58 -0500
9117-->
9118     <para>
9119      Fix PL/pgSQL to reliably refuse to execute an event trigger function
9120      as a plain function (Tom Lane)
9121     </para>
9122    </listitem>
9123
9124    <listitem>
9125<!--
9126Author: Michael Paquier <michael@paquier.xyz>
9127Branch: master [27dbe1a18] 2020-04-22 07:27:03 +0900
9128Branch: REL_12_STABLE [e1c08722a] 2020-04-22 07:27:45 +0900
9129Branch: REL_11_STABLE [35d08658d] 2020-04-22 07:27:49 +0900
9130Branch: REL_10_STABLE [1bb0293d8] 2020-04-22 07:27:53 +0900
9131Branch: REL9_6_STABLE [c9c15790d] 2020-04-22 07:28:00 +0900
9132Branch: REL9_5_STABLE [e5e295d50] 2020-04-22 07:28:04 +0900
9133-->
9134     <para>
9135      Fix memory leak in <application>libpq</application> when
9136      using <literal>sslmode=verify-full</literal> (Roman Peshkurov)
9137     </para>
9138
9139     <para>
9140      Certificate verification during connection startup could leak some
9141      memory.  This would become an issue if a client process opened many
9142      database connections during its lifetime.
9143     </para>
9144    </listitem>
9145
9146    <listitem>
9147<!--
9148Author: Tom Lane <tgl@sss.pgh.pa.us>
9149Branch: master [980a70b97] 2020-03-23 11:58:00 -0400
9150Branch: REL_12_STABLE [036fdf6be] 2020-03-23 11:58:01 -0400
9151Branch: REL_11_STABLE [aae7e8530] 2020-03-23 11:58:01 -0400
9152Branch: REL_10_STABLE [ef7d6d79a] 2020-03-23 11:58:01 -0400
9153Branch: REL9_6_STABLE [c0eb57dd9] 2020-03-23 11:58:01 -0400
9154Branch: REL9_5_STABLE [5f9eace5d] 2020-03-23 11:58:01 -0400
9155-->
9156     <para>
9157      Fix <application>ecpg</application> to treat an argument of
9158      just <quote><literal>-</literal></quote> as meaning <quote>read
9159      from stdin</quote> on all platforms (Tom Lane)
9160     </para>
9161    </listitem>
9162
9163    <listitem>
9164<!--
9165Author: Michael Paquier <michael@paquier.xyz>
9166Branch: master [8d84dd001] 2020-04-01 14:45:45 +0900
9167Branch: REL_12_STABLE [f79bea4b6] 2020-04-01 14:45:57 +0900
9168-->
9169     <para>
9170      Fix crash in <application>psql</application> when attempting to
9171      re-establish a failed connection (Michael Paquier)
9172     </para>
9173    </listitem>
9174
9175    <listitem>
9176<!--
9177Author: Bruce Momjian <bruce@momjian.us>
9178Branch: master [08481eedd] 2020-03-31 23:01:34 -0400
9179Branch: REL_12_STABLE [6a50f1af4] 2020-03-31 23:01:33 -0400
9180Branch: REL_11_STABLE [7054e12e0] 2020-03-31 23:01:33 -0400
9181Branch: REL_10_STABLE [a936012d6] 2020-03-31 23:01:33 -0400
9182-->
9183     <para>
9184      Allow tab-completion of the filename argument
9185      to <application>psql</application>'s <command>\gx</command> command
9186      (Vik Fearing)
9187     </para>
9188    </listitem>
9189
9190    <listitem>
9191<!--
9192Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9193Branch: master [b08dee24a] 2020-03-11 16:54:54 -0300
9194Branch: REL_12_STABLE [f977e6dec] 2020-03-11 16:54:54 -0300
9195Branch: REL_11_STABLE [e70187c9b] 2020-03-11 16:54:54 -0300
9196Branch: REL_10_STABLE [d04e342ba] 2020-03-11 16:54:54 -0300
9197Branch: REL9_6_STABLE [2b9d70159] 2020-03-11 16:54:54 -0300
9198Branch: master [046001fe3] 2020-03-16 16:27:13 -0300
9199Branch: REL_12_STABLE [cf72898c6] 2020-03-16 16:27:13 -0300
9200Branch: REL_11_STABLE [55978e28c] 2020-03-16 16:27:13 -0300
9201Branch: REL_10_STABLE [c6b75b3f1] 2020-03-16 16:27:13 -0300
9202Branch: REL9_6_STABLE [7984c7e9f] 2020-03-16 16:27:13 -0300
9203Branch: master [899a04f5e] 2020-03-11 11:04:59 -0300
9204Branch: REL_12_STABLE [b7739ebec] 2020-03-11 11:04:59 -0300
9205Branch: REL_11_STABLE [7c094a11c] 2020-03-11 11:04:59 -0300
9206Branch: REL_10_STABLE [3dfd2d6cd] 2020-03-11 11:04:59 -0300
9207Branch: REL9_6_STABLE [73b31e784] 2020-03-11 11:04:59 -0300
9208-->
9209     <para>
9210      Add <application>pg_dump</application> support for <command>ALTER
9211      ... DEPENDS ON EXTENSION</command> (&Aacute;lvaro Herrera)
9212     </para>
9213
9214     <para>
9215      <application>pg_dump</application> previously ignored dependencies added
9216      this way, causing them to be forgotten during dump/restore or
9217      <application>pg_upgrade</application>.
9218     </para>
9219    </listitem>
9220
9221    <listitem>
9222<!--
9223Author: Tom Lane <tgl@sss.pgh.pa.us>
9224Branch: master [f31364676] 2020-02-17 18:40:02 -0500
9225Branch: REL_12_STABLE [6da7d3630] 2020-02-17 18:40:02 -0500
9226Branch: REL_11_STABLE [bd2cd138f] 2020-02-17 18:40:02 -0500
9227Branch: REL_10_STABLE [f9d7bb68d] 2020-02-17 18:40:02 -0500
9228Branch: REL9_6_STABLE [3380b9931] 2020-02-17 18:40:02 -0500
9229Branch: REL9_5_STABLE [d9ec8d1d7] 2020-02-17 18:40:02 -0500
9230-->
9231     <para>
9232      Fix <application>pg_dump</application> to dump comments on RLS
9233      policy objects (Tom Lane)
9234     </para>
9235    </listitem>
9236
9237    <listitem>
9238<!--
9239Author: Tom Lane <tgl@sss.pgh.pa.us>
9240Branch: master [8728b2c70] 2020-03-09 14:58:26 -0400
9241Branch: REL_12_STABLE [4c40b27b5] 2020-03-09 14:58:11 -0400
9242Branch: REL_11_STABLE [f5d49f226] 2020-03-09 14:58:11 -0400
9243Branch: REL_10_STABLE [475b061c8] 2020-03-09 14:58:11 -0400
9244Branch: REL9_6_STABLE [fab545635] 2020-03-09 14:58:11 -0400
9245Branch: REL9_5_STABLE [0b0247644] 2020-03-09 14:58:11 -0400
9246Branch: master [a9d70c108] 2020-04-08 11:23:39 -0400
9247Branch: REL_12_STABLE [983ed99a6] 2020-04-08 11:23:39 -0400
9248Branch: REL_11_STABLE [d050c6113] 2020-04-08 11:23:39 -0400
9249Branch: REL_10_STABLE [830471e0d] 2020-04-08 11:23:39 -0400
9250Branch: REL9_6_STABLE [778066052] 2020-04-08 11:23:40 -0400
9251Branch: REL9_5_STABLE [564c1e6d7] 2020-04-08 11:23:40 -0400
9252-->
9253     <para>
9254      In <application>pg_dump</application>, postpone restore of event
9255      triggers till the end (Fabr&iacute;zio de Royes Mello, Hamid Akhtar,
9256      Tom Lane)
9257     </para>
9258
9259     <para>
9260      This minimizes the risk that an event trigger could interfere with
9261      the restoration of other objects.
9262     </para>
9263    </listitem>
9264
9265    <listitem>
9266<!--
9267Author: Robert Haas <rhaas@postgresql.org>
9268Branch: master [0278d3f79] 2020-04-27 13:04:35 -0400
9269Branch: REL_12_STABLE [a08bfe742] 2020-04-27 14:00:36 -0400
9270-->
9271     <para>
9272      Ensure that <application>pg_basebackup</application> generates valid
9273      tar files (Robert Haas)
9274     </para>
9275
9276     <para>
9277      In some cases a partial block of zeroes would be added to the end of
9278      the file.  While this seems to be harmless with common versions of
9279      tar, it's not OK per the POSIX file format spec.
9280     </para>
9281    </listitem>
9282
9283    <listitem>
9284<!--
9285Author: Michael Paquier <michael@paquier.xyz>
9286Branch: master [428a2609e] 2020-02-27 15:31:27 +0900
9287Branch: REL_12_STABLE [f6e8e8b38] 2020-02-27 15:31:48 +0900
9288Branch: REL_11_STABLE [8f9aba187] 2020-02-27 15:31:52 +0900
9289-->
9290     <para>
9291      Make <application>pg_checksums</application> skip tablespace
9292      subdirectories that belong to a
9293      different <productname>PostgreSQL</productname> major version
9294      (Michael Banck, Bernd Helmle)
9295     </para>
9296
9297     <para>
9298      Such subdirectories don't really belong to our database cluster, and
9299      so must not be processed.
9300     </para>
9301    </listitem>
9302
9303    <listitem>
9304<!--
9305Author: Michael Paquier <michael@paquier.xyz>
9306Branch: master [bf883b211] 2020-02-24 18:13:25 +0900
9307Branch: REL_12_STABLE [a8beece95] 2020-02-24 18:14:16 +0900
9308Branch: REL_11_STABLE [da2a7180a] 2020-02-24 18:14:22 +0900
9309-->
9310     <para>
9311      Ignore temporary copies of <filename>pg_internal.init</filename>
9312      in <application>pg_checksums</application> and related
9313      programs (Michael Paquier)
9314     </para>
9315    </listitem>
9316
9317    <listitem>
9318<!--
9319Author: Michael Paquier <michael@paquier.xyz>
9320Branch: master [008cf0409] 2020-02-27 11:20:46 +0900
9321Branch: REL_12_STABLE [943affb3d] 2020-02-27 11:21:00 +0900
9322Branch: REL_11_STABLE [83bd732eb] 2020-02-27 11:21:07 +0900
9323Branch: REL_10_STABLE [240c7c75f] 2020-02-27 11:21:14 +0900
9324Branch: REL9_6_STABLE [3340034f2] 2020-02-27 11:21:23 +0900
9325Branch: REL9_5_STABLE [49300e4cf] 2020-02-27 11:21:28 +0900
9326Branch: master [c4b0edb07] 2020-02-27 21:58:37 +0900
9327Branch: REL_12_STABLE [aeb846edb] 2020-02-27 21:58:45 +0900
9328Branch: REL_11_STABLE [8e076f4f9] 2020-02-27 21:58:50 +0900
9329-->
9330     <para>
9331      Fix quoting of <option>--encoding</option>, <option>--lc-ctype</option>
9332      and <option>--lc-collate</option> values
9333      in <application>createdb</application> utility (Michael Paquier)
9334     </para>
9335    </listitem>
9336
9337    <listitem>
9338<!--
9339Author: Tom Lane <tgl@sss.pgh.pa.us>
9340Branch: master [6dd9f3577] 2020-04-03 11:24:56 -0400
9341Branch: REL_12_STABLE [d56657c35] 2020-04-03 11:24:56 -0400
9342Branch: REL_11_STABLE [7b1552283] 2020-04-03 11:24:56 -0400
9343Branch: REL_10_STABLE [85f0d4703] 2020-04-03 11:24:56 -0400
9344Branch: REL9_6_STABLE [a9f821f48] 2020-04-03 11:24:56 -0400
9345Branch: REL9_5_STABLE [82bc56e63] 2020-04-03 11:24:56 -0400
9346-->
9347     <para>
9348      <filename>contrib/lo</filename>'s <function>lo_manage()</function>
9349      function crashed if called directly rather than as a trigger (Tom
9350      Lane)
9351     </para>
9352    </listitem>
9353
9354    <listitem>
9355<!--
9356Author: Tom Lane <tgl@sss.pgh.pa.us>
9357Branch: master [95f7ddfda] 2020-03-28 17:09:51 -0400
9358Branch: REL_12_STABLE [2bb6bdbe5] 2020-03-28 17:09:51 -0400
9359Branch: REL_11_STABLE [5feb3d0b3] 2020-03-28 17:09:51 -0400
9360Branch: REL_10_STABLE [2618ac6c6] 2020-03-28 17:09:51 -0400
9361Branch: REL9_6_STABLE [39491aa0d] 2020-03-28 17:09:51 -0400
9362Branch: REL9_5_STABLE [8e1e630d0] 2020-03-28 17:09:52 -0400
9363-->
9364     <para>
9365      In <filename>contrib/ltree</filename>,
9366      protect against overflow of <type>ltree</type>
9367      and <type>lquery</type> length fields (Nikita Glukhov)
9368     </para>
9369    </listitem>
9370
9371    <listitem>
9372<!--
9373Author: Peter Geoghegan <pg@bowt.ie>
9374Branch: REL_12_STABLE [393b449f1] 2020-03-11 14:15:02 -0700
9375Branch: REL_11_STABLE [c788115b5] 2020-03-11 14:15:00 -0700
9376-->
9377     <para>
9378      Work around failure in <filename>contrib/pageinspect</filename>'s
9379      <function>bt_metap()</function> function when an oldest_xact value
9380      exceeds 2^31-1 (Peter Geoghegan)
9381     </para>
9382
9383     <para>
9384      Such XIDs will now be reported as negative integers, which isn't
9385      great but it beats throwing an error.  v13 will widen the output
9386      argument to <type>int8</type> to provide saner reporting.
9387     </para>
9388    </listitem>
9389
9390    <listitem>
9391<!--
9392Author: Tom Lane <tgl@sss.pgh.pa.us>
9393Branch: master [fc576b7c4] 2020-04-16 14:45:54 -0400
9394Branch: REL_12_STABLE [687e566b9] 2020-04-16 14:45:54 -0400
9395Branch: REL_11_STABLE [cc2737ab0] 2020-04-16 14:45:54 -0400
9396Branch: REL_10_STABLE [f4a420056] 2020-04-16 14:45:54 -0400
9397Branch: REL9_6_STABLE [3cdf2421a] 2020-04-16 14:45:54 -0400
9398Branch: REL9_5_STABLE [46b1b6379] 2020-04-16 14:45:54 -0400
9399-->
9400     <para>
9401      Fix cache reference leak in <filename>contrib/sepgsql</filename>
9402      (Michael Luo)
9403     </para>
9404    </listitem>
9405
9406    <listitem>
9407<!--
9408Author: Tom Lane <tgl@sss.pgh.pa.us>
9409Branch: master [e02ea141e] 2020-02-16 12:20:18 -0500
9410Branch: REL_12_STABLE [de5e03f7f] 2020-02-16 12:20:18 -0500
9411-->
9412     <para>
9413      On Windows, avoid premature creation of postmaster's log file
9414      during <literal>pg_ctl start</literal> (Alexander Lakhin)
9415     </para>
9416
9417     <para>
9418      The previous coding could allow the file to be created with
9419      permissions that wouldn't allow the postmaster to write on it.
9420     </para>
9421    </listitem>
9422
9423    <listitem>
9424<!--
9425Author: Tom Lane <tgl@sss.pgh.pa.us>
9426Branch: master [8c49454ca] 2020-03-30 11:14:58 -0400
9427Branch: REL_12_STABLE [de5b9db36] 2020-03-30 11:14:58 -0400
9428Branch: REL_11_STABLE [4bc3a1667] 2020-03-30 11:14:58 -0400
9429Branch: REL_10_STABLE [d59e83cf5] 2020-03-30 11:14:58 -0400
9430Branch: REL9_6_STABLE [f15f5edee] 2020-03-30 11:14:58 -0400
9431Branch: REL9_5_STABLE [6dac1e858] 2020-03-30 11:14:58 -0400
9432-->
9433     <para>
9434      Avoid failures when dealing with Unix-style locale names on
9435      Windows (Juan Jos&eacute; Santamar&iacute;a Flecha)
9436     </para>
9437    </listitem>
9438
9439    <listitem>
9440<!--
9441Author: Michael Paquier <michael@paquier.xyz>
9442Branch: master [3b77dce86] 2020-03-02 15:45:34 +0900
9443Branch: REL_12_STABLE [3b5709e66] 2020-03-02 15:46:24 +0900
9444-->
9445     <para>
9446      On Windows, set console VT100 compatibility mode in
9447      programs that support <varname>PG_COLOR</varname> colorization
9448      (Juan Jos&eacute; Santamar&iacute;a Flecha)
9449     </para>
9450
9451     <para>
9452      Without this, the colorization option doesn't actually work.
9453     </para>
9454    </listitem>
9455
9456    <listitem>
9457<!--
9458Author: Tom Lane <tgl@sss.pgh.pa.us>
9459Branch: master [e3a87b499] 2020-03-24 11:49:00 -0400
9460Branch: REL_12_STABLE [a86715451] 2020-03-24 11:48:33 -0400
9461-->
9462     <para>
9463      Stop requiring extra parentheses in <function>ereport()</function>
9464      calls (Andres Freund, Tom Lane)
9465     </para>
9466    </listitem>
9467
9468    <listitem>
9469<!--
9470Author: Tom Lane <tgl@sss.pgh.pa.us>
9471Branch: master [0bc8cebdb] 2020-03-17 12:09:26 -0400
9472Branch: REL_12_STABLE [d8e7f8149] 2020-03-17 12:09:26 -0400
9473Branch: REL_11_STABLE [9af2f7dc9] 2020-03-17 12:09:27 -0400
9474Branch: REL_10_STABLE [d67d7243f] 2020-03-17 12:09:27 -0400
9475-->
9476     <para>
9477      Use <application>pkg-config</application>, if available, to
9478      locate <application>libxml2</application>
9479      during <application>configure</application> (Hugh McMaster, Tom
9480      Lane, Peter Eisentraut)
9481     </para>
9482
9483     <para>
9484      If <application>pkg-config</application> is not present or lacks
9485      knowledge of <application>libxml2</application>, we still
9486      query <application>xml2-config</application> as before.
9487     </para>
9488
9489     <para>
9490      This change could break build processes that try to
9491      make <productname>PostgreSQL</productname> use a non-default version
9492      of <application>libxml2</application> by putting that
9493      version's <application>xml2-config</application> into
9494      the <varname>PATH</varname>.  Instead,
9495      set <varname>XML2_CONFIG</varname> to point to the
9496      non-default <application>xml2-config</application>.  That method
9497      will work with either older or
9498      newer <productname>PostgreSQL</productname> releases.
9499     </para>
9500    </listitem>
9501
9502    <listitem>
9503<!--
9504Author: Bruce Momjian <bruce@momjian.us>
9505Branch: master [051fd5e0f] 2020-03-31 14:17:32 -0400
9506Branch: REL_12_STABLE [297a174d2] 2020-03-31 14:17:32 -0400
9507-->
9508     <para>
9509      Fix Makefile dependencies for <application>libpq</application>
9510      and <application>ecpg</application> (Dagfinn Ilmari Mannsåker)
9511     </para>
9512    </listitem>
9513
9514    <listitem>
9515<!--
9516Author: Michael Paquier <michael@paquier.xyz>
9517Branch: master [beb2516e9] 2020-05-06 21:08:15 +0900
9518Branch: REL_12_STABLE [8c0939dad] 2020-05-06 21:08:22 +0900
9519Branch: REL_11_STABLE [984aca448] 2020-05-06 21:08:26 +0900
9520Branch: REL_10_STABLE [307ed98b0] 2020-05-06 21:08:31 +0900
9521Branch: REL9_6_STABLE [e07fdc126] 2020-05-06 21:08:38 +0900
9522Branch: REL9_5_STABLE [ad53d6efe] 2020-05-06 21:08:42 +0900
9523-->
9524     <para>
9525      In MSVC builds, cope with spaces in the path name for Python
9526      (Victor Wagner)
9527     </para>
9528    </listitem>
9529
9530    <listitem>
9531<!--
9532Author: Andrew Dunstan <andrew@dunslane.net>
9533Branch: master [a9659fb65] 2020-04-17 14:44:33 -0400
9534Branch: REL_12_STABLE [6b02bee66] 2020-04-17 14:52:42 -0400
9535Branch: REL_11_STABLE [758814224] 2020-04-17 14:53:56 -0400
9536Branch: REL_10_STABLE [ddac64f2d] 2020-04-17 14:55:55 -0400
9537Branch: REL9_6_STABLE [4c9239d08] 2020-04-17 14:56:56 -0400
9538Branch: REL9_5_STABLE [3ca17999f] 2020-04-17 14:57:15 -0400
9539-->
9540     <para>
9541      In MSVC builds, fix detection of Visual Studio version to work with
9542      more language settings (Andrew Dunstan)
9543     </para>
9544    </listitem>
9545
9546    <listitem>
9547<!--
9548Author: Andrew Dunstan <andrew@dunslane.net>
9549Branch: master [71c2fd0c0] 2020-03-20 13:55:15 -0400
9550Branch: REL_12_STABLE [d0747714e] 2020-03-20 14:02:05 -0400
9551Branch: REL_11_STABLE [e8a6391fc] 2020-03-20 14:02:15 -0400
9552Branch: REL_10_STABLE [3163349fd] 2020-03-20 14:02:43 -0400
9553Branch: REL9_6_STABLE [80370836f] 2020-03-20 14:03:13 -0400
9554Branch: REL9_5_STABLE [467b40832] 2020-03-20 14:03:31 -0400
9555-->
9556     <para>
9557      In MSVC builds, use <literal>-Wno-deprecated</literal> with bison
9558      versions newer than 3.0, as non-Windows builds already do (Andrew
9559      Dunstan)
9560     </para>
9561    </listitem>
9562
9563    <listitem>
9564<!--
9565Author: Tom Lane <tgl@sss.pgh.pa.us>
9566Branch: master [4cac3a49e] 2020-04-24 10:54:47 -0400
9567Branch: REL_12_STABLE [c820692bd] 2020-04-24 10:55:00 -0400
9568Branch: REL_11_STABLE [eb335bc62] 2020-04-24 10:55:05 -0400
9569Branch: REL_10_STABLE [898921a18] 2020-04-24 10:55:10 -0400
9570Branch: REL9_6_STABLE [66be99742] 2020-04-24 10:55:17 -0400
9571Branch: REL9_5_STABLE [39006ae7a] 2020-04-24 10:55:23 -0400
9572Branch: master [6c5f91616] 2020-04-24 17:53:23 -0400
9573Branch: REL_12_STABLE [1e07e3fc0] 2020-04-24 17:53:23 -0400
9574Branch: REL_11_STABLE [b31f9fd63] 2020-04-24 17:53:23 -0400
9575Branch: REL_10_STABLE [40d4bc5ac] 2020-04-24 17:53:23 -0400
9576Branch: REL9_6_STABLE [f65f3a5d8] 2020-04-24 17:53:23 -0400
9577Branch: REL9_5_STABLE [3cdb45c54] 2020-04-24 17:53:23 -0400
9578Branch: master [bd8c5cee9] 2020-04-24 17:21:44 -0400
9579Branch: REL_12_STABLE [a2342c658] 2020-04-24 17:21:44 -0400
9580Branch: REL_11_STABLE [99c9ed224] 2020-04-24 17:21:44 -0400
9581Branch: REL_10_STABLE [4985b3b84] 2020-04-24 17:21:44 -0400
9582Branch: REL9_6_STABLE [351252904] 2020-04-24 17:21:44 -0400
9583Branch: REL9_5_STABLE [3f3ab184c] 2020-04-24 17:21:44 -0400
9584-->
9585     <para>
9586      Update time zone data files to <application>tzdata</application>
9587      release 2020a for DST law changes in Morocco and the Canadian Yukon,
9588      plus historical corrections for Shanghai.
9589     </para>
9590
9591     <para>
9592      The America/Godthab zone has been renamed to America/Nuuk to reflect
9593      current English usage; however, the old name remains available as a
9594      compatibility link.
9595     </para>
9596
9597     <para>
9598      Also, update <application>initdb</application>'s list of known
9599      Windows time zone names to include recent additions, improving the
9600      odds that it will correctly translate the system time zone setting
9601      on that platform.
9602     </para>
9603    </listitem>
9604
9605   </itemizedlist>
9606
9607  </sect2>
9608 </sect1>
9609
9610 <sect1 id="release-12-2">
9611  <title>Release 12.2</title>
9612
9613  <formalpara>
9614  <title>Release date:</title>
9615  <para>2020-02-13</para>
9616  </formalpara>
9617
9618  <para>
9619   This release contains a variety of fixes from 12.1.
9620   For information about new features in major release 12, see
9621   <xref linkend="release-12"/>.
9622  </para>
9623
9624  <sect2>
9625   <title>Migration to Version 12.2</title>
9626
9627   <para>
9628    A dump/restore is not required for those running 12.X.
9629   </para>
9630
9631   <para>
9632    However, if you have any foreign key constraints referencing
9633    partitioned tables, see the two entries below about bugs in that
9634    feature.
9635   </para>
9636  </sect2>
9637
9638  <sect2>
9639   <title>Changes</title>
9640
9641   <itemizedlist>
9642
9643    <listitem>
9644<!--
9645Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9646Branch: master [b048f558d] 2020-02-10 11:47:09 -0300
9647Branch: REL_12_STABLE [2ad125322] 2020-02-10 11:47:09 -0300
9648Branch: REL_11_STABLE [bdd19e48a] 2020-02-10 11:47:09 -0300
9649Branch: REL_10_STABLE [ac1a998ed] 2020-02-10 11:47:09 -0300
9650Branch: REL9_6_STABLE [e8b8eb937] 2020-02-10 12:06:25 -0300
9651-->
9652     <para>
9653      Add missing permissions checks for <command>ALTER ... DEPENDS ON
9654      EXTENSION</command> (&Aacute;lvaro Herrera)
9655     </para>
9656
9657     <para>
9658      Marking an object as dependent on an extension did not have any
9659      privilege check whatsoever.  This oversight allowed any user to mark
9660      routines, triggers, materialized views, or indexes as droppable by
9661      anyone able to drop an extension.  Require that the calling user own
9662      the specified object (and hence have privilege to drop it).
9663      (CVE-2020-1720)
9664     </para>
9665    </listitem>
9666
9667    <listitem>
9668<!--
9669Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9670Branch: master [9710d3d4a] 2020-02-07 17:09:36 -0300
9671Branch: REL_12_STABLE [ce054a8cd] 2020-02-07 17:09:36 -0300
9672-->
9673     <para>
9674      Fix <command>TRUNCATE ... CASCADE</command> to ensure all relevant
9675      partitions are truncated (Jehan-Guillaume de Rorthais)
9676     </para>
9677
9678     <para>
9679      If a partition of a partitioned table is truncated with
9680      the <literal>CASCADE</literal> option, and the partitioned table has
9681      a foreign-key reference from another table, that table must also be
9682      truncated.  The need to check this was missed if the referencing
9683      table was itself partitioned, possibly allowing rows to survive that
9684      violate the foreign-key constraint.
9685     </para>
9686
9687     <para>
9688      Hence, if you have foreign key constraints between partitioned
9689      tables, and you have done any
9690      partition-level <command>TRUNCATE</command> on the referenced table,
9691      you should check to see if any foreign key violations exist.  The
9692      simplest way is to add a new instance of the foreign key constraint
9693      (and, once that succeeds, drop it or the original constraint).
9694      That may be prohibitive from a locking standpoint, however, in which
9695      case you might prefer to manually query for unmatched rows.
9696     </para>
9697    </listitem>
9698
9699    <listitem>
9700<!--
9701Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9702Branch: master [55173d2e6] 2020-02-07 18:27:18 -0300
9703Branch: REL_12_STABLE [2c80a656c] 2020-02-07 18:27:18 -0300
9704-->
9705     <para>
9706      Fix failure to attach foreign key constraints to sub-partitions
9707      (Jehan-Guillaume de Rorthais)
9708     </para>
9709
9710     <para>
9711      When adding a partition to a level below the first level of a
9712      multi-level partitioned table, foreign key constraints referencing
9713      the top partitioned table were not cloned to the new partition,
9714      leading to possible constraint violations later.  Detaching and
9715      re-attaching the new partition is the cheapest way to fix this.
9716      However, if there are many partitions to be fixed, adding a new
9717      instance of the foreign key constraint might be preferable.
9718     </para>
9719    </listitem>
9720
9721    <listitem>
9722<!--
9723Author: Tom Lane <tgl@sss.pgh.pa.us>
9724Branch: master [01d9676a5] 2020-01-28 17:26:37 -0500
9725Branch: REL_12_STABLE [87fed2a19] 2020-01-28 17:26:37 -0500
9726-->
9727     <para>
9728      Fix possible crash during concurrent update on a partitioned table
9729      or inheritance tree (Tom Lane)
9730     </para>
9731    </listitem>
9732
9733    <listitem>
9734<!--
9735Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9736Branch: master [1fa846f1c] 2020-01-02 17:04:24 -0300
9737Branch: REL_12_STABLE [d73214839] 2020-01-02 17:04:24 -0300
9738Branch: REL_11_STABLE [adc9cb6f2] 2020-01-02 17:04:24 -0300
9739-->
9740     <para>
9741      Ensure that row triggers on partitioned tables are correctly
9742      cloned to sub-partitions when appropriate
9743      (&Aacute;lvaro Herrera)
9744     </para>
9745
9746     <para>
9747      User-defined triggers (but not triggers for foreign key or deferred
9748      unique constraints) might be missed when creating or attaching a
9749      partition.
9750     </para>
9751    </listitem>
9752
9753    <listitem>
9754<!--
9755Author: Peter Eisentraut <peter@eisentraut.org>
9756Branch: master [b9c130a1f] 2020-01-06 08:40:00 +0100
9757Branch: REL_12_STABLE [8c2bfd9f9] 2020-01-06 10:43:55 +0100
9758Branch: REL_11_STABLE [7474393e0] 2020-01-06 11:38:24 +0100
9759Branch: REL_10_STABLE [66fd0adc7] 2020-01-06 11:38:33 +0100
9760-->
9761     <para>
9762      Fix logical replication subscriber code to execute
9763      per-column <literal>UPDATE</literal> triggers when appropriate
9764      (Peter Eisentraut)
9765     </para>
9766    </listitem>
9767
9768    <listitem>
9769<!--
9770Author: Amit Kapila <akapila@postgresql.org>
9771Branch: master [d20703805] 2020-01-02 11:41:04 +0530
9772Branch: REL_12_STABLE [f8a6d8e71] 2020-01-02 11:53:53 +0530
9773Branch: REL_11_STABLE [3e3a79735] 2020-01-02 12:04:13 +0530
9774Branch: REL_10_STABLE [27b5f48c7] 2020-01-02 12:11:55 +0530
9775Branch: REL9_6_STABLE [ba5b4e506] 2020-01-02 11:29:50 +0530
9776Branch: REL9_5_STABLE [a6f4f407a] 2020-01-02 12:28:02 +0530
9777Branch: REL9_4_STABLE [1ad47e875] 2020-01-02 12:38:29 +0530
9778Branch: master [ed7bb5c31] 2020-01-14 07:53:50 +0530
9779Branch: REL_12_STABLE [fa1eaebfa] 2020-01-14 08:05:05 +0530
9780Branch: REL_11_STABLE [17869eca7] 2020-01-14 08:12:12 +0530
9781Branch: REL_10_STABLE [f9e95252a] 2020-01-14 08:20:11 +0530
9782-->
9783     <para>
9784      Avoid failure in logical decoding when a large transaction must be
9785      spilled into many separate temporary files (Amit Khandekar)
9786     </para>
9787    </listitem>
9788
9789    <listitem>
9790<!--
9791Author: Tom Lane <tgl@sss.pgh.pa.us>
9792Branch: master [4d9ceb001] 2019-11-22 11:31:19 -0500
9793Branch: REL_12_STABLE [a2aa224e0] 2019-11-22 11:31:19 -0500
9794Branch: REL_11_STABLE [b72a44c51] 2019-11-22 11:31:19 -0500
9795Branch: REL_10_STABLE [5d3fcb53a] 2019-11-22 11:31:19 -0500
9796-->
9797     <para>
9798      Fix possible crash or data corruption when a logical replication
9799      subscriber processes a row update (Tom Lane, Tomas Vondra)
9800     </para>
9801
9802     <para>
9803      This bug caused visible problems only if the subscriber's table
9804      contained columns that were not being copied from the publisher and
9805      had pass-by-reference data types.
9806     </para>
9807    </listitem>
9808
9809    <listitem>
9810<!--
9811Author: Amit Kapila <akapila@postgresql.org>
9812Branch: master [04c8a69c0] 2019-12-18 07:49:18 +0530
9813Branch: REL_12_STABLE [c74111d8b] 2019-12-18 07:57:01 +0530
9814Branch: REL_11_STABLE [046830164] 2019-12-18 08:16:31 +0530
9815Branch: REL_10_STABLE [d6eca4958] 2019-12-18 08:27:41 +0530
9816-->
9817     <para>
9818      Fix crash in logical replication subscriber after DDL changes on a
9819      subscribed relation (Jehan-Guillaume de Rorthais, Vignesh C)
9820     </para>
9821    </listitem>
9822
9823    <listitem>
9824<!--
9825Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9826Branch: master [15cac3a52] 2020-01-17 18:00:39 -0300
9827Branch: REL_12_STABLE [bc2140627] 2020-01-17 18:00:39 -0300
9828Branch: REL_11_STABLE [fe955ebee] 2020-01-17 18:00:39 -0300
9829Branch: REL_10_STABLE [e3154aae3] 2020-01-17 18:00:39 -0300
9830Branch: REL9_6_STABLE [cdb14154b] 2020-01-17 18:00:39 -0300
9831Branch: REL9_5_STABLE [58997ace5] 2020-01-17 18:00:39 -0300
9832Branch: REL9_4_STABLE [20a1dc1e3] 2020-01-17 18:00:39 -0300
9833-->
9834     <para>
9835      Fix failure in logical replication publisher after a database crash
9836      and restart (Vignesh C)
9837     </para>
9838    </listitem>
9839
9840    <listitem>
9841<!--
9842Author: Michael Paquier <michael@paquier.xyz>
9843Branch: master [b0afdcad2] 2020-01-30 11:14:02 +0900
9844Branch: REL_12_STABLE [3228512b7] 2020-01-30 11:15:28 +0900
9845Branch: REL_11_STABLE [374464c3e] 2020-01-30 11:15:35 +0900
9846Branch: master [7ca8c9706] 2020-01-31 13:57:56 +0900
9847Branch: REL_12_STABLE [706ad6a4d] 2020-01-31 13:58:05 +0900
9848Branch: REL_11_STABLE [8b29c75f6] 2020-01-31 13:58:11 +0900
9849-->
9850     <para>
9851      Ensure that the effect
9852      of <function>pg_replication_slot_advance()</function> on a physical
9853      replication slot will persist across restarts (Alexey Kondratov,
9854      Michael Paquier)
9855     </para>
9856    </listitem>
9857
9858    <listitem>
9859<!--
9860Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
9861Branch: master [1c7a0b387] 2020-02-03 18:59:12 -0300
9862Branch: REL_12_STABLE [42e3187a8] 2020-02-03 18:59:12 -0300
9863Branch: REL_11_STABLE [beefab654] 2020-02-03 18:59:12 -0300
9864Branch: REL_10_STABLE [380bc8829] 2020-02-03 18:59:12 -0300
9865-->
9866     <para>
9867      Improve efficiency of logical replication with <literal>REPLICA
9868      IDENTITY FULL</literal> (Konstantin Knizhnik)
9869     </para>
9870
9871     <para>
9872      When searching for an existing tuple during an update or delete
9873      operation, return the first matching tuple not the last one.
9874     </para>
9875    </listitem>
9876
9877    <listitem>
9878<!--
9879Author: Peter Eisentraut <peter@eisentraut.org>
9880Branch: master [259bbe177] 2020-01-13 13:41:12 +0100
9881Branch: REL_12_STABLE [bf65f3c88] 2020-01-13 13:41:09 +0100
9882-->
9883     <para>
9884      Fix base backup to handle database OIDs larger
9885      than <literal>INT32_MAX</literal> (Peter Eisentraut)
9886     </para>
9887    </listitem>
9888
9889    <listitem>
9890<!--
9891Author: Thomas Munro <tmunro@postgresql.org>
9892Branch: master [76cbfcdf3] 2019-11-16 10:11:30 +1300
9893Branch: REL_12_STABLE [24897e1a1] 2019-11-16 10:18:45 +1300
9894Branch: REL_11_STABLE [bc049d0d4] 2019-11-16 10:19:16 +1300
9895-->
9896     <para>
9897      Ensure parallel plans are always shut down at the correct time
9898      (Kyotaro Horiguchi)
9899     </para>
9900
9901     <para>
9902      This oversight is known to result in <quote>temporary file
9903      leak</quote> warnings from multi-batch parallel hash joins.
9904     </para>
9905    </listitem>
9906
9907    <listitem>
9908<!--
9909Author: Amit Kapila <akapila@postgresql.org>
9910Branch: master [080313f82] 2019-11-26 08:30:24 +0530
9911Branch: REL_12_STABLE [1cc3a90c7] 2019-11-26 08:55:06 +0530
9912Branch: REL_11_STABLE [d0ccfa9d6] 2019-11-26 09:07:35 +0530
9913Branch: REL_10_STABLE [f7ae68aac] 2019-11-26 09:23:45 +0530
9914Branch: REL9_6_STABLE [1ad0df67c] 2019-11-26 09:41:41 +0530
9915-->
9916     <para>
9917      Prevent premature shutdown of a Gather or GatherMerge plan node that
9918      is underneath a Limit node (Amit Kapila)
9919     </para>
9920
9921     <para>
9922      This avoids failure if such a plan node needs to be scanned more
9923      than once, as for instance if it is on the inside of a nestloop.
9924     </para>
9925    </listitem>
9926
9927    <listitem>
9928<!--
9929Author: Thomas Munro <tmunro@postgresql.org>
9930Branch: master [3e4818e9d] 2020-01-27 15:07:03 +1300
9931Branch: REL_12_STABLE [f9d0be241] 2020-01-27 14:11:24 +1300
9932Branch: REL_11_STABLE [6a9fc75d0] 2020-01-27 14:12:18 +1300
9933-->
9934     <para>
9935      Improve efficiency of parallel hash join on CPUs with many cores
9936      (Gang Deng, Thomas Munro)
9937     </para>
9938    </listitem>
9939
9940    <listitem>
9941<!--
9942Author: Thomas Munro <tmunro@postgresql.org>
9943Branch: master [74618e77b] 2020-01-31 10:25:34 +1300
9944Branch: REL_12_STABLE [1fcf62e0b] 2020-01-31 10:27:53 +1300
9945Branch: REL_11_STABLE [2c56b3ac4] 2020-01-31 11:12:21 +1300
9946Branch: master [d9fe702a2] 2020-02-05 12:27:00 +1300
9947Branch: REL_12_STABLE [2e2351bd6] 2020-02-05 12:28:33 +1300
9948Branch: REL_11_STABLE [c4a2041a4] 2020-02-05 12:30:06 +1300
9949-->
9950     <para>
9951      Avoid crash in parallel <command>CREATE INDEX</command> when there
9952      are no free dynamic shared memory slots (Thomas Munro)
9953     </para>
9954
9955     <para>
9956      Fall back to a non-parallel index build, instead.
9957     </para>
9958    </listitem>
9959
9960    <listitem>
9961<!--
9962Author: Thomas Munro <tmunro@postgresql.org>
9963Branch: master [93745f1e0] 2020-02-01 14:29:13 +1300
9964Branch: REL_12_STABLE [24dd34af1] 2020-02-01 14:49:57 +1300
9965Branch: REL_11_STABLE [600387f5d] 2020-02-01 22:57:46 +1300
9966Branch: REL_10_STABLE [aab30cd4e] 2020-02-01 14:54:48 +1300
9967Branch: REL9_6_STABLE [93be45245] 2020-02-01 14:57:40 +1300
9968Branch: REL9_5_STABLE [a5f45c3dd] 2020-02-01 14:59:58 +1300
9969Branch: REL9_4_STABLE [95936c795] 2020-02-01 15:10:20 +1300
9970-->
9971     <para>
9972      Avoid memory leak when there are no free dynamic shared memory slots
9973      (Thomas Munro)
9974     </para>
9975    </listitem>
9976
9977    <listitem>
9978<!--
9979Author: Michael Paquier <michael@paquier.xyz>
9980Branch: master [a904abe2e] 2020-01-22 09:49:18 +0900
9981Branch: REL_12_STABLE [817a1b88a] 2020-01-22 09:49:24 +0900
9982Branch: REL_11_STABLE [5b4b07fa9] 2020-01-22 09:49:28 +0900
9983Branch: REL_10_STABLE [9055344b4] 2020-01-22 09:49:33 +0900
9984Branch: REL9_6_STABLE [ef33edeb5] 2020-01-22 09:49:39 +0900
9985Branch: REL9_5_STABLE [c39f45598] 2020-01-22 09:49:44 +0900
9986Branch: REL9_4_STABLE [d76652edc] 2020-01-22 09:49:48 +0900
9987-->
9988     <para>
9989      Ignore the <literal>CONCURRENTLY</literal> option when performing an
9990      index creation, drop, or rebuild on a temporary table (Michael
9991      Paquier, Heikki Linnakangas, Andres Freund)
9992     </para>
9993
9994     <para>
9995      This avoids strange failures if the temporary table has
9996      an <literal>ON COMMIT</literal> action.  There is no benefit in
9997      using <literal>CONCURRENTLY</literal> for a temporary table anyway,
9998      since other sessions cannot access the table, making the extra
9999      processing pointless.
10000     </para>
10001    </listitem>
10002
10003    <listitem>
10004<!--
10005Author: Tom Lane <tgl@sss.pgh.pa.us>
10006Branch: master [c35b714ca] 2019-12-01 13:09:26 -0500
10007Branch: REL_12_STABLE [b154d70f7] 2019-12-01 13:09:26 -0500
10008Branch: REL_11_STABLE [768a401e2] 2019-12-01 13:09:26 -0500
10009Branch: REL_10_STABLE [25c7183c0] 2019-12-01 13:09:27 -0500
10010Branch: REL9_6_STABLE [283f095d0] 2019-12-01 13:09:27 -0500
10011Branch: REL9_5_STABLE [cfffa8a6b] 2019-12-01 13:09:27 -0500
10012Branch: REL9_4_STABLE [0c84e992c] 2019-12-01 13:09:27 -0500
10013-->
10014     <para>
10015      Fix possible failure when resetting expression indexes on temporary
10016      tables that are marked <literal>ON COMMIT DELETE ROWS</literal>
10017      (Tom Lane)
10018     </para>
10019    </listitem>
10020
10021    <listitem>
10022<!--
10023Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
10024Branch: master [4c8701098] 2020-01-20 10:36:35 +0200
10025Branch: REL_12_STABLE [fd436bba0] 2020-01-20 10:36:45 +0200
10026Branch: REL_11_STABLE [da7abcf0f] 2020-01-20 10:36:47 +0200
10027Branch: REL_10_STABLE [ff0c567cb] 2020-01-20 10:36:50 +0200
10028Branch: REL9_6_STABLE [e96f30d89] 2020-01-20 10:36:52 +0200
10029Branch: REL9_5_STABLE [98f0d2837] 2020-01-20 10:36:55 +0200
10030-->
10031     <para>
10032      Fix possible crash in BRIN index operations
10033      with <type>box</type>, <type>range</type> and <type>inet</type> data
10034      types (Heikki Linnakangas)
10035     </para>
10036    </listitem>
10037
10038    <listitem>
10039<!--
10040Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
10041Branch: master [a7ee7c851] 2019-12-13 23:58:10 +0200
10042Branch: REL_12_STABLE [70c4f500e] 2019-12-13 23:59:00 +0200
10043Branch: master [741b88435] 2019-12-16 13:57:41 +0200
10044Branch: REL_12_STABLE [42d1acd2e] 2019-12-16 13:58:07 +0200
10045-->
10046     <para>
10047      Fix crash during recursive page split in GiST index build (Heikki
10048      Linnakangas)
10049     </para>
10050    </listitem>
10051
10052    <listitem>
10053<!--
10054Author: Alexander Korotkov <akorotkov@postgresql.org>
10055Branch: master [b10714080] 2019-11-20 00:12:33 +0300
10056Branch: REL_12_STABLE [a64e7e05a] 2019-11-20 00:17:58 +0300
10057Branch: REL_11_STABLE [7d467dee0] 2019-11-20 00:18:02 +0300
10058Branch: master [e14641197] 2019-11-20 00:04:09 +0300
10059Branch: REL_12_STABLE [051c50c01] 2019-11-20 00:04:53 +0300
10060Branch: REL_11_STABLE [9f2927989] 2019-11-20 00:05:12 +0300
10061Branch: REL_10_STABLE [21ad61ab3] 2019-11-20 00:05:35 +0300
10062Branch: master [d5ad7a09a] 2019-11-20 00:04:22 +0300
10063Branch: REL_12_STABLE [ee437ca74] 2019-11-20 00:05:01 +0300
10064Branch: REL_11_STABLE [c0bf35421] 2019-11-20 00:05:21 +0300
10065Branch: REL_10_STABLE [ab64b474d] 2019-11-20 00:05:42 +0300
10066Branch: REL9_6_STABLE [99f5888d3] 2019-11-19 23:47:29 +0300
10067Branch: REL9_5_STABLE [4fc485684] 2019-11-20 00:01:55 +0300
10068Branch: REL9_4_STABLE [1414821e1] 2019-11-20 00:03:04 +0300
10069Author: Tom Lane <tgl@sss.pgh.pa.us>
10070Branch: master [4093ff573] 2020-02-09 12:02:57 -0500
10071Branch: REL_12_STABLE [baf487123] 2020-02-09 12:02:57 -0500
10072Branch: REL_11_STABLE [f91706b00] 2020-02-09 12:02:57 -0500
10073-->
10074     <para>
10075      Fix handling of deleted pages in GIN indexes (Alexander Korotkov)
10076     </para>
10077
10078     <para>
10079      Avoid possible deadlocks, incorrect updates of a deleted page's
10080      state, and failure to traverse through a recently-deleted page.
10081     </para>
10082    </listitem>
10083
10084    <listitem>
10085<!--
10086Author: Tom Lane <tgl@sss.pgh.pa.us>
10087Branch: master [41c6f9db2] 2020-01-17 16:17:31 -0500
10088Branch: REL_12_STABLE [2e2646060] 2020-01-17 16:17:32 -0500
10089Branch: REL_11_STABLE [d8e877b86] 2020-01-17 16:17:33 -0500
10090Branch: REL_10_STABLE [167fd022f] 2020-01-17 16:17:35 -0500
10091Branch: REL9_6_STABLE [45f03cfa5] 2020-01-17 16:17:36 -0500
10092Branch: REL9_5_STABLE [396472278] 2020-01-17 16:17:37 -0500
10093Branch: REL9_4_STABLE [eb9d1f050] 2020-01-17 16:17:39 -0500
10094-->
10095     <para>
10096      Fix possible crash with a SubPlan (sub-<literal>SELECT</literal>)
10097      within a multi-row <literal>VALUES</literal> list (Tom Lane)
10098     </para>
10099    </listitem>
10100
10101    <listitem>
10102<!--
10103Author: Tom Lane <tgl@sss.pgh.pa.us>
10104Branch: master [4ac8aaa36] 2020-01-08 09:42:53 -0500
10105Branch: REL_12_STABLE [c24f3b70e] 2020-01-08 09:42:53 -0500
10106-->
10107     <para>
10108      Fix failure in <command>ALTER TABLE</command> when a column
10109      referenced in a <literal>GENERATED</literal> expression has been
10110      added or changed in type earlier in the
10111      same <command>ALTER</command> command (Tom Lane)
10112     </para>
10113    </listitem>
10114
10115    <listitem>
10116<!--
10117Author: Andrew Gierth <rhodiumtoad@postgresql.org>
10118Branch: master [bf6cc19e3] 2020-02-05 20:21:20 +0000
10119Branch: REL_12_STABLE [0e37489ed] 2020-02-05 20:08:11 +0000
10120Branch: REL_11_STABLE [d8f1c03a4] 2020-02-05 20:15:13 +0000
10121-->
10122     <para>
10123      Fix failure to insert default values for <quote>missing</quote>
10124      attributes during tuple conversion (Vik Fearing, Andrew Gierth)
10125     </para>
10126
10127     <para>
10128      This could result in values incorrectly reading as NULL, when
10129      they come from columns that had been added by <literal>ALTER
10130      TABLE ADD COLUMN</literal> with a constant default.
10131     </para>
10132    </listitem>
10133
10134    <listitem>
10135<!--
10136Author: Thomas Munro <tmunro@postgresql.org>
10137Branch: master [7bb3102ce] 2019-12-14 16:32:03 +1300
10138Branch: REL_12_STABLE [c3dc0cdd6] 2019-12-14 16:34:21 +1300
10139Branch: master [7c85be08a] 2019-12-14 18:35:58 +1300
10140Branch: REL_12_STABLE [fd005e1a8] 2019-12-14 19:03:44 +1300
10141-->
10142     <para>
10143      Fix unlikely panic in the checkpointer process, caused by opening
10144      relation segments that might already have been removed (Thomas Munro)
10145     </para>
10146    </listitem>
10147
10148    <listitem>
10149<!--
10150Author: Noah Misch <noah@leadboat.com>
10151Branch: master [38fc05607] 2020-01-10 18:31:22 -0800
10152Branch: REL_12_STABLE [93078e63f] 2020-01-10 18:31:25 -0800
10153Branch: REL_11_STABLE [2e86e154d] 2020-01-10 18:31:26 -0800
10154Branch: REL_10_STABLE [cb9774245] 2020-01-10 18:31:26 -0800
10155-->
10156     <para>
10157      Fix crash after FileClose() failure (Noah Misch)
10158     </para>
10159
10160     <para>
10161      This issue could only be observed
10162      with <varname>data_sync_retry</varname> enabled, since otherwise
10163      FileClose() failure would be reported as a PANIC.
10164     </para>
10165    </listitem>
10166
10167    <listitem>
10168<!--
10169Author: Etsuro Fujita <efujita@postgresql.org>
10170Branch: master [5a20b0219] 2019-12-10 18:00:30 +0900
10171Branch: REL_12_STABLE [547e454cb] 2019-12-10 18:00:31 +0900
10172-->
10173     <para>
10174      Fix handling of multiple <literal>AFTER ROW</literal> triggers on a
10175      foreign table (Etsuro Fujita)
10176     </para>
10177    </listitem>
10178
10179    <listitem>
10180<!--
10181Author: Andres Freund <andres@anarazel.de>
10182Branch: master [affdde2e1] 2020-01-20 23:26:51 -0800
10183Branch: REL_12_STABLE [21fdfd0e8] 2020-01-20 23:29:35 -0800
10184Branch: REL_11_STABLE [c8e0e560e] 2020-01-20 23:29:38 -0800
10185Branch: REL_10_STABLE [8bb006a41] 2020-01-20 23:30:47 -0800
10186Branch: REL9_6_STABLE [d4c339924] 2020-01-20 23:31:48 -0800
10187Branch: REL9_5_STABLE [f651976d9] 2020-01-20 23:31:52 -0800
10188Branch: REL9_4_STABLE [ba1dfbe22] 2020-01-20 23:32:21 -0800
10189-->
10190     <para>
10191      Fix unlikely crash with pass-by-reference aggregate transition
10192      states (Andres Freund, Teodor Sigaev)
10193     </para>
10194    </listitem>
10195
10196    <listitem>
10197<!--
10198Author: Tom Lane <tgl@sss.pgh.pa.us>
10199Branch: master [4c70098ff] 2020-01-23 13:42:09 -0500
10200Branch: REL_12_STABLE [be13f227f] 2020-01-23 13:42:10 -0500
10201Branch: REL_11_STABLE [fb12aefaa] 2020-01-23 13:42:10 -0500
10202Branch: REL_10_STABLE [212b870d6] 2020-01-23 13:42:10 -0500
10203Branch: REL9_6_STABLE [9e24575f6] 2020-01-23 13:42:10 -0500
10204Branch: REL9_5_STABLE [a576f2a8f] 2020-01-23 13:42:10 -0500
10205Branch: REL9_4_STABLE [600b953d7] 2020-01-23 13:42:10 -0500
10206Branch: master [9a3a75cb8] 2020-01-23 16:15:32 -0500
10207Branch: REL_12_STABLE [f309c812e] 2020-01-23 16:15:32 -0500
10208Branch: REL_11_STABLE [7a9fef299] 2020-01-23 16:15:32 -0500
10209Branch: REL_10_STABLE [d6a9548b2] 2020-01-23 16:15:32 -0500
10210Branch: REL9_6_STABLE [451f50813] 2020-01-23 16:15:32 -0500
10211Branch: REL9_5_STABLE [0e63d9641] 2020-01-23 16:15:32 -0500
10212Branch: REL9_4_STABLE [8fc33e6cc] 2020-01-23 16:15:32 -0500
10213-->
10214     <para>
10215      Improve error reporting in <function>to_date()</function>
10216      and <function>to_timestamp()</function>
10217      (Tom Lane, &Aacute;lvaro Herrera)
10218     </para>
10219
10220     <para>
10221      Reports about incorrect month or day names in input strings could
10222      truncate the input in the middle of a multi-byte character, leading
10223      to an improperly encoded error message that could cause follow-on
10224      failures.  Truncate at the next whitespace instead.
10225     </para>
10226    </listitem>
10227
10228    <listitem>
10229<!--
10230Author: Tom Lane <tgl@sss.pgh.pa.us>
10231Branch: master [1a3efa1eb] 2019-12-12 12:30:43 -0500
10232Branch: REL_12_STABLE [07c4b6ac7] 2019-12-12 12:30:44 -0500
10233Branch: REL_11_STABLE [332584da9] 2019-12-12 12:30:44 -0500
10234Branch: REL_10_STABLE [c965c42a5] 2019-12-12 12:30:44 -0500
10235Branch: REL9_6_STABLE [6e2ac8d66] 2019-12-12 12:30:44 -0500
10236Branch: REL9_5_STABLE [323c47925] 2019-12-12 12:30:44 -0500
10237Branch: REL9_4_STABLE [6aa126311] 2019-12-12 12:30:44 -0500
10238-->
10239     <para>
10240      Fix off-by-one result for <literal>EXTRACT(ISOYEAR
10241      FROM <replaceable>timestamp</replaceable>)</literal> for BC dates
10242      (Tom Lane)
10243     </para>
10244    </listitem>
10245
10246    <listitem>
10247<!--
10248Author: Tom Lane <tgl@sss.pgh.pa.us>
10249Branch: master [d57d61533] 2019-11-13 15:53:53 -0500
10250Branch: REL_12_STABLE [5a6eea092] 2019-11-13 15:53:53 -0500
10251-->
10252     <para>
10253      Ensure that the <literal>&lt;&gt;</literal> operator for
10254      type <type>char</type> reports indeterminate-collation errors as
10255      such, rather than as <quote>cache lookup failed for collation
10256      0</quote> (Tom Lane)
10257     </para>
10258    </listitem>
10259
10260    <listitem>
10261<!--
10262Author: Fujii Masao <fujii@postgresql.org>
10263Branch: master [cb5b28613] 2020-02-07 22:06:31 +0900
10264Branch: REL_12_STABLE [598b466e8] 2020-02-07 22:07:44 +0900
10265Branch: REL_12_STABLE [4faea7fdf] 2020-02-08 12:29:38 +0900
10266-->
10267     <para>
10268      Avoid treating TID scans as sequential scans (Tatsuhito Kasahara)
10269     </para>
10270
10271     <para>
10272      A refactoring oversight caused TID scans (selection by CTID) to be
10273      counted as sequential scans in the statistics views, and to take
10274      whole-table predicate locks as sequential scans do.  The latter
10275      behavior could cause unnecessary serialization errors in
10276      serializable transaction mode.
10277     </para>
10278    </listitem>
10279
10280    <listitem>
10281<!--
10282Author: Tom Lane <tgl@sss.pgh.pa.us>
10283Branch: master [4a0aab14d] 2019-11-21 16:21:43 -0500
10284Branch: REL_12_STABLE [5186f7625] 2019-11-21 16:21:43 -0500
10285Branch: REL_11_STABLE [669138ebd] 2019-11-21 16:21:44 -0500
10286Branch: REL_10_STABLE [b9f3d7a53] 2019-11-21 16:21:44 -0500
10287Branch: REL9_6_STABLE [52434ba73] 2019-11-21 16:21:44 -0500
10288Branch: REL9_5_STABLE [bcd541897] 2019-11-21 16:21:44 -0500
10289Branch: REL9_4_STABLE [f09829017] 2019-11-21 16:21:44 -0500
10290-->
10291     <para>
10292      Avoid stack overflow in <literal>information_schema</literal> views
10293      when a self-referential view exists in the system catalogs
10294      (Tom Lane)
10295     </para>
10296
10297     <para>
10298      A self-referential view can't work; it will always result in
10299      infinite recursion.  We handled that situation correctly when
10300      trying to execute the view, but not when inquiring whether it is
10301      automatically updatable.
10302     </para>
10303    </listitem>
10304
10305    <listitem>
10306<!--
10307Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
10308Branch: master [b175bd59f] 2020-01-07 17:38:48 -0300
10309Branch: REL_12_STABLE [fce9ba819] 2020-01-07 17:38:48 -0300
10310Branch: REL_11_STABLE [896db774e] 2020-01-07 17:38:48 -0300
10311Branch: REL_10_STABLE [8de3b68fa] 2020-01-07 17:55:21 -0300
10312Branch: master [f5d28710c] 2020-01-08 14:33:49 -0300
10313Branch: REL_12_STABLE [20c4df8c8] 2020-01-08 14:33:49 -0300
10314Branch: REL_11_STABLE [af43581e8] 2020-01-08 14:33:49 -0300
10315Branch: REL_10_STABLE [da42b9f3f] 2020-01-08 14:33:49 -0300
10316-->
10317     <para>
10318      Ensure that walsender processes always show NULL for transaction
10319      start time in <structname>pg_stat_activity</structname>
10320      (&Aacute;lvaro Herrera)
10321     </para>
10322
10323     <para>
10324      Previously, the <structfield>xact_start</structfield> column would
10325      sometimes show the process start time.
10326     </para>
10327    </listitem>
10328
10329    <listitem>
10330<!--
10331Author: Thomas Munro <tmunro@postgresql.org>
10332Branch: master [e69d64454] 2019-12-24 13:05:43 +1300
10333Branch: REL_12_STABLE [8052aaf52] 2019-12-24 13:07:54 +1300
10334Branch: REL_11_STABLE [9e551a14c] 2019-12-24 13:09:56 +1300
10335Branch: REL_10_STABLE [8e89bc6df] 2019-12-24 13:11:13 +1300
10336Branch: REL9_6_STABLE [15861deb6] 2019-12-24 13:12:50 +1300
10337Branch: REL9_5_STABLE [893eaf0be] 2019-12-24 13:13:13 +1300
10338Branch: REL9_4_STABLE [5c0a132cf] 2019-12-24 13:13:30 +1300
10339-->
10340     <para>
10341      Improve performance of hash joins with very large inner relations
10342      (Thomas Munro)
10343     </para>
10344    </listitem>
10345
10346    <listitem>
10347<!--
10348Author: Tom Lane <tgl@sss.pgh.pa.us>
10349Branch: master [e369f3708] 2020-01-06 16:42:20 -0500
10350Branch: REL_12_STABLE [b89845267] 2020-01-06 16:42:20 -0500
10351-->
10352     <para>
10353      Reduce spinlock contention when there are many active walsender
10354      processes (Pierre Ducroquet)
10355     </para>
10356    </listitem>
10357
10358    <listitem>
10359<!--
10360Author: Tom Lane <tgl@sss.pgh.pa.us>
10361Branch: master [7d91b604d] 2020-02-04 13:07:13 -0500
10362Branch: REL_12_STABLE [9a85860e1] 2020-02-04 13:07:13 -0500
10363Branch: REL_11_STABLE [842a23efa] 2020-02-04 13:07:13 -0500
10364-->
10365     <para>
10366      Fix placement of <quote>Subplans Removed</quote> field
10367      in <command>EXPLAIN</command> output (Daniel Gustafsson, Tom Lane)
10368     </para>
10369
10370     <para>
10371      In non-text output formats, this field was emitted inside
10372      the <quote>Plans</quote> sub-group, resulting in syntactically
10373      invalid output.  Attach it to the parent Append or MergeAppend plan
10374      node as intended.  This causes the field to change position in text
10375      output format too: if there are any InitPlans attached to the same
10376      plan node, <quote>Subplans Removed</quote> will now appear before
10377      those.
10378     </para>
10379    </listitem>
10380
10381    <listitem>
10382<!--
10383Author: Tom Lane <tgl@sss.pgh.pa.us>
10384Branch: master [3ec20c709] 2020-01-26 16:32:19 -0500
10385Branch: REL_12_STABLE [bad494380] 2020-01-26 16:31:48 -0500
10386-->
10387     <para>
10388      Fix <command>EXPLAIN</command>'s <literal>SETTINGS</literal> option
10389      to print as empty in non-text output formats (Tom Lane)
10390     </para>
10391
10392     <para>
10393      In the non-text output formats, fields are supposed to appear when
10394      requested, even if they have empty or zero values.
10395     </para>
10396    </listitem>
10397
10398    <listitem>
10399<!--
10400Author: Tom Lane <tgl@sss.pgh.pa.us>
10401Branch: master [553d2ec27] 2019-11-26 14:41:48 -0500
10402Branch: REL_12_STABLE [21a4edd12] 2019-11-26 14:41:48 -0500
10403Branch: REL_11_STABLE [1d9056f56] 2019-11-26 14:41:48 -0500
10404-->
10405     <para>
10406      Allow the planner to apply potentially-leaky tests to child-table
10407      statistics, if the user can read the corresponding column of the
10408      table that's actually named in the query (Dilip Kumar, Amit Langote)
10409     </para>
10410
10411     <para>
10412      This change fixes a performance problem for partitioned tables that
10413      was created by the fix for CVE-2017-7484.  That security fix
10414      disallowed applying leaky operators to statistics for columns that
10415      the current user doesn't have permission to read directly.  However,
10416      it's somewhat common to grant permissions only on the parent
10417      partitioned table and not bother to do so on individual partitions.
10418      In such cases, the user can read the column via the parent, so
10419      there's no point in this security restriction; it only results in
10420      poorer planner estimates than necessary.
10421     </para>
10422    </listitem>
10423
10424    <listitem>
10425<!--
10426Author: Tom Lane <tgl@sss.pgh.pa.us>
10427Branch: master [6ea364e7e] 2019-12-14 13:49:15 -0500
10428Branch: REL_12_STABLE [d04e2553d] 2019-12-14 13:49:15 -0500
10429-->
10430     <para>
10431      Fix planner errors induced by overly-aggressive collapsing of joins
10432      to single-row subqueries (Tom Lane)
10433     </para>
10434
10435     <para>
10436      This mistake led to errors such as <quote>failed to construct the
10437      join relation</quote>.
10438     </para>
10439    </listitem>
10440
10441    <listitem>
10442<!--
10443Author: Tom Lane <tgl@sss.pgh.pa.us>
10444Branch: master [b3c265d7b] 2019-11-19 17:03:34 -0500
10445Branch: REL_12_STABLE [bffe18e3e] 2019-11-19 17:03:35 -0500
10446-->
10447     <para>
10448      Fix <quote>no = operator for
10449      opfamily <replaceable>NNNN</replaceable></quote> planner error when
10450      trying to match a <literal>LIKE</literal> or regex pattern-match
10451      operator to a binary-compatible index opclass (Tom Lane)
10452     </para>
10453    </listitem>
10454
10455    <listitem>
10456<!--
10457Author: Tom Lane <tgl@sss.pgh.pa.us>
10458Branch: master [652686a33] 2020-01-12 14:36:59 -0500
10459Branch: REL_12_STABLE [70c17a812] 2020-01-12 14:37:00 -0500
10460Branch: REL_11_STABLE [5832be6ca] 2020-01-12 14:37:00 -0500
10461Branch: REL_10_STABLE [8c8b456b5] 2020-01-12 14:37:00 -0500
10462Branch: REL9_6_STABLE [2dd10477c] 2020-01-12 14:37:00 -0500
10463Branch: REL9_5_STABLE [784c58da1] 2020-01-12 14:37:00 -0500
10464Branch: REL9_4_STABLE [6bd567b65] 2020-01-12 14:37:00 -0500
10465-->
10466     <para>
10467      Fix edge-case crashes and misestimations in selectivity calculations
10468      for the <literal>&lt;@</literal> and <literal>@&gt;</literal> range
10469      operators (Michael Paquier, Andrey Borodin, Tom Lane)
10470     </para>
10471    </listitem>
10472
10473    <listitem>
10474<!--
10475Author: Tomas Vondra <tomas.vondra@postgresql.org>
10476Branch: master [c676e659b] 2019-11-28 22:20:45 +0100
10477Branch: REL_12_STABLE [ef3fed2ce] 2019-11-28 22:26:25 +0100
10478Branch: master [6d61c3f1c] 2019-11-28 23:25:14 +0100
10479Branch: REL_12_STABLE [79d6e6afa] 2019-11-28 23:28:53 +0100
10480-->
10481     <para>
10482      Fix incorrect estimation for <literal>OR</literal> clauses when
10483      using most-common-value extended statistics (Tomas Vondra)
10484     </para>
10485    </listitem>
10486
10487    <listitem>
10488<!--
10489Author: Tomas Vondra <tomas.vondra@postgresql.org>
10490Branch: master [d482f7f86] 2019-11-16 01:17:15 +0100
10491Branch: REL_12_STABLE [28555a53c] 2019-11-16 01:25:14 +0100
10492Branch: REL_11_STABLE [25a9ff6ca] 2019-11-16 01:58:38 +0100
10493Branch: REL_10_STABLE [0b0f281cc] 2019-11-16 01:42:20 +0100
10494-->
10495     <para>
10496      Ignore system columns when applying most-common-value
10497      extended statistics (Tomas Vondra)
10498     </para>
10499
10500     <para>
10501      This prevents <quote>negative bitmapset member not allowed</quote>
10502      planner errors for affected queries.
10503     </para>
10504    </listitem>
10505
10506    <listitem>
10507<!--
10508Author: Michael Paquier <michael@paquier.xyz>
10509Branch: master [168d20640] 2019-11-21 10:23:28 +0900
10510Branch: REL_12_STABLE [c644407f7] 2019-11-21 10:23:38 +0900
10511Branch: REL_11_STABLE [62074a343] 2019-11-21 10:23:43 +0900
10512Branch: REL_10_STABLE [f4095026c] 2019-11-21 10:23:49 +0900
10513-->
10514     <para>
10515      Fix BRIN index logic to support hypothetical BRIN indexes
10516      (Julien Rouhaud, Heikki Linnakangas)
10517     </para>
10518
10519     <para>
10520      Previously, if an <quote>index adviser</quote> extension tried to
10521      get the planner to produce a plan involving a hypothetical BRIN
10522      index, that would fail, because the BRIN cost estimation code would
10523      always try to physically access the index's metapage.  Now it checks
10524      to see if the index is only hypothetical, and uses default
10525      assumptions about the index parameters if so.
10526     </para>
10527    </listitem>
10528
10529    <listitem>
10530<!--
10531Author: Dean Rasheed <dean.a.rasheed@gmail.com>
10532Branch: master [d751ba523] 2020-01-14 09:52:21 +0000
10533Branch: REL_12_STABLE [fd5476b79] 2020-01-14 09:51:28 +0000
10534Branch: REL_11_STABLE [9bdb1f0e3] 2020-01-14 09:50:51 +0000
10535Branch: REL_10_STABLE [353cd826f] 2020-01-14 09:50:13 +0000
10536Branch: REL9_6_STABLE [fd87262de] 2020-01-14 09:49:23 +0000
10537Branch: REL9_5_STABLE [bb09a9414] 2020-01-14 09:48:44 +0000
10538Branch: REL9_4_STABLE [9be6fcb3e] 2020-01-14 09:47:44 +0000
10539-->
10540     <para>
10541      Improve error reporting for attempts to use automatic updating of
10542      views with conditional <literal>INSTEAD</literal> rules (Dean Rasheed)
10543     </para>
10544
10545     <para>
10546      This has never been supported, but previously the error was thrown
10547      only at execution time, so that it could be masked by planner errors.
10548     </para>
10549    </listitem>
10550
10551    <listitem>
10552<!--
10553Author: Tom Lane <tgl@sss.pgh.pa.us>
10554Branch: master [fc7695891] 2019-12-23 12:08:23 -0500
10555Branch: REL_12_STABLE [976cb11f6] 2019-12-23 12:08:23 -0500
10556Branch: REL_11_STABLE [31dfa40a8] 2019-12-23 12:08:24 -0500
10557Branch: REL_10_STABLE [4af2531d0] 2019-12-23 12:08:24 -0500
10558Branch: REL9_6_STABLE [354d913f9] 2019-12-23 12:08:24 -0500
10559Branch: REL9_5_STABLE [6609c3ad9] 2019-12-23 12:08:24 -0500
10560Branch: REL9_4_STABLE [0d245d13c] 2019-12-23 12:08:24 -0500
10561Branch: master [74b35eb46] 2020-01-31 17:03:55 -0500
10562Branch: REL_12_STABLE [65aa15513] 2020-01-31 17:03:55 -0500
10563Branch: REL_11_STABLE [25dc267a1] 2020-01-31 17:03:55 -0500
10564Branch: REL_10_STABLE [de3d2df75] 2020-01-31 17:03:55 -0500
10565Branch: REL9_6_STABLE [742c646c1] 2020-01-31 17:03:55 -0500
10566Branch: REL9_5_STABLE [59047b6d0] 2020-01-31 17:03:55 -0500
10567Branch: REL9_4_STABLE [f521ef0ae] 2020-01-31 17:03:55 -0500
10568-->
10569     <para>
10570      Prevent a composite type from being included in itself indirectly
10571      via a range type (Tom Lane, Julien Rouhaud)
10572     </para>
10573    </listitem>
10574
10575    <listitem>
10576<!--
10577Author: Tom Lane <tgl@sss.pgh.pa.us>
10578Branch: master [39ebb943d] 2019-12-23 12:53:12 -0500
10579Branch: REL_12_STABLE [7fbb39a96] 2019-12-23 12:53:13 -0500
10580Branch: REL_11_STABLE [281dd22ac] 2019-12-23 12:53:13 -0500
10581Branch: REL_10_STABLE [ea1205a02] 2019-12-23 12:53:13 -0500
10582-->
10583     <para>
10584      Disallow partition key expressions that return pseudo-types, such
10585      as <type>record</type> (Tom Lane)
10586     </para>
10587    </listitem>
10588
10589    <listitem>
10590<!--
10591Author: Tom Lane <tgl@sss.pgh.pa.us>
10592Branch: master [2acab054b] 2019-12-17 17:44:27 -0500
10593Branch: REL_12_STABLE [97ba30fab] 2019-12-17 17:44:28 -0500
10594Branch: REL_11_STABLE [fc449abc3] 2019-12-17 17:44:28 -0500
10595Branch: REL_10_STABLE [5c5a268c6] 2019-12-17 17:44:28 -0500
10596Branch: REL9_6_STABLE [275a8ac4f] 2019-12-17 17:44:28 -0500
10597Branch: REL9_5_STABLE [da5dd4218] 2019-12-17 17:44:28 -0500
10598Branch: REL9_4_STABLE [298d056d9] 2019-12-17 17:44:28 -0500
10599-->
10600     <para>
10601      Fix error reporting for index expressions of prohibited types
10602      (Amit Langote)
10603     </para>
10604    </listitem>
10605
10606    <listitem>
10607<!--
10608Author: Tom Lane <tgl@sss.pgh.pa.us>
10609Branch: master [bf2efc55d] 2019-11-16 20:00:19 -0500
10610Branch: REL_12_STABLE [fcaf29d87] 2019-11-16 20:00:19 -0500
10611Branch: REL_11_STABLE [d898edf4f] 2019-11-16 20:00:19 -0500
10612Branch: REL_10_STABLE [a1b2cf095] 2019-11-16 20:00:19 -0500
10613Branch: REL9_6_STABLE [e4865bbdc] 2019-11-16 20:00:19 -0500
10614Branch: REL9_5_STABLE [ecb533af6] 2019-11-16 20:00:20 -0500
10615Branch: REL9_4_STABLE [65da6dd1d] 2019-11-16 20:00:20 -0500
10616-->
10617     <para>
10618      Fix dumping of views that contain only a <literal>VALUES</literal>
10619      list to handle cases where a view output column has been renamed
10620      (Tom Lane)
10621     </para>
10622    </listitem>
10623
10624    <listitem>
10625<!--
10626Author: Tom Lane <tgl@sss.pgh.pa.us>
10627Branch: master [2c7b5dad6] 2019-11-13 12:11:49 -0500
10628Branch: REL_12_STABLE [eec569fac] 2019-11-13 12:11:49 -0500
10629Branch: REL_11_STABLE [94a9cb43f] 2019-11-13 12:11:49 -0500
10630Branch: REL_10_STABLE [e25c4b3b2] 2019-11-13 12:11:50 -0500
10631-->
10632     <para>
10633      Ensure that data types and collations used
10634      in <literal>XMLTABLE</literal> constructs are accounted for when
10635      computing dependencies of a view or rule (Tom Lane)
10636     </para>
10637
10638     <para>
10639      Previously it was possible to break a view
10640      using <literal>XMLTABLE</literal> by dropping a type, if the type
10641      was not otherwise referenced in the view.  This fix does not
10642      correct the dependencies already recorded for existing views, only
10643      for newly-created ones.
10644     </para>
10645    </listitem>
10646
10647    <listitem>
10648<!--
10649Author: Tom Lane <tgl@sss.pgh.pa.us>
10650Branch: master [7618eaf5f] 2019-11-13 13:41:04 -0500
10651Branch: REL_12_STABLE [d9802590a] 2019-11-13 13:41:04 -0500
10652Branch: REL_11_STABLE [d66e68207] 2019-11-13 13:41:04 -0500
10653Branch: REL_10_STABLE [4be69e2ea] 2019-11-13 13:41:04 -0500
10654-->
10655     <para>
10656      Prevent unwanted downcasing and truncation of RADIUS authentication
10657      parameters (Marcos David)
10658     </para>
10659
10660     <para>
10661      The <filename>pg_hba.conf</filename> parser mistakenly treated these
10662      fields as SQL identifiers, which in general they aren't.
10663     </para>
10664    </listitem>
10665
10666    <listitem>
10667<!--
10668Author: Tom Lane <tgl@sss.pgh.pa.us>
10669Branch: master [790026972] 2019-11-24 14:42:59 -0500
10670Branch: REL_12_STABLE [c47f498c9] 2019-11-24 14:42:59 -0500
10671Branch: REL_11_STABLE [377d1b95b] 2019-11-24 14:42:59 -0500
10672Branch: REL_10_STABLE [dbe15524b] 2019-11-24 14:42:59 -0500
10673Branch: REL9_6_STABLE [111298aa6] 2019-11-24 14:42:59 -0500
10674-->
10675     <para>
10676      Transmit incoming <command>NOTIFY</command> messages to the client
10677      before sending <literal>ReadyForQuery</literal>, rather than after
10678      (Tom Lane)
10679     </para>
10680
10681     <para>
10682      This change ensures that, with libpq and other client libraries that
10683      act similarly to it, any notifications received during a transaction
10684      will be available by the time the client thinks the transaction is
10685      complete.  This probably makes no difference in practical
10686      applications (which would need to cope with asynchronous
10687      notifications in any case); but it makes it easier to build test
10688      cases with reproducible behavior.
10689     </para>
10690    </listitem>
10691
10692    <listitem>
10693<!--
10694Author: Tom Lane <tgl@sss.pgh.pa.us>
10695Branch: master [2c0cdc818] 2020-01-11 17:14:08 -0500
10696Branch: REL_12_STABLE [fde155424] 2020-01-11 17:14:08 -0500
10697-->
10698     <para>
10699      Fix bugs in handling of non-blocking I/O when using GSSAPI
10700      encryption (Tom Lane)
10701     </para>
10702
10703     <para>
10704      These errors could result in dropping data (usually leading to
10705      subsequent wire-protocol-violation errors) or in
10706      a <quote>livelock</quote> situation where a sending process goes to
10707      sleep although not all its data has been sent.
10708      Moreover, <application>libpq</application> failed to keep separate
10709      encryption state for each connection, creating the possibility for
10710      failures in applications using multiple encrypted database
10711      connections.
10712     </para>
10713    </listitem>
10714
10715    <listitem>
10716<!--
10717Author: Tom Lane <tgl@sss.pgh.pa.us>
10718Branch: master [e60b480d3] 2019-12-20 15:34:07 -0500
10719Branch: REL_12_STABLE [e8f60e6fe] 2019-12-20 15:34:07 -0500
10720Branch: REL_11_STABLE [1a77ea02d] 2019-12-20 15:34:08 -0500
10721Branch: REL_10_STABLE [d09cfa3e2] 2019-12-20 15:34:08 -0500
10722Branch: REL9_6_STABLE [c11bd6c10] 2019-12-20 15:34:08 -0500
10723Branch: REL9_5_STABLE [5e22a1111] 2019-12-20 15:34:08 -0500
10724Branch: REL9_4_STABLE [875c7d70d] 2019-12-20 15:34:08 -0500
10725-->
10726     <para>
10727      Allow <application>libpq</application> to parse all GSS-related
10728      connection parameters even when the GSSAPI code hasn't been compiled
10729      in (Tom Lane)
10730     </para>
10731
10732     <para>
10733      This makes the behavior similar to our SSL support, where it was
10734      long ago deemed to be a good idea to always accept all the related
10735      parameters, even if some are ignored or restricted due to lack of
10736      the feature in a particular build.
10737     </para>
10738    </listitem>
10739
10740    <listitem>
10741<!--
10742Author: Tomas Vondra <tomas.vondra@postgresql.org>
10743Branch: master [3ff660bbe] 2019-11-30 14:51:27 +0100
10744Branch: REL_12_STABLE [0dafed6fe] 2019-11-30 15:04:02 +0100
10745Branch: REL_11_STABLE [9668bf5d5] 2019-11-30 15:05:31 +0100
10746Branch: REL_10_STABLE [f71b22f53] 2019-11-30 15:07:47 +0100
10747Branch: REL9_6_STABLE [c59414da7] 2019-11-30 15:10:14 +0100
10748Branch: REL9_5_STABLE [a17602de1] 2019-11-30 15:14:12 +0100
10749Branch: REL9_4_STABLE [d9b974e99] 2019-11-30 15:16:58 +0100
10750-->
10751     <para>
10752      Fix incorrect handling of <literal>%b</literal>
10753      and <literal>%B</literal> format codes
10754      in <application>ecpg</application>'s
10755      <function>PGTYPEStimestamp_fmt_asc()</function> function
10756      (Tomas Vondra)
10757     </para>
10758
10759     <para>
10760      Due to an off-by-one error, these codes would print the wrong month
10761      name, or possibly crash.
10762     </para>
10763    </listitem>
10764
10765    <listitem>
10766<!--
10767Author: Tom Lane <tgl@sss.pgh.pa.us>
10768Branch: master [44f1fc8df] 2020-01-19 19:15:15 -0500
10769Branch: REL_12_STABLE [c7c2cc670] 2020-01-19 19:15:15 -0500
10770-->
10771     <para>
10772      Avoid crash after an out-of-memory failure
10773      in <application>ecpglib</application> (Tom Lane)
10774     </para>
10775    </listitem>
10776
10777    <listitem>
10778<!--
10779Author: Tom Lane <tgl@sss.pgh.pa.us>
10780Branch: master [2425f8f71] 2020-01-31 14:41:49 -0500
10781Branch: REL_12_STABLE [0c84199f7] 2020-01-31 14:41:49 -0500
10782Branch: REL_11_STABLE [63634883f] 2020-01-31 14:41:49 -0500
10783Branch: REL_10_STABLE [8b1d447a7] 2020-01-31 14:41:49 -0500
10784Branch: REL9_6_STABLE [cb4c04a4e] 2020-01-31 14:41:49 -0500
10785Branch: REL9_5_STABLE [1b78759a6] 2020-01-31 14:41:49 -0500
10786Branch: REL9_4_STABLE [5d60df830] 2020-01-31 14:41:49 -0500
10787-->
10788     <para>
10789      Fix
10790      parallel <application>pg_dump</application>/<application>pg_restore</application>
10791      to more gracefully handle failure to create worker processes
10792      (Tom Lane)
10793     </para>
10794    </listitem>
10795
10796    <listitem>
10797<!--
10798Author: Tom Lane <tgl@sss.pgh.pa.us>
10799Branch: master [cd23a2019] 2020-01-20 12:57:17 -0500
10800Branch: REL_12_STABLE [71b121f42] 2020-01-20 12:57:17 -0500
10801Branch: REL_11_STABLE [4ea5cf403] 2020-01-20 12:57:17 -0500
10802Branch: REL_10_STABLE [6f6daa1be] 2020-01-20 12:57:17 -0500
10803Branch: REL9_6_STABLE [208e262f9] 2020-01-20 12:57:17 -0500
10804Branch: REL9_5_STABLE [b1392a950] 2020-01-20 12:57:17 -0500
10805Branch: REL9_4_STABLE [42e538fe6] 2020-01-20 12:57:18 -0500
10806-->
10807     <para>
10808      Prevent possible crash or lockup when attempting to terminate a
10809      parallel <application>pg_dump</application>/<application>pg_restore</application>
10810      run via a signal (Tom Lane)
10811     </para>
10812    </listitem>
10813
10814    <listitem>
10815<!--
10816Author: Tom Lane <tgl@sss.pgh.pa.us>
10817Branch: master [29aeda6e4] 2019-11-13 11:35:37 -0500
10818Branch: REL_12_STABLE [1cd57b05e] 2019-11-13 11:35:37 -0500
10819Branch: REL_11_STABLE [8e4ef3287] 2019-11-13 11:35:37 -0500
10820Branch: REL_10_STABLE [c443e3c43] 2019-11-13 11:35:37 -0500
10821Branch: REL9_6_STABLE [f378d4dac] 2019-11-13 11:35:37 -0500
10822Branch: REL9_5_STABLE [fb26754af] 2019-11-13 11:35:37 -0500
10823Branch: REL9_4_STABLE [56c06999d] 2019-11-13 11:35:37 -0500
10824-->
10825     <para>
10826      In <application>pg_upgrade</application>, look inside arrays and
10827      ranges while searching for non-upgradable data types in tables
10828      (Tom Lane)
10829     </para>
10830    </listitem>
10831
10832    <listitem>
10833<!--
10834Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
10835Branch: master [8fa8e0115] 2020-02-10 12:14:58 -0300
10836Branch: REL_12_STABLE [87d014da9] 2020-02-10 12:14:58 -0300
10837Branch: REL_11_STABLE [ca902add6] 2020-02-10 12:14:58 -0300
10838Branch: REL_10_STABLE [163161723] 2020-02-10 12:14:58 -0300
10839Branch: REL9_6_STABLE [5575fc208] 2020-02-10 12:14:58 -0300
10840Branch: REL9_5_STABLE [1b2ae4bcd] 2020-02-10 12:16:40 -0300
10841Branch: REL9_4_STABLE [6f1e443a6] 2020-02-10 12:14:58 -0300
10842-->
10843     <para>
10844      Apply more thorough syntax checking
10845      to <application>createuser</application>'s
10846      <option>--connection-limit</option> option (&Aacute;lvaro Herrera)
10847     </para>
10848    </listitem>
10849
10850    <listitem>
10851<!--
10852Author: Tom Lane <tgl@sss.pgh.pa.us>
10853Branch: master [4ba4bfaf2] 2019-12-26 15:19:39 -0500
10854Branch: REL_12_STABLE [883c27a1c] 2019-12-26 15:19:39 -0500
10855Branch: REL_11_STABLE [ee206cb83] 2019-12-26 15:19:39 -0500
10856-->
10857     <para>
10858      Cope with changes of the specific type referenced by a PL/pgSQL
10859      composite-type variable in more cases (Ashutosh Sharma, Tom Lane)
10860     </para>
10861
10862     <para>
10863      Dropping and re-creating the composite type referenced by a PL/pgSQL
10864      variable could lead to <quote>could not open relation with
10865      OID <replaceable>NNNN</replaceable></quote> errors.
10866     </para>
10867    </listitem>
10868
10869    <listitem>
10870<!--
10871Author: Tom Lane <tgl@sss.pgh.pa.us>
10872Branch: master [215824f91] 2020-01-26 14:31:08 -0500
10873Branch: REL_12_STABLE [7294f99a0] 2020-01-26 14:31:08 -0500
10874Branch: REL_11_STABLE [5220ced0d] 2020-01-26 14:31:08 -0500
10875Branch: REL_10_STABLE [603e03b4c] 2020-01-26 14:31:08 -0500
10876Branch: REL9_6_STABLE [43a648f57] 2020-01-26 14:31:08 -0500
10877-->
10878     <para>
10879      Avoid crash in <filename>postgres_fdw</filename> when trying to
10880      send a command like <literal>UPDATE remote_tab SET (x,y) = (SELECT
10881      ...)</literal> to the remote server (Tom Lane)
10882     </para>
10883    </listitem>
10884
10885    <listitem>
10886<!--
10887Author: Tomas Vondra <tomas.vondra@postgresql.org>
10888Branch: master [b52739436] 2019-12-03 18:40:07 +0100
10889Branch: REL_12_STABLE [a8a8c6b29] 2019-12-03 18:40:48 +0100
10890Branch: REL_11_STABLE [267eb954c] 2019-12-03 18:41:29 +0100
10891Branch: REL_10_STABLE [46ce37b67] 2019-12-03 18:41:50 +0100
10892Branch: REL9_6_STABLE [fabdad822] 2019-12-03 18:42:25 +0100
10893Branch: REL9_5_STABLE [a2fdeb786] 2019-12-03 18:42:54 +0100
10894Branch: REL9_4_STABLE [44381b1af] 2019-12-03 18:43:15 +0100
10895-->
10896     <para>
10897      In <filename>contrib/dict_int</filename>,
10898      reject <varname>maxlen</varname> settings less than one
10899      (Tomas Vondra)
10900     </para>
10901
10902     <para>
10903      This prevents a possible crash with silly settings for that parameter.
10904     </para>
10905    </listitem>
10906
10907    <listitem>
10908<!--
10909Author: Joe Conway <mail@joeconway.com>
10910Branch: master [d5b9c2baf] 2019-12-23 13:33:25 -0500
10911Branch: REL_12_STABLE [b5e7569dd] 2019-12-23 13:33:34 -0500
10912Branch: REL_11_STABLE [f49e5efbc] 2019-12-23 13:33:42 -0500
10913Branch: REL_10_STABLE [81be0c57e] 2019-12-23 13:33:50 -0500
10914Branch: REL9_6_STABLE [3757c1640] 2019-12-23 13:33:57 -0500
10915Branch: REL9_5_STABLE [70fc6c4ef] 2019-12-23 13:34:05 -0500
10916Branch: REL9_4_STABLE [4a3cdb531] 2019-12-23 13:34:12 -0500
10917-->
10918     <para>
10919      Disallow NULL category values
10920      in <filename>contrib/tablefunc</filename>'s
10921      <function>crosstab()</function> function (Joe Conway)
10922     </para>
10923
10924     <para>
10925      This case never worked usefully, and it would crash on some
10926      platforms.
10927     </para>
10928    </listitem>
10929
10930    <listitem>
10931<!--
10932Author: Michael Paquier <michael@paquier.xyz>
10933Branch: master [7d0bcb047] 2019-12-06 15:13:55 +0900
10934Branch: REL_12_STABLE [902276ff1] 2019-12-06 15:14:26 +0900
10935Branch: REL_11_STABLE [7ad544fd8] 2019-12-06 15:14:31 +0900
10936-->
10937     <para>
10938      Fix <application>configure</application>'s probe for
10939      OpenSSL's <function>SSL_clear_options()</function> function so that
10940      it works with OpenSSL versions before 1.1.0 (Michael Paquier, Daniel
10941      Gustafsson)
10942     </para>
10943
10944     <para>
10945      This problem could lead to failure to set the SSL compression option
10946      as desired, when <productname>PostgreSQL</productname> is built against
10947      an old version of OpenSSL.
10948     </para>
10949    </listitem>
10950
10951    <listitem>
10952<!--
10953Author: Michael Paquier <michael@paquier.xyz>
10954Branch: master [62c9b5223] 2020-01-21 13:46:39 +0900
10955Branch: REL_12_STABLE [ef8e6b2c2] 2020-01-21 13:46:55 +0900
10956Branch: REL_11_STABLE [7c7026bb7] 2020-01-21 13:47:01 +0900
10957Branch: REL_10_STABLE [1ef7332b7] 2020-01-21 13:47:05 +0900
10958Branch: REL9_6_STABLE [9740cdbe5] 2020-01-21 13:47:10 +0900
10959Branch: REL9_5_STABLE [4a49149b9] 2020-01-21 13:47:13 +0900
10960Branch: REL9_4_STABLE [dbe405b78] 2020-01-21 13:47:17 +0900
10961-->
10962     <para>
10963      Mark some timeout and statistics-tracking GUC variables
10964      as <literal>PGDLLIMPORT</literal>, to allow extensions to access
10965      them on Windows (Pascal Legrand)
10966     </para>
10967
10968     <para>
10969      This applies to
10970      <literal>idle_in_transaction_session_timeout</literal>,
10971      <literal>lock_timeout</literal>,
10972      <literal>statement_timeout</literal>,
10973      <literal>track_activities</literal>,
10974      <literal>track_counts</literal>, and
10975      <literal>track_functions</literal>.
10976     </para>
10977    </listitem>
10978
10979    <listitem>
10980<!--
10981Author: Tomas Vondra <tomas.vondra@postgresql.org>
10982Branch: master [543852fd8] 2020-01-17 15:29:11 +0100
10983Branch: REL_12_STABLE [162c951df] 2020-01-17 15:30:51 +0100
10984Branch: REL_11_STABLE [8c37e4469] 2020-01-17 15:31:33 +0100
10985Branch: REL_10_STABLE [a801452c9] 2020-01-17 15:32:03 +0100
10986-->
10987     <para>
10988      Avoid memory leak in sanity checks for <quote>slab</quote> memory
10989      contexts (Tomas Vondra)
10990     </para>
10991
10992     <para>
10993      This isn't an issue for production builds, since they wouldn't
10994      ordinarily have memory context checking enabled; but the leak could
10995      be quite severe in a debug build.
10996     </para>
10997    </listitem>
10998
10999    <listitem>
11000<!--
11001Author: Fujii Masao <fujii@postgresql.org>
11002Branch: master [3ccc66dac] 2020-02-06 14:43:21 +0900
11003Branch: REL_12_STABLE [3d214a8e5] 2020-02-06 14:44:22 +0900
11004Branch: REL_11_STABLE [ac25e1044] 2020-02-06 14:44:40 +0900
11005Branch: REL_10_STABLE [c17abac60] 2020-02-06 14:44:59 +0900
11006-->
11007     <para>
11008      Fix multiple statistics entries reported by the LWLock statistics
11009      mechanism (Fujii Masao)
11010     </para>
11011
11012     <para>
11013      The LWLock statistics code (which is not built by default; it
11014      requires compiling with <option>-DLWLOCK_STATS</option>)
11015      could report multiple entries for the same LWLock and backend
11016      process, as a result of faulty hashtable key creation.
11017     </para>
11018    </listitem>
11019
11020    <listitem>
11021<!--
11022Author: Tom Lane <tgl@sss.pgh.pa.us>
11023Branch: master [28e6a2fd6] 2019-12-09 15:03:51 -0500
11024Branch: REL_12_STABLE [001362cfd] 2019-12-09 15:03:51 -0500
11025Branch: REL_11_STABLE [2ed302ab9] 2019-12-09 15:03:51 -0500
11026Branch: REL_10_STABLE [096ea540e] 2019-12-09 15:03:52 -0500
11027Branch: REL9_6_STABLE [df44e411c] 2019-12-09 15:03:52 -0500
11028Branch: REL9_5_STABLE [1a0c65120] 2019-12-09 15:03:52 -0500
11029Branch: REL9_4_STABLE [7309e75fa] 2019-12-09 15:03:52 -0500
11030-->
11031     <para>
11032      Fix race condition that led to delayed delivery of interprocess
11033      signals on Windows (Amit Kapila)
11034     </para>
11035
11036     <para>
11037      This caused visible timing oddities in <command>NOTIFY</command>,
11038      and perhaps other misbehavior.
11039     </para>
11040    </listitem>
11041
11042    <listitem>
11043<!--
11044Author: Thomas Munro <tmunro@postgresql.org>
11045Branch: master [6969deeb8] 2019-11-20 18:29:37 +1300
11046Branch: REL_12_STABLE [2189f49c4] 2019-11-20 18:30:56 +1300
11047-->
11048     <para>
11049      Fix handling of a corner-case error result from
11050      Windows' <function>ReadFile()</function> function
11051      (Thomas Munro, Juan Jos&eacute; Santamar&iacute;a Flecha)
11052     </para>
11053
11054     <para>
11055      So far as is known, this oversight just resulted in noisy log
11056      messages, not any actual query misbehavior.
11057     </para>
11058    </listitem>
11059
11060    <listitem>
11061<!--
11062Author: Tom Lane <tgl@sss.pgh.pa.us>
11063Branch: master [6d7547c21] 2019-12-16 15:10:55 -0500
11064Branch: REL_12_STABLE [95f43fee9] 2019-12-16 15:10:55 -0500
11065Branch: REL_11_STABLE [2cf51809b] 2019-12-16 15:10:55 -0500
11066Branch: REL_10_STABLE [81b052c31] 2019-12-16 15:10:55 -0500
11067Branch: REL9_6_STABLE [65cb25e4f] 2019-12-16 15:10:55 -0500
11068Branch: REL9_5_STABLE [cd0380351] 2019-12-16 15:10:55 -0500
11069Branch: REL9_4_STABLE [cfb2a4cce] 2019-12-16 15:10:56 -0500
11070Branch: master [5406513e9] 2019-12-21 17:39:36 -0500
11071Branch: REL_12_STABLE [90281a3a2] 2019-12-21 17:39:36 -0500
11072Branch: REL_11_STABLE [b3c4e2418] 2019-12-21 17:39:36 -0500
11073Branch: REL_10_STABLE [a69f5697a] 2019-12-21 17:39:36 -0500
11074Branch: REL9_6_STABLE [739201b0e] 2019-12-21 17:39:36 -0500
11075Branch: REL9_5_STABLE [35b28d983] 2019-12-21 17:39:37 -0500
11076Branch: REL9_4_STABLE [f1a4020ef] 2019-12-21 17:39:37 -0500
11077-->
11078     <para>
11079      On Windows, retry a few times after
11080      an <literal>ERROR_ACCESS_DENIED</literal> file access failure
11081      (Alexander Lakhin, Tom Lane)
11082     </para>
11083
11084     <para>
11085      This helps cope with cases where a file open attempt fails because
11086      the targeted file is flagged for deletion but not yet actually gone.
11087      <application>pg_ctl</application>, for example, frequently failed
11088      with such an error when probing to see if the postmaster had shut
11089      down yet.
11090     </para>
11091    </listitem>
11092
11093    <listitem>
11094<!--
11095Author: Tom Lane <tgl@sss.pgh.pa.us>
11096Branch: master [0da33c762] 2019-12-10 13:17:08 -0500
11097Branch: REL_12_STABLE [be9d4b928] 2019-12-10 13:17:08 -0500
11098-->
11099     <para>
11100      On Windows, work around sharing violations for the postmaster's log
11101      file when <application>pg_ctl</application> is used to start the
11102      postmaster very shortly after it's been stopped, for example by
11103      <literal>pg_ctl restart</literal> (Alexander Lakhin)
11104     </para>
11105    </listitem>
11106
11107   </itemizedlist>
11108
11109  </sect2>
11110 </sect1>
11111
11112 <sect1 id="release-12-1">
11113  <title>Release 12.1</title>
11114
11115  <formalpara>
11116  <title>Release date:</title>
11117  <para>2019-11-14</para>
11118  </formalpara>
11119
11120  <para>
11121   This release contains a variety of fixes from 12.0.
11122   For information about new features in major release 12, see
11123   <xref linkend="release-12"/>.
11124  </para>
11125
11126  <sect2>
11127   <title>Migration to Version 12.1</title>
11128
11129   <para>
11130    A dump/restore is not required for those running 12.X.
11131   </para>
11132  </sect2>
11133
11134  <sect2>
11135   <title>Changes</title>
11136
11137   <itemizedlist>
11138
11139    <listitem>
11140<!--
11141Author: Andres Freund <andres@anarazel.de>
11142Branch: master [93765bd95] 2019-10-09 22:00:50 -0700
11143Branch: REL_12_STABLE [f224c7c11] 2019-10-09 22:13:48 -0700
11144Branch: master [ae5cae54c] 2019-10-16 02:37:34 -0700
11145Branch: REL_12_STABLE [3b25de620] 2019-10-16 02:38:13 -0700
11146-->
11147     <para>
11148      Fix crash when <command>ALTER TABLE</command> adds a column without
11149      a default value along with making other changes that require a table
11150      rewrite (Andres Freund)
11151     </para>
11152    </listitem>
11153
11154    <listitem>
11155<!--
11156Author: Michael Paquier <michael@paquier.xyz>
11157Branch: master [5d3500da7] 2019-10-23 15:04:48 +0900
11158Branch: REL_12_STABLE [7668d4847] 2019-10-23 15:05:09 +0900
11159Author: Michael Paquier <michael@paquier.xyz>
11160Branch: master [8270a0d9a] 2019-10-25 10:20:08 +0900
11161Branch: REL_12_STABLE [7f84b0ef0] 2019-10-25 10:20:16 +0900
11162-->
11163     <para>
11164      Fix lock handling in <command>REINDEX CONCURRENTLY</command>
11165      (Michael Paquier)
11166     </para>
11167
11168     <para>
11169      <command>REINDEX CONCURRENTLY</command> neglected to take a
11170      session-level lock on the new index version, potentially allowing
11171      other sessions to manipulate it too soon.
11172      Also, a query-cancel or session-termination interrupt arriving at the
11173      wrong time could result in failure to release the session-level
11174      locks that <command>REINDEX CONCURRENTLY</command> does hold.
11175     </para>
11176    </listitem>
11177
11178    <listitem>
11179<!--
11180Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
11181Branch: master [0d21f919e] 2019-10-16 14:51:34 +0200
11182Branch: REL_12_STABLE [1cd5bc3cc] 2019-10-16 14:51:23 +0200
11183-->
11184     <para>
11185      Avoid crash due to race condition when reporting the progress of
11186      a <command>CREATE INDEX CONCURRENTLY</command> or <command>REINDEX
11187      CONCURRENTLY</command> command (&Aacute;lvaro Herrera)
11188     </para>
11189    </listitem>
11190
11191    <listitem>
11192<!--
11193Author: Michael Paquier <michael@paquier.xyz>
11194Branch: master [68ac9cf24] 2019-10-28 11:57:31 +0900
11195Branch: REL_12_STABLE [5e5f32284] 2019-10-28 11:58:29 +0900
11196-->
11197     <para>
11198      Avoid creating duplicate dependency entries during <command>REINDEX
11199      CONCURRENTLY</command> (Michael Paquier)
11200     </para>
11201
11202     <para>
11203      This bug resulted in bloat in <structname>pg_depend</structname>,
11204      but no worse consequences than that.
11205     </para>
11206    </listitem>
11207
11208    <listitem>
11209<!--
11210Author: Thomas Munro <tmunro@postgresql.org>
11211Branch: master [6bda2af03] 2019-10-17 09:59:21 +1300
11212Branch: REL_12_STABLE [486a8f152] 2019-10-17 11:08:49 +1300
11213Branch: REL_11_STABLE [6f1e336de] 2019-10-17 11:01:35 +1300
11214Branch: REL_10_STABLE [583d86f92] 2019-10-17 10:55:26 +1300
11215Branch: REL9_6_STABLE [0640f032a] 2019-10-17 11:57:33 +1300
11216Branch: REL9_5_STABLE [c1443eebe] 2019-10-17 10:28:28 +1300
11217Branch: REL9_4_STABLE [080cf32d2] 2019-10-17 10:14:51 +1300
11218-->
11219     <para>
11220      Prevent <command>VACUUM</command> from trying to freeze
11221      an old multixact ID involving a still-running transaction
11222      (Nathan Bossart, Jeremy Schneider)
11223     </para>
11224
11225     <para>
11226      This case would lead to <command>VACUUM</command> failing until the
11227      old transaction terminates.
11228     </para>
11229    </listitem>
11230
11231    <listitem>
11232<!--
11233Author: Andres Freund <andres@anarazel.de>
11234Branch: master [cef82eda1] 2019-10-15 10:40:13 -0700
11235Branch: REL_12_STABLE [6d3fe6b6b] 2019-10-15 10:40:51 -0700
11236-->
11237     <para>
11238      Fix <quote>wrong type of slot</quote> error when trying
11239      to <command>CLUSTER</command> on an expression index (Andres Freund)
11240     </para>
11241    </listitem>
11242
11243    <listitem>
11244<!--
11245Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
11246Branch: master [b4bcc6bfd] 2019-11-07 13:59:24 -0300
11247Branch: REL_12_STABLE [b75ccddcd] 2019-11-07 13:59:24 -0300
11248Branch: REL_11_STABLE [e4baecf1e] 2019-11-07 14:26:10 -0300
11249-->
11250     <para>
11251      <command>SET CONSTRAINTS ... DEFERRED</command> failed on
11252      partitioned tables, incorrectly complaining about lack of triggers
11253      (&Aacute;lvaro Herrera)
11254     </para>
11255    </listitem>
11256
11257    <listitem>
11258<!--
11259Author: Michael Paquier <michael@paquier.xyz>
11260Branch: master [dc816e581] 2019-11-02 14:16:04 +0900
11261Branch: REL_12_STABLE [7963c4c4b] 2019-11-02 14:16:11 +0900
11262Branch: REL_11_STABLE [f10815c5b] 2019-11-02 14:17:12 +0900
11263-->
11264     <para>
11265      Fix failure when creating indexes for a partition, if the parent
11266      partitioned table contains any dropped columns (Michael Paquier)
11267     </para>
11268    </listitem>
11269
11270    <listitem>
11271<!--
11272Author: Michael Paquier <michael@paquier.xyz>
11273Branch: master [1df5875d3] 2019-10-13 17:51:55 +0900
11274Branch: REL_12_STABLE [3a58c5f14] 2019-10-13 17:53:08 +0900
11275Branch: master [14ac4237c] 2019-10-14 08:58:38 +0900
11276Branch: REL_12_STABLE [9fd9af97f] 2019-10-14 08:58:47 +0900
11277-->
11278     <para>
11279      Fix dropping of indexed columns in partitioned tables
11280      (Amit Langote, Michael Paquier)
11281     </para>
11282
11283     <para>
11284      Previously this might fail with an error message complaining about
11285      the dependencies of the indexes.  It should automatically drop the
11286      indexes, instead.
11287     </para>
11288    </listitem>
11289
11290    <listitem>
11291<!--
11292Author: Michael Paquier <michael@paquier.xyz>
11293Branch: master [d80be6f2f] 2019-10-29 11:08:09 +0900
11294Branch: REL_12_STABLE [eae1ba65f] 2019-10-29 11:08:16 +0900
11295-->
11296     <para>
11297      Ensure that a partition index can be dropped after a failure to
11298      reindex it concurrently (Michael Paquier)
11299     </para>
11300
11301     <para>
11302      The
11303      index's <structname>pg_class</structname>.<structfield>relispartition</structfield>
11304      flag was left in the wrong state in such a case,
11305      causing <command>DROP INDEX</command> to fail.
11306     </para>
11307    </listitem>
11308
11309    <listitem>
11310<!--
11311Author: Tom Lane <tgl@sss.pgh.pa.us>
11312Branch: master [529ebb20a] 2019-11-05 11:42:24 -0500
11313Branch: REL_12_STABLE [a9db37a18] 2019-11-05 11:42:25 -0500
11314-->
11315     <para>
11316      Fix handling of equivalence class members for partition-wise joins
11317      (Amit Langote)
11318     </para>
11319
11320     <para>
11321      This oversight could lead either to failure to use a feasible
11322      partition-wise join plan, or to a <quote>could not find pathkey item
11323      to sort</quote> planner failure.
11324     </para>
11325    </listitem>
11326
11327    <listitem>
11328<!--
11329Author: Andrew Gierth <rhodiumtoad@postgresql.org>
11330Branch: master [b7a1c5539] 2019-10-03 10:54:52 +0100
11331Branch: REL_12_STABLE [0b11dc019] 2019-10-03 11:12:39 +0100
11332Branch: REL_11_STABLE [0a445f279] 2019-10-03 11:14:30 +0100
11333Branch: REL_10_STABLE [ede0ab6cc] 2019-10-03 11:15:38 +0100
11334Branch: REL9_6_STABLE [6db0d7f35] 2019-10-03 11:17:38 +0100
11335Branch: REL9_5_STABLE [d2427f11b] 2019-10-03 11:18:15 +0100
11336Branch: REL9_4_STABLE [3473f81dd] 2019-10-03 11:18:20 +0100
11337-->
11338     <para>
11339      Ensure that offset expressions in <literal>WINDOW</literal> clauses
11340      are processed when a query's expressions are manipulated (Andrew Gierth)
11341     </para>
11342
11343     <para>
11344      This oversight could result in assorted failures when the offsets
11345      are nontrivial expressions.  One example is that a function
11346      parameter reference in such an expression would fail if the function
11347      was inlined.
11348     </para>
11349    </listitem>
11350
11351    <listitem>
11352<!--
11353Author: Tom Lane <tgl@sss.pgh.pa.us>
11354Branch: master [3887e9455] 2019-10-07 12:39:09 -0400
11355Branch: REL_12_STABLE [7e8d0eb63] 2019-10-07 12:39:09 -0400
11356Branch: REL_11_STABLE [021065aac] 2019-10-07 12:39:09 -0400
11357Branch: REL_10_STABLE [1b5c2ddcd] 2019-10-07 12:39:09 -0400
11358Branch: REL9_6_STABLE [c69e982a6] 2019-10-07 12:39:09 -0400
11359Branch: REL9_5_STABLE [8c2910ce5] 2019-10-07 12:39:10 -0400
11360-->
11361     <para>
11362      Avoid postmaster failure if a parallel query requests a background
11363      worker when no postmaster child process array slots remain free
11364      (Tom Lane)
11365     </para>
11366    </listitem>
11367
11368    <listitem>
11369<!--
11370Author: Andres Freund <andres@anarazel.de>
11371Branch: master [d986d4e87] 2019-10-04 13:50:49 -0700
11372Branch: REL_12_STABLE [60e97d63e] 2019-10-04 13:57:37 -0700
11373-->
11374     <para>
11375      Fix crash triggered by an EvalPlanQual recheck on a table with
11376      a <literal>BEFORE UPDATE</literal> trigger (Andres Freund)
11377     </para>
11378    </listitem>
11379
11380    <listitem>
11381<!--
11382Author: Tom Lane <tgl@sss.pgh.pa.us>
11383Branch: master [a30531c5c] 2019-11-05 13:40:37 -0500
11384Branch: REL_12_STABLE [791864193] 2019-11-05 13:40:37 -0500
11385Branch: REL_11_STABLE [2bfe015b5] 2019-11-05 13:40:37 -0500
11386-->
11387     <para>
11388      Fix <quote>unexpected relkind</quote> error when a query tries to
11389      access a TOAST table (John Hsu, Michael Paquier, Tom Lane)
11390     </para>
11391
11392     <para>
11393      The error should say that permission is denied, but this case got
11394      broken during code refactoring.
11395     </para>
11396    </listitem>
11397
11398    <listitem>
11399<!--
11400Author: Thomas Munro <tmunro@postgresql.org>
11401Branch: master [3c8c55dd5] 2019-10-17 13:47:01 +1300
11402Branch: REL_12_STABLE [3af7c64fe] 2019-10-17 14:00:15 +1300
11403Branch: REL_11_STABLE [6737111a7] 2019-10-17 13:58:58 +1300
11404Branch: REL_10_STABLE [89a3cdb32] 2019-10-17 13:57:23 +1300
11405Branch: REL9_6_STABLE [fd5ffa425] 2019-10-17 13:52:59 +1300
11406Branch: REL9_5_STABLE [cdbb39213] 2019-10-17 13:50:59 +1300
11407-->
11408     <para>
11409      Provide a relevant error context line when an error occurs while
11410      setting GUC parameters during parallel worker startup (Thomas Munro)
11411     </para>
11412    </listitem>
11413
11414    <listitem>
11415<!--
11416Author: Andres Freund <andres@anarazel.de>
11417Branch: master [a586cc4b6] 2019-10-04 13:34:28 -0700
11418Branch: REL_12_STABLE [c025165da] 2019-10-04 13:34:39 -0700
11419Author: Michael Paquier <michael@paquier.xyz>
11420Branch: master [b8e19b932] 2019-10-09 13:30:43 +0900
11421Branch: REL_12_STABLE [07c314968] 2019-10-09 13:31:13 +0900
11422Branch: REL_11_STABLE [e34358c43] 2019-10-09 13:31:17 +0900
11423Branch: REL_10_STABLE [fbfc835b4] 2019-10-09 13:31:22 +0900
11424Branch: REL9_6_STABLE [4e7a8874a] 2019-10-09 13:31:27 +0900
11425Branch: REL9_5_STABLE [c50f95272] 2019-10-09 13:31:33 +0900
11426Branch: REL9_4_STABLE [59800f7ce] 2019-10-09 13:31:38 +0900
11427-->
11428     <para>
11429      Ensure that <function>fsync()</function> is applied only to files
11430      that are opened read/write (Andres Freund, Michael Paquier)
11431     </para>
11432
11433     <para>
11434      Some code paths tried to do this after opening a file read-only,
11435      but on some platforms that causes <quote>bad file descriptor</quote>
11436      or similar errors.
11437     </para>
11438    </listitem>
11439
11440    <listitem>
11441<!--
11442Author: Tom Lane <tgl@sss.pgh.pa.us>
11443Branch: master [8e10405c7] 2019-10-03 17:34:25 -0400
11444Branch: REL_12_STABLE [8381242df] 2019-10-03 17:34:25 -0400
11445Branch: REL_11_STABLE [e5ff97571] 2019-10-03 17:34:25 -0400
11446Branch: REL_10_STABLE [226551e7c] 2019-10-03 17:34:26 -0400
11447Branch: REL9_6_STABLE [677989cc0] 2019-10-03 17:34:26 -0400
11448Branch: REL9_5_STABLE [54d641da0] 2019-10-03 17:34:26 -0400
11449Branch: REL9_4_STABLE [6899be289] 2019-10-03 17:34:26 -0400
11450-->
11451     <para>
11452      Allow encoding conversion to succeed on longer strings than before
11453      (&Aacute;lvaro Herrera, Tom Lane)
11454     </para>
11455
11456     <para>
11457      Previously, there was a hard limit of 0.25GB on the input string,
11458      but now it will work as long as the converted output is not over 1GB.
11459     </para>
11460    </listitem>
11461
11462    <listitem>
11463<!--
11464Author: Andrew Gierth <rhodiumtoad@postgresql.org>
11465Branch: master [a9056cc63] 2019-11-06 04:13:30 +0000
11466Branch: REL_12_STABLE [f57c63107] 2019-11-06 04:33:35 +0000
11467Branch: REL_11_STABLE [be99485b9] 2019-11-06 04:33:42 +0000
11468Branch: REL_10_STABLE [6da5310e8] 2019-11-06 04:33:49 +0000
11469Branch: REL9_6_STABLE [747aac88f] 2019-11-06 04:33:55 +0000
11470-->
11471     <para>
11472      Avoid creating unnecessarily-bulky tuple stores for window functions
11473      (Andrew Gierth)
11474     </para>
11475
11476     <para>
11477      In some cases the tuple storage would include all columns of the
11478      source table(s), not just the ones that are needed by the query.
11479     </para>
11480    </listitem>
11481
11482    <listitem>
11483<!--
11484Author: Tom Lane <tgl@sss.pgh.pa.us>
11485Branch: master [c477f3e44] 2019-10-03 13:56:26 -0400
11486Branch: REL_12_STABLE [9a407209a] 2019-10-03 13:56:26 -0400
11487Branch: REL_11_STABLE [82d0a46ea] 2019-10-03 13:56:26 -0400
11488Branch: REL_10_STABLE [9ad1b572d] 2019-10-03 13:56:26 -0400
11489Branch: REL9_6_STABLE [e5e4f12a5] 2019-10-03 13:56:26 -0400
11490Branch: REL9_5_STABLE [1534531fe] 2019-10-03 13:56:26 -0400
11491Branch: REL9_4_STABLE [4829576ba] 2019-10-03 13:56:27 -0400
11492-->
11493     <para>
11494      Allow <function>repalloc()</function> to give back space when a
11495      large chunk is reduced in size (Tom Lane)
11496     </para>
11497    </listitem>
11498
11499    <listitem>
11500<!--
11501Author: Michael Paquier <michael@paquier.xyz>
11502Branch: master [df86e52ca] 2019-10-02 15:53:07 +0900
11503Branch: REL_12_STABLE [2a724cdbf] 2019-10-02 15:53:51 +0900
11504Branch: REL_11_STABLE [b978de0eb] 2019-10-02 15:53:56 +0900
11505Branch: REL_10_STABLE [7ca35472c] 2019-10-02 15:54:01 +0900
11506Branch: REL9_6_STABLE [ac1efdd08] 2019-10-02 15:54:11 +0900
11507Branch: REL9_5_STABLE [ae205dfe6] 2019-10-02 15:54:16 +0900
11508-->
11509     <para>
11510      Ensure that temporary WAL and history files are removed at the end
11511      of archive recovery (Sawada Masahiko)
11512     </para>
11513    </listitem>
11514
11515    <listitem>
11516<!--
11517Author: Fujii Masao <fujii@postgresql.org>
11518Branch: master [ec1259e88] 2019-10-18 22:32:18 +0900
11519Branch: REL_12_STABLE [9dfbf9a04] 2019-10-18 22:34:05 +0900
11520Branch: REL_11_STABLE [f7b70700b] 2019-10-18 22:35:07 +0900
11521Branch: REL_10_STABLE [c455ee88c] 2019-10-18 22:35:19 +0900
11522Branch: REL9_6_STABLE [579996bc2] 2019-10-18 22:35:30 +0900
11523Branch: REL9_5_STABLE [1b2ba8874] 2019-10-18 22:35:41 +0900
11524Branch: REL9_4_STABLE [14c59185b] 2019-10-18 22:35:52 +0900
11525-->
11526     <para>
11527      Avoid failure in archive recovery
11528      if <varname>recovery_min_apply_delay</varname> is enabled
11529      (Fujii Masao)
11530     </para>
11531
11532     <para>
11533      <varname>recovery_min_apply_delay</varname> is not typically used in
11534      this configuration, but it should work.
11535     </para>
11536    </listitem>
11537
11538    <listitem>
11539<!--
11540Author: Fujii Masao <fujii@postgresql.org>
11541Branch: master [20961ceaf] 2019-10-11 15:47:59 +0900
11542Branch: REL_12_STABLE [fcf7f8d92] 2019-10-11 15:49:32 +0900
11543Author: Fujii Masao <fujii@postgresql.org>
11544Branch: master [9b95a36be] 2019-10-18 22:24:18 +0900
11545Branch: REL_12_STABLE [03666dfa1] 2019-10-18 22:25:42 +0900
11546-->
11547     <para>
11548      Ignore <varname>restore_command</varname>,
11549      <varname>recovery_end_command</varname>,
11550      and <varname>recovery_min_apply_delay</varname> settings during
11551      crash recovery (Fujii Masao)
11552     </para>
11553
11554     <para>
11555      Now that these settings can be specified
11556      in <filename>postgresql.conf</filename>, they could be turned on
11557      during crash recovery, but honoring them then is undesirable.
11558      Ignore these settings until crash recovery is complete.
11559     </para>
11560    </listitem>
11561
11562    <listitem>
11563<!--
11564Author: Peter Eisentraut <peter@eisentraut.org>
11565Branch: master [1c60e40ad] 2019-11-09 08:35:44 +0100
11566Branch: REL_12_STABLE [d891d2c89] 2019-11-09 08:35:51 +0100
11567Branch: REL_11_STABLE [7961da188] 2019-11-09 08:36:11 +0100
11568Branch: REL_10_STABLE [2e00d5976] 2019-11-09 09:15:35 +0100
11569Branch: master [ef8fcbff5] 2019-11-09 13:19:27 +0100
11570Branch: REL_12_STABLE [f96756304] 2019-11-09 16:00:34 +0100
11571Branch: REL_11_STABLE [aa9884578] 2019-11-09 16:01:23 +0100
11572Branch: REL_10_STABLE [806f9dc02] 2019-11-09 16:03:00 +0100
11573-->
11574     <para>
11575      Fix logical replication failure when publisher and subscriber have
11576      different ideas about a table's replica identity columns
11577      (Jehan-Guillaume de Rorthais, Peter Eisentraut)
11578     </para>
11579
11580     <para>
11581      Declaring a column as part of the replica identity on the
11582      subscriber, when it does not exist at all on the publisher, led
11583      to <quote>negative bitmapset member not allowed</quote> errors.
11584     </para>
11585    </listitem>
11586
11587    <listitem>
11588<!--
11589Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
11590Branch: master [38ddeab13] 2019-10-17 15:06:06 +0200
11591Branch: REL_12_STABLE [1391c13ce] 2019-10-17 15:06:06 +0200
11592Branch: REL_11_STABLE [45e4067c0] 2019-10-17 15:06:05 +0200
11593Branch: REL_10_STABLE [0d9fcbada] 2019-10-17 15:06:05 +0200
11594Branch: REL9_6_STABLE [5f038991e] 2019-10-17 15:06:05 +0200
11595Branch: REL9_5_STABLE [b2ab06e02] 2019-10-17 15:06:05 +0200
11596Branch: REL9_4_STABLE [abd5071d2] 2019-10-17 15:06:05 +0200
11597-->
11598     <para>
11599      Avoid unwanted delay during shutdown of a logical replication
11600      walsender (Craig Ringer, &Aacute;lvaro Herrera)
11601     </para>
11602    </listitem>
11603
11604    <listitem>
11605<!--
11606Author: Michael Paquier <michael@paquier.xyz>
11607Branch: master [3f60f690f] 2019-10-18 14:26:29 +0900
11608Branch: REL_12_STABLE [04510dbe3] 2019-10-18 14:26:53 +0900
11609Branch: REL_11_STABLE [feed5ee47] 2019-10-18 14:27:00 +0900
11610Branch: REL_10_STABLE [47698b4b6] 2019-10-18 14:27:04 +0900
11611-->
11612     <para>
11613      Fix timeout handling in logical replication walreceiver processes
11614      (Julien Rouhaud)
11615     </para>
11616
11617     <para>
11618      Erroneous logic prevented <varname>wal_receiver_timeout</varname>
11619      from working in logical replication deployments.
11620     </para>
11621    </listitem>
11622
11623    <listitem>
11624<!--
11625Author: Michael Paquier <michael@paquier.xyz>
11626Branch: master [5f6b1eb0c] 2019-11-06 16:12:21 +0900
11627Branch: REL_12_STABLE [9ae4bdadf] 2019-11-06 16:12:28 +0900
11628Branch: REL_11_STABLE [cb6d7f985] 2019-11-06 16:12:34 +0900
11629Branch: REL_10_STABLE [f7b0d0704] 2019-11-06 16:12:40 +0900
11630Branch: REL9_6_STABLE [16b43e091] 2019-11-06 16:12:47 +0900
11631Branch: REL9_5_STABLE [404d25f3c] 2019-11-06 16:12:51 +0900
11632Branch: REL9_4_STABLE [15d90a02a] 2019-11-06 16:12:56 +0900
11633-->
11634     <para>
11635      Correctly time-stamp replication messages for logical
11636      decoding (Jeff Janes)
11637     </para>
11638
11639     <para>
11640      This oversight resulted, for example,
11641      in <structname>pg_stat_subscription</structname>.<structfield>last_msg_send_time</structfield>
11642      usually reading as NULL.
11643     </para>
11644    </listitem>
11645
11646    <listitem>
11647<!--
11648Author: Michael Paquier <michael@paquier.xyz>
11649Branch: master [20345197f] 2019-11-01 22:38:32 +0900
11650Branch: REL_12_STABLE [7b8c2de64] 2019-11-01 22:38:45 +0900
11651Branch: REL_11_STABLE [61f238392] 2019-11-01 22:38:51 +0900
11652Branch: REL_10_STABLE [b99bfc3c9] 2019-11-01 22:38:55 +0900
11653Branch: REL9_6_STABLE [52684bc7d] 2019-11-01 22:39:01 +0900
11654Branch: REL9_5_STABLE [0927d0c25] 2019-11-01 22:39:05 +0900
11655Branch: REL9_4_STABLE [f88f7206e] 2019-11-01 22:39:09 +0900
11656-->
11657     <para>
11658      Fix race condition during backend exit, when the backend process has
11659      previously waited for synchronous replication to occur (Dongming Liu)
11660     </para>
11661    </listitem>
11662
11663    <listitem>
11664<!--
11665Author: Tom Lane <tgl@sss.pgh.pa.us>
11666Branch: master [3affe76ef] 2019-11-05 14:27:37 -0500
11667Branch: REL_12_STABLE [f9bd3b6d9] 2019-11-05 14:27:37 -0500
11668Branch: REL_11_STABLE [97ddc47b9] 2019-11-05 14:27:37 -0500
11669Branch: REL_10_STABLE [0238a5028] 2019-11-05 14:27:37 -0500
11670Branch: REL9_6_STABLE [383602f9a] 2019-11-05 14:27:37 -0500
11671Branch: REL9_5_STABLE [970372037] 2019-11-05 14:27:37 -0500
11672Branch: REL9_4_STABLE [762b25653] 2019-11-05 14:27:38 -0500
11673-->
11674     <para>
11675      Avoid logging complaints about abandoned connections when using PAM
11676      authentication (Tom Lane)
11677     </para>
11678
11679     <para>
11680      libpq-based clients will typically make two connection attempts when
11681      a password is required, since they don't prompt their user for a
11682      password until their first connection attempt fails.  Therefore the
11683      server is coded not to generate useless log spam when a client
11684      closes the connection upon being asked for a password.  However,
11685      the PAM authentication code hadn't gotten that memo, and would
11686      generate several messages about a phantom authentication failure.
11687     </para>
11688    </listitem>
11689
11690    <listitem>
11691<!--
11692Author: Tom Lane <tgl@sss.pgh.pa.us>
11693Branch: master [5ac0d9360] 2019-09-22 17:45:59 -0400
11694Branch: REL_12_STABLE Release: REL_12_0 [860216efa] 2019-09-22 17:46:00 -0400
11695Branch: REL_11_STABLE [7e7abed05] 2019-09-22 17:46:00 -0400
11696Branch: REL_10_STABLE [096d34c3b] 2019-09-22 17:46:00 -0400
11697Branch: REL9_6_STABLE [6ddd164aa] 2019-09-22 17:46:00 -0400
11698Branch: REL9_5_STABLE [35eb13270] 2019-09-22 17:46:00 -0400
11699Branch: REL9_4_STABLE [8a17afe84] 2019-09-22 17:46:00 -0400
11700Branch: master [61aa9f544] 2019-10-04 10:34:40 -0400
11701Branch: REL_12_STABLE [6c3b6406d] 2019-10-04 10:34:21 -0400
11702Branch: REL_11_STABLE [b8ddf0bdf] 2019-10-04 10:34:21 -0400
11703Branch: REL_10_STABLE [9faa9794f] 2019-10-04 10:34:21 -0400
11704Branch: REL9_6_STABLE [30e5b3bbe] 2019-10-04 10:34:21 -0400
11705Branch: REL9_5_STABLE [8b77f783b] 2019-10-04 10:34:21 -0400
11706Branch: REL9_4_STABLE [b6a6c129f] 2019-10-04 10:34:21 -0400
11707-->
11708     <para>
11709      Fix misbehavior of <function>bitshiftright()</function> (Tom Lane)
11710     </para>
11711
11712     <para>
11713      The bitstring right shift operator failed to zero out padding space
11714      that exists in the last byte of the result when the bitstring length
11715      is not a multiple of 8.  While invisible to most operations, any
11716      nonzero bits there would result in unexpected comparison behavior,
11717      since bitstring comparisons don't bother to ignore the extra bits,
11718      expecting them to always be zero.
11719     </para>
11720
11721     <para>
11722      If you have inconsistent data as a result of saving the output
11723      of <function>bitshiftright()</function> in a table, it's possible to
11724      fix it with something like
11725<programlisting>
11726UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);
11727</programlisting>
11728     </para>
11729    </listitem>
11730
11731    <listitem>
11732<!--
11733Author: Tom Lane <tgl@sss.pgh.pa.us>
11734Branch: master [bd1ef5799] 2019-10-28 12:21:13 -0400
11735Branch: REL_12_STABLE [43e43771b] 2019-10-28 12:21:13 -0400
11736-->
11737     <para>
11738      Fix result of text <function>position()</function> function (also
11739      known as <function>strpos()</function>) for an empty search string
11740      (Tom Lane)
11741     </para>
11742
11743     <para>
11744      Historically, and per the SQL standard, the result should be one in
11745      such cases, but 12.0 returned zero.
11746     </para>
11747    </listitem>
11748
11749    <listitem>
11750<!--
11751Author: Tom Lane <tgl@sss.pgh.pa.us>
11752Branch: master [a7145f6bc] 2019-11-07 11:22:58 -0500
11753Branch: REL_12_STABLE [f6e72dc9c] 2019-11-07 11:22:59 -0500
11754Branch: REL_11_STABLE [b49b7f944] 2019-11-07 11:23:00 -0500
11755Branch: REL_10_STABLE [5f794f757] 2019-11-07 11:23:02 -0500
11756Branch: REL9_6_STABLE [15783d057] 2019-11-07 11:23:03 -0500
11757Branch: REL9_5_STABLE [84780d468] 2019-11-07 11:23:04 -0500
11758Branch: REL9_4_STABLE [8d380864a] 2019-11-07 11:23:06 -0500
11759Branch: REL9_6_STABLE [a55018760] 2019-11-09 15:50:16 -0500
11760Branch: REL9_5_STABLE [30f6998ff] 2019-11-09 15:50:16 -0500
11761Branch: REL9_4_STABLE [18622caa3] 2019-11-09 15:50:16 -0500
11762-->
11763     <para>
11764      Fix detection of edge-case integer overflow in interval
11765      multiplication (Yuya Watari)
11766     </para>
11767    </listitem>
11768
11769    <listitem>
11770<!--
11771Author: Tom Lane <tgl@sss.pgh.pa.us>
11772Branch: master [8af1624e3] 2019-11-02 16:45:32 -0400
11773Branch: REL_12_STABLE [43753c2cf] 2019-11-02 16:45:32 -0400
11774Branch: REL_11_STABLE [65cdf8bc1] 2019-11-02 16:45:32 -0400
11775Branch: REL_10_STABLE [680aabd2f] 2019-11-02 16:45:32 -0400
11776Branch: REL9_6_STABLE [51b9ac558] 2019-11-02 16:45:32 -0400
11777Branch: master [db27b60f0] 2019-11-03 16:10:23 -0500
11778Branch: REL_12_STABLE [6dd92138d] 2019-11-03 16:10:38 -0500
11779Branch: REL_11_STABLE [88d03d73c] 2019-11-03 16:10:45 -0500
11780Branch: REL_10_STABLE [4077e9ae1] 2019-11-03 16:10:56 -0500
11781Branch: REL9_6_STABLE [d43bd9dce] 2019-11-03 16:11:05 -0500
11782-->
11783     <para>
11784      Avoid crashes if <literal>ispell</literal> text search dictionaries
11785      contain wrong affix data (Arthur Zakirov)
11786     </para>
11787    </listitem>
11788
11789    <listitem>
11790<!--
11791Author: Amit Kapila <akapila@postgresql.org>
11792Branch: master [70a6c37d5] 2019-10-21 08:57:32 +0530
11793Branch: REL_12_STABLE [62f4dd379] 2019-10-21 09:04:35 +0530
11794-->
11795     <para>
11796      Avoid memory leak while vacuuming a GiST index (Dilip Kumar)
11797     </para>
11798    </listitem>
11799
11800    <listitem>
11801<!--
11802Author: Tom Lane <tgl@sss.pgh.pa.us>
11803Branch: master [db477b691] 2019-10-21 14:18:01 -0400
11804Branch: REL_12_STABLE [4f2ad5226] 2019-10-21 14:18:16 -0400
11805Branch: REL_11_STABLE [a05a04d0e] 2019-10-21 14:18:31 -0400
11806Branch: REL_10_STABLE [aebe3ef0e] 2019-10-21 14:18:38 -0400
11807Branch: REL9_6_STABLE [185253ab8] 2019-10-21 14:18:47 -0400
11808Branch: REL9_5_STABLE [e3267407e] 2019-10-21 14:18:55 -0400
11809Branch: REL9_4_STABLE [fedcab352] 2019-10-21 14:19:03 -0400
11810-->
11811     <para>
11812      On Windows, recognize additional spellings of the <quote>Norwegian
11813      (Bokm&aring;l)</quote> locale name (Tom Lane)
11814     </para>
11815    </listitem>
11816
11817    <listitem>
11818<!--
11819Author: Michael Paquier <michael@paquier.xyz>
11820Branch: master [4f4061b2d] 2019-10-21 11:17:13 +0900
11821Branch: REL_12_STABLE [2b0f959b5] 2019-10-21 11:17:43 +0900
11822Branch: master [57379cd5a] 2019-10-23 11:34:18 +0900
11823Branch: REL_12_STABLE [a6a95d4f3] 2019-10-23 11:34:42 +0900
11824-->
11825     <para>
11826      Fix <application>libpq</application> to allow trailing whitespace in
11827      the string values of integer parameters (Michael Paquier)
11828     </para>
11829
11830     <para>
11831      Version 12 tightened <application>libpq</application>'s validation
11832      of integer parameters, but disallowing trailing whitespace seems
11833      undesirable.
11834     </para>
11835    </listitem>
11836
11837    <listitem>
11838<!--
11839Author: Michael Paquier <michael@paquier.xyz>
11840Branch: master [ba19a6b73] 2019-10-21 11:39:15 +0900
11841Branch: REL_12_STABLE [ed5109a61] 2019-10-21 11:39:28 +0900
11842-->
11843     <para>
11844      In <application>libpq</application>, correctly
11845      report <literal>CONNECTION_BAD</literal> connection status after a
11846      failure caused by a syntactically
11847      invalid <option>connect_timeout</option> parameter value (Lars Kanis)
11848     </para>
11849    </listitem>
11850
11851    <listitem>
11852<!--
11853Author: Tom Lane <tgl@sss.pgh.pa.us>
11854Branch: master [c8cb98ec4] 2019-11-07 14:21:52 -0500
11855Branch: REL_12_STABLE [101654987] 2019-11-07 14:21:52 -0500
11856Branch: REL_11_STABLE [89f56fc22] 2019-11-07 14:21:52 -0500
11857Branch: REL_10_STABLE [831ca9513] 2019-11-07 14:21:52 -0500
11858Branch: REL9_6_STABLE [baa483984] 2019-11-07 14:21:52 -0500
11859Branch: REL9_5_STABLE [b705d6391] 2019-11-07 14:21:52 -0500
11860Branch: REL9_4_STABLE [b20233aac] 2019-11-07 14:21:52 -0500
11861-->
11862     <para>
11863      Avoid compile failure if an ECPG client
11864      includes <filename>ecpglib.h</filename> while
11865      having <literal>ENABLE_NLS</literal> defined (Tom Lane)
11866     </para>
11867
11868     <para>
11869      This risk was created by a misplaced
11870      declaration: <function>ecpg_gettext()</function> should not be
11871      visible to client code.
11872     </para>
11873    </listitem>
11874
11875    <listitem>
11876<!--
11877Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
11878Branch: master [1752e3516] 2019-10-17 09:58:01 +0200
11879Branch: REL_12_STABLE [b304b2b65] 2019-10-17 09:58:01 +0200
11880-->
11881     <para>
11882      Fix scheduling of parallel restore of a foreign key constraint on a
11883      partitioned table (&Aacute;lvaro Herrera)
11884     </para>
11885
11886     <para>
11887      <application>pg_dump</application> failed to emit full dependency
11888      information for partitioned tables' foreign keys.  This could allow
11889      parallel <application>pg_restore</application> to try to recreate a
11890      foreign key constraint too soon.
11891     </para>
11892    </listitem>
11893
11894    <listitem>
11895<!--
11896Author: Tom Lane <tgl@sss.pgh.pa.us>
11897Branch: master [5102f3944] 2019-11-04 16:25:05 -0500
11898Branch: REL_12_STABLE [ca27a84c9] 2019-11-04 16:25:05 -0500
11899Branch: REL_11_STABLE [078f5bc8e] 2019-11-04 16:25:05 -0500
11900Branch: REL_10_STABLE [ee8b95f26] 2019-11-04 16:25:05 -0500
11901Branch: REL9_6_STABLE [648f17879] 2019-11-04 16:25:05 -0500
11902Branch: REL9_5_STABLE [74d32ee70] 2019-11-04 16:25:05 -0500
11903Branch: REL9_4_STABLE [da5cd7a68] 2019-11-04 16:25:05 -0500
11904-->
11905     <para>
11906      In <application>pg_dump</application>, ensure stable output order
11907      for similarly-named triggers and row-level-security policy objects
11908      (Benjie Gillam)
11909     </para>
11910
11911     <para>
11912      Previously, if two triggers on different tables had the same names,
11913      they would be sorted in OID-based order, which is less desirable
11914      than sorting them by table name.  Likewise for RLS policies.
11915     </para>
11916    </listitem>
11917
11918    <listitem>
11919<!--
11920Author: Tomas Vondra <tomas.vondra@postgresql.org>
11921Branch: master [0ccfc2822] 2019-10-14 22:31:56 +0200
11922Branch: REL_12_STABLE [eaf900e84] 2019-10-14 23:40:58 +0200
11923Branch: master [3a0e85739] 2019-10-15 00:25:04 +0200
11924Branch: REL_12_STABLE [702fd3b71] 2019-10-15 00:35:51 +0200
11925-->
11926     <para>
11927      In <application>pg_upgrade</application>, reject tables with
11928      columns of type <type>sql_identifier</type>, as that has changed
11929      representation in version 12 (Tomas Vondra)
11930     </para>
11931    </listitem>
11932
11933    <listitem>
11934<!--
11935Author: Tomas Vondra <tomas.vondra@postgresql.org>
11936Branch: master [8d48e6a72] 2019-10-16 13:23:14 +0200
11937Branch: REL_12_STABLE [ebb4caa91] 2019-10-16 13:25:25 +0200
11938Branch: REL_11_STABLE [a970b6cde] 2019-10-16 13:26:22 +0200
11939Branch: REL_10_STABLE [2218fdca4] 2019-10-16 13:26:53 +0200
11940Branch: REL9_6_STABLE [0a643de08] 2019-10-16 13:27:24 +0200
11941Branch: REL9_5_STABLE [f57b01dd7] 2019-10-16 13:27:51 +0200
11942Branch: REL9_4_STABLE [235a52ca0] 2019-10-16 13:31:00 +0200
11943Branch: REL9_6_STABLE [e09ab32a2] 2019-10-16 16:20:07 +0200
11944Branch: REL9_5_STABLE [984aa0ede] 2019-10-16 16:23:09 +0200
11945Branch: REL9_4_STABLE [bc3a94dc0] 2019-10-16 16:28:48 +0200
11946Author: Tomas Vondra <tomas.vondra@postgresql.org>
11947Branch: master [a524f50d0] 2019-10-16 13:23:18 +0200
11948Branch: REL_12_STABLE [a8e49ae0c] 2019-10-16 13:25:37 +0200
11949Branch: REL_11_STABLE [d071a2539] 2019-10-16 13:26:26 +0200
11950Branch: REL_10_STABLE [e86ece221] 2019-10-16 13:26:56 +0200
11951-->
11952     <para>
11953      Improve <application>pg_upgrade</application>'s checks for the use
11954      of a data type that has changed representation, such
11955      as <type>line</type> (Tomas Vondra)
11956     </para>
11957
11958     <para>
11959      The previous coding could be fooled by cases where the data type of
11960      interest underlies a stored column of a domain or composite type.
11961     </para>
11962    </listitem>
11963
11964    <listitem>
11965<!--
11966Author: Michael Paquier <michael@paquier.xyz>
11967Branch: master [6f3823b03] 2019-10-04 09:14:51 +0900
11968Branch: REL_12_STABLE [c2e3b311d] 2019-10-04 09:16:03 +0900
11969-->
11970     <para>
11971      In <application>pg_rewind</application>
11972      with the <option>--dry-run</option> option, avoid
11973      updating <filename>pg_control</filename>
11974      (Alexey Kondratov)
11975     </para>
11976
11977     <para>
11978      This could lead to failures in
11979      subsequent <application>pg_rewind</application> attempts.
11980     </para>
11981    </listitem>
11982
11983    <listitem>
11984<!--
11985Author: Fujii Masao <fujii@postgresql.org>
11986Branch: master [a0c96856e] 2019-11-07 16:31:36 +0900
11987Branch: REL_12_STABLE [e5cfb8cbb] 2019-11-07 16:32:37 +0900
11988Branch: REL_11_STABLE [fb53c4c07] 2019-11-07 16:32:58 +0900
11989Branch: REL_10_STABLE [127ad57f5] 2019-11-07 16:33:06 +0900
11990Branch: REL9_6_STABLE [aa7cd6a8e] 2019-11-07 16:33:23 +0900
11991Branch: REL9_5_STABLE [b1bebc2ce] 2019-11-07 16:33:47 +0900
11992Branch: REL9_4_STABLE [1accf9974] 2019-11-07 16:33:58 +0900
11993-->
11994     <para>
11995      Fix failure in <application>pg_waldump</application> with
11996      the <option>-s</option> option, when a continuation WAL record ends
11997      exactly at a page boundary (Andrey Lepikhov)
11998     </para>
11999    </listitem>
12000
12001    <listitem>
12002<!--
12003Author: Andres Freund <andres@anarazel.de>
12004Branch: master [e4d92126f] 2019-10-29 22:53:05 -0700
12005Branch: REL_12_STABLE [d4b5206b2] 2019-10-29 22:53:30 -0700
12006Branch: REL_11_STABLE [3b24cf732] 2019-10-29 22:53:33 -0700
12007Branch: REL_10_STABLE [82200115e] 2019-10-29 22:53:37 -0700
12008Branch: REL9_6_STABLE [bc4f56c18] 2019-10-29 22:54:36 -0700
12009Branch: REL9_5_STABLE [39ff656a4] 2019-10-29 22:55:19 -0700
12010-->
12011     <para>
12012      In <application>pg_waldump</application> with
12013      the <option>--bkp-details</option> option, avoid emitting extra
12014      newlines for WAL records involving full-page writes (Andres Freund)
12015     </para>
12016    </listitem>
12017
12018    <listitem>
12019<!--
12020Author: Andres Freund <andres@anarazel.de>
12021Branch: master [e0f76f204] 2019-10-29 19:18:07 -0700
12022Branch: REL_12_STABLE [4ab353c47] 2019-10-29 19:28:34 -0700
12023Branch: REL_11_STABLE [af67aee69] 2019-10-29 19:28:34 -0700
12024Branch: REL_10_STABLE [e3ff8c360] 2019-10-29 19:28:34 -0700
12025Branch: REL9_6_STABLE [95f2efd50] 2019-10-29 19:28:34 -0700
12026Branch: REL9_5_STABLE [c3882f8b8] 2019-10-29 19:28:34 -0700
12027-->
12028     <para>
12029      Fix small memory leak in <application>pg_waldump</application>
12030      (Andres Freund)
12031     </para>
12032    </listitem>
12033
12034    <listitem>
12035<!--
12036Author: Tom Lane <tgl@sss.pgh.pa.us>
12037Branch: master [06a367c38] 2019-10-10 14:24:56 -0400
12038Branch: REL_12_STABLE [7ed1bcaed] 2019-10-10 14:24:57 -0400
12039-->
12040     <para>
12041      Put back <function>pqsignal()</function> as an
12042      exported <application>libpq</application> symbol (Tom Lane)
12043     </para>
12044
12045     <para>
12046      This function was removed on the grounds that no clients should be
12047      using it, but that turns out to break usage of
12048      current <application>libpq</application> with very old versions
12049      of <application>psql</application>, and perhaps other applications.
12050     </para>
12051    </listitem>
12052
12053    <listitem>
12054<!--
12055Author: Tom Lane <tgl@sss.pgh.pa.us>
12056Branch: master [d995fd667] 2019-10-21 13:52:25 -0400
12057Branch: REL_12_STABLE [ca658c91a] 2019-10-21 13:52:25 -0400
12058Branch: REL_11_STABLE [4e19bd41d] 2019-10-21 13:52:25 -0400
12059Branch: REL_10_STABLE [328b81348] 2019-10-21 13:52:25 -0400
12060Branch: REL9_6_STABLE [34621cb12] 2019-10-21 13:52:25 -0400
12061Branch: REL9_5_STABLE [8835e0bd4] 2019-10-21 13:52:26 -0400
12062Branch: REL9_4_STABLE [6d2b18d07] 2019-10-21 13:52:26 -0400
12063Branch: master [44273ce4f] 2019-10-21 12:32:35 -0400
12064Branch: REL_12_STABLE [aa5bb828a] 2019-10-21 12:32:35 -0400
12065Branch: REL_11_STABLE [99c51d5ed] 2019-10-21 12:32:36 -0400
12066Branch: REL_10_STABLE [e167b1ae3] 2019-10-21 12:32:36 -0400
12067Branch: REL9_6_STABLE [62ca50ad7] 2019-10-21 12:32:36 -0400
12068Branch: REL9_5_STABLE [11330c311] 2019-10-21 12:32:36 -0400
12069Branch: REL9_4_STABLE [727c2ccfe] 2019-10-21 12:32:36 -0400
12070-->
12071     <para>
12072      Fix <application>configure</application>'s test for presence of
12073      libperl so that it works on recent Red Hat releases (Tom Lane)
12074     </para>
12075
12076     <para>
12077      Previously, it could fail if the user sets <literal>CFLAGS</literal>
12078      to <literal>-O0</literal>.
12079     </para>
12080    </listitem>
12081
12082    <listitem>
12083<!--
12084Author: Noah Misch <noah@leadboat.com>
12085Branch: master [89b4d7744] 2019-10-18 20:20:28 -0700
12086Branch: REL_12_STABLE [ef13f914e] 2019-10-18 20:20:31 -0700
12087Branch: REL_11_STABLE [af4477b00] 2019-10-18 20:20:32 -0700
12088Branch: REL_10_STABLE [083929372] 2019-10-18 20:20:32 -0700
12089Branch: REL9_6_STABLE [09d74aef3] 2019-10-18 20:20:32 -0700
12090Branch: REL9_5_STABLE [62e881946] 2019-10-18 20:20:32 -0700
12091Branch: REL9_4_STABLE [930787c7f] 2019-10-18 20:20:33 -0700
12092-->
12093     <para>
12094      Ensure correct code generation for spinlocks on PowerPC (Noah Misch)
12095     </para>
12096
12097     <para>
12098      The previous spinlock coding allowed the compiler to select register
12099      zero for use with an assembly instruction that does not accept that
12100      register, causing a build failure.  We have seen only one long-ago
12101      report that matches this bug, but it could cause problems for people
12102      trying to build modified <productname>PostgreSQL</productname> code
12103      or use atypical compiler options.
12104     </para>
12105    </listitem>
12106
12107    <listitem>
12108<!--
12109Author: Noah Misch <noah@leadboat.com>
12110Branch: master [5f3d271d0] 2019-10-12 00:21:47 -0700
12111Branch: REL_12_STABLE [3fb14cfcb] 2019-10-12 00:21:50 -0700
12112Branch: REL_11_STABLE [e5b4926ef] 2019-10-12 00:21:50 -0700
12113Branch: REL_10_STABLE [77cc4a595] 2019-10-12 00:21:50 -0700
12114Branch: REL9_6_STABLE [c73f4f680] 2019-10-12 00:21:50 -0700
12115Branch: REL9_5_STABLE [e40eb31c0] 2019-10-12 00:21:51 -0700
12116Branch: REL9_4_STABLE [b705582b4] 2019-10-12 00:21:51 -0700
12117-->
12118     <para>
12119      On AIX, don't use the compiler option <option>-qsrcmsg</option>
12120      (Noah Misch)
12121     </para>
12122
12123     <para>
12124      This avoids an internal compiler error with xlc v16.1.0, with little
12125      consequence other than changing the format of compiler error messages.
12126     </para>
12127    </listitem>
12128
12129    <listitem>
12130<!--
12131Author: Andrew Dunstan <andrew@dunslane.net>
12132Branch: master [ad7595b89] 2019-10-04 15:34:40 -0400
12133Branch: REL_12_STABLE [ec38d2311] 2019-10-04 15:39:27 -0400
12134Branch: REL_11_STABLE [3b9c22700] 2019-10-04 15:39:19 -0400
12135Branch: REL_10_STABLE [62d2caed6] 2019-10-04 15:39:12 -0400
12136Branch: REL9_6_STABLE [1e9a0487d] 2019-10-04 15:39:02 -0400
12137Branch: REL9_5_STABLE [6ca51b155] 2019-10-04 15:38:48 -0400
12138Branch: REL9_4_STABLE [8f8809091] 2019-10-04 15:38:36 -0400
12139-->
12140     <para>
12141      Fix MSVC build process to cope with spaces in the file path of
12142      OpenSSL (Andrew Dunstan)
12143     </para>
12144    </listitem>
12145
12146   </itemizedlist>
12147
12148  </sect2>
12149 </sect1>
12150
12151 <sect1 id="release-12">
12152  <title>Release 12</title>
12153
12154  <formalpara>
12155   <title>Release date:</title>
12156   <para>2019-10-03</para>
12157  </formalpara>
12158
12159  <sect2>
12160   <title>Overview</title>
12161
12162   <para>
12163    Major enhancements in <productname>PostgreSQL</productname> 12 include:
12164   </para>
12165
12166   <!-- Items in this list summarize one or more items below -->
12167
12168   <itemizedlist>
12169
12170    <listitem>
12171     <para>
12172      General performance improvements, including:
12173      <itemizedlist>
12174       <listitem>
12175        <para>
12176         Optimizations to space utilization and read/write performance for
12177         B-tree indexes
12178        </para>
12179       </listitem>
12180
12181       <listitem>
12182        <para>
12183         Partitioning performance enhancements, including improved query
12184         performance on tables with thousands of partitions, improved
12185         insertion performance with <xref linkend="sql-insert"/> and <xref
12186         linkend="sql-copy"/>, and the ability to execute <link
12187         linkend="sql-altertable-attach-partition"><command>ALTER TABLE ATTACH
12188         PARTITION</command></link> without blocking queries
12189        </para>
12190       </listitem>
12191
12192       <listitem>
12193        <para>
12194         Automatic (but overridable) inlining
12195         of <link linkend="queries-with">common table expressions</link>
12196         (<acronym>CTEs</acronym>)
12197        </para>
12198       </listitem>
12199
12200       <listitem>
12201        <para>
12202         Reduction of <acronym>WAL</acronym> overhead for creation of
12203         <link linkend="gist">GiST</link>, <link linkend="gin">GIN</link>, and
12204         <link linkend="spgist">SP-GiST</link> indexes
12205        </para>
12206       </listitem>
12207
12208       <listitem>
12209        <para>
12210         Support for covering <link linkend="gist">GiST</link> indexes, via
12211         the <link linkend="indexes-index-only-scans"><literal>INCLUDE</literal></link>
12212         clause
12213        </para>
12214       </listitem>
12215
12216       <listitem>
12217        <para>
12218         Multi-column most-common-value (MCV) statistics can be defined
12219         via <xref linkend="sql-createstatistics"/>, to support better
12220         plans for queries that test several non-uniformly-distributed
12221         columns
12222        </para>
12223       </listitem>
12224      </itemizedlist>
12225     </para>
12226    </listitem>
12227
12228    <listitem>
12229     <para>
12230      Enhancements to administrative functionality, including:
12231      <itemizedlist>
12232       <listitem>
12233        <para>
12234         <link linkend="sql-reindex-concurrently"><command>REINDEX
12235         CONCURRENTLY</command></link> can rebuild an index without
12236         blocking writes to its table
12237        </para>
12238       </listitem>
12239
12240       <listitem>
12241        <para>
12242         <xref linkend="app-pgchecksums"/> can enable/disable page checksums
12243         (used for detecting data corruption) in an offline cluster
12244        </para>
12245       </listitem>
12246
12247       <listitem>
12248        <para>
12249         Progress reporting statistics for <xref linkend="sql-createindex"/>,
12250         <xref linkend="sql-reindex"/>, <xref linkend="sql-cluster"/>,
12251         <link linkend="sql-vacuum">VACUUM FULL</link>, and
12252         <xref linkend="app-pgchecksums"/>
12253        </para>
12254       </listitem>
12255      </itemizedlist>
12256     </para>
12257    </listitem>
12258
12259    <listitem>
12260     <para>
12261       Support for the <link
12262       linkend="functions-sqljson-path"><acronym>SQL/JSON</acronym>
12263       path</link> language
12264     </para>
12265    </listitem>
12266
12267    <listitem>
12268     <para>
12269       Stored <link linkend="ddl-generated-columns">generated columns</link>
12270     </para>
12271    </listitem>
12272
12273    <listitem>
12274     <para>
12275       <link linkend="collation-nondeterministic">Nondeterministic</link> ICU
12276       collations, enabling case-insensitive and accent-insensitive grouping
12277       and ordering
12278     </para>
12279    </listitem>
12280
12281    <listitem>
12282     <para>
12283      New authentication features, including:
12284      <itemizedlist>
12285       <listitem>
12286        <para>
12287         Encryption of TCP/IP connections when using
12288         <link linkend="gssapi-auth"><acronym>GSSAPI</acronym></link>
12289         authentication
12290        </para>
12291       </listitem>
12292
12293       <listitem>
12294        <para>
12295         Discovery of LDAP servers using <acronym>DNS SRV</acronym> records
12296        </para>
12297       </listitem>
12298
12299       <listitem>
12300        <para>
12301         Multi-factor authentication, using the <link linkend="auth-cert">
12302         <literal>clientcert=verify-full</literal></link> option combined
12303         with an additional authentication method in
12304         <filename>pg_hba.conf</filename>
12305        </para>
12306       </listitem>
12307      </itemizedlist>
12308     </para>
12309    </listitem>
12310
12311   </itemizedlist>
12312
12313   <para>
12314    The above items are explained in more detail in the sections below.
12315   </para>
12316
12317  </sect2>
12318
12319  <sect2>
12320
12321  <title>Migration to Version 12</title>
12322
12323   <para>
12324    A dump/restore using <xref linkend="app-pg-dumpall"/> or use of <xref
12325    linkend="pgupgrade"/> or logical replication is required for those
12326    wishing to migrate data from any previous release.  See <xref
12327    linkend="upgrading"/> for general information on migrating to new major
12328    releases.
12329   </para>
12330
12331   <para>
12332    Version 12 contains a number of changes that may affect compatibility
12333    with previous releases.  Observe the following incompatibilities:
12334   </para>
12335
12336   <itemizedlist>
12337
12338    <listitem>
12339<!--
12340Author: Andres Freund <andres@anarazel.de>
123412018-11-20 [578b22971] Remove WITH OIDS support, change oid catalog column visi
12342-->
12343
12344     <para>
12345      Remove the special behavior of <link
12346      linkend="datatype-oid">oid</link> columns (Andres Freund,
12347      John Naylor)
12348     </para>
12349
12350     <para>
12351      Previously, a normally-invisible <structfield>oid</structfield>
12352      column could be specified during table creation using <literal>WITH
12353      OIDS</literal>; that ability has been removed.  Columns can still be
12354      explicitly declared as type <type>oid</type>.  Operations on tables
12355      that have columns created using <literal>WITH OIDS</literal> will
12356      need adjustment.
12357     </para>
12358
12359     <para>
12360      The system catalogs that previously had
12361      hidden <structfield>oid</structfield> columns now have
12362      ordinary <structfield>oid</structfield> columns.
12363      Hence, <command>SELECT *</command> will now output those columns,
12364      whereas previously they would be displayed only if selected
12365      explicitly.
12366     </para>
12367    </listitem>
12368
12369    <listitem>
12370<!--
12371Author: Andres Freund <andres@anarazel.de>
123722018-10-11 [cda6a8d01] Remove deprecated abstime, reltime, tinterval datatypes.
12373-->
12374
12375     <para>
12376      Remove data types <type>abstime</type>, <type>reltime</type>,
12377      and <type>tinterval</type> (Andres Freund)
12378     </para>
12379
12380     <para>
12381      These are obsoleted by SQL-standard types such
12382      as <type>timestamp</type>.
12383     </para>
12384    </listitem>
12385
12386    <listitem>
12387<!--
12388Author: Andres Freund <andres@anarazel.de>
123892018-10-11 [2d10defa7] Remove timetravel extension.
12390-->
12391
12392     <para>
12393      Remove the <filename>timetravel</filename> extension
12394      (Andres Freund)
12395     </para>
12396    </listitem>
12397
12398    <listitem>
12399<!--
12400Author: Peter Eisentraut <peter_e@gmx.net>
124012018-11-25 [2dedf4d9a] Integrate recovery.conf into postgresql.conf
12402-->
12403
12404     <para>
12405      Move <filename>recovery.conf</filename> settings into <link
12406      linkend="runtime-config-wal-archive-recovery"><filename>postgresql.conf</filename></link>
12407      (Masao Fujii, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)
12408     </para>
12409
12410     <para>
12411      <filename>recovery.conf</filename> is no longer used,
12412      and the server will not start if that file exists.  <link
12413      linkend="runtime-config-wal-archive-recovery">recovery.signal</link>
12414      and <filename>standby.signal</filename> files are now used to switch
12415      into non-primary mode.  The <varname>trigger_file</varname> setting
12416      has been renamed to <xref linkend="guc-promote-trigger-file"/>.  The
12417      <varname>standby_mode</varname> setting has been removed.
12418     </para>
12419    </listitem>
12420
12421    <listitem>
12422<!--
12423Author: Peter Eisentraut <peter_e@gmx.net>
124242018-11-28 [f2cbffc7a] Only allow one recovery target setting
12425-->
12426
12427     <para>
12428      Do not allow multiple conflicting <link
12429      linkend="runtime-config-wal-recovery-target"><varname>recovery_target</varname>*</link>
12430      specifications (Peter Eisentraut)
12431     </para>
12432
12433     <para>
12434      Specifically, only allow one of <xref
12435      linkend="guc-recovery-target"/>, <xref
12436      linkend="guc-recovery-target-lsn"/>,
12437      <xref linkend="guc-recovery-target-name"/>,
12438      <xref linkend="guc-recovery-target-time"/>, and <xref
12439      linkend="guc-recovery-target-xid"/>.  Previously, multiple different
12440      instances of these parameters could be specified, and the last one
12441      was honored.  Now, only one can be specified, though the same one can
12442      be specified multiple times and the last specification is honored.
12443     </para>
12444    </listitem>
12445
12446    <listitem>
12447<!--
12448Author: Peter Eisentraut <peter@eisentraut.org>
124492019-01-13 [0acb3bc33] Change default of recovery_target_timeline to <literal>latest</literal>
12450-->
12451
12452     <para>
12453      Cause recovery to advance to the latest timeline by default
12454      (Peter Eisentraut)
12455     </para>
12456
12457     <para>
12458      Specifically, <xref linkend="guc-recovery-target-timeline"/> now
12459      defaults to <literal>latest</literal>.  Previously, it defaulted
12460      to <literal>current</literal>.
12461     </para>
12462    </listitem>
12463
12464    <listitem>
12465<!--
12466Author: Tomas Vondra <tomas.vondra@postgresql.org>
124672018-07-29 [a7dc63d90] Refactor geometric functions and operators
124682018-08-16 [c4c340088] Use the built-in float datatypes to implement geometric
124692018-09-26 [2e2a392de] Fix problems in handling the line data type
12470-->
12471
12472     <para>
12473      Refactor code for <link linkend="functions-geometry">geometric
12474      functions and operators</link> (Emre Hasegeli)
12475     </para>
12476
12477     <para>
12478      This could lead to more accurate, but slightly different, results
12479      compared to previous releases.  Notably, cases involving NaN,
12480      underflow, overflow, and division by zero are handled more
12481      consistently than before.
12482     </para>
12483    </listitem>
12484
12485    <listitem>
12486<!--
12487Author: Andrew Gierth <rhodiumtoad@postgresql.org>
124882019-02-13 [02ddd4993] Change floating-point output format for improved perform
124892018-10-12 [f1885386f] Make float exponent output on Windows look the same as e
12490-->
12491
12492     <para>
12493      Improve performance by using a new algorithm for output
12494      of <link linkend="datatype-float"><type>real</type></link>
12495      and <type>double precision</type> values (Andrew Gierth)
12496     </para>
12497
12498     <para>
12499      Previously, displayed floating-point values were rounded to 6
12500      (for <type>real</type>) or 15 (for <type>double precision</type>)
12501      digits by default, adjusted by the value of
12502      <xref linkend="guc-extra-float-digits"/>.  Now,
12503      whenever <varname>extra_float_digits</varname> is more than zero (as
12504      it now is by default), only the minimum number of digits required to
12505      preserve the exact binary value are output.  The behavior is the
12506      same as before when <varname>extra_float_digits</varname> is set to
12507      zero or less.
12508     </para>
12509
12510     <para>
12511      Also, formatting of floating-point exponents is now uniform across
12512      platforms: two digits are used unless three are necessary.  In
12513      previous releases, Windows builds always printed three digits.
12514     </para>
12515    </listitem>
12516
12517    <listitem>
12518<!--
12519Author: Tom Lane <tgl@sss.pgh.pa.us>
125202018-12-29 [6645ad6bd] Use a separate random seed for SQL random()/setseed() fu
125212018-12-29 [4203842a1] Use pg_strong_random() to select each server process's r
12522-->
12523
12524     <para>
12525       <link linkend="functions-math-random-table"><function>random()</function></link>
12526      and <function>setseed()</function> now behave uniformly across
12527      platforms (Tom Lane)
12528     </para>
12529
12530     <para>
12531      The sequence of <function>random()</function> values generated
12532      following a <function>setseed()</function> call with a particular
12533      seed value is likely to be different now than before.  However, it
12534      will also be repeatable, which was not previously guaranteed because
12535      of interference from other uses of random numbers inside the server.
12536      The SQL <function>random()</function> function now has its own
12537      private per-session state to forestall that.
12538     </para>
12539    </listitem>
12540
12541    <listitem>
12542<!--
12543Author: Tom Lane <tgl@sss.pgh.pa.us>
125442019-05-14 [7c850320d] Fix SQL-style substring() to have spec-compliant greedin
12545-->
12546
12547     <para>
12548      Change SQL-style
12549      <link linkend="functions-similarto-regexp"><function>substring()</function></link>
12550      to have standard-compliant greediness behavior (Tom Lane)
12551     </para>
12552
12553     <para>
12554      In cases where the pattern can be matched in more than one way, the
12555      initial sub-pattern is now treated as matching the least possible
12556      amount of text rather than the greatest; for example, a pattern such
12557      as <literal>%#"aa*#"%</literal> now selects the first group
12558      of <literal>a</literal>'s from the input, not the last group.
12559     </para>
12560    </listitem>
12561
12562    <listitem>
12563<!--
12564Author: Tom Lane <tgl@sss.pgh.pa.us>
125652019-04-23 [c06e3550d] Don't request pretty-printed output from xmlNodeDump().
12566-->
12567
12568     <para>
12569      Do not pretty-print the result
12570      of <link linkend="functions-xml"><function>xpath()</function></link>
12571      or the <literal>XMLTABLE</literal> construct (Tom Lane)
12572     </para>
12573
12574     <para>
12575      In some cases, these functions would insert extra whitespace
12576      (newlines and/or spaces) in nodeset values.  This is undesirable
12577      since depending on usage, the whitespace might be considered
12578      semantically significant.
12579     </para>
12580    </listitem>
12581
12582    <listitem>
12583<!--
12584Author: Michael Paquier <michael@paquier.xyz>
125852019-03-13 [6dd263cfa] Rename pg_verify_checksums to pg_checksums
12586-->
12587
12588     <para>
12589      Rename command-line tool
12590      <application>pg_verify_checksums</application> to <xref
12591      linkend="app-pgchecksums"/> (Michaël Paquier)
12592     </para>
12593    </listitem>
12594
12595    <listitem>
12596<!--
12597Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
125982019-04-04 [413ccaa74] pg_restore: Require -f - to mean stdout
12599-->
12600
12601     <para>
12602      In <xref linkend="app-pgrestore"/>, require specification of
12603      <literal>-f -</literal> to send the dump contents to standard output
12604      (Euler Taveira)
12605     </para>
12606
12607     <para>
12608      Previously, this happened by default if no destination was
12609      specified, but that was deemed to be unfriendly.
12610     </para>
12611    </listitem>
12612
12613    <listitem>
12614<!--
12615Author: Tom Lane <tgl@sss.pgh.pa.us>
126162018-11-14 [eaf746a5b] Make psql's "\pset format" command reject non-unique abb
12617Author: Tom Lane <tgl@sss.pgh.pa.us>
126182018-11-26 [a7eece4fc] Fix breakage of "\pset format latex".
12619-->
12620
12621     <para>
12622      Disallow non-unique abbreviations
12623      in <application>psql</application>'s <command>\pset format</command>
12624      command (Daniel Vérité)
12625     </para>
12626
12627     <para>
12628      Previously, for example, <command>\pset format a</command> chose
12629      <literal>aligned</literal>; it will now fail since that could
12630      equally well mean <literal>asciidoc</literal>.
12631     </para>
12632    </listitem>
12633
12634    <listitem>
12635<!--
12636Author: Peter Geoghegan <pg@bowt.ie>
126372019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
12638-->
12639
12640     <para>
12641      In new btree indexes, the maximum index entry length is
12642      reduced by eight bytes, to improve handling of duplicate entries
12643      (Peter Geoghegan)
12644     </para>
12645
12646     <para>
12647      This means that a <xref linkend="sql-reindex"/> operation on an
12648      index <application>pg_upgrade</application>'d from a previous
12649      release could potentially fail.
12650     </para>
12651    </listitem>
12652
12653    <listitem>
12654<!--
12655Author: Tom Lane <tgl@sss.pgh.pa.us>
126562019-03-21 [bfb456c1b] Improve error reporting for DROP FUNCTION/PROCEDURE/AGGR
12657-->
12658
12659     <para>
12660      Cause <link linkend="sql-dropfunction"><command>DROP IF EXISTS
12661      FUNCTION</command></link>/<literal>PROCEDURE</literal>/<literal>AGGREGATE</literal>/<literal>ROUTINE</literal>
12662      to generate an error if no argument list is supplied and there are
12663      multiple matching objects (David Rowley)
12664     </para>
12665
12666     <para>
12667      Also improve the error message in such cases.
12668     </para>
12669    </listitem>
12670
12671    <listitem>
12672<!--
12673Author: Tomas Vondra <tomas.vondra@postgresql.org>
126742019-06-16 [6cbfb784c] Rework the pg_statistic_ext catalog
126752019-06-16 [aa087ec64] Add pg_stats_ext view for extended statistics
12676-->
12677
12678     <para>
12679      Split the <link
12680      linkend="catalog-pg-statistic-ext"><structname>pg_statistic_ext</structname></link>
12681      catalog into two catalogs, and add the <link
12682      linkend="view-pg-stats-ext"><structname>pg_stats_ext</structname></link>
12683      view of it (Dean Rasheed, Tomas Vondra)
12684     </para>
12685
12686     <para>
12687      This change supports hiding potentially-sensitive statistics data
12688      from unprivileged users.
12689     </para>
12690    </listitem>
12691
12692    <listitem>
12693<!--
12694Author: Peter Eisentraut <peter_e@gmx.net>
126952018-11-01 [96b00c433] Remove obsolete pg_constraint.consrc column
12696-->
12697
12698     <para>
12699      Remove obsolete <link
12700      linkend="catalog-pg-constraint"><structname>pg_constraint</structname></link>.<structfield>consrc</structfield>
12701      column (Peter Eisentraut)
12702     </para>
12703
12704     <para>
12705      This column has been deprecated for a long time, because it did not
12706      update in response to other catalog changes (such as column renamings).
12707      The recommended way to get a text version of a check constraint's
12708      expression from <structname>pg_constraint</structname>
12709      is <literal>pg_get_expr(conbin, conrelid)</literal>.
12710      <function>pg_get_constraintdef()</function> is also a useful
12711      alternative.
12712     </para>
12713    </listitem>
12714
12715    <listitem>
12716<!--
12717Author: Peter Eisentraut <peter_e@gmx.net>
127182018-11-01 [fe5038236] Remove obsolete pg_attrdef.adsrc column
12719-->
12720
12721     <para>
12722      Remove obsolete <link
12723      linkend="catalog-pg-attrdef"><structname>pg_attrdef</structname></link>.<structfield>adsrc</structfield>
12724      column (Peter Eisentraut)
12725     </para>
12726
12727     <para>
12728      This column has been deprecated for a long time, because it did not
12729      update in response to other catalog changes (such as column renamings).
12730      The recommended way to get a text version of a default-value expression
12731      from <structname>pg_attrdef</structname> is <literal>pg_get_expr(adbin,
12732      adrelid)</literal>.
12733     </para>
12734    </listitem>
12735
12736    <listitem>
12737<!--
12738Author: Tom Lane <tgl@sss.pgh.pa.us>
127392018-12-19 [586b98fdf] Make type "name" collation-aware.
12740Author: Tom Lane <tgl@sss.pgh.pa.us>
127412019-04-05 [478cacb50] Ensure consistent name matching behavior in processSQLNa
12742-->
12743
12744     <para>
12745      Mark table columns of type <link
12746      linkend="datatype-character-special-table">name</link> as having
12747      <quote>C</quote> collation by default (Tom Lane, Daniel Vérité)
12748     </para>
12749
12750     <para>
12751      The comparison operators for data type <type>name</type> can now use
12752      any collation, rather than always using <quote>C</quote> collation.
12753      To preserve the previous semantics of queries, columns of
12754      type <type>name</type> are now explicitly marked as
12755      having <quote>C</quote> collation.  A side effect of this is that
12756      regular-expression operators on <type>name</type> columns will now
12757      use the <quote>C</quote> collation by default, not the database
12758      collation, to determine the behavior of locale-dependent regular
12759      expression patterns (such as <literal>\w</literal>).  If you want
12760      non-C behavior for a regular expression on a <type>name</type>
12761      column, attach an explicit <literal>COLLATE</literal> clause.  (For
12762      user-defined <type>name</type> columns, another possibility is to
12763      specify a different collation at table creation time; but that just
12764      moves the non-backwards-compatibility to the comparison operators.)
12765     </para>
12766    </listitem>
12767
12768    <listitem>
12769<!--
12770Author: Tom Lane <tgl@sss.pgh.pa.us>
127712018-12-20 [7c15cef86] Base information_schema.sql_identifier domain on name, n
127722018-12-20 [5bbee34d9] Avoid producing over-length specific_name outputs in inf
127732018-12-18 [6b0faf723] Make collation-aware system catalog columns use "C" coll
12774-->
12775
12776     <para>
12777      Treat object-name columns in
12778      the <link linkend="information-schema"><structname>information_schema</structname></link>
12779      views as being of type <type>name</type>, not <type>varchar</type>
12780      (Tom Lane)
12781     </para>
12782
12783     <para>
12784      Per the SQL standard, object-name columns in
12785      the <structname>information_schema</structname> views are declared
12786      as being of domain type <type>sql_identifier</type>.
12787      In <productname>PostgreSQL</productname>, the underlying catalog
12788      columns are really of type <type>name</type>.  This change
12789      makes <type>sql_identifier</type> be a domain
12790      over <type>name</type>, rather than <type>varchar</type> as before.
12791      This eliminates a semantic mismatch in comparison and sorting
12792      behavior, which can greatly improve the performance of queries
12793      on <structname>information_schema</structname> views that restrict
12794      an object-name column.  Note however that inequality restrictions,
12795      for example
12796<programlisting>
12797SELECT ... FROM information_schema.tables WHERE table_name &lt; 'foo';
12798</programlisting>
12799      will now use <quote>C</quote>-locale comparison semantics by
12800      default, rather than the database's default collation as before.
12801      Sorting on these columns will also follow <quote>C</quote> ordering
12802      rules.  The previous behavior (and inefficiency) can be enforced by
12803      adding a <literal>COLLATE "default"</literal> clause.
12804     </para>
12805    </listitem>
12806
12807    <listitem>
12808<!--
12809Author: Peter Eisentraut <peter_e@gmx.net>
128102018-07-10 [bcbd94080] Remove dynamic_shared_memory_type=none
12811-->
12812
12813     <para>
12814      Remove the ability to disable dynamic shared memory (Kyotaro
12815      Horiguchi)
12816     </para>
12817
12818     <para>
12819      Specifically, <xref linkend="guc-dynamic-shared-memory-type"/>
12820      can no longer be set to <literal>none</literal>.
12821     </para>
12822    </listitem>
12823
12824    <listitem>
12825<!--
12826Author: Michael Paquier <michael@paquier.xyz>
128272018-09-12 [e7a221797] Parse more strictly integer parameters from connection s
12828-->
12829
12830     <para>
12831      Parse libpq integer connection parameters more strictly (Fabien
12832      Coelho)
12833     </para>
12834
12835     <para>
12836      In previous releases, using an incorrect integer value for
12837      connection parameters <literal>connect_timeout</literal>,
12838      <literal>keepalives</literal>, <literal>keepalives_count</literal>,
12839      <literal>keepalives_idle</literal>,
12840      <literal>keepalives_interval</literal> and <literal>port</literal>
12841      resulted in libpq either ignoring those values or failing with
12842      incorrect error messages.
12843     </para>
12844    </listitem>
12845
12846   </itemizedlist>
12847
12848  </sect2>
12849
12850  <sect2>
12851   <title>Changes</title>
12852
12853    <para>
12854     Below you will find a detailed account of the changes between
12855     <productname>PostgreSQL</productname> 12 and the previous
12856     major release.
12857    </para>
12858
12859   <sect3>
12860    <title>Server</title>
12861
12862    <sect4>
12863     <title><link linkend="ddl-partitioning">Partitioning</link></title>
12864
12865     <itemizedlist>
12866
12867      <listitem>
12868<!--
12869Author: Tom Lane <tgl@sss.pgh.pa.us>
128702018-11-07 [c6e4133fa] Postpone calculating total_table_pages until after pruni
12871Author: Tom Lane <tgl@sss.pgh.pa.us>
128722018-11-15 [34c9e455d] Improve performance of partition pruning remapping a lit
12873Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
128742018-11-16 [3f2393ede] Redesign initialization of partition routing structures
12875Author: Robert Haas <rhaas@postgresql.org>
128762019-02-21 [9eefba181] Delay lock acquisition for partitions until we route a t
12877Author: Tom Lane <tgl@sss.pgh.pa.us>
128782019-03-30 [428b260f8] Speed up planning when partitions can be pruned at plan
12879-->
12880
12881       <para>
12882        Improve performance of many operations on partitioned tables
12883        (Amit Langote, David Rowley, Tom Lane, Álvaro Herrera)
12884       </para>
12885
12886       <para>
12887        Allow tables with thousands of child partitions to be processed
12888        efficiently by operations that only affect a small number of
12889        partitions.
12890       </para>
12891      </listitem>
12892
12893      <listitem>
12894<!--
12895Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
128962019-04-03 [f56f8f8da] Support foreign keys that reference partitioned tables
12897-->
12898
12899       <para>
12900        Allow <link linkend="ddl-constraints-fk">foreign keys</link>
12901        to reference partitioned tables (Álvaro Herrera)
12902       </para>
12903      </listitem>
12904
12905      <listitem>
12906<!--
12907Author: Peter Eisentraut <peter_e@gmx.net>
129082018-08-01 [0d5f05cde] Allow multi-inserts during COPY into a partitioned table
12909-->
12910
12911       <para>
12912        Improve speed of <command>COPY</command> into partitioned tables
12913        (David Rowley)
12914       </para>
12915      </listitem>
12916
12917      <listitem>
12918<!--
12919Author: Peter Eisentraut <peter@eisentraut.org>
129202019-01-25 [7c079d741] Allow generalized expression syntax for partition bounds
12921-->
12922
12923       <para>
12924        Allow partition bounds to be any expression (Kyotaro Horiguchi,
12925        Tom Lane, Amit Langote)
12926       </para>
12927
12928       <para>
12929        Such expressions are evaluated at partitioned-table creation time.
12930        Previously, only simple constants were allowed as partition bounds.
12931       </para>
12932      </listitem>
12933
12934      <listitem>
12935<!--
12936Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
129372018-12-17 [ca4103025] Fix tablespace handling for partitioned tables
12938-->
12939
12940       <para>
12941        Allow <command>CREATE TABLE</command>'s tablespace specification
12942        for a partitioned table to affect the tablespace of its children
12943        (David Rowley, Álvaro Herrera)
12944       </para>
12945      </listitem>
12946
12947      <listitem>
12948<!--
12949Author: Tom Lane <tgl@sss.pgh.pa.us>
129502019-04-05 [959d00e9d] Use Append rather than MergeAppend for scanning ordered
12951-->
12952
12953       <para>
12954        Avoid sorting when partitions are already being scanned in the
12955        necessary order (David Rowley)
12956       </para>
12957      </listitem>
12958
12959      <listitem>
12960<!--
12961Author: Robert Haas <rhaas@postgresql.org>
129622019-03-07 [898e5e329] Allow ATTACH PARTITION with only ShareUpdateExclusiveLoc
12963-->
12964
12965       <para>
12966        <link linkend="sql-altertable"><command>ALTER TABLE ATTACH
12967        PARTITION</command></link> is now performed with reduced locking
12968        requirements (Robert Haas)
12969       </para>
12970      </listitem>
12971
12972      <listitem>
12973<!--
12974Author: Michael Paquier <michael@paquier.xyz>
129752019-02-08 [3677a0b26] Add pg_partition_root to display top-most parent of a pa
12976Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
129772019-03-04 [b96f6b194] pg_partition_ancestors
12978Author: Michael Paquier <michael@paquier.xyz>
129792018-10-30 [d5eec4eef] Add pg_partition_tree to display information about parti
12980-->
12981
12982       <para>
12983        Add partition introspection functions (Michaël Paquier, Álvaro
12984        Herrera, Amit Langote)
12985       </para>
12986
12987       <para>
12988        The new function <link
12989        linkend="functions-info-partition"><function>pg_partition_root()</function></link>
12990        returns the top-most parent of a partition tree, <link
12991        linkend="functions-info-partition"><function>pg_partition_ancestors()</function></link>
12992        reports all ancestors of a partition, and <link
12993        linkend="functions-info-partition"><function>pg_partition_tree()</function></link>
12994        displays information about partitions.
12995       </para>
12996      </listitem>
12997
12998      <listitem>
12999<!--
13000Author: Michael Paquier <michael@paquier.xyz>
130012018-12-18 [f94cec644] Include partitioned indexes to system view pg_indexes
13002-->
13003
13004       <para>
13005        Include partitioned indexes in the system view <link
13006        linkend="view-pg-indexes"><structname>pg_indexes</structname></link>
13007        (Suraj Kharage)
13008       </para>
13009      </listitem>
13010
13011      <listitem>
13012<!--
13013Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
130142019-04-07 [1c5d9270e] psql \dP: list partitioned tables and indexes
13015-->
13016
13017       <para>
13018        Add <application>psql</application> command <command>\dP</command>
13019        to list partitioned tables and indexes (Pavel Stehule)
13020       </para>
13021      </listitem>
13022
13023      <listitem>
13024<!--
13025Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
130262018-11-19 [d56e0fde8] psql: Describe partitioned tables/indexes as such
13027Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
130282019-03-26 [1af25ca0c] Improve psql's \d display of foreign key constraints
13029Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
130302019-04-17 [b036982db] psql: display tablespace for partitioned indexes
13031-->
13032
13033       <para>
13034        Improve <application>psql</application> <command>\d</command>
13035        and <command>\z</command> display of partitioned tables (Pavel
13036        Stehule, Michaël Paquier, Álvaro Herrera)
13037       </para>
13038      </listitem>
13039
13040      <listitem>
13041<!--
13042Author: Tom Lane <tgl@sss.pgh.pa.us>
130432019-02-11 [1d92a0c9f] Redesign the partition dependency mechanism.
13044-->
13045
13046       <para>
13047        Fix bugs that could cause <command>ALTER TABLE DETACH
13048        PARTITION</command> to leave behind incorrect dependency state,
13049        allowing subsequent operations to misbehave, for example by not
13050        dropping a former partition child index when its table is dropped
13051        (Tom Lane)
13052       </para>
13053      </listitem>
13054
13055     </itemizedlist>
13056
13057    </sect4>
13058
13059    <sect4>
13060     <title>Indexes</title>
13061
13062     <itemizedlist>
13063
13064      <listitem>
13065<!--
13066Author: Peter Geoghegan <pg@bowt.ie>
130672019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
13068Author: Peter Geoghegan <pg@bowt.ie>
130692019-03-20 [fab250243] Consider secondary factors during nbtree splits.
13070Author: Peter Geoghegan <pg@bowt.ie>
130712019-03-25 [f21668f32] Add "split after new tuple" nbtree optimization.
13072-->
13073
13074       <para>
13075        Improve performance and space utilization of btree indexes with
13076        many duplicates (Peter Geoghegan, Heikki Linnakangas)
13077       </para>
13078
13079       <para>
13080        Previously, duplicate index entries were stored unordered within
13081        their duplicate groups.  This caused overhead during index
13082        inserts, wasted space due to excessive page splits, and it reduced
13083        <command>VACUUM</command>'s ability to recycle entire pages.
13084        Duplicate index entries are now sorted in heap-storage order.
13085       </para>
13086
13087       <para>
13088        Indexes <application>pg_upgrade</application>'d from previous
13089        releases will not have these benefits.
13090       </para>
13091      </listitem>
13092
13093      <listitem>
13094<!--
13095see commits above
13096-->
13097
13098       <para>
13099        Allow multi-column btree indexes to be smaller (Peter Geoghegan,
13100        Heikki Linnakangas)
13101       </para>
13102
13103       <para>
13104        Internal pages and min/max leaf page indicators now only store
13105        index keys until the change key, rather than all indexed keys.
13106        This also improves the locality of index access.
13107       </para>
13108
13109       <para>
13110        Indexes <application>pg_upgrade</application>'d from previous
13111        releases will not have these benefits.
13112       </para>
13113      </listitem>
13114
13115      <listitem>
13116<!--
13117Author: Alexander Korotkov <akorotkov@postgresql.org>
131182018-07-28 [d2086b08b] Reduce path length for locking leaf B-tree pages during
13119-->
13120
13121       <para>
13122        Improve speed of btree index insertions by reducing locking
13123        overhead (Alexander Korotkov)
13124       </para>
13125      </listitem>
13126
13127      <listitem>
13128<!--
13129Author: Alexander Korotkov <akorotkov@postgresql.org>
131302019-03-10 [f2e403803] Support for INCLUDE attributes in GiST indexes
13131-->
13132
13133       <para>
13134        Support <link
13135        linkend="indexes-index-only-scans"><literal>INCLUDE</literal></link> columns
13136        in <link linkend="gist">GiST</link> indexes (Andrey Borodin)
13137       </para>
13138      </listitem>
13139
13140      <listitem>
13141<!--
13142Author: Alexander Korotkov <akorotkov@postgresql.org>
131432018-09-19 [2a6368343] Add support for nearest-neighbor (KNN) searches to SP-Gi
13144-->
13145
13146       <para>
13147        Add support for nearest-neighbor (<acronym>KNN</acronym>) searches
13148        of <link linkend="spgist">SP-GiST</link> indexes (Nikita Glukhov,
13149        Alexander Korotkov, Vlad Sterzhanov)
13150       </para>
13151
13152      </listitem>
13153
13154      <listitem>
13155<!--
13156Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
131572019-04-03 [9155580fd] Generate less WAL during GiST, GIN and SP-GiST index bui
13158-->
13159
13160       <para>
13161        Reduce the <acronym>WAL</acronym> write overhead
13162        of <acronym>GiST</acronym>, <acronym>GIN</acronym>, and
13163        <acronym>SP-GiST</acronym> index creation (Anastasia Lubennikova,
13164        Andrey V. Lepikhov)
13165       </para>
13166      </listitem>
13167
13168      <listitem>
13169<!--
13170Author: Tom Lane <tgl@sss.pgh.pa.us>
131712019-03-03 [80b9e9c46] Improve performance of index-only scans with many index
13172-->
13173
13174       <para>
13175        Allow index-only scans to be more efficient on indexes with many
13176        columns (Konstantin Knizhnik)
13177       </para>
13178      </listitem>
13179
13180      <listitem>
13181<!--
13182Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
131832019-03-05 [fe280694d] Scan GiST indexes in physical order during VACUUM.
13184-->
13185
13186       <para>
13187        Improve the performance of vacuum scans of GiST indexes (Andrey
13188        Borodin, Konstantin Kuznetsov, Heikki Linnakangas)
13189       </para>
13190      </listitem>
13191
13192      <listitem>
13193<!--
13194Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
131952019-03-22 [7df159a62] Delete empty pages during GiST VACUUM.
13196-->
13197
13198       <para>
13199        Delete empty leaf pages during <acronym>GiST</acronym>
13200        <command>VACUUM</command> (Andrey Borodin)
13201       </para>
13202      </listitem>
13203
13204      <listitem>
13205<!--
13206Author: Peter Eisentraut <peter_e@gmx.net>
132072018-11-14 [1b5d797cd] Lower lock level for renaming indexes
13208-->
13209
13210       <para>
13211        Reduce locking requirements for index renaming (Peter Eisentraut)
13212       </para>
13213      </listitem>
13214
13215     </itemizedlist>
13216
13217    </sect4>
13218
13219    <sect4>
13220     <title>Optimizer</title>
13221
13222     <itemizedlist>
13223
13224      <listitem>
13225<!--
13226Author: Tomas Vondra <tomas.vondra@postgresql.org>
132272019-03-27 [7300a6995] Add support for multivariate MCV lists
13228Author: Tomas Vondra <tomas.vondra@postgresql.org>
132292019-03-27 [a63b29a1d] Minor improvements for the multivariate MCV lists
13230-->
13231
13232       <para>
13233        Allow <xref linkend="sql-createstatistics"/> to create
13234        most-common-value statistics for multiple columns (Tomas Vondra)
13235       </para>
13236
13237       <para>
13238        This improves optimization for queries that test several columns,
13239        requiring an estimate of the combined effect of
13240        several <literal>WHERE</literal> clauses.  If the columns are
13241        correlated and have non-uniform distributions then multi-column
13242        statistics will allow much better estimates.
13243       </para>
13244      </listitem>
13245
13246      <listitem>
13247<!--
13248Author: Tom Lane <tgl@sss.pgh.pa.us>
132492019-02-16 [608b167f9] Allow user control of CTE materialization, and change th
13250Author: Tom Lane <tgl@sss.pgh.pa.us>
132512019-04-09 [947613127] Prevent inlining of multiply-referenced CTEs with outer
13252-->
13253
13254       <para>
13255        Allow <link linkend="queries-with">common table expressions</link>
13256        (<acronym>CTEs</acronym>) to be inlined into the outer query
13257        (Andreas Karlsson, Andrew Gierth, David Fetter, Tom Lane)
13258       </para>
13259
13260       <para>
13261        Specifically, <acronym>CTE</acronym>s are automatically inlined if
13262        they have no side-effects, are not recursive, and are referenced
13263        only once in the query.  Inlining can be prevented by
13264        specifying <literal>MATERIALIZED</literal>, or forced for
13265        multiply-referenced <acronym>CTE</acronym>s by
13266        specifying <literal>NOT MATERIALIZED</literal>.  Previously,
13267        <acronym>CTE</acronym>s were never inlined and were always
13268        evaluated before the rest of the query.
13269       </para>
13270      </listitem>
13271
13272      <listitem>
13273<!--
13274Author: Peter Eisentraut <peter_e@gmx.net>
132752018-07-16 [f7cb2842b] Add plan_cache_mode setting
13276-->
13277
13278       <para>
13279        Allow control over when generic plans are used for prepared
13280        statements (Pavel Stehule)
13281       </para>
13282
13283       <para>
13284        This is controlled by the <xref linkend="guc-plan-cache_mode"/>
13285        server parameter.
13286       </para>
13287      </listitem>
13288
13289      <listitem>
13290<!--
13291Author: Tom Lane <tgl@sss.pgh.pa.us>
132922019-03-25 [8edd0e794] Suppress Append and MergeAppend plan nodes that have a s
13293-->
13294
13295       <para>
13296        Improve optimization of partition and <literal>UNION ALL</literal>
13297        queries that have only a single child (David Rowley)
13298       </para>
13299      </listitem>
13300
13301      <listitem>
13302<!--
13303Author: Tom Lane <tgl@sss.pgh.pa.us>
133042018-12-13 [04fe805a1] Drop no-op CoerceToDomain nodes from expressions at plan
13305-->
13306
13307       <para>
13308        Improve processing of <link linkend="domains">domains</link> that
13309        have no check constraints (Tom Lane)
13310       </para>
13311
13312       <para>
13313        Domains that are being used purely as type aliases no longer cause
13314        optimization difficulties.
13315       </para>
13316      </listitem>
13317
13318      <listitem>
13319<!--
13320Author: Tom Lane <tgl@sss.pgh.pa.us>
133212018-12-30 [6f19a8c41] Teach eval_const_expressions to constant-fold LEAST/GREA
13322-->
13323
13324       <para>
13325        Pre-evaluate calls of <link
13326        linkend="functions-greatest-least"><literal>LEAST</literal></link>
13327        and <literal>GREATEST</literal> when their arguments are constants
13328        (Vik Fearing)
13329       </para>
13330      </listitem>
13331
13332      <listitem>
13333<!--
13334Author: Tom Lane <tgl@sss.pgh.pa.us>
133352019-02-20 [e04a3905e] Improve planner's understanding of strictness of type co
133362019-03-01 [65ce07e02] Teach optimizer's predtest.c more things about ScalarArr
13337-->
13338
13339       <para>
13340        Improve optimizer's ability to verify that partial indexes
13341        with <literal>IS NOT NULL</literal> conditions are usable in
13342        queries (Tom Lane, James Coleman)
13343       </para>
13344
13345       <para>
13346        Usability can now be recognized in more cases where the calling
13347        query involves casts or
13348        large <literal><replaceable>x</replaceable> IN
13349        (<replaceable>array</replaceable>)</literal> clauses.
13350       </para>
13351      </listitem>
13352
13353      <listitem>
13354<!--
13355Author: Tom Lane <tgl@sss.pgh.pa.us>
133562018-12-14 [5e0928005] Make pg_statistic and related code account more honestly
13357-->
13358
13359       <para>
13360        Compute <command>ANALYZE</command> statistics using the collation
13361        defined for each column (Tom Lane)
13362       </para>
13363
13364       <para>
13365        Previously, the database's default collation was used for all
13366        statistics.  This potentially gives better optimizer behavior for
13367        columns with non-default collations.
13368       </para>
13369      </listitem>
13370
13371      <listitem>
13372<!--
13373Author: Tom Lane <tgl@sss.pgh.pa.us>
133742019-03-25 [f7111f72d] Improve planner's selectivity estimates for inequalities
13375-->
13376
13377       <para>
13378        Improve selectivity estimates for inequality comparisons
13379        on <link linkend="ddl-system-columns"><structfield>ctid</structfield></link>
13380        columns (Edmund Horner)
13381       </para>
13382      </listitem>
13383
13384      <listitem>
13385<!--
13386Author: Tom Lane <tgl@sss.pgh.pa.us>
133872018-12-30 [b5415e3c2] Support parameterized TidPaths.
13388Author: Tom Lane <tgl@sss.pgh.pa.us>
133892018-12-30 [0a6ea4001] Add a hash opclass for type "tid".
13390-->
13391
13392       <para>
13393        Improve optimization of joins on columns of type <link
13394        linkend="datatype-oid"><type>tid</type></link>
13395        (Tom Lane)
13396       </para>
13397
13398       <para>
13399        These changes primarily improve the efficiency of self-joins
13400        on <structfield>ctid</structfield> columns.
13401       </para>
13402      </listitem>
13403
13404      <listitem>
13405<!--
13406Author: Tom Lane <tgl@sss.pgh.pa.us>
134072018-07-11 [39a96512b] Mark built-in btree comparison functions as leakproof wh
134082019-09-21 [d9110d7e1] Straighten out leakproofness markings on text comparison
13409-->
13410
13411       <para>
13412        Fix the leakproofness designations of some btree comparison operators
13413        and support functions (Tom Lane)
13414       </para>
13415
13416       <para>
13417        This allows some optimizations that previously would not have been
13418        applied in the presence of security barrier views or row-level
13419        security.
13420       </para>
13421      </listitem>
13422
13423     </itemizedlist>
13424
13425    </sect4>
13426
13427    <sect4>
13428     <title>General Performance</title>
13429
13430     <itemizedlist>
13431
13432      <listitem>
13433<!--
13434Author: Bruce Momjian <bruce@momjian.us>
134352018-09-21 [1f7fc7670] doc:  JIT is enabled by default in PG 12
13436-->
13437
13438       <para>
13439        Enable <link linkend="jit">Just-in-Time</link>
13440        (<acronym>JIT</acronym>) compilation by default, if the server
13441        has been built with support for it (Andres Freund)
13442       </para>
13443
13444       <para>
13445        Note that this support is not built by default, but has to be
13446        selected explicitly while configuring the build.
13447       </para>
13448      </listitem>
13449
13450      <listitem>
13451<!--
13452Author: Tom Lane <tgl@sss.pgh.pa.us>
134532019-01-06 [afb0d0712] Replace the data structure used for keyword lookup.
13454Author: Tom Lane <tgl@sss.pgh.pa.us>
134552019-01-09 [c64d0cd5c] Use perfect hashing, instead of binary search, for keywo
13456-->
13457
13458       <para>
13459        Speed up keyword lookup (John Naylor, Joerg Sonnenberger, Tom Lane)
13460       </para>
13461      </listitem>
13462
13463      <listitem>
13464<!--
13465Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
134662019-01-25 [9556aa01c] Use single-byte Boyer-Moore-Horspool search even with mu
13467-->
13468
13469       <para>
13470        Improve search performance for multi-byte characters
13471        in <function>position()</function> and related functions (Heikki
13472        Linnakangas)
13473       </para>
13474      </listitem>
13475
13476      <listitem>
13477<!--
13478Author: Stephen Frost <sfrost@snowman.net>
134792019-04-02 [4d0e994ee] Add support for partial TOAST decompression
13480-->
13481
13482       <para>
13483        Allow <link linkend="storage-toast">toasted</link>
13484        values to be minimally decompressed (Paul Ramsey)
13485       </para>
13486
13487       <para>
13488        This is useful for routines that only need to examine the initial
13489        portion of a toasted field.
13490       </para>
13491      </listitem>
13492
13493      <listitem>
13494<!--
13495Author: Robert Haas <rhaas@postgresql.org>
134962019-03-13 [bbb96c370] Allow ALTER TABLE .. SET NOT NULL to skip provably unnec
13497-->
13498
13499       <para>
13500        Allow <link linkend="sql-altertable"><command>ALTER TABLE ... SET
13501        NOT NULL</command></link> to avoid unnecessary table scans (Sergei
13502        Kornilov)
13503       </para>
13504
13505       <para>
13506        This can be optimized when the table's column constraints can be
13507        recognized as disallowing nulls.
13508       </para>
13509      </listitem>
13510
13511      <listitem>
13512<!--
13513Author: Noah Misch <noah@leadboat.com>
135142019-03-08 [3c5926301] Avoid some table rewrites for ALTER TABLE .. SET DATA TY
13515-->
13516
13517       <para>
13518        Allow <command>ALTER TABLE ... SET DATA TYPE</command> changing between
13519        <type>timestamp</type> and <type>timestamptz</type> to avoid a
13520        table rewrite when the session time zone is <acronym>UTC</acronym>
13521        (Noah Misch)
13522       </para>
13523
13524       <para>
13525        In the <acronym>UTC</acronym> time zone, these two data types are
13526        binary compatible.
13527       </para>
13528      </listitem>
13529
13530      <listitem>
13531<!--
13532Author: Andres Freund <andres@anarazel.de>
135332018-07-22 [86eaf208e] Hand code string to integer conversion for performance.
13534-->
13535
13536       <para>
13537        Improve speed in converting strings to
13538        <type>int2</type> or <type>int4</type> integers (Andres Freund)
13539       </para>
13540      </listitem>
13541
13542      <listitem>
13543<!--
13544Author: Thomas Munro <tmunro@postgresql.org>
135452019-03-15 [bb16aba50] Enable parallel query with SERIALIZABLE isolation.
13546-->
13547
13548       <para>
13549        Allow parallelized queries when in <link
13550        linkend="xact-serializable"><literal>SERIALIZABLE</literal></link>
13551        isolation mode (Thomas Munro)
13552       </para>
13553
13554       <para>
13555        Previously, parallelism was disabled when in this mode.
13556       </para>
13557      </listitem>
13558
13559      <listitem>
13560<!--
13561Author: Thomas Munro <tmunro@postgresql.org>
135622018-11-07 [3fd2a7932] Provide pg_pread() and pg_pwrite() for random I/O.
13563Author: Thomas Munro <tmunro@postgresql.org>
135642018-11-07 [c24dcd0cf] Use pg_pread() and pg_pwrite() for data files and WAL.
13565-->
13566
13567       <para>
13568        Use <function>pread()</function> and <function>pwrite()</function>
13569        for random I/O (Oskari Saarenmaa, Thomas Munro)
13570       </para>
13571
13572       <para>
13573        This reduces the number of system calls required for I/O.
13574       </para>
13575      </listitem>
13576
13577      <listitem>
13578<!--
13579Author: Thomas Munro <tmunro@postgresql.org>
135802018-07-24 [1bc180cd2] Use setproctitle_fast() to update the ps status, if avai
13581-->
13582
13583       <para>
13584        Improve the speed of setting the <link
13585        linkend="guc-update-process-title">process title</link> on
13586        <systemitem class="osname">FreeBSD</systemitem> (Thomas Munro)
13587       </para>
13588      </listitem>
13589
13590     </itemizedlist>
13591
13592    </sect4>
13593
13594    <sect4>
13595     <title>Monitoring</title>
13596
13597     <itemizedlist>
13598
13599      <listitem>
13600<!--
13601Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
136022019-04-03 [799e22034] Log all statements from a sample of transactions
13603-->
13604
13605       <para>
13606        Allow logging of statements from only a percentage of transactions
13607        (Adrien Nayrat)
13608       </para>
13609
13610       <para>
13611        The parameter <xref linkend="guc-log-transaction-sample-rate"/>
13612        controls this.
13613       </para>
13614      </listitem>
13615
13616      <listitem>
13617<!--
13618Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
136192019-04-02 [ab0dfc961] Report progress of CREATE INDEX operations
13620Author: Peter Eisentraut <peter@eisentraut.org>
136212019-04-07 [03f9e5cba] Report progress of REINDEX operations
13622-->
13623
13624       <para>
13625        Add progress reporting to <command>CREATE INDEX</command> and
13626        <command>REINDEX</command> operations (Álvaro Herrera, Peter
13627        Eisentraut)
13628       </para>
13629
13630       <para>
13631        Progress is reported in the <link
13632        linkend="create-index-progress-reporting"><structname>pg_stat_progress_create_index</structname></link>
13633        system view.
13634       </para>
13635      </listitem>
13636
13637      <listitem>
13638<!--
13639Author: Robert Haas <rhaas@postgresql.org>
136402019-03-25 [6f97457e0] Add progress reporting for CLUSTER and VACUUM FULL.
13641-->
13642
13643       <para>
13644        Add progress reporting to <command>CLUSTER</command> and
13645        <command>VACUUM FULL</command> (Tatsuro Yamada)
13646       </para>
13647
13648       <para>
13649        Progress is reported in the <link
13650        linkend="cluster-progress-reporting"><structname>pg_stat_progress_cluster</structname></link>
13651        system view.
13652       </para>
13653      </listitem>
13654
13655      <listitem>
13656<!--
13657Author: Michael Paquier <michael@paquier.xyz>
136582019-04-02 [280e5f140] Add progress reporting to pg_checksums
13659-->
13660
13661       <para>
13662        Add progress reporting to <xref linkend="app-pgchecksums"/>
13663        (Michael Banck, Bernd Helmle)
13664       </para>
13665
13666       <para>
13667        This is enabled with the option <option>--progress</option>.
13668       </para>
13669      </listitem>
13670
13671      <listitem>
13672<!--
13673Author: Magnus Hagander <magnus@hagander.net>
136742019-03-09 [6b9e875f7] Track block level checksum failures in pg_stat_database
13675-->
13676
13677       <para>
13678        Add counter of checksum failures to
13679        <structname>pg_stat_database</structname> (Magnus Hagander)
13680       </para>
13681      </listitem>
13682
13683      <listitem>
13684<!--
13685Author: Magnus Hagander <magnus@hagander.net>
136862019-04-12 [77bd49adb] Show shared object statistics in pg_stat_database
13687-->
13688
13689       <para>
13690        Add tracking of global objects in system view
13691        <structname>pg_stat_database</structname> (Julien Rouhaud)
13692       </para>
13693
13694       <para>
13695        Global objects are shown with a <link
13696        linkend="pg-stat-database-view"><structname>pg_stat_database</structname></link>.<structfield>datid</structfield>
13697        value of zero.
13698       </para>
13699      </listitem>
13700
13701      <listitem>
13702<!--
13703Author: Michael Paquier <michael@paquier.xyz>
137042018-10-09 [c48101620] Add pg_ls_archive_statusdir function
13705-->
13706
13707       <para>
13708        Add the ability to list the contents of the archive directory
13709        (Christoph Moench-Tegeder)
13710       </para>
13711
13712       <para>
13713        The function is <link
13714        linkend="functions-admin-genfile-table"><function>pg_ls_archive_statusdir()</function></link>.
13715       </para>
13716      </listitem>
13717
13718      <listitem>
13719<!--
13720Author: Michael Paquier <michael@paquier.xyz>
137212018-10-05 [9cd92d1a3] Add pg_ls_tmpdir function
13722-->
13723
13724       <para>
13725        Add the ability to list the contents of temporary directories
13726        (Nathan Bossart)
13727       </para>
13728
13729       <para>
13730        The function, <link
13731        linkend="functions-admin-genfile-table"><function>pg_ls_tmpdir()</function></link>,
13732        optionally allows specification of a tablespace.
13733       </para>
13734      </listitem>
13735
13736      <listitem>
13737<!--
13738Author: Peter Eisentraut <peter@eisentraut.org>
137392019-02-01 [f60a0e967] Add more columns to pg_stat_ssl
13740-->
13741
13742       <para>
13743        Add information about the client certificate to the system view <link
13744        linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</structname></link>
13745        (Peter Eisentraut)
13746       </para>
13747
13748       <para>
13749        The new columns are <structfield>client_serial</structfield>
13750        and <structfield>issuer_dn</structfield>.  Column
13751        <structfield>clientdn</structfield> has been renamed to
13752        <structfield>client_dn</structfield> for clarity.
13753       </para>
13754      </listitem>
13755
13756      <listitem>
13757<!--
13758Author: Peter Eisentraut <peter@eisentraut.org>
137592019-02-21 [f9692a769] Hide other user's pg_stat_ssl rows
13760-->
13761
13762       <para>
13763        Restrict visibility of rows in <structname>pg_stat_ssl</structname>
13764        for unprivileged users (Peter Eisentraut)
13765       </para>
13766      </listitem>
13767
13768      <listitem>
13769<!--
13770Author: Peter Eisentraut <peter@eisentraut.org>
137712019-01-30 [689d15e95] Log PostgreSQL version number on startup
13772-->
13773
13774       <para>
13775        At server start, emit a log message including the server
13776        version number (Christoph Berg)
13777       </para>
13778      </listitem>
13779
13780      <listitem>
13781<!--
13782Author: Andrew Dunstan <andrew@dunslane.net>
137832019-03-06 [342cb650e] Don't log incomplete startup packet if it's empty
13784-->
13785
13786       <para>
13787        Prevent logging <quote>incomplete startup packet</quote> if a new
13788        connection is immediately closed (Tom Lane)
13789       </para>
13790
13791       <para>
13792        This avoids log spam from certain forms of monitoring.
13793       </para>
13794      </listitem>
13795
13796      <listitem>
13797<!--
13798Author: Stephen Frost <sfrost@snowman.net>
137992018-09-28 [8bddc8640] Add application_name to connection authorized msg
13800-->
13801
13802       <para>
13803        Include the <xref linkend="guc-application-name"/>, if set,
13804        in <xref linkend="guc-log-connections"/> log messages (Don Seiler)
13805       </para>
13806      </listitem>
13807
13808      <listitem>
13809<!--
13810Author: Peter Eisentraut <peter@eisentraut.org>
138112019-02-27 [6ae578a91] Set fallback_application_name for a walreceiver to clust
13812-->
13813
13814       <para>
13815        Make the walreceiver set its application name to the cluster name,
13816        if set (Peter Eisentraut)
13817       </para>
13818      </listitem>
13819
13820      <listitem>
13821<!--
13822Author: Michael Paquier <michael@paquier.xyz>
138232018-12-09 [7fee252f6] Add timestamp of last received message from standby to p
13824-->
13825
13826       <para>
13827        Add the timestamp of the last received standby message to <link
13828        linkend="pg-stat-replication-view"><structname>pg_stat_replication</structname></link>
13829        (Lim Myungkyu)
13830       </para>
13831      </listitem>
13832
13833      <listitem>
13834<!--
13835Author: Michael Paquier <michael@paquier.xyz>
138362018-07-02 [c55de5e51] Add wait event for fsync of WAL segments
13837-->
13838
13839       <para>
13840        Add a <link linkend="wait-event-table">wait event</link> for fsync
13841        of <acronym>WAL</acronym> segments (Konstantin Knizhnik)
13842       </para>
13843      </listitem>
13844
13845     </itemizedlist>
13846
13847    </sect4>
13848
13849    <sect4>
13850     <title><acronym>Authentication</acronym></title>
13851
13852     <itemizedlist>
13853
13854      <listitem>
13855<!--
13856Author: Stephen Frost <sfrost@snowman.net>
138572019-04-03 [b0b39f72b] GSSAPI encryption support
13858-->
13859
13860       <para>
13861        Add <link linkend="gssapi-auth"><acronym>GSSAPI</acronym></link>
13862        encryption support (Robbie Harwood, Stephen Frost)
13863       </para>
13864
13865       <para>
13866        This feature allows TCP/IP connections to be encrypted when using
13867        GSSAPI authentication, without having to set up a separate
13868        encryption facility such as SSL.
13869        In support of this, add <literal>hostgssenc</literal>
13870        and <literal>hostnogssenc</literal> record types in <link
13871        linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
13872        for selecting connections that do or do not use GSSAPI encryption,
13873        corresponding to the existing <literal>hostssl</literal>
13874        and <literal>hostnossl</literal> record types.
13875        There is also a new <xref linkend="libpq-connect-gssencmode"/>
13876        libpq option, and a <xref linkend="pg-stat-gssapi-view"/> system
13877        view.
13878       </para>
13879      </listitem>
13880
13881      <listitem>
13882<!--
13883Author: Magnus Hagander <magnus@hagander.net>
138842019-03-09 [0516c61b7] Add new clientcert hba option verify-full
13885-->
13886
13887       <para>
13888        Allow the <link
13889        linkend="auth-cert"><literal>clientcert</literal></link>
13890        <filename>pg_hba.conf</filename> option to check that the database
13891        user name matches the client certificate's common name
13892        (Julian Markwort, Marius Timmer)
13893       </para>
13894
13895       <para>
13896        This new check is enabled with
13897        <literal>clientcert=verify-full</literal>.
13898       </para>
13899      </listitem>
13900
13901      <listitem>
13902<!--
13903Author: Thomas Munro <tmunro@postgresql.org>
139042019-03-21 [0f086f84a] Add DNS SRV support for LDAP server discovery.
13905-->
13906
13907       <para>
13908        Allow discovery of an <link
13909        linkend="auth-ldap"><acronym>LDAP</acronym></link> server using
13910        <acronym>DNS SRV</acronym> records (Thomas Munro)
13911       </para>
13912
13913       <para>
13914        This avoids the requirement of specifying
13915        <literal>ldapserver</literal>.  It is only supported if
13916        <productname>PostgreSQL</productname> is compiled with
13917        <productname>OpenLDAP</productname>.
13918       </para>
13919      </listitem>
13920
13921     </itemizedlist>
13922
13923    </sect4>
13924
13925    <sect4>
13926     <title>Server Configuration</title>
13927
13928     <itemizedlist>
13929
13930      <listitem>
13931<!--
13932Author: Michael Paquier <michael@paquier.xyz>
139332019-03-23 [ed308d783] Add options to enable and disable checksums in pg_checks
13934-->
13935
13936       <para>
13937        Add ability to enable/disable cluster checksums using <xref
13938        linkend="app-pgchecksums"/> (Michael Banck, Michaël Paquier)
13939       </para>
13940
13941       <para>
13942        The cluster must be shut down for these operations.
13943       </para>
13944      </listitem>
13945
13946      <listitem>
13947<!--
13948Author: Tom Lane <tgl@sss.pgh.pa.us>
139492019-03-10 [cbccac371] Reduce the default value of autovacuum_vacuum_cost_delay
13950-->
13951
13952       <para>
13953        Reduce the default value of <xref
13954        linkend="guc-autovacuum-vacuum-cost-delay"/> to 2ms (Tom Lane)
13955       </para>
13956
13957       <para>
13958        This allows autovacuum operations to proceed faster by default.
13959       </para>
13960      </listitem>
13961
13962      <listitem>
13963<!--
13964Author: Tom Lane <tgl@sss.pgh.pa.us>
139652019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
13966-->
13967
13968       <para>
13969        Allow <xref linkend="guc-vacuum-cost-delay"/> to specify
13970        sub-millisecond delays, by accepting fractional values (Tom Lane)
13971       </para>
13972      </listitem>
13973
13974      <listitem>
13975<!--
13976Author: Tom Lane <tgl@sss.pgh.pa.us>
139772019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
13978-->
13979
13980       <para>
13981        Allow time-based server parameters to use units of <link
13982        linkend="config-setting">microseconds</link>
13983        (<literal>us</literal>) (Tom Lane)
13984       </para>
13985      </listitem>
13986
13987      <listitem>
13988<!--
13989Author: Tom Lane <tgl@sss.pgh.pa.us>
139902019-03-11 [1a83a80a2] Allow fractional input values for integer GUCs, and impr
13991-->
13992
13993       <para>
13994        Allow fractional input for integer server parameters (Tom Lane)
13995       </para>
13996
13997       <para>
13998        For example, <command>SET work_mem = '30.1GB'</command> is now
13999        allowed, even though <varname>work_mem</varname> is an integer
14000        parameter.  The value will be rounded to an integer after any
14001        required units conversion.
14002       </para>
14003      </listitem>
14004
14005      <listitem>
14006<!--
14007Author: Tom Lane <tgl@sss.pgh.pa.us>
140082019-03-10 [caf626b2c] Convert [autovacuum_]vacuum_cost_delay into floating-poi
14009-->
14010
14011       <para>
14012        Allow units to be defined for floating-point server parameters
14013        (Tom Lane)
14014       </para>
14015      </listitem>
14016
14017      <listitem>
14018<!--
14019Author: Thomas Munro <tmunro@postgresql.org>
140202019-04-02 [475861b26] Add wal_recycle and wal_init_zero GUCs.
14021-->
14022
14023       <para>
14024        Add <xref linkend="guc-wal-recycle"/> and <xref
14025        linkend="guc-wal-init-zero"/> server parameters to control
14026        <acronym>WAL</acronym> file recycling (Jerry Jelinek)
14027       </para>
14028
14029       <para>
14030        Avoiding file recycling can be beneficial on copy-on-write file
14031        systems like <productname>ZFS</productname>.
14032       </para>
14033      </listitem>
14034
14035      <listitem>
14036<!--
14037Author: Michael Paquier <michael@paquier.xyz>
140382019-04-06 [249d64999] Add support TCP user timeout in libpq and the backend se
14039-->
14040
14041       <para>
14042        Add server parameter <xref linkend="guc-tcp-user-timeout"/> to
14043        control the server's <acronym>TCP</acronym> timeout (Ryohei Nagaura)
14044       </para>
14045      </listitem>
14046
14047      <listitem>
14048<!--
14049Author: Peter Eisentraut <peter_e@gmx.net>
140502018-11-20 [e73e67c71] Add settings to control SSL/TLS protocol version
14051-->
14052
14053       <para>
14054        Allow control of the minimum and maximum <acronym>SSL</acronym>
14055        protocol versions (Peter Eisentraut)
14056       </para>
14057
14058       <para>
14059        The server parameters are <xref
14060        linkend="guc-ssl-min-protocol-version"/> and <xref
14061        linkend="guc-ssl-max-protocol-version"/>.
14062       </para>
14063      </listitem>
14064
14065      <listitem>
14066<!--
14067Author: Peter Eisentraut <peter_e@gmx.net>
140682018-07-30 [98efa76fe] Add ssl_library preset parameter
14069-->
14070
14071       <para>
14072        Add server parameter <xref linkend="guc-ssl-library"/> to report
14073        the <acronym>SSL</acronym> library version used by the server
14074        (Peter Eisentraut)
14075       </para>
14076      </listitem>
14077
14078      <listitem>
14079<!--
14080Author: Thomas Munro <tmunro@postgresql.org>
140812019-02-03 [f1bebef60] Add shared_memory_type GUC.
14082-->
14083
14084       <para>
14085        Add server parameter <xref linkend="guc-shared-memory-type"/>
14086        to control the type of shared memory to use (Andres Freund)
14087       </para>
14088
14089       <para>
14090        This allows selection of <productname>System V</productname>
14091        shared memory, if desired.
14092       </para>
14093      </listitem>
14094
14095     </itemizedlist>
14096
14097    </sect4>
14098
14099   </sect3>
14100
14101   <sect3>
14102    <title>Streaming Replication and Recovery</title>
14103
14104    <itemizedlist>
14105
14106     <listitem>
14107<!--
14108Author: Peter Eisentraut <peter@eisentraut.org>
141092019-02-07 [13b89f96d] Allow some recovery parameters to be changed with reload
14110-->
14111
14112      <para>
14113       Allow some recovery parameters to be changed with reload (Peter
14114       Eisentraut)
14115      </para>
14116
14117      <para>
14118       These parameters are <xref linkend="guc-archive-cleanup-command"/>,
14119       <xref linkend="guc-promote-trigger-file"/>, <xref
14120       linkend="guc-recovery-end-command"/>, and <xref
14121       linkend="guc-recovery-min-apply-delay"/>.
14122      </para>
14123     </listitem>
14124
14125     <listitem>
14126<!--
14127Author: Michael Paquier <michael@paquier.xyz>
141282018-09-22 [db361db2f] Make GUC wal_sender_timeout user-settable
14129-->
14130
14131      <para>
14132       Allow the streaming replication timeout (<xref
14133       linkend="guc-wal-sender-timeout"/>) to be set per connection
14134       (Takayuki Tsunakawa)
14135      </para>
14136
14137      <para>
14138       Previously, this could only be set cluster-wide.
14139      </para>
14140     </listitem>
14141
14142     <listitem>
14143<!--
14144Author: Michael Paquier <michael@paquier.xyz>
141452018-10-25 [10074651e] Add pg_promote function
14146Author: Michael Paquier <michael@paquier.xyz>
141472018-11-06 [8f045e242] Switch pg_promote to be parallel-safe
14148-->
14149
14150      <para>
14151       Add function <link
14152       linkend="functions-recovery-control"><function>pg_promote()</function></link>
14153       to promote standbys to primaries (Laurenz Albe, Michaël Paquier)
14154      </para>
14155
14156      <para>
14157       Previously, this operation was only possible by using <xref
14158       linkend="app-pg-ctl"/> or creating a trigger file.
14159      </para>
14160     </listitem>
14161
14162     <listitem>
14163<!--
14164Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
141652019-04-05 [9f06d79ef] Add facility to copy replication slots
14166-->
14167
14168      <para>
14169       Allow replication slots to be copied (Masahiko Sawada)
14170      </para>
14171
14172      <para>
14173       The functions for this are <link
14174       linkend="functions-replication-table"><function>pg_copy_physical_replication_slot()</function></link>
14175       and <function>pg_copy_logical_replication_slot()</function>.
14176      </para>
14177     </listitem>
14178
14179     <listitem>
14180<!--
14181Author: Michael Paquier <michael@paquier.xyz>
141822019-02-12 [ea92368cd] Move max_wal_senders out of max_connections for connecti
14183-->
14184
14185      <para>
14186       Make <xref linkend="guc-max-wal-senders"/> not count as part of
14187       <xref linkend="guc-max-connections"/> (Alexander Kukushkin)
14188      </para>
14189     </listitem>
14190
14191     <listitem>
14192<!--
14193Author: Peter Eisentraut <peter@eisentraut.org>
141942019-01-11 [ff8530605] Add value 'current' for recovery_target_timeline
14195-->
14196
14197      <para>
14198       Add an explicit value of <literal>current</literal> for <xref
14199       linkend="guc-recovery-target-timeline"/> (Peter Eisentraut)
14200      </para>
14201     </listitem>
14202
14203     <listitem>
14204<!--
14205Author: Michael Paquier <michael@paquier.xyz>
142062018-09-07 [8582b4d04] Improve handling of corrupted two-phase state files at r
14207-->
14208
14209      <para>
14210       Make recovery fail if a <link
14211       linkend="sql-prepare-transaction">two-phase transaction</link>
14212       status file is corrupt (Michaël Paquier)
14213      </para>
14214
14215      <para>
14216       Previously, a warning was logged and recovery continued,
14217       allowing the transaction to be lost.
14218      </para>
14219     </listitem>
14220
14221    </itemizedlist>
14222
14223   </sect3>
14224
14225   <sect3>
14226    <title>Utility Commands</title>
14227
14228    <itemizedlist>
14229
14230     <listitem>
14231<!--
14232Author: Peter Eisentraut <peter@eisentraut.org>
142332019-03-29 [5dc92b844] REINDEX CONCURRENTLY
14234-->
14235
14236      <para>
14237       Add <xref linkend="sql-reindex"/> <literal>CONCURRENTLY</literal>
14238       option to allow reindexing without locking out writes (Michaël
14239       Paquier, Andreas Karlsson, Peter Eisentraut)
14240      </para>
14241
14242      <para>
14243       This is also controlled by the <xref linkend="app-reindexdb"/>
14244       application's <option>--concurrently</option> option.
14245      </para>
14246     </listitem>
14247
14248     <listitem>
14249<!--
14250Author: Peter Eisentraut <peter@eisentraut.org>
142512019-03-30 [fc22b6623] Generated columns
14252-->
14253
14254      <para>
14255       Add support for <link linkend="ddl-generated-columns">generated
14256       columns</link> (Peter Eisentraut)
14257      </para>
14258
14259      <para>
14260       The content of generated columns are computed from expressions
14261       (including references to other columns in the same table)
14262       rather than being specified by <command>INSERT</command> or
14263       <command>UPDATE</command> commands.
14264      </para>
14265     </listitem>
14266
14267     <listitem>
14268<!--
14269Author: Tomas Vondra <tomas.vondra@postgresql.org>
142702019-01-20 [31f381740] Allow COPY FROM to filter data using WHERE conditions
14271-->
14272
14273      <para>
14274       Add a <literal>WHERE</literal> clause
14275       to <link linkend="sql-copy"><command>COPY FROM</command></link> to
14276       control which rows are accepted (Surafel Temesgen)
14277      </para>
14278
14279      <para>
14280       This provides a simple way to filter incoming data.
14281      </para>
14282     </listitem>
14283
14284     <listitem>
14285<!--
14286Author: Thomas Munro <tmunro@postgresql.org>
142872018-10-09 [212fab992] Relax transactional restrictions on ALTER TYPE ... ADD V
14288-->
14289
14290      <para>
14291       Allow enumerated values to be added more flexibly
14292       (Andrew Dunstan, Tom Lane, Thomas Munro)
14293      </para>
14294
14295      <para>
14296       Previously, <link linkend="sql-altertype"><command>ALTER TYPE
14297       ... ADD VALUE</command></link> could not be called in a transaction
14298       block, unless it was part of the same transaction that created the
14299       enumerated type.  Now it can be called in a later transaction, so
14300       long as the new enumerated value is not referenced until after it is
14301       committed.
14302      </para>
14303     </listitem>
14304
14305     <listitem>
14306<!--
14307Author: Peter Eisentraut <peter@eisentraut.org>
143082019-03-24 [280a408b4] Transaction chaining
14309-->
14310
14311      <para>
14312       Add commands to end a transaction and start a new one (Peter
14313       Eisentraut)
14314      </para>
14315
14316      <para>
14317       The commands are <link linkend="sql-commit"><command>COMMIT AND
14318       CHAIN</command></link>
14319       and <link linkend="sql-rollback"><command>ROLLBACK AND
14320       CHAIN</command></link>.
14321      </para>
14322     </listitem>
14323
14324     <listitem>
14325<!--
14326Author: Fujii Masao <fujii@postgresql.org>
143272019-04-08 [119dcfad9] Add vacuum_truncate reloption.
14328Author: Fujii Masao <fujii@postgresql.org>
143292019-05-08 [b84dbc8eb] Add TRUNCATE parameter to VACUUM.
14330-->
14331
14332      <para>
14333       Add <xref linkend="sql-vacuum"/> and <command>CREATE
14334       TABLE</command> options to prevent <command>VACUUM</command>
14335       from truncating trailing empty pages (Takayuki Tsunakawa)
14336      </para>
14337
14338      <para>
14339       These options are <varname>vacuum_truncate</varname> and
14340       <varname>toast.vacuum_truncate</varname>.  Use of these options
14341       reduces <command>VACUUM</command>'s locking requirements, but
14342       prevents returning disk space to the operating system.
14343      </para>
14344     </listitem>
14345
14346     <listitem>
14347<!--
14348Author: Robert Haas <rhaas@postgresql.org>
143492019-04-04 [a96c41fee] Allow VACUUM to be run with index cleanup disabled.
14350Author: Michael Paquier <michael@paquier.xyz>
143512019-06-25 [ce59b75d4] Add toast-level reloption for vacuum_index_cleanup
14352-->
14353
14354      <para>
14355       Allow <command>VACUUM</command> to skip index cleanup
14356       (Masahiko Sawada)
14357      </para>
14358
14359      <para>
14360       This change adds a <command>VACUUM</command> command
14361       option <literal>INDEX_CLEANUP</literal> as well as a table storage
14362       option <literal>vacuum_index_cleanup</literal>.  Use of this option
14363       reduces the ability to reclaim space and can lead to index bloat,
14364       but it is helpful when the main goal is to freeze old tuples.
14365      </para>
14366     </listitem>
14367
14368     <listitem>
14369<!--
14370Author: Michael Paquier <michael@paquier.xyz>
143712018-10-04 [803b1301e] Add option SKIP_LOCKED to VACUUM and ANALYZE
14372-->
14373
14374      <para>
14375       Add the ability to skip <command>VACUUM</command> and
14376       <command>ANALYZE</command> operations on tables that cannot be
14377       locked immediately (Nathan Bossart)
14378      </para>
14379
14380      <para>
14381       This option is called <literal>SKIP_LOCKED</literal>.
14382      </para>
14383     </listitem>
14384
14385     <listitem>
14386<!--
14387Author: Robert Haas <rhaas@postgresql.org>
143882019-03-29 [41b54ba78] Allow existing VACUUM options to take a Boolean argument
14389-->
14390
14391      <para>
14392       Allow <command>VACUUM</command> and <command>ANALYZE</command>
14393       to take optional Boolean argument specifications (Masahiko Sawada)
14394      </para>
14395     </listitem>
14396
14397     <listitem>
14398<!--
14399Author: Michael Paquier <michael@paquier.xyz>
144002018-08-10 [f841ceb26] Improve TRUNCATE by avoiding early lock queue
144012018-08-27 [a556549d7] Improve VACUUM and ANALYZE by avoiding early lock queue
14402-->
14403
14404      <para>
14405       Prevent <xref linkend="sql-truncate"/>,
14406       <command>VACUUM</command> and <command>ANALYZE</command>
14407       from requesting a lock on
14408       tables for which the user lacks permission (Michaël Paquier)
14409      </para>
14410
14411      <para>
14412       This prevents unauthorized locking, which could interfere with
14413       user queries.
14414      </para>
14415     </listitem>
14416
14417     <listitem>
14418<!--
14419Author: Tomas Vondra <tomas.vondra@postgresql.org>
144202019-04-04 [ea569d64a] Add SETTINGS option to EXPLAIN, to print modified settin
14421-->
14422
14423      <para>
14424       Add <xref linkend="sql-explain"/> option
14425       <literal>SETTINGS</literal> to output non-default optimizer
14426       settings (Tomas Vondra)
14427      </para>
14428
14429      <para>
14430       This output can also be obtained when using <xref linkend="auto-explain"/>
14431       by setting <varname>auto_explain.log_settings</varname>.
14432      </para>
14433     </listitem>
14434
14435     <listitem>
14436<!--
14437Author: Andrew Gierth <rhodiumtoad@postgresql.org>
144382019-03-19 [01bde4fa4] Implement OR REPLACE option for CREATE AGGREGATE.
14439-->
14440
14441      <para>
14442       Add <literal>OR REPLACE</literal> option to
14443       <xref linkend="sql-createaggregate"/>
14444       (Andrew Gierth)
14445      </para>
14446     </listitem>
14447
14448     <listitem>
14449<!--
14450Author: Peter Eisentraut <peter@eisentraut.org>
144512019-03-19 [590a87025] Ignore attempts to add TOAST table to shared or catalog
14452-->
14453
14454      <para>
14455       Allow modifications of system catalogs' options using <xref
14456       linkend="sql-altertable"/> (Peter Eisentraut)
14457      </para>
14458
14459      <para>
14460       Modifications of catalogs' <literal>reloptions</literal> and
14461       autovacuum settings are now supported.  (Setting <xref
14462       linkend="guc-allow-system-table-mods"/> is still required.)
14463      </para>
14464     </listitem>
14465
14466     <listitem>
14467<!--
14468Author: Peter Eisentraut <peter@eisentraut.org>
144692019-03-13 [f177660ab] Include all columns in default names for foreign key con
14470-->
14471
14472      <para>
14473       Use all key columns' names when selecting default constraint
14474       names for foreign keys (Peter Eisentraut)
14475      </para>
14476
14477      <para>
14478       Previously, only the first column name was included in the constraint
14479       name, resulting in ambiguity for multi-column foreign keys.
14480      </para>
14481     </listitem>
14482
14483    </itemizedlist>
14484
14485   </sect3>
14486
14487   <sect3>
14488    <title>Data Types</title>
14489
14490    <itemizedlist>
14491
14492     <listitem>
14493<!--
14494Author: Peter Eisentraut <peter@eisentraut.org>
144952019-06-19 [d8594d123] Update list of combining characters
144962019-06-24 [82be666ee] Update unicode_norm_table.h to Unicode 12.1.0
14497-->
14498
14499      <para>
14500       Update assorted knowledge about Unicode to match Unicode 12.1.0
14501       (Peter Eisentraut)
14502      </para>
14503
14504      <para>
14505       This fixes, for example, cases
14506       where <application>psql</application> would misformat output
14507       involving combining characters.
14508      </para>
14509     </listitem>
14510
14511     <listitem>
14512<!--
14513Author: Tom Lane <tgl@sss.pgh.pa.us>
145142018-09-24 [fd582317e] Sync our Snowball stemmer dictionaries with current upst
14515-->
14516
14517      <para>
14518       Update Snowball stemmer dictionaries with support for new languages
14519       (Arthur Zakirov)
14520      </para>
14521
14522      <para>
14523       This adds word stemming support for Arabic, Indonesian, Irish,
14524       Lithuanian, Nepali, and Tamil to <link linkend="textsearch">full
14525       text search</link>.
14526      </para>
14527     </listitem>
14528
14529     <listitem>
14530<!--
14531Author: Peter Eisentraut <peter@eisentraut.org>
145322019-03-22 [5e1963fb7] Collations with nondeterministic comparison
14533-->
14534
14535      <para>
14536       Allow creation of <link
14537       linkend="collation">collations</link> that report
14538       string equality for strings that are not bit-wise equal (Peter
14539       Eisentraut)
14540      </para>
14541
14542      <para>
14543       This feature supports <quote>nondeterministic</quote> collations
14544       that can define case- and accent-agnostic equality comparisons.
14545       Thus, for example, a case-insensitive uniqueness constraint on a
14546       text column can be made more easily than before.  This is only
14547       supported for <acronym>ICU</acronym> collations.
14548      </para>
14549     </listitem>
14550
14551     <listitem>
14552<!--
14553Author: Peter Eisentraut <peter@eisentraut.org>
145542019-03-17 [b8f9a2a69] Add support for collation attributes on older ICU versio
14555-->
14556
14557      <para>
14558       Add support for <acronym>ICU</acronym> collation attributes on older
14559       ICU versions (Peter Eisentraut)
14560      </para>
14561
14562      <para>
14563       This allows customization of the collation rules in a consistent way
14564       across all ICU versions.
14565      </para>
14566     </listitem>
14567
14568     <listitem>
14569<!--
14570Author: Tom Lane <tgl@sss.pgh.pa.us>
145712018-12-19 [2ece7c07d] Add text-vs-name cross-type operators, and unify name_op
14572-->
14573
14574      <para>
14575       Allow data
14576       type <link linkend="datatype-character-special-table">name</link>
14577       to more seamlessly be compared to other text types (Tom Lane)
14578      </para>
14579
14580      <para>
14581       Type <type>name</type> now behaves much like a domain over
14582       type <type>text</type> that has default collation <quote>C</quote>.
14583       This allows cross-type comparisons to be processed more efficiently.
14584      </para>
14585     </listitem>
14586
14587    </itemizedlist>
14588
14589   </sect3>
14590
14591   <sect3>
14592    <title>Functions</title>
14593
14594    <itemizedlist>
14595
14596     <listitem>
14597<!--
14598Author: Alexander Korotkov <akorotkov@postgresql.org>
145992019-03-16 [72b646033] Partial implementation of SQL/JSON path language
14600Author: Alexander Korotkov <akorotkov@postgresql.org>
146012019-03-16 [16d489b0f] Numeric error suppression in jsonpath
14602Author: Alexander Korotkov <akorotkov@postgresql.org>
146032019-04-01 [0a02e2ae0] GIN support for @@ and @? jsonpath operators
14604-->
14605
14606      <para>
14607       Add support for the <acronym>SQL/JSON</acronym> <link
14608       linkend="functions-sqljson-path">path</link> language
14609       (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov,
14610       Liudmila Mantrova)
14611      </para>
14612
14613      <para>
14614       This allows execution of complex queries on <type>JSON</type>
14615       values using an <acronym>SQL</acronym>-standard language.
14616      </para>
14617     </listitem>
14618
14619     <listitem>
14620<!--
14621Author: Tom Lane <tgl@sss.pgh.pa.us>
146222019-03-12 [f1d85aa98] Add support for hyperbolic functions, as well as log10()
14623-->
14624
14625      <para>
14626       Add support for <link linkend="functions-math-hyp-table">hyperbolic
14627       functions</link> (Lætitia Avrot)
14628      </para>
14629
14630      <para>
14631       Also add <function>log10()</function> as an alias for
14632       <function>log()</function>, for standards compliance.
14633      </para>
14634     </listitem>
14635
14636     <listitem>
14637<!--
14638Author: Dean Rasheed <dean.a.rasheed@gmail.com>
146392018-10-06 [e954a727f] Improve the accuracy of floating point statistical aggre
14640-->
14641      <para>
14642       Improve the accuracy of statistical aggregates like <link
14643       linkend="functions-aggregate-statistics-table"><function>variance()</function></link>
14644       by using more precise algorithms (Dean Rasheed)
14645      </para>
14646     </listitem>
14647
14648     <listitem>
14649<!--
14650Author: Tom Lane <tgl@sss.pgh.pa.us>
146512018-11-14 [600b04d6b] Add a timezone-specific variant of date_trunc().
14652-->
14653
14654      <para>
14655       Allow <link
14656       linkend="functions-datetime-table"><function>date_trunc()</function></link>
14657       to have an additional argument to control the time zone (Vik
14658       Fearing, Tom Lane)
14659      </para>
14660
14661      <para>
14662       This is faster and simpler than using the <literal>AT TIME
14663       ZONE</literal> clause.
14664      </para>
14665     </listitem>
14666
14667     <listitem>
14668<!--
14669Author: Alexander Korotkov <akorotkov@postgresql.org>
146702018-09-09 [cf9846724] Improve behavior of to_timestamp()/to_date() functions
14671-->
14672
14673      <para>
14674       Adjust <link
14675       linkend="functions-formatting-table"><function>to_timestamp()</function></link>/<function>to_date()</function>
14676       functions to be more forgiving of template mismatches (Artur
14677       Zakirov, Alexander Korotkov, Liudmila Mantrova)
14678      </para>
14679
14680      <para>
14681       This new behavior more closely matches the
14682       <productname>Oracle</productname> functions of the same name.
14683      </para>
14684     </listitem>
14685
14686     <listitem>
14687<!--
14688Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
146892019-03-07 [251cf2e27] Fix minor deficiencies in XMLTABLE, xpath(), xmlexists()
14690-->
14691
14692      <para>
14693       Fix assorted bugs in <link
14694       linkend="functions-xml"><acronym>XML</acronym> functions</link>
14695       (Pavel Stehule, Markus Winand, Chapman Flack)
14696      </para>
14697
14698      <para>
14699       Specifically, in <literal>XMLTABLE</literal>,
14700       <function>xpath()</function>, and <function>xmlexists()</function>,
14701       fix some cases where nothing was output for a node, or an
14702       unexpected error was thrown, or necessary escaping of XML special
14703       characters was omitted.
14704      </para>
14705     </listitem>
14706
14707     <listitem>
14708<!--
14709Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
147102019-03-07 [eaaa5986a] Fix the BY {REF,VALUE} clause of XMLEXISTS/XMLTABLE
14711-->
14712
14713      <para>
14714       Allow the <literal>BY VALUE</literal> clause
14715       in <function>XMLEXISTS</function> and <function>XMLTABLE</function>
14716       (Chapman Flack)
14717      </para>
14718
14719      <para>
14720       This SQL-standard clause has no effect
14721       in <productname>PostgreSQL</productname>'s implementation, but it
14722       was unnecessarily being rejected.
14723      </para>
14724     </listitem>
14725
14726     <listitem>
14727<!--
14728Author: Michael Paquier <michael@paquier.xyz>
147292019-03-27 [5bde1651b] Switch function current_schema[s]() to be parallel-unsaf
14730-->
14731
14732      <para>
14733       Prevent <link
14734       linkend="functions-info-session-table"><function>current_schema()</function></link>
14735       and <function>current_schemas()</function> from being run by
14736       parallel workers, as they are not parallel-safe (Michaël Paquier)
14737      </para>
14738     </listitem>
14739
14740     <listitem>
14741<!--
14742Author: Tom Lane <tgl@sss.pgh.pa.us>
147432019-01-30 [5f5c01459] Allow RECORD and RECORD[] to be specified in function co
14744-->
14745
14746      <para>
14747       Allow <type>RECORD</type> and <type>RECORD[]</type> to be used
14748       as column types in a query's column definition list for a <link
14749       linkend="queries-tablefunctions">table function</link> that is declared
14750       to return <type>RECORD</type> (Elvis Pranskevichus)
14751      </para>
14752     </listitem>
14753
14754    </itemizedlist>
14755
14756   </sect3>
14757
14758   <sect3>
14759    <title><link linkend="plpgsql">PL/pgSQL</link></title>
14760
14761    <itemizedlist>
14762
14763     <listitem>
14764<!--
14765Author: Tom Lane <tgl@sss.pgh.pa.us>
147662019-01-04 [4879a5172] Support plpgsql variable names that conflict with unrese
14767-->
14768
14769      <para>
14770       Allow SQL commands and variables with the same names as those
14771       commands to be used in the same PL/pgSQL function (Tom Lane)
14772      </para>
14773
14774      <para>
14775       For example, allow a variable called <varname>comment</varname> to
14776       exist in a function that calls
14777       the <command>COMMENT</command> <acronym>SQL</acronym> command.
14778       Previously this combination caused a parse error.
14779      </para>
14780     </listitem>
14781
14782     <listitem>
14783<!--
14784Author: Tomas Vondra <tomas.vondra@postgresql.org>
147852018-07-25 [167075be3] Add strict_multi_assignment and too_many_rows plpgsql ch
14786-->
14787
14788      <para>
14789       Add new optional warning and error checks to PL/pgSQL (Pavel
14790       Stehule)
14791      </para>
14792
14793      <para>
14794       The new checks allow for run-time validation of
14795       <literal>INTO</literal> column counts and single-row results.
14796      </para>
14797     </listitem>
14798
14799    </itemizedlist>
14800
14801   </sect3>
14802
14803   <sect3>
14804    <title>Client Interfaces</title>
14805
14806    <itemizedlist>
14807
14808     <listitem>
14809<!--
14810Author: Michael Paquier <michael@paquier.xyz>
148112019-04-06 [249d64999] Add support TCP user timeout in libpq and the backend se
14812-->
14813
14814      <para>
14815       Add connection parameter <xref linkend="libpq-tcp-user-timeout"/>
14816       to control <application>libpq</application>'s <acronym>TCP</acronym>
14817       timeout (Ryohei Nagaura)
14818      </para>
14819     </listitem>
14820
14821     <listitem>
14822<!--
14823Author: Tom Lane <tgl@sss.pgh.pa.us>
148242019-04-04 [7bac3acab] Add a "SQLSTATE-only" error verbosity option to libpq an
14825-->
14826
14827      <para>
14828       Allow <application>libpq</application> (and thus
14829       <application>psql</application>) to report only the
14830       <literal>SQLSTATE</literal> value in error messages (Didier Gautheron)
14831      </para>
14832     </listitem>
14833
14834     <listitem>
14835<!--
14836Author: Tom Lane <tgl@sss.pgh.pa.us>
148372018-09-11 [2970afa6c] Add PQresultMemorySize function to report allocated size
14838-->
14839
14840      <para>
14841       Add <application>libpq</application>
14842       function <link linkend="libpq-pqresultmemorysize"><function>PQresultMemorySize()</function></link>
14843       to report the memory used by a query result (Lars Kanis, Tom Lane)
14844      </para>
14845     </listitem>
14846
14847     <listitem>
14848<!--
14849Author: Peter Eisentraut <peter_e@gmx.net>
148502018-09-07 [1fea1e325] libpq: Change "options" dispchar to normal
14851-->
14852
14853      <para>
14854       Remove the no-display/debug flag from <application>libpq</application>'s
14855       <literal>options</literal> connection parameter (Peter Eisentraut)
14856      </para>
14857
14858      <para>
14859       This allows this parameter to be set by
14860       <application>postgres_fdw</application>.
14861      </para>
14862     </listitem>
14863
14864     <listitem>
14865<!--
14866Author: Michael Meskes <meskes@postgresql.org>
148672019-02-18 [050710b36] Add bytea datatype to ECPG.
14868-->
14869
14870      <para>
14871       Allow <xref linkend="app-ecpg"/> to create variables of data type
14872       <type>bytea</type> (Ryo Matsumura)
14873      </para>
14874
14875      <para>
14876       This allows ECPG clients to interact with <type>bytea</type> data
14877       directly, rather than using an encoded form.
14878      </para>
14879     </listitem>
14880
14881     <listitem>
14882<!--
14883Author: Michael Meskes <meskes@postgresql.org>
148842019-05-22 [a1dc6ab46] Implement PREPARE AS statement for ECPG.
14885-->
14886
14887      <para>
14888       Add <command>PREPARE AS</command> support to
14889       <productname>ECPG</productname> (Ryo Matsumura)
14890      </para>
14891     </listitem>
14892
14893    </itemizedlist>
14894
14895   </sect3>
14896
14897   <sect3>
14898    <title>Client Applications</title>
14899
14900    <itemizedlist>
14901
14902     <listitem>
14903<!--
14904Author: Michael Paquier <michael@paquier.xyz>
149052019-01-31 [00d1e88d3] Add - -min-xid-age and - -min-mxid-age options to vacuumdb
14906-->
14907
14908      <para>
14909       Allow <xref linkend="app-vacuumdb"/> to select tables for vacuum
14910       based on their wraparound horizon (Nathan Bossart)
14911      </para>
14912
14913      <para>
14914       The options are <option>--min-xid-age</option> and
14915       <option>--min-mxid-age</option>.
14916      </para>
14917     </listitem>
14918
14919     <listitem>
14920<!--
14921Author: Michael Paquier <michael@paquier.xyz>
149222019-01-08 [354e95d1f] Add - -disable-page-skipping and - -skip-locked to vacuumd
14923-->
14924
14925      <para>
14926       Allow <application>vacuumdb</application> to disable waiting for locks
14927       or skipping all-visible pages (Nathan Bossart)
14928      </para>
14929
14930      <para>
14931       The options are <option>--skip-locked</option> and
14932       <option>--disable-page-skipping</option>.
14933      </para>
14934     </listitem>
14935
14936     <listitem>
14937<!--
14938Author: Peter Eisentraut <peter@eisentraut.org>
149392019-04-01 [cc8d41511] Unified logging system for command-line programs
14940-->
14941
14942      <para>
14943       Add colorization to the output of command-line utilities (Peter
14944       Eisentraut)
14945      </para>
14946
14947      <para>
14948       This is enabled by setting the environment variable
14949       <envar>PG_COLOR</envar> to <literal>always</literal>
14950       or <literal>auto</literal>.  The specific colors used can be
14951       adjusted by setting the environment variable
14952       <envar>PG_COLORS</envar>, using ANSI escape codes for colors.
14953       For example, the default behavior is equivalent to
14954       <literal>PG_COLORS="error=01;31:warning=01;35:locus=01"</literal>.
14955      </para>
14956     </listitem>
14957
14958     </itemizedlist>
14959
14960    <sect4>
14961     <title><xref linkend="app-psql"/></title>
14962
14963     <itemizedlist>
14964
14965      <listitem>
14966<!--
14967Author: Tom Lane <tgl@sss.pgh.pa.us>
149682018-11-26 [aa2ba50c2] Add CSV table output mode in psql.
14969-->
14970
14971       <para>
14972        Add <acronym>CSV</acronym> table output mode in
14973        <application>psql</application> (Daniel Vérité)
14974       </para>
14975
14976       <para>
14977        This is controlled by <command>\pset format csv</command> or the
14978        command-line <option>--csv</option> option.
14979       </para>
14980      </listitem>
14981
14982      <listitem>
14983<!--
14984Author: Peter Eisentraut <peter@eisentraut.org>
149852019-03-11 [27f3dea64] psql: Add documentation URL to \help output
14986-->
14987
14988       <para>
14989        Show the manual page <acronym>URL</acronym> in
14990        <application>psql</application>'s <command>\help</command> output
14991        for a SQL command (Peter Eisentraut)
14992       </para>
14993      </listitem>
14994
14995      <listitem>
14996<!--
14997Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
149982018-11-19 [6e5f8d489] psql: Show IP address in \conninfo
149992019-06-14 [313f56ce2] Tweak libpq's PQhost, PQhostaddr, and psql's \connect
15000-->
15001
15002       <para>
15003        Display the <acronym>IP</acronym> address in
15004        <application>psql</application>'s <command>\conninfo</command>
15005        (Fabien Coelho)
15006       </para>
15007      </listitem>
15008
15009      <listitem>
15010<!--
15011Author: Michael Paquier <michael@paquier.xyz>
150122018-12-23 [11a60d496] Add completion for storage parameters after CREATE TABLE
15013Author: Michael Paquier <michael@paquier.xyz>
150142018-10-26 [5953c9969] Improve tab completion of CREATE EVENT TRIGGER in psql
15015Author: Michael Paquier <michael@paquier.xyz>
150162018-10-26 [292ef6e27] Add tab completion of EXECUTE FUNCTION for CREATE TRIGGE
15017Author: Michael Paquier <michael@paquier.xyz>
150182019-01-28 [23349b18d] Add tab completion for ALTER INDEX ALTER COLUMN in psql
15019Author: Michael Paquier <michael@paquier.xyz>
150202018-12-20 [4cba9c2a3] Add more tab completion for CREATE TABLE in psql
15021Author: Tom Lane <tgl@sss.pgh.pa.us>
150222018-09-20 [a7c4dad1a] Fix psql's tab completion for ALTER DATABASE ... SET TAB
15023Author: Michael Paquier <michael@paquier.xyz>
150242018-12-25 [f89ae34ab] Improve tab completion of ALTER INDEX/TABLE with SET STA
15025Author: Tom Lane <tgl@sss.pgh.pa.us>
150262018-09-20 [c9a8a401f] Fix psql's tab completion for TABLE.
15027Author: Tom Lane <tgl@sss.pgh.pa.us>
150282018-09-21 [121213d9d] Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.
15029-->
15030
15031       <para>
15032        Improve tab completion of <command>CREATE TABLE</command>,
15033        <command>CREATE TRIGGER</command>,
15034        <command>CREATE EVENT TRIGGER</command>,
15035        <command>ANALYZE</command>, <command>EXPLAIN</command>,
15036        <command>VACUUM</command>, <command>ALTER TABLE</command>,
15037        <command>ALTER INDEX</command>, <command>ALTER DATABASE</command>,
15038        and <command>ALTER INDEX ALTER COLUMN</command>
15039        (Dagfinn Ilmari Mannsåker, Tatsuro Yamada, Michaël Paquier,
15040        Tom Lane, Justin Pryzby)
15041       </para>
15042      </listitem>
15043
15044     </itemizedlist>
15045
15046    </sect4>
15047
15048    <sect4>
15049     <title><link linkend="pgbench"><application>pgbench</application></link></title>
15050
15051     <itemizedlist>
15052
15053      <listitem>
15054<!--
15055Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
150562019-01-10 [6260cc550] pgbench: add \cset and \gset commands
15057Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
150582019-03-25 [25ee70511] pgbench: Remove \cset
15059-->
15060
15061       <para>
15062        Allow values produced by queries to be assigned
15063        to <application>pgbench</application> variables (Fabien Coelho,
15064        Álvaro Herrera)
15065       </para>
15066
15067       <para>
15068        The command for this is <command>\gset</command>.
15069       </para>
15070      </listitem>
15071
15072      <listitem>
15073<!--
15074Author: Tom Lane <tgl@sss.pgh.pa.us>
150752018-09-25 [5b7e03670] Avoid unnecessary precision loss for pgbench's - -rate ta
15076-->
15077
15078       <para>
15079        Improve precision of <application>pgbench</application>'s
15080        <option>--rate</option> option (Tom Lane)
15081       </para>
15082      </listitem>
15083
15084      <listitem>
15085<!--
15086Author: Peter Eisentraut <peter_e@gmx.net>
150872018-10-15 [5b75a4f82] pgbench: Report errors during run better
15088-->
15089       <para>
15090        Improve <application>pgbench</application>'s error reporting with
15091        clearer messages and return codes (Peter Eisentraut)
15092       </para>
15093      </listitem>
15094
15095     </itemizedlist>
15096
15097    </sect4>
15098
15099   </sect3>
15100
15101   <sect3>
15102    <title>Server Applications</title>
15103
15104    <itemizedlist>
15105
15106     <listitem>
15107<!--
15108Author: Alexander Korotkov <akorotkov@postgresql.org>
151092018-09-01 [ec7436993] Implement "pg_ctl logrotate" command
15110-->
15111
15112      <para>
15113       Allow control of log file rotation via <xref linkend="app-pg-ctl"/>
15114       (Kyotaro Horiguchi, Alexander Kuzmenkov, Alexander Korotkov)
15115      </para>
15116
15117      <para>
15118       Previously, this was only possible via an <acronym>SQL</acronym>
15119       function or a process signal.
15120      </para>
15121     </listitem>
15122
15123     <listitem>
15124<!--
15125Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
151262019-01-14 [bb24439ce] Detach postmaster process from pg_ctl's session at serve
15127-->
15128
15129      <para>
15130       Properly detach the new server process
15131       during <literal><application>pg_ctl</application> start</literal>
15132       (Paul Guo)
15133      </para>
15134
15135      <para>
15136       This prevents the server from being shut down if the shell script
15137       that invoked <application>pg_ctl</application> is interrupted later.
15138      </para>
15139     </listitem>
15140
15141     <listitem>
15142<!--
15143Author: Peter Eisentraut <peter_e@gmx.net>
151442018-11-07 [3a769d823] pg_upgrade: Allow use of file cloning
15145-->
15146
15147      <para>
15148       Allow <xref linkend="pgupgrade"/> to use the file system's cloning
15149       feature, if there is one (Peter Eisentraut)
15150      </para>
15151
15152      <para>
15153       The <option>--clone</option> option has the advantages of
15154       <option>--link</option>, while preventing the old cluster from
15155       being changed after the new cluster has started.
15156      </para>
15157     </listitem>
15158
15159     <listitem>
15160<!--
15161Author: Tom Lane <tgl@sss.pgh.pa.us>
151622018-12-01 [2d34ad843] Add a - -socketdir option to pg_upgrade.
15163-->
15164
15165      <para>
15166       Allow specification of the socket directory to use
15167       in <application>pg_upgrade</application> (Daniel Gustafsson)
15168      </para>
15169
15170      <para>
15171       This is controlled by <option>--socketdir</option>; the default
15172       is the current directory.
15173      </para>
15174     </listitem>
15175
15176     <listitem>
15177<!--
15178Author: Michael Paquier <michael@paquier.xyz>
151792019-03-23 [e0090c869] Add option -N/- -no-sync to pg_checksums
15180-->
15181
15182      <para>
15183       Allow <xref linkend="app-pgchecksums"/> to disable fsync operations
15184       (Michaël Paquier)
15185      </para>
15186
15187      <para>
15188       This is controlled by the <option>--no-sync</option> option.
15189      </para>
15190     </listitem>
15191
15192     <listitem>
15193<!--
15194Author: Michael Paquier <michael@paquier.xyz>
151952018-07-10 [8a00b96aa] Add pg_rewind - -no-sync
15196-->
15197
15198      <para>
15199       Allow <xref linkend="app-pgrewind"/> to disable fsync operations
15200       (Michaël Paquier)
15201      </para>
15202     </listitem>
15203
15204     <listitem>
15205<!--
15206Author: Michael Paquier <michael@paquier.xyz>
152072018-09-14 [0ba06e0bf] Allow concurrent-safe open() and fopen() in frontend
152082018-09-20 [40cfe8606] Enforce translation mode for Windows frontends to text
15209-->
15210
15211      <para>
15212       Fix <xref linkend="pgtestfsync"/> to report accurate
15213       <literal>open_datasync</literal> durations on
15214       <productname>Windows</productname> (Laurenz Albe)
15215      </para>
15216     </listitem>
15217
15218    </itemizedlist>
15219
15220    <sect4>
15221     <title><link linkend="app-pgdump"><application>pg_dump</application></link>,
15222     <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
15223     <link linkend="app-pgrestore"><application>pg_restore</application></link></title>
15224
15225     <itemizedlist>
15226
15227      <listitem>
15228<!--
15229Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
152302019-03-07 [7e413a0f8] pg_dump: allow multiple rows per insert
152312019-06-14 [a193cbec1] Add pg_dumpall rows-per-insert
15232-->
15233
15234       <para>
15235        When <application>pg_dump</application> emits data
15236        with <command>INSERT</command> commands rather
15237        than <command>COPY</command>, allow more than one data row to be
15238        included in each <command>INSERT</command> (Surafel Temesgen,
15239        David Rowley)
15240       </para>
15241
15242       <para>
15243        The option controlling this is <option>--rows-per-insert</option>.
15244       </para>
15245      </listitem>
15246
15247      <listitem>
15248<!--
15249Author: Thomas Munro <tmunro@postgresql.org>
152502018-07-13 [387a5cfb9] Add pg_dump - -on-conflict-do-nothing option.
15251-->
15252
15253       <para>
15254        Allow <application>pg_dump</application> to emit <command>INSERT
15255        ... ON CONFLICT DO NOTHING</command> (Surafel Temesgen)
15256       </para>
15257
15258       <para>
15259        This avoids conflict failures during restore.
15260        The option is <option>--on-conflict-do-nothing</option>.
15261       </para>
15262      </listitem>
15263
15264      <listitem>
15265<!--
15266Author: Tom Lane <tgl@sss.pgh.pa.us>
152672018-09-14 [548e50976] Improve parallel scheduling logic in pg_dump/pg_restore.
15268-->
15269
15270       <para>
15271        Decouple the order of operations in a
15272        parallel <application>pg_dump</application> from the order used by
15273        a subsequent parallel <application>pg_restore</application> (Tom
15274        Lane)
15275       </para>
15276
15277       <para>
15278        This allows <application>pg_restore</application> to perform
15279        more-fully-parallelized parallel restores, especially in cases
15280        where the original dump was not done in parallel.  Scheduling of a
15281        parallel <application>pg_dump</application> is also somewhat
15282        improved.
15283       </para>
15284      </listitem>
15285
15286      <listitem>
15287<!--
15288Author: Andrew Dunstan <andrew@dunslane.net>
152892019-02-18 [af25bc03e] Provide an extra-float-digits setting for pg_dump / pg_d
15290-->
15291
15292       <para>
15293        Allow the <xref linkend="guc-extra-float-digits"/> setting to be
15294        specified for <application>pg_dump</application> and
15295        <application>pg_dumpall</application> (Andrew Dunstan)
15296       </para>
15297
15298       <para>
15299        This is primarily useful for making dumps that are exactly
15300        comparable across different source server versions.  It is not
15301        recommended for normal use, as it may result in loss of precision
15302        when the dump is restored.
15303       </para>
15304      </listitem>
15305
15306      <listitem>
15307<!--
15308Author: Andrew Dunstan <andrew@dunslane.net>
153092019-03-01 [f092de050] Add - -exclude-database option to pg_dumpall
15310-->
15311
15312       <para>
15313        Add <option>--exclude-database</option> option to
15314        <application>pg_dumpall</application> (Andrew Dunstan)
15315       </para>
15316      </listitem>
15317
15318     </itemizedlist>
15319
15320    </sect4>
15321
15322   </sect3>
15323
15324   <sect3>
15325    <title>Source Code</title>
15326
15327    <itemizedlist>
15328
15329     <listitem>
15330<!--
15331Author: Andres Freund <andres@anarazel.de>
153322018-11-16 [4da597edf] Make TupleTableSlots extensible, finish split of
15333Author: Andres Freund <andres@anarazel.de>
153342019-03-06 [8586bf7ed] tableam: introduce table AM infrastructure.
15335Author: Andres Freund <andres@anarazel.de>
153362019-03-06 [3b925e905] tableam: Add pg_dump support.
15337Author: Andres Freund <andres@anarazel.de>
153382019-03-11 [c2fe139c2] tableam: Add and use scan APIs.
15339Author: Andres Freund <andres@anarazel.de>
153402019-03-23 [5db6df0c0] tableam: Add tuple_{insert, delete, update, lock} and us
15341Author: Andres Freund <andres@anarazel.de>
153422019-03-28 [d25f51910] tableam: relation creation, VACUUM FULL/CLUSTER, SET TAB
15343Author: Andres Freund <andres@anarazel.de>
153442019-03-29 [d3a5fc17e] Show table access methods as such in psql's \dA.
15345Author: Andres Freund <andres@anarazel.de>
153462019-03-31 [73c954d24] tableam: sample scan.
15347Author: Andres Freund <andres@anarazel.de>
153482019-03-31 [bfbcad478] tableam: bitmap table scan.
15349existin
15350-->
15351
15352      <para>
15353       Add <xref linkend="sql-create-access-method"/> command to create
15354       new table types (Andres Freund, Haribabu Kommi, Álvaro Herrera,
15355       Alexander Korotkov, Dmitry Dolgov)
15356      </para>
15357
15358      <para>
15359       This enables the development of new <link linkend="tableam">table
15360       access methods</link>, which can optimize storage for different
15361       use cases.  The existing <literal>heap</literal> access method
15362       remains the default.
15363      </para>
15364     </listitem>
15365
15366      <listitem>
15367<!--
15368Author: Tom Lane <tgl@sss.pgh.pa.us>
153692019-02-09 [1fb57af92] Create the infrastructure for planner support functions.
153702019-02-09 [a391ff3c3] Build out the planner support function infrastructure.
153712019-02-11 [74dfe58a5] Allow extensions to generate lossy index conditions.
15372-->
15373
15374       <para>
15375        Add <link linkend="xfunc-optimization">planner support
15376        function</link> interfaces to improve optimizer estimates,
15377        inlining, and indexing for functions (Tom Lane)
15378       </para>
15379
15380       <para>
15381        This allows extensions to create planner support functions that
15382        can provide function-specific selectivity, cost, and row-count
15383        estimates that can depend on the function's arguments.  Support
15384        functions can also supply simplified representations and index
15385        conditions, greatly expanding optimization possibilities.
15386       </para>
15387      </listitem>
15388
15389     <listitem>
15390<!--
15391Author: Tom Lane <tgl@sss.pgh.pa.us>
153922019-03-12 [a6417078c] Create a script that can renumber manually-assigned OIDs
153932019-03-12 [3aa0395d4] Remove remaining hard-wired OID references in the initia
15394-->
15395
15396      <para>
15397       Simplify renumbering manually-assigned OIDs, and establish a new
15398       project policy for management of such OIDs (John Naylor, Tom Lane)
15399      </para>
15400
15401      <para>
15402       Patches that manually assign OIDs for new built-in objects (such as
15403       new functions) should now randomly choose OIDs in the range
15404       8000&mdash;9999.  At the end of a development cycle, the OIDs used
15405       by committed patches will be renumbered down to lower numbers,
15406       currently somewhere in the 4<replaceable>xxx</replaceable> range,
15407       using the new <link
15408       linkend="system-catalog-oid-assignment"><command>renumber_oids.pl</command></link>
15409       script.  This approach should greatly reduce the odds of OID
15410       collisions between different in-process patches.
15411      </para>
15412
15413      <para>
15414       While there is no specific policy reserving any OIDs for external
15415       use, it is recommended that forks and other projects needing
15416       private manually-assigned OIDs use numbers in the high
15417       7<replaceable>xxx</replaceable> range.  This will avoid conflicts
15418       with recently-merged patches, and it should be a long time before
15419       the core project reaches that range.
15420      </para>
15421     </listitem>
15422
15423     <listitem>
15424<!--
15425Author: Andrew Dunstan <andrew@dunslane.net>
154262018-10-02 [a33245a85] Don't build static libraries on Cygwin
15427-->
15428
15429      <para>
15430       Build <productname>Cygwin</productname> binaries using dynamic
15431       instead of static libraries (Marco Atzeri)
15432      </para>
15433     </listitem>
15434
15435     <listitem>
15436<!--
15437Author: Michael Paquier <michael@paquier.xyz>
154382019-01-01 [1707a0d2a] Remove configure switch - -disable-strong-random
15439-->
15440
15441      <para>
15442       Remove <application>configure</application> switch
15443       <option>--disable-strong-random</option> (Michaël Paquier)
15444      </para>
15445
15446      <para>
15447       A strong random-number source is now required.
15448      </para>
15449     </listitem>
15450
15451     <listitem>
15452<!--
15453Author: Tom Lane <tgl@sss.pgh.pa.us>
154542018-09-26 [96bf88d52] Always use our own versions of *printf().
154552018-09-26 [26e9d4d4e] Convert elog.c's useful_strerror() into a globally-used
154562018-09-26 [758ce9b77] Incorporate strerror_r() into src/port/snprintf.c, too.
154572018-09-26 [d6c55de1f] Implement %m in src/port/snprintf.c, and teach elog.c to
15458-->
15459
15460      <para>
15461       <function>printf</function>-family functions, as well
15462       as <function>strerror</function>
15463       and <function>strerror_r</function>, now behave uniformly across
15464       platforms within Postgres code (Tom Lane)
15465      </para>
15466
15467      <para>
15468       Notably, <function>printf</function>
15469       understands <literal>%m</literal> everywhere; on
15470       Windows, <function>strerror</function> copes with Winsock error
15471       codes (it used to do so in backend but not frontend code);
15472       and <function>strerror_r</function> always follows the GNU return
15473       convention.
15474      </para>
15475     </listitem>
15476
15477     <listitem>
15478<!--
15479Author: Andres Freund <andres@anarazel.de>
154802018-08-23 [d9dd406fe] Require C99 (and thus MSCV 2013 upwards).
15481-->
15482
15483      <para>
15484       Require a C99-compliant compiler, and <acronym>MSVC</acronym>
15485       2013 or later on <productname>Windows</productname> (Andres Freund)
15486      </para>
15487     </listitem>
15488
15489     <listitem>
15490<!--
15491Author: Peter Eisentraut <peter@eisentraut.org>
154922019-01-11 [96b8b8b6f] Create INSTALL file using Pandoc
154932019-03-27 [2488ea7a9] Use Pandoc also for plain-text documentation output
15494-->
15495
15496      <para>
15497       Use <application>pandoc</application>,
15498       not <application>lynx</application>, for generating plain-text
15499       documentation output files (Peter Eisentraut)
15500      </para>
15501
15502      <para>
15503       This affects only the <filename>INSTALL</filename> file generated
15504       during <literal>make dist</literal> and the seldom-used
15505       plain-text <filename>postgres.txt</filename> output file.
15506       Pandoc produces better output than lynx and avoids some
15507       locale/encoding issues.  Pandoc version 1.13 or later is required.
15508      </para>
15509     </listitem>
15510
15511     <listitem>
15512<!--
15513Author: Peter Eisentraut <peter@eisentraut.org>
155142019-03-27 [ea55aec0a] doc: Add some images
15515-->
15516
15517      <para>
15518       Support use of images in the <productname>PostgreSQL</productname>
15519       documentation (Jürgen Purtz)
15520      </para>
15521     </listitem>
15522
15523    </itemizedlist>
15524
15525   </sect3>
15526
15527   <sect3>
15528    <title>Additional Modules</title>
15529
15530    <itemizedlist>
15531
15532     <listitem>
15533<!--
15534Author: Etsuro Fujita <efujita@postgresql.org>
155352019-04-02 [ffab494a4] postgres_fdw: Perform the (ORDERED, NULL) upperrel opera
15536Author: Etsuro Fujita <efujita@postgresql.org>
155372019-04-02 [d50d172e5] postgres_fdw: Perform the (FINAL, NULL) upperrel operati
15538-->
15539
15540      <para>
15541       Allow <literal>ORDER BY</literal> sorts
15542       and <literal>LIMIT</literal> clauses to be pushed
15543       to <xref linkend="postgres-fdw"/> foreign servers in more
15544       cases (Etsuro Fujita)
15545      </para>
15546     </listitem>
15547
15548     <listitem>
15549<!--
15550Author: Etsuro Fujita <efujita@postgresql.org>
155512018-12-04 [f8f6e4467] postgres_fdw: Improve cost and size estimation for aggre
15552Author: Etsuro Fujita <efujita@postgresql.org>
155532019-01-24 [fd1afdbaf] postgres_fdw: Account for tlist eval costs in estimate_p
15554Author: Etsuro Fujita <efujita@postgresql.org>
155552019-05-09 [edbcbe277] postgres_fdw: Fix cost estimation for aggregate pushdown
15556-->
15557
15558      <para>
15559       Improve optimizer cost accounting for
15560       <application>postgres_fdw</application> queries (Etsuro Fujita)
15561      </para>
15562     </listitem>
15563
15564     <listitem>
15565<!--
15566Author: Jeff Davis <jdavis@postgresql.org>
155672018-07-08 [a45adc747] Fix WITH CHECK OPTION on views referencing postgres_fdw
15568-->
15569
15570      <para>
15571       Properly honor <literal>WITH CHECK OPTION</literal> on views
15572       that reference <application>postgres_fdw</application> tables
15573       (Etsuro Fujita)
15574      </para>
15575
15576      <para>
15577       While <literal>CHECK OPTION</literal>s on
15578       <application>postgres_fdw</application> tables are ignored (because
15579       the reference is foreign), views on such tables are considered
15580       local, so this change enforces <literal>CHECK OPTION</literal>s
15581       on them.  Previously, only <command>INSERT</command>s and
15582       <command>UPDATE</command>s with <literal>RETURNING</literal>
15583       clauses that returned <literal>CHECK OPTION</literal> values
15584       were validated.
15585      </para>
15586     </listitem>
15587
15588     <listitem>
15589<!--
15590Author: Amit Kapila <akapila@postgresql.org>
155912019-01-11 [43cbedab8] Extend pg_stat_statements_reset to reset statistics spec
15592-->
15593
15594      <para>
15595       Allow <link
15596       linkend="pgstatstatements"><function>pg_stat_statements_reset()</function></link>
15597       to be more granular (Haribabu Kommi, Amit Kapila)
15598      </para>
15599
15600      <para>
15601       The function now allows reset of statistics for specific databases,
15602       users, and queries.
15603      </para>
15604     </listitem>
15605
15606     <listitem>
15607<!--
15608Author: Andrew Dunstan <andrew@dunslane.net>
156092018-07-31 [2d36a5e9d] Provide a log_level setting for auto_explain
15610-->
15611
15612      <para>
15613       Allow control of the <xref linkend="auto-explain"/> log level
15614       (Tom Dunstan, Andrew Dunstan)
15615      </para>
15616
15617      <para>
15618       The default is <literal>LOG</literal>.
15619      </para>
15620     </listitem>
15621
15622     <listitem>
15623<!--
15624Author: Michael Paquier <michael@paquier.xyz>
156252019-01-10 [e1c1d5444] Update unaccent rules with release 34 of CLDR for Latin-
15626-->
15627
15628      <para>
15629       Update <xref linkend="unaccent"/> rules with new
15630       punctuation and symbols (Hugh Ranalli, Michaël Paquier)
15631      </para>
15632     </listitem>
15633
15634     <listitem>
15635<!--
15636Author: Thomas Munro <tmunro@postgresql.org>
156372019-02-01 [456e3718e] Add combining characters to unaccent.rules.
15638-->
15639
15640      <para>
15641       Allow <application>unaccent</application> to handle some accents
15642       encoded as combining characters (Hugh Ranalli)
15643      </para>
15644     </listitem>
15645
15646     <listitem>
15647<!--
15648Author: Thomas Munro <tmunro@postgresql.org>
156492018-09-02 [5e8d670c3] Add Greek characters to unaccent.rules.
15650-->
15651
15652      <para>
15653       Allow <application>unaccent</application> to remove accents from
15654       Greek characters (Tasos Maschalidis)
15655      </para>
15656     </listitem>
15657
15658     <listitem>
15659<!--
15660Author: Peter Geoghegan <pg@bowt.ie>
156612019-03-20 [c1afd175b] Allow amcheck to re-find tuples using new search.
15662-->
15663
15664      <para>
15665       Add a parameter to
15666       <xref linkend="amcheck"/>'s <function>bt_index_parent_check()</function>
15667       function to check each index tuple from the root of the tree
15668       (Peter Geoghegan)
15669      </para>
15670     </listitem>
15671
15672     <listitem>
15673<!--
15674Author: Michael Paquier <michael@paquier.xyz>
156752018-08-28 [1aaf532de] Rework option set of oid2name
15676Author: Michael Paquier <michael@paquier.xyz>
156772018-08-28 [bfea331a5] Rework option set of vacuumlo
15678-->
15679
15680      <para>
15681       Improve <xref linkend="oid2name"/> and <xref linkend="vacuumlo"/>
15682       option handling to match other commands (Tatsuro Yamada)
15683      </para>
15684     </listitem>
15685
15686    </itemizedlist>
15687
15688   </sect3>
15689
15690  </sect2>
15691
15692  <sect2 id="release-12-acknowledgements">
15693   <title>Acknowledgments</title>
15694
15695   <para>
15696    The following individuals (in alphabetical order) have contributed to this
15697    release as patch authors, committers, reviewers, testers, or reporters of
15698    issues.
15699   </para>
15700
15701   <simplelist>
15702    <member>Abhijit Menon-Sen</member>
15703    <member>Achilleas Mantzios</member>
15704    <member>Adam Berlin</member>
15705    <member>Adam Bielanski</member>
15706    <member>Aditya Toshniwal</member>
15707    <member>Adrien Nayrat</member>
15708    <member>Alan Jackson</member>
15709    <member>Albert Schabhuetl</member>
15710    <member>Aleksander Alekseev</member>
15711    <member>Alex Aktsipetrov</member>
15712    <member>Alex Kliukin</member>
15713    <member>Alex Macy</member>
15714    <member>Alexander Korotkov</member>
15715    <member>Alexander Kukushkin</member>
15716    <member>Alexander Kuzmenkov</member>
15717    <member>Alexander Lakhin</member>
15718    <member>Alexandra Ryzhevich</member>
15719    <member>Alexey Bashtanov</member>
15720    <member>Alexey Ermakov</member>
15721    <member>Alexey Kondratov</member>
15722    <member>Alexey Kryuchkov</member>
15723    <member>Alexey Stepanov</member>
15724    <member>Allison Kaptur</member>
15725    <member>Álvaro Herrera</member>
15726    <member>Alyssa Ross</member>
15727    <member>Amit Kapila</member>
15728    <member>Amit Khandekar</member>
15729    <member>Amit Langote</member>
15730    <member>Amul Sul</member>
15731    <member>Anastasia Lubennikova</member>
15732    <member>André Hänsel</member>
15733    <member>Andrea Gelmini</member>
15734    <member>Andreas Joseph Krogh</member>
15735    <member>Andreas Karlsson</member>
15736    <member>Andreas Kunert</member>
15737    <member>Andreas Scherbaum</member>
15738    <member>Andreas Seltenreich</member>
15739    <member>Andrei Yahorau</member>
15740    <member>Andres Freund</member>
15741    <member>Andrew Dunstan</member>
15742    <member>Andrew Fletcher</member>
15743    <member>Andrew Gierth</member>
15744    <member>Andrew Krasichkov</member>
15745    <member>Andrey Borodin</member>
15746    <member>Andrey Klychkov</member>
15747    <member>Andrey Lepikhov</member>
15748    <member>Andy Abelisto</member>
15749    <member>Anthony Greene</member>
15750    <member>Anthony Skorski</member>
15751    <member>Antonin Houska</member>
15752    <member>Arne Roland</member>
15753    <member>Arseny Sher</member>
15754    <member>Arthur Zakirov</member>
15755    <member>Ash Marath</member>
15756    <member>Ashutosh Bapat</member>
15757    <member>Ashutosh Sharma</member>
15758    <member>Ashwin Agrawal</member>
15759    <member>Aya Iwata</member>
15760    <member>Bartosz Polnik</member>
15761    <member>Basil Bourque</member>
15762    <member>Bernd Helmle</member>
15763    <member>Brad DeJong</member>
15764    <member>Brigitte Blanc-Lafay</member>
15765    <member>Bruce Klein</member>
15766    <member>Bruce Momjian</member>
15767    <member>Bruno Wolff</member>
15768    <member>Chapman Flack</member>
15769    <member>Chen Huajun</member>
15770    <member>Chris Travers</member>
15771    <member>Chris Wilson</member>
15772    <member>Christian Hofstaedtler</member>
15773    <member>Christoph Berg</member>
15774    <member>Christoph Moench-Tegeder</member>
15775    <member>Clemens Ladisch</member>
15776    <member>Colm McHugh</member>
15777    <member>Corey Huinker</member>
15778    <member>Craig Ringer</member>
15779    <member>Dagfinn Ilmari Mannsåker</member>
15780    <member>Daisuke Higuchi</member>
15781    <member>Daniel Fiori</member>
15782    <member>Daniel Gustafsson</member>
15783    <member>Daniel Vérité</member>
15784    <member>Daniel Westermann</member>
15785    <member>Daniel Wilches</member>
15786    <member>Darafei Praliaskouski</member>
15787    <member>Daryl Waycott</member>
15788    <member>Dave Cramer</member>
15789    <member>David Binderman</member>
15790    <member>David Fetter</member>
15791    <member>David G. Johnston</member>
15792    <member>David Rowley</member>
15793    <member>David Steele</member>
15794    <member>Davy Machado</member>
15795    <member>Dean Rasheed</member>
15796    <member>Derek Hans</member>
15797    <member>Derek Nelson</member>
15798    <member>Devrim Gündüz</member>
15799    <member>Dian Fay</member>
15800    <member>Didier Gautheron</member>
15801    <member>Dilip Kumar</member>
15802    <member>Dmitry Dolgov</member>
15803    <member>Dmitry Marakasov</member>
15804    <member>Dmitry Molotkov</member>
15805    <member>Dmitry Shalashov</member>
15806    <member>Don Seiler</member>
15807    <member>Donald Dong</member>
15808    <member>Doug Rady</member>
15809    <member>Edmund Horner</member>
15810    <member>Eduards Bezverhijs</member>
15811    <member>Elvis Pranskevichus</member>
15812    <member>Emanuel Araújo</member>
15813    <member>Emre Hasegeli</member>
15814    <member>Eric Cyr</member>
15815    <member>Erik Rijkers</member>
15816    <member>Ertugrul Kahveci</member>
15817    <member>Etsuro Fujita</member>
15818    <member>Eugen Konkov</member>
15819    <member>Euler Taveira</member>
15820    <member>Fabien Coelho</member>
15821    <member>Fabrízio de Royes Mello</member>
15822    <member>Feike Steenbergen</member>
15823    <member>Filip Rembialkowski</member>
15824    <member>Gaby Schilders</member>
15825    <member>Geert Lobbestael</member>
15826    <member>George Tarasov</member>
15827    <member>Georgios Kokolatos</member>
15828    <member>Gianni Ciolli</member>
15829    <member>Gilles Darold</member>
15830    <member>Greg Stark</member>
15831    <member>Grigory Smolkin</member>
15832    <member>Guillaume Lelarge</member>
15833    <member>Gunnlaugur Thor Briem</member>
15834    <member>Gurjeet Singh</member>
15835    <member>Hadi Moshayedi</member>
15836    <member>Hailong Li</member>
15837    <member>Hans Buschmann</member>
15838    <member>Haribabu Kommi</member>
15839    <member>Haruka Takatsuka</member>
15840    <member>Hayato Kuroda</member>
15841    <member>Heikki Linnakangas</member>
15842    <member>Hironobu Suzuki</member>
15843    <member>Hubert Lubaczewski</member>
15844    <member>Hugh Ranalli</member>
15845    <member>Ian Barwick</member>
15846    <member>Ibrar Ahmed</member>
15847    <member>Ildar Musin</member>
15848    <member>Insung Moon</member>
15849    <member>Ioseph Kim</member>
15850    <member>Isaac Morland</member>
15851    <member>Ivan Panchenko</member>
15852    <member>Jack Kelly</member>
15853    <member>Jacob Champion</member>
15854    <member>Jaime Casanova</member>
15855    <member>Jakob Egger</member>
15856    <member>Jakub Glapa</member>
15857    <member>Jakub Janecek</member>
15858    <member>James Coleman</member>
15859    <member>James Inform</member>
15860    <member>James Robinson</member>
15861    <member>James Sewell</member>
15862    <member>James Tomson</member>
15863    <member>Jan Chochol</member>
15864    <member>Jaroslav Sivy</member>
15865    <member>Jean-Christophe Arnu</member>
15866    <member>Jean-Marc Voillequin</member>
15867    <member>Jean-Pierre Pelletier</member>
15868    <member>Jeevan Chalke</member>
15869    <member>Jeevan Ladhe</member>
15870    <member>Jeff Davis</member>
15871    <member>Jeff Janes</member>
15872    <member>Jeremy Evans</member>
15873    <member>Jeremy Schneider</member>
15874    <member>Jeremy Smith</member>
15875    <member>Jerry Jelinek</member>
15876    <member>Jesper Pedersen</member>
15877    <member>Jianing Yang</member>
15878    <member>Jie Zhang</member>
15879    <member>Jim Nasby</member>
15880    <member>Jimmy Yih</member>
15881    <member>Joe Conway</member>
15882    <member>Joe Wildish</member>
15883    <member>Joerg Sonnenberger</member>
15884    <member>John Klann</member>
15885    <member>John Naylor</member>
15886    <member>Jonah Harris</member>
15887    <member>Jonathan S. Katz</member>
15888    <member>Jorge Gustavo Rocha</member>
15889    <member>José Arthur Benetasso Villanova</member>
15890    <member>Joshua D. Drake</member>
15891    <member>Juan José Santamaría Flecha</member>
15892    <member>Julian Hsiao</member>
15893    <member>Julian Markwort</member>
15894    <member>Julian Schauder</member>
15895    <member>Julien Rouhaud</member>
15896    <member>Jürgen Purtz</member>
15897    <member>Jürgen Strobel</member>
15898    <member>Justin Pryzby</member>
15899    <member>Kaiting Chen</member>
15900    <member>Karen Huddleston</member>
15901    <member>Karl Czajkowski</member>
15902    <member>Karl O. Pinc</member>
15903    <member>Keiichi Hirobe</member>
15904    <member>Keith Fiske</member>
15905    <member>Ken Tanzer</member>
15906    <member>Kenji Uno</member>
15907    <member>Kevin Grittner</member>
15908    <member>Kevin Hale Boyes</member>
15909    <member>Kieran McCusker</member>
15910    <member>Kirk Jamison</member>
15911    <member>Kohei KaiGai</member>
15912    <member>Konstantin Knizhnik</member>
15913    <member>Konstantin Kuznetsov</member>
15914    <member>Kristjan Tammekivi</member>
15915    <member>Kuntal Ghosh</member>
15916    <member>Kyle Samson</member>
15917    <member>Kyotaro Horiguchi</member>
15918    <member>Lætitia Avrot</member>
15919    <member>Lars Kanis</member>
15920    <member>Laurenz Albe</member>
15921    <member>Lim Myungkyu</member>
15922    <member>Liu Huailing</member>
15923    <member>Liudmila Mantrova</member>
15924    <member>Lloyd Albin</member>
15925    <member>Luca Ferrari</member>
15926    <member>Luis M. Carril</member>
15927    <member>Lukas Eder</member>
15928    <member>Lukas Fittl</member>
15929    <member>Madelaine Thibaut</member>
15930    <member>Madeleine Thompson</member>
15931    <member>Magnus Hagander</member>
15932    <member>Mahendra Singh</member>
15933    <member>Mai Peng</member>
15934    <member>Maksim Milyutin</member>
15935    <member>Maksym Boguk</member>
15936    <member>Malthe Borch</member>
15937    <member>Manuel Rigger</member>
15938    <member>Marco Atzeri</member>
15939    <member>Marco Slot</member>
15940    <member>Marina Polyakova</member>
15941    <member>Mario De Frutos Dieguez</member>
15942    <member>Marius Timmer</member>
15943    <member>Mark Chambers</member>
15944    <member>Mark Dilger</member>
15945    <member>Marko Tiikkaja</member>
15946    <member>Markus Winand</member>
15947    <member>Martín Marqués</member>
15948    <member>Masahiko Sawada</member>
15949    <member>Masao Fujii</member>
15950    <member>Mateusz Guzik</member>
15951    <member>Mathias Brossard</member>
15952    <member>Matt Williams</member>
15953    <member>Matthias Otterbach</member>
15954    <member>Matvey Arye</member>
15955    <member>Melanie Plageman</member>
15956    <member>Mi Tar</member>
15957    <member>Michael Banck</member>
15958    <member>Michael Davidson</member>
15959    <member>Michael Meskes</member>
15960    <member>Michael Paquier</member>
15961    <member>Michael Vitale</member>
15962    <member>Michel Pelletier</member>
15963    <member>Mikalai Keida</member>
15964    <member>Mike Palmiotto</member>
15965    <member>Mithun Cy</member>
15966    <member>Morgan Owens</member>
15967    <member>Murat Kabilov</member>
15968    <member>Nathan Bossart</member>
15969    <member>Nawaz Ahmed</member>
15970    <member>Neeraj Kumar</member>
15971    <member>Nick Barnes</member>
15972    <member>Nico Williams</member>
15973    <member>Nikita Glukhov</member>
15974    <member>Nikolay Shaplov</member>
15975    <member>Ning Yu</member>
15976    <member>Nishant Fnu</member>
15977    <member>Noah Misch</member>
15978    <member>Norbert Benkocs</member>
15979    <member>Noriyoshi Shinoda</member>
15980    <member>Oleg Bartunov</member>
15981    <member>Oleg Samoilov</member>
15982    <member>Oleksii Kliukin</member>
15983    <member>Ondrej Bouda</member>
15984    <member>Oskari Saarenmaa</member>
15985    <member>Pan Bian</member>
15986    <member>Patrick Francelle</member>
15987    <member>Patrick McHardy</member>
15988    <member>Paul A. Jungwirth</member>
15989    <member>Paul Bonaud</member>
15990    <member>Paul Guo</member>
15991    <member>Paul Martinez</member>
15992    <member>Paul Ramsey</member>
15993    <member>Paul Schaap</member>
15994    <member>Paul van der Linden</member>
15995    <member>Pavan Deolasee</member>
15996    <member>Pavel Oskin</member>
15997    <member>Pavel Raiskup</member>
15998    <member>Pavel Stehule</member>
15999    <member>Peifeng Qiu</member>
16000    <member>Peter Billen</member>
16001    <member>Peter Eisentraut</member>
16002    <member>Peter Geoghegan</member>
16003    <member>Peter Neave</member>
16004    <member>Petr Fedorov</member>
16005    <member>Petr Jelínek</member>
16006    <member>Petr Slavov</member>
16007    <member>Petru-Florin Mihancea</member>
16008    <member>Phil Bayer</member>
16009    <member>Phil Florent</member>
16010    <member>Philip Dubé</member>
16011    <member>Pierre Ducroquet</member>
16012    <member>Piotr Gabriel Kosinski</member>
16013    <member>Piotr Stefaniak</member>
16014    <member>Piotr Wlodarczyk</member>
16015    <member>Prabhat Sahu</member>
16016    <member>Quentin Rameau</member>
16017    <member>Rafael Castro</member>
16018    <member>Rafia Sabih</member>
16019    <member>Rahila Syed</member>
16020    <member>Rajkumar Raghuwanshi</member>
16021    <member>Rares Salcudean</member>
16022    <member>Raúl Marín Rodríguez</member>
16023    <member>Regina Obe</member>
16024    <member>Renaud Navarro</member>
16025    <member>Richard Guo</member>
16026    <member>Rick Otten</member>
16027    <member>Rikard Falkeborn</member>
16028    <member>RK Korlapati</member>
16029    <member>Robbie Harwood</member>
16030    <member>Robert Haas</member>
16031    <member>Robert Treat</member>
16032    <member>Robert Vollmert</member>
16033    <member>Roger Curley</member>
16034    <member>Roman Zharkov</member>
16035    <member>Ronan Dunklau</member>
16036    <member>Rui Hai Jiang</member>
16037    <member>Rushabh Lathia</member>
16038    <member>Ryan Lambert</member>
16039    <member>Ryo Matsumura</member>
16040    <member>Ryohei Nagaura</member>
16041    <member>Ryohei Takahashi</member>
16042    <member>Samuel Williams</member>
16043    <member>Sand Stone</member>
16044    <member>Sanyo Capobiango</member>
16045    <member>Satoru Koizumi</member>
16046    <member>Sean Johnston</member>
16047    <member>Serge Latyntsev</member>
16048    <member>Sergei Kornilov</member>
16049    <member>Sergey Pashkov</member>
16050    <member>Sergio Conde Gómez</member>
16051    <member>Shawn Debnath</member>
16052    <member>Shay Rojansky</member>
16053    <member>Sho Kato</member>
16054    <member>Shohei Mochizuki</member>
16055    <member>Shouyu Luo</member>
16056    <member>Simon Riggs</member>
16057    <member>Sivasubramanian Ramasubramanian</member>
16058    <member>Slawomir Chodnicki</member>
16059    <member>Stas Kelvish</member>
16060    <member>Stefan Kadow</member>
16061    <member>Stepan Yankevych</member>
16062    <member>Stephen Amell</member>
16063    <member>Stephen Frost</member>
16064    <member>Steve Rogerson</member>
16065    <member>Steve Singer</member>
16066    <member>Steven Winfield</member>
16067    <member>Surafel Temesgen</member>
16068    <member>Suraj Kharage</member>
16069    <member>Suresh Kumar R</member>
16070    <member>Takayuki Tsunakawa</member>
16071    <member>Takeshi Ideriha</member>
16072    <member>Takuma Hoshiai</member>
16073    <member>Tasos Maschalidis</member>
16074    <member>Tatsuo Ishii</member>
16075    <member>Tatsuro Yamada</member>
16076    <member>Teodor Sigaev</member>
16077    <member>Thom Brown</member>
16078    <member>Thomas Munro</member>
16079    <member>Thomas Poty</member>
16080    <member>Tillmann Schulz</member>
16081    <member>Tim Möhlmann</member>
16082    <member>Timur Birsh</member>
16083    <member>Tobias Bussmann</member>
16084    <member>Tom Cassidy</member>
16085    <member>Tom Dunstan</member>
16086    <member>Tom Gottfried</member>
16087    <member>Tom Lane</member>
16088    <member>Tomas Vondra</member>
16089    <member>Tushar Ahuja</member>
16090    <member>Ulf Adams</member>
16091    <member>Vaishnavi Prabakaran</member>
16092    <member>Victor Petrovykh</member>
16093    <member>Victor Wagner</member>
16094    <member>Victor Yegorov</member>
16095    <member>Vijaykumar Jain</member>
16096    <member>Vik Fearing</member>
16097    <member>Vlad Sterzhanov</member>
16098    <member>Vladimir Baranoff</member>
16099    <member>Vladimir Kriukov</member>
16100    <member>Wu Fei</member>
16101    <member>Yaroslav Schekin</member>
16102    <member>Yi Huang</member>
16103    <member>Yoshikazu Imai</member>
16104    <member>Yugo Nagata</member>
16105    <member>Yulian Khodorkovskiy</member>
16106    <member>Yuming Wang</member>
16107    <member>YunQiang Su</member>
16108    <member>Yuri Kurenkov</member>
16109    <member>Yusuke Egashira</member>
16110    <member>Yuzuko Hosoya</member>
16111    <member>Zhou Digoal</member>
16112   </simplelist>
16113  </sect2>
16114
16115 </sect1>
16116