]> granicus.if.org Git - postgresql/blob - doc/src/sgml/release-9.3.sgml
Release notes for 9.3.5, 9.2.9, 9.1.14, 9.0.18, 8.4.22.
[postgresql] / doc / src / sgml / release-9.3.sgml
1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
3
4  <sect1 id="release-9-3-5">
5   <title>Release 9.3.5</title>
6
7   <note>
8   <title>Release Date</title>
9   <simpara>2014-07-24</simpara>
10   </note>
11
12   <para>
13    This release contains a variety of fixes from 9.3.4.
14    For information about new features in the 9.3 major release, see
15    <xref linkend="release-9-3">.
16   </para>
17
18   <sect2>
19    <title>Migration to Version 9.3.5</title>
20
21    <para>
22     A dump/restore is not required for those running 9.3.X.
23    </para>
24
25    <para>
26     However, this release corrects a logic error
27     in <application>pg_upgrade</>, as well as an index corruption problem in
28     some GiST indexes.  See the first two changelog entries below to find out
29     whether your installation has been affected and what steps you should take
30     if so.
31    </para>
32
33    <para>
34     Also, if you are upgrading from a version earlier than 9.3.4,
35     see <xref linkend="release-9-3-4">.
36    </para>
37
38   </sect2>
39
40   <sect2>
41    <title>Changes</title>
42
43    <itemizedlist>
44
45 <!--
46 Author: Bruce Momjian <bruce@momjian.us>
47 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
48 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
49 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
50 -->
51
52     <listitem>
53      <para>
54       In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
55       left behind by <application>initdb</> (Bruce Momjian)
56      </para>
57
58      <para>
59       If you used a pre-9.3.5 version of <application>pg_upgrade</> to
60       upgrade a database cluster to 9.3, it might have left behind a file
61       <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
62       there and will eventually cause problems in <command>VACUUM</>.
63       <emphasis>However, in common cases this file is actually valid and
64       must not be removed.</emphasis>
65       To determine whether your installation has this problem, run this
66       query as superuser, in any database of the cluster:
67 <programlisting>
68 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
69 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
70        NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
71        NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
72        EXISTS (SELECT * FROM list WHERE file != '0000')
73        AS file_0000_removal_required;
74 </programlisting>
75       If this query returns <literal>t</>, manually remove the file
76       <filename>$PGDATA/pg_multixact/offsets/0000</>.
77       Do nothing if the query returns <literal>f</>.
78      </para>
79     </listitem>
80
81 <!--
82 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
83 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
84 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
85 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
86 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
87 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
88 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
89 -->
90
91     <listitem>
92      <para>
93       Correctly initialize padding bytes in <filename>contrib/btree_gist</>
94       indexes on <type>bit</> columns (Heikki Linnakangas)
95      </para>
96
97      <para>
98       This error could result in incorrect query results due to values that
99       should compare equal not being seen as equal.
100       Users with GiST indexes on <type>bit</> or <type>bit varying</>
101       columns should <command>REINDEX</> those indexes after installing this
102       update.
103      </para>
104     </listitem>
105
106 <!--
107 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
108 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
109 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
110 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
111 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
112 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
113 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
114 -->
115
116     <listitem>
117      <para>
118       Protect against torn pages when deleting GIN list pages (Heikki
119       Linnakangas)
120      </para>
121
122      <para>
123       This fix prevents possible index corruption if a system crash occurs
124       while the page update is being written to disk.
125      </para>
126     </listitem>
127
128 <!--
129 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
130 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
131 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
132 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
133 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
134 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
135 -->
136
137     <listitem>
138      <para>
139       Don't clear the right-link of a GiST index page while replaying
140       updates from WAL (Heikki Linnakangas)
141      </para>
142
143      <para>
144       This error could lead to transiently wrong answers from GiST index
145       scans performed in Hot Standby.
146      </para>
147     </listitem>
148
149 <!--
150 Author: Tom Lane <tgl@sss.pgh.pa.us>
151 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
152 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
153 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
154 -->
155
156     <listitem>
157      <para>
158       Fix corner-case infinite loop during insertion into an SP-GiST text
159       index (Tom Lane)
160      </para>
161     </listitem>
162
163 <!--
164 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
165 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
166 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
167 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
168 -->
169
170     <listitem>
171      <para>
172       Fix incorrect answers from SP-GiST index searches
173       with <literal>-|-</literal> (range adjacency) operator
174       (Heikki Linnakangas)
175      </para>
176     </listitem>
177
178 <!--
179 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
180 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
181 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
182 -->
183
184     <listitem>
185      <para>
186       Fix wraparound handling for <filename>pg_multixact/members</>
187       (&Aacute;lvaro Herrera)
188      </para>
189     </listitem>
190
191 <!--
192 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
193 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
194 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
195 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
196 -->
197
198     <listitem>
199      <para>
200       Truncate <structname>pg_multixact</> during checkpoints, not
201       during <command>VACUUM</> (&Aacute;lvaro Herrera)
202      </para>
203
204      <para>
205       This change ensures that <structname>pg_multixact</> segments can't be
206       removed if they'd still be needed during WAL replay after a crash.
207      </para>
208     </listitem>
209
210 <!--
211 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
212 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
213 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
214 -->
215
216     <listitem>
217      <para>
218       Fix possible inconsistency of all-visible flags after WAL recovery
219       (Heikki Linnakangas)
220      </para>
221     </listitem>
222
223 <!--
224 Author: Tom Lane <tgl@sss.pgh.pa.us>
225 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
226 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
227 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
228 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
229 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
230 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
231 -->
232
233     <listitem>
234      <para>
235       Fix possibly-incorrect cache invalidation during nested calls
236       to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
237      </para>
238     </listitem>
239
240 <!--
241 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
242 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
243 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
244 -->
245
246     <listitem>
247      <para>
248       Fix race condition when updating a tuple concurrently locked by
249       another process (Andres Freund, &Aacute;lvaro Herrera)
250      </para>
251     </listitem>
252
253 <!--
254 Author: Tom Lane <tgl@sss.pgh.pa.us>
255 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
256 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
257 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
258 -->
259
260     <listitem>
261      <para>
262       Fix <quote>could not find pathkey item to sort</> planner failures
263       with <literal>UNION ALL</> over subqueries reading from tables with
264       inheritance children (Tom Lane)
265      </para>
266     </listitem>
267
268 <!--
269 Author: Tom Lane <tgl@sss.pgh.pa.us>
270 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
271 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
272 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
273 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
274 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
275 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
276 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
277 -->
278
279     <listitem>
280      <para>
281       Don't assume a subquery's output is unique if there's a set-returning
282       function in its targetlist (David Rowley)
283      </para>
284
285      <para>
286       This oversight could lead to misoptimization of constructs
287       like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
288       BY y)</literal>.
289      </para>
290     </listitem>
291
292 <!--
293 Author: Tom Lane <tgl@sss.pgh.pa.us>
294 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
295 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
296 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
297 -->
298
299     <listitem>
300      <para>
301       Improve planner to drop constant-NULL inputs
302       of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
303      </para>
304
305      <para>
306       This change fixes some cases where the more aggressive parameter
307       substitution done by 9.2 and later can lead to a worse plan than
308       older versions produced.
309      </para>
310     </listitem>
311
312 <!--
313 Author: Tom Lane <tgl@sss.pgh.pa.us>
314 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
315 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
316 -->
317
318     <listitem>
319      <para>
320       Ensure that the planner sees equivalent <literal>VARIADIC</> and
321       non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
322      </para>
323
324      <para>
325       This bug could for example result in failure to use expression indexes
326       involving variadic functions.  It might be necessary to re-create such
327       indexes, and/or re-create views including variadic function calls that
328       should match the indexes, for the fix to be effective for existing 9.3
329       installations.
330      </para>
331     </listitem>
332
333 <!--
334 Author: Tom Lane <tgl@sss.pgh.pa.us>
335 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
336 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
337 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
338 -->
339
340     <listitem>
341      <para>
342       Fix handling of nested <type>JSON</> objects
343       in <function>json_populate_recordset()</> and friends
344       (Michael Paquier, Tom Lane)
345      </para>
346
347      <para>
348       A nested <type>JSON</> object could result in previous fields of the
349       parent object not being shown in the output.
350      </para>
351     </listitem>
352
353 <!--
354 Author: Tom Lane <tgl@sss.pgh.pa.us>
355 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
356 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
357 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
358 -->
359
360     <listitem>
361      <para>
362       Fix identification of input type category in <function>to_json()</>
363       and friends (Tom Lane)
364      </para>
365
366      <para>
367       This is known to have led to inadequate quoting of <type>money</>
368       fields in the <type>JSON</> result, and there may have been wrong
369       results for other data types as well.
370      </para>
371     </listitem>
372
373 <!--
374 Author: Tom Lane <tgl@sss.pgh.pa.us>
375 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
376 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
377 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
378 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
379 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
380 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
381 -->
382
383     <listitem>
384      <para>
385       Fix failure to detoast fields in composite elements of structured
386       types (Tom Lane)
387      </para>
388
389      <para>
390       This corrects cases where TOAST pointers could be copied into other
391       tables without being dereferenced.  If the original data is later
392       deleted, it would lead to errors like <quote>missing chunk number 0
393       for toast value ...</> when the now-dangling pointer is used.
394      </para>
395     </listitem>
396
397 <!--
398 Author: Tom Lane <tgl@sss.pgh.pa.us>
399 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
400 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
401 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
402 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
403 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
404 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
405 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
406 -->
407
408     <listitem>
409      <para>
410       Fix <quote>record type has not been registered</> failures with
411       whole-row references to the output of Append plan nodes (Tom Lane)
412      </para>
413     </listitem>
414
415 <!--
416 Author: Tom Lane <tgl@sss.pgh.pa.us>
417 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
418 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
419 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
420 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
421 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
422 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
423 -->
424
425     <listitem>
426      <para>
427       Fix possible crash when invoking a user-defined function while
428       rewinding a cursor (Tom Lane)
429      </para>
430     </listitem>
431
432 <!--
433 Author: Tom Lane <tgl@sss.pgh.pa.us>
434 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
435 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
436 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
437 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
438 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
439 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
440 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
441 -->
442
443     <listitem>
444      <para>
445       Fix query-lifespan memory leak while evaluating the arguments for a
446       function in <literal>FROM</> (Tom Lane)
447      </para>
448     </listitem>
449
450 <!--
451 Author: Tom Lane <tgl@sss.pgh.pa.us>
452 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
453 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
454 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
455 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
456 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
457 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
458 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
459 -->
460
461     <listitem>
462      <para>
463       Fix session-lifespan memory leaks in regular-expression processing
464       (Tom Lane, Arthur O'Dwyer, Greg Stark)
465      </para>
466     </listitem>
467
468 <!--
469 Author: Tom Lane <tgl@sss.pgh.pa.us>
470 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
471 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
472 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
473 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
474 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
475 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
476 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
477 -->
478
479     <listitem>
480      <para>
481       Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
482      </para>
483     </listitem>
484
485 <!--
486 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
487 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
488 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
489 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
490 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
491 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
492 -->
493
494     <listitem>
495      <para>
496       Prevent foreign tables from being created with OIDS
497       when <xref linkend="guc-default-with-oids"> is true
498       (Etsuro Fujita)
499      </para>
500     </listitem>
501
502 <!--
503 Author: Andres Freund <andres@anarazel.de>
504 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
505 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
506 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
507 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
508 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
509 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
510 -->
511
512     <listitem>
513      <para>
514       Fix liveness checks for rows that were inserted in the current
515       transaction and then deleted by a now-rolled-back subtransaction
516       (Andres Freund)
517      </para>
518
519      <para>
520       This could cause problems (at least spurious warnings, and at worst an
521       infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
522       done later in the same transaction.
523      </para>
524     </listitem>
525
526 <!--
527 Author: Tom Lane <tgl@sss.pgh.pa.us>
528 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
529 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
530 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
531 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
532 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
533 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
534 -->
535
536     <listitem>
537      <para>
538       Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
539       during <command>PREPARE TRANSACTION</> (Andres Freund)
540      </para>
541
542      <para>
543       After the <command>PREPARE</>, the originating session is no longer in
544       a transaction, so it should not continue to display a transaction
545       start time.
546      </para>
547     </listitem>
548
549 <!--
550 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
551 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
552 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
553 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
554 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
555 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
556 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
557 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
558 -->
559
560     <listitem>
561      <para>
562       Fix <command>REASSIGN OWNED</> to not fail for text search objects
563       (&Aacute;lvaro Herrera)
564      </para>
565     </listitem>
566
567 <!--
568 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
569 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
570 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
571 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
572 -->
573
574     <listitem>
575      <para>
576       Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
577       going backwards during <command>VACUUM FULL</> (&Aacute;lvaro Herrera)
578      </para>
579     </listitem>
580
581 <!--
582 Author: Tom Lane <tgl@sss.pgh.pa.us>
583 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
584 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
585 -->
586
587     <listitem>
588      <para>
589       Reduce indentation in rule/view dumps to improve readability and avoid
590       excessive whitespace (Greg Stark, Tom Lane)
591      </para>
592
593      <para>
594       This change reduces the amount of indentation applied to nested
595       constructs, including some cases that the user probably doesn't think
596       of as nested, such as UNION lists.  Previously, deeply nested
597       constructs were printed with an amount of whitespace growing as
598       O(N^2), which created a performance problem and even risk of
599       out-of-memory failures.  Now the indentation is reduced modulo 40,
600       which is initially odd to look at but seems to preserve readability
601       better than simply limiting the indentation would do.
602       Redundant parenthesization of UNION lists has been reduced as well.
603      </para>
604     </listitem>
605
606 <!--
607 Author: Tom Lane <tgl@sss.pgh.pa.us>
608 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
609 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
610 -->
611
612     <listitem>
613      <para>
614       Fix dumping of rules/views when subsequent addition of a column has
615       resulted in multiple input columns matching a <literal>USING</>
616       specification (Tom Lane)
617      </para>
618     </listitem>
619
620 <!--
621 Author: Tom Lane <tgl@sss.pgh.pa.us>
622 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
623 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
624 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
625 -->
626
627     <listitem>
628      <para>
629       Repair view printing for some cases involving functions
630       in <literal>FROM</> that return a composite type containing dropped
631       columns (Tom Lane)
632      </para>
633     </listitem>
634
635 <!--
636 Author: Tom Lane <tgl@sss.pgh.pa.us>
637 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
638 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
639 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
640 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
641 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
642 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
643 -->
644
645     <listitem>
646      <para>
647       Block signals during postmaster startup (Tom Lane)
648      </para>
649
650      <para>
651       This ensures that the postmaster will properly clean up after itself
652       if, for example, it receives <systemitem>SIGINT</> while still
653       starting up.
654      </para>
655     </listitem>
656
657 <!--
658 Author: Tom Lane <tgl@sss.pgh.pa.us>
659 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
660 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
661 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
662 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
663 -->
664
665     <listitem>
666      <para>
667       Fix client host name lookup when processing <filename>pg_hba.conf</>
668       entries that specify host names instead of IP addresses (Tom Lane)
669      </para>
670
671      <para>
672       Ensure that reverse-DNS lookup failures are reported, instead of just
673       silently not matching such entries.  Also ensure that we make only
674       one reverse-DNS lookup attempt per connection, not one per host name
675       entry, which is what previously happened if the lookup attempts failed.
676      </para>
677     </listitem>
678
679 <!--
680 Author: Tom Lane <tgl@sss.pgh.pa.us>
681 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
682 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
683 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
684 -->
685
686     <listitem>
687      <para>
688       Allow the root user to use <literal>postgres -C variable</> and
689       <literal>postgres --describe-config</> (MauMau)
690      </para>
691
692      <para>
693       The prohibition on starting the server as root does not need to extend
694       to these operations, and relaxing it prevents failure
695       of <application>pg_ctl</> in some scenarios.
696      </para>
697     </listitem>
698
699 <!--
700 Author: Noah Misch <noah@leadboat.com>
701 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
702 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
703 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
704 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
705 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
706 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
707 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
708 -->
709
710     <listitem>
711      <para>
712       Secure Unix-domain sockets of temporary postmasters started during
713       <literal>make check</> (Noah Misch)
714      </para>
715
716      <para>
717       Any local user able to access the socket file could connect as the
718       server's bootstrap superuser, then proceed to execute arbitrary code as
719       the operating-system user running the test, as we previously noted in
720       CVE-2014-0067.  This change defends against that risk by placing the
721       server's socket in a temporary, mode 0700 subdirectory
722       of <filename>/tmp</>.  The hazard remains however on platforms where
723       Unix sockets are not supported, notably Windows, because then the
724       temporary postmaster must accept local TCP connections.
725      </para>
726
727      <para>
728       A useful side effect of this change is to simplify
729       <literal>make check</> testing in builds that
730       override <literal>DEFAULT_PGSOCKET_DIR</>.  Popular non-default values
731       like <filename>/var/run/postgresql</> are often not writable by the
732       build user, requiring workarounds that will no longer be necessary.
733      </para>
734     </listitem>
735
736 <!--
737 Author: Tom Lane <tgl@sss.pgh.pa.us>
738 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
739 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
740 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
741 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
742 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
743 -->
744
745     <listitem>
746      <para>
747       Fix tablespace creation WAL replay to work on Windows (MauMau)
748      </para>
749     </listitem>
750
751 <!--
752 Author: Bruce Momjian <bruce@momjian.us>
753 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
754 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
755 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
756 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
757 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
758 -->
759
760     <listitem>
761      <para>
762       Fix detection of socket creation failures on Windows (Bruce Momjian)
763      </para>
764     </listitem>
765
766 <!--
767 Author: Tom Lane <tgl@sss.pgh.pa.us>
768 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
769 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
770 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
771 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
772 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
773 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
774 -->
775
776     <listitem>
777      <para>
778       On Windows, allow new sessions to absorb values of PGC_BACKEND
779       parameters (such as <xref linkend="guc-log-connections">) from the
780       configuration file (Amit Kapila)
781      </para>
782
783      <para>
784       Previously, if such a parameter were changed in the file post-startup,
785       the change would have no effect.
786      </para>
787     </listitem>
788
789 <!--
790 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
791 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
792 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
793 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
794 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
795 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
796 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
797 -->
798
799     <listitem>
800      <para>
801       Properly quote executable path names on Windows (Nikhil Deshpande)
802      </para>
803
804      <para>
805       This oversight could cause <application>initdb</>
806       and <application>pg_upgrade</> to fail on Windows, if the installation
807       path contained both spaces and <literal>@</> signs.
808      </para>
809     </listitem>
810
811 <!--
812 Author: Tom Lane <tgl@sss.pgh.pa.us>
813 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
814 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
815 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
816 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
817 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
818 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
819 -->
820
821     <listitem>
822      <para>
823       Fix linking of <application>libpython</> on OS X (Tom Lane)
824      </para>
825
826      <para>
827       The method we previously used can fail with the Python library
828       supplied by Xcode 5.0 and later.
829      </para>
830     </listitem>
831
832 <!--
833 Author: Tom Lane <tgl@sss.pgh.pa.us>
834 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
835 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
836 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
837 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
838 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
839 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
840 -->
841
842     <listitem>
843      <para>
844       Avoid buffer bloat in <application>libpq</> when the server
845       consistently sends data faster than the client can absorb it
846       (Shin-ichi Morita, Tom Lane)
847      </para>
848
849      <para>
850       <application>libpq</> could be coerced into enlarging its input buffer
851       until it runs out of memory (which would be reported misleadingly
852       as <quote>lost synchronization with server</>).  Under ordinary
853       circumstances it's quite far-fetched that data could be continuously
854       transmitted more quickly than the <function>recv()</> loop can
855       absorb it, but this has been observed when the client is artificially
856       slowed by scheduler constraints.
857      </para>
858     </listitem>
859
860 <!--
861 Author: Magnus Hagander <magnus@hagander.net>
862 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
863 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
864 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
865 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
866 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
867 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
868 -->
869
870     <listitem>
871      <para>
872       Ensure that LDAP lookup attempts in <application>libpq</> time out as
873       intended (Laurenz Albe)
874      </para>
875     </listitem>
876
877 <!--
878 Author: Michael Meskes <meskes@postgresql.org>
879 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
880 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
881 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
882 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
883 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
884
885 Author: Michael Meskes <meskes@postgresql.org>
886 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
887 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
888 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
889 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
890 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
891 -->
892
893     <listitem>
894      <para>
895       Fix <application>ecpg</> to do the right thing when an array
896       of <type>char *</> is the target for a FETCH statement returning more
897       than one row, as well as some other array-handling fixes
898       (Ashutosh Bapat)
899      </para>
900     </listitem>
901
902 <!--
903 Author: Tom Lane <tgl@sss.pgh.pa.us>
904 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
905 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
906 -->
907
908     <listitem>
909      <para>
910       Fix <application>pg_dump</> to cope with a materialized view that
911       depends on a table's primary key (Tom Lane)
912      </para>
913
914      <para>
915       This occurs if the view's query relies on functional dependency to
916       abbreviate a <literal>GROUP BY</> list.  <application>pg_dump</> got
917       sufficiently confused that it dumped the materialized view as a
918       regular view.
919      </para>
920     </listitem>
921
922 <!--
923 Author: Tom Lane <tgl@sss.pgh.pa.us>
924 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
925 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
926 -->
927
928     <listitem>
929      <para>
930       Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
931       (Tom Lane)
932      </para>
933     </listitem>
934
935 <!--
936 Author: Tom Lane <tgl@sss.pgh.pa.us>
937 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
938 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
939 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
940 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
941 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
942 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
943 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
944 -->
945
946     <listitem>
947      <para>
948       Fix <application>pg_restore</>'s processing of old-style large object
949       comments (Tom Lane)
950      </para>
951
952      <para>
953       A direct-to-database restore from an archive file generated by a
954       pre-9.0 version of <application>pg_dump</> would usually fail if the
955       archive contained more than a few comments for large objects.
956      </para>
957     </listitem>
958
959 <!--
960 Author: Bruce Momjian <bruce@momjian.us>
961 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
962 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
963 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
964 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
965 -->
966
967     <listitem>
968      <para>
969       Fix <application>pg_upgrade</> for cases where the new server creates
970       a TOAST table but the old version did not (Bruce Momjian)
971      </para>
972
973      <para>
974       This rare situation would manifest as <quote>relation OID mismatch</>
975       errors.
976      </para>
977     </listitem>
978
979 <!--
980 Author: Bruce Momjian <bruce@momjian.us>
981 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
982 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
983 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
984
985 Author: Tom Lane <tgl@sss.pgh.pa.us>
986 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
987 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
988 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
989 -->
990
991     <listitem>
992      <para>
993       In <application>pg_upgrade</>,
994       preserve <structname>pg_database</>.<structfield>datminmxid</>
995       and <structname>pg_class</>.<structfield>relminmxid</> values from the
996       old cluster, or insert reasonable values when upgrading from pre-9.3;
997       also defend against unreasonable values in the core server
998       (Bruce Momjian, &Aacute;lvaro Herrera, Tom Lane)
999      </para>
1000
1001      <para>
1002       These changes prevent scenarios in which autovacuum might insist on
1003       scanning the entire cluster's contents immediately upon starting the
1004       new cluster, or in which tracking of unfrozen MXID values might be
1005       disabled completely.
1006      </para>
1007     </listitem>
1008
1009 <!--
1010 Author: Tom Lane <tgl@sss.pgh.pa.us>
1011 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
1012 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
1013 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
1014 -->
1015
1016     <listitem>
1017      <para>
1018       Prevent <filename>contrib/auto_explain</> from changing the output of
1019       a user's <command>EXPLAIN</> (Tom Lane)
1020      </para>
1021
1022      <para>
1023       If <filename>auto_explain</> is active, it could cause
1024       an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
1025       print timing information.
1026      </para>
1027     </listitem>
1028
1029 <!--
1030 Author: Joe Conway <mail@joeconway.com>
1031 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
1032 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
1033 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
1034 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
1035 -->
1036
1037     <listitem>
1038      <para>
1039       Fix query-lifespan memory leak in <filename>contrib/dblink</>
1040       (MauMau, Joe Conway)
1041      </para>
1042     </listitem>
1043
1044 <!--
1045 Author: Bruce Momjian <bruce@momjian.us>
1046 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
1047 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
1048 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
1049 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
1050 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
1051 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
1052 -->
1053
1054     <listitem>
1055      <para>
1056       In <filename>contrib/pgcrypto</> functions, ensure sensitive
1057       information is cleared from stack variables before returning
1058       (Marko Kreen)
1059      </para>
1060     </listitem>
1061
1062 <!--
1063 Author: Noah Misch <noah@leadboat.com>
1064 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
1065 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
1066 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
1067 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
1068 -->
1069
1070     <listitem>
1071      <para>
1072       Prevent use of already-freed memory in
1073       <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
1074       (Noah Misch)
1075      </para>
1076     </listitem>
1077
1078 <!--
1079 Author: Tom Lane <tgl@sss.pgh.pa.us>
1080 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
1081 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
1082 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
1083 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
1084 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
1085 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
1086 -->
1087
1088     <listitem>
1089      <para>
1090       In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
1091       library across calls (Tom Lane)
1092      </para>
1093
1094      <para>
1095       This improves the efficiency of UUID generation and reduces the amount
1096       of entropy drawn from <filename>/dev/urandom</>, on platforms that
1097       have that.
1098      </para>
1099     </listitem>
1100
1101 <!--
1102 Author: Tom Lane <tgl@sss.pgh.pa.us>
1103 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
1104 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
1105 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
1106 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
1107 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
1108 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
1109 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
1110 -->
1111
1112     <listitem>
1113      <para>
1114       Update time zone data files to <application>tzdata</> release 2014e
1115       for DST law changes in Crimea, Egypt, and Morocco.
1116      </para>
1117     </listitem>
1118
1119    </itemizedlist>
1120
1121   </sect2>
1122  </sect1>
1123
1124  <sect1 id="release-9-3-4">
1125   <title>Release 9.3.4</title>
1126
1127   <note>
1128   <title>Release Date</title>
1129   <simpara>2014-03-20</simpara>
1130   </note>
1131
1132   <para>
1133    This release contains a variety of fixes from 9.3.3.
1134    For information about new features in the 9.3 major release, see
1135    <xref linkend="release-9-3">.
1136   </para>
1137
1138   <sect2>
1139    <title>Migration to Version 9.3.4</title>
1140
1141    <para>
1142     A dump/restore is not required for those running 9.3.X.
1143    </para>
1144
1145    <para>
1146     However, the error fixed in the first changelog entry below could have
1147     resulted in corrupt data on standby servers.  It may be prudent to
1148     reinitialize standby servers from fresh base backups after installing
1149     this update.
1150    </para>
1151
1152    <para>
1153     Also, if you are upgrading from a version earlier than 9.3.3,
1154     see <xref linkend="release-9-3-3">.
1155    </para>
1156
1157   </sect2>
1158
1159   <sect2>
1160    <title>Changes</title>
1161
1162    <itemizedlist>
1163
1164 <!--
1165 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1166 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
1167 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
1168 -->
1169
1170     <listitem>
1171      <para>
1172       Fix WAL replay of locking an already-updated tuple (Andres Freund,
1173       &Aacute;lvaro Herrera)
1174      </para>
1175
1176      <para>
1177       This error caused updated rows to not be found by index scans, resulting
1178       in inconsistent query results depending on whether an index scan was
1179       used.  Subsequent processing could result in constraint violations,
1180       since the previously updated row would not be found by later index
1181       searches, thus possibly allowing conflicting rows to be inserted.
1182       Since this error is in WAL replay, it would only manifest during crash
1183       recovery or on standby servers.  The improperly-replayed case most
1184       commonly arises when a table row that is referenced by a foreign-key
1185       constraint is updated concurrently with creation of a referencing row.
1186      </para>
1187     </listitem>
1188
1189 <!--
1190 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1191 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
1192 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
1193 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
1194 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
1195 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
1196 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
1197 -->
1198
1199     <listitem>
1200      <para>
1201       Restore GIN metapages unconditionally to avoid torn-page risk
1202       (Heikki Linnakangas)
1203      </para>
1204
1205      <para>
1206       Although this oversight could theoretically result in a corrupted
1207       index, it is unlikely to have caused any problems in practice, since
1208       the active part of a GIN metapage is smaller than a standard 512-byte
1209       disk sector.
1210      </para>
1211     </listitem>
1212
1213 <!--
1214 Author: Tom Lane <tgl@sss.pgh.pa.us>
1215 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
1216 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
1217 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
1218 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
1219 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
1220 -->
1221
1222     <listitem>
1223      <para>
1224       Avoid race condition in checking transaction commit status during
1225       receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
1226      </para>
1227
1228      <para>
1229       This prevents a scenario wherein a sufficiently fast client might
1230       respond to a notification before database updates made by the
1231       notifier have become visible to the recipient.
1232      </para>
1233     </listitem>
1234
1235 <!--
1236 Author: Tom Lane <tgl@sss.pgh.pa.us>
1237 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
1238 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
1239 -->
1240
1241     <listitem>
1242      <para>
1243       Allow materialized views to be referenced in <command>UPDATE</>
1244       and <command>DELETE</> commands (Michael Paquier)
1245      </para>
1246
1247      <para>
1248       Previously such queries failed with a complaint about not being able
1249       to lock rows in the materialized view.
1250      </para>
1251     </listitem>
1252
1253 <!--
1254 Author: Tom Lane <tgl@sss.pgh.pa.us>
1255 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
1256 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
1257 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
1258 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
1259 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
1260 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
1261 -->
1262
1263     <listitem>
1264      <para>
1265       Allow regular-expression operators to be terminated early by query
1266       cancel requests (Tom Lane)
1267      </para>
1268
1269      <para>
1270       This prevents scenarios wherein a pathological regular expression
1271       could lock up a server process uninterruptably for a long time.
1272      </para>
1273     </listitem>
1274
1275 <!--
1276 Author: Tom Lane <tgl@sss.pgh.pa.us>
1277 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
1278 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
1279 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
1280 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
1281 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
1282 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
1283 -->
1284
1285     <listitem>
1286      <para>
1287       Remove incorrect code that tried to allow <literal>OVERLAPS</> with
1288       single-element row arguments (Joshua Yanovski)
1289      </para>
1290
1291      <para>
1292       This code never worked correctly, and since the case is neither
1293       specified by the SQL standard nor documented, it seemed better to
1294       remove it than fix it.
1295      </para>
1296     </listitem>
1297
1298 <!--
1299 Author: Tom Lane <tgl@sss.pgh.pa.us>
1300 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
1301 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
1302 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
1303 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
1304 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
1305 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
1306 -->
1307
1308     <listitem>
1309      <para>
1310       Avoid getting more than <literal>AccessShareLock</> when de-parsing a
1311       rule or view (Dean Rasheed)
1312      </para>
1313
1314      <para>
1315       This oversight resulted in <application>pg_dump</> unexpectedly
1316       acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
1317       the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
1318       commands in rules.  While usually harmless, that could interfere with
1319       concurrent transactions that tried to acquire, for example,
1320       <literal>ShareLock</> on those tables.
1321      </para>
1322     </listitem>
1323
1324 <!--
1325 Author: Tom Lane <tgl@sss.pgh.pa.us>
1326 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
1327 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
1328 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
1329 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
1330 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
1331 -->
1332
1333     <listitem>
1334      <para>
1335       Improve performance of index endpoint probes during planning (Tom Lane)
1336      </para>
1337
1338      <para>
1339       This change fixes a significant performance problem that occurred
1340       when there were many not-yet-committed rows at the end of the index,
1341       which is a common situation for indexes on sequentially-assigned
1342       values such as timestamps or sequence-generated identifiers.
1343      </para>
1344     </listitem>
1345
1346 <!--
1347 Author: Tom Lane <tgl@sss.pgh.pa.us>
1348 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
1349 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
1350 -->
1351
1352     <listitem>
1353      <para>
1354       Use non-default selectivity estimates for
1355       <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
1356       <literal><replaceable>value</> <replaceable>operator</> ANY
1357       (<replaceable>array</>)</literal>
1358       expressions when the righthand side is a stable expression (Tom Lane)
1359      </para>
1360     </listitem>
1361
1362 <!--
1363 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1364 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
1365 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
1366 -->
1367
1368     <listitem>
1369      <para>
1370       Remove the correct per-database statistics file during <command>DROP
1371       DATABASE</> (Tomas Vondra)
1372      </para>
1373
1374      <para>
1375       This fix prevents a permanent leak of statistics file space.
1376       Users who have done many <command>DROP DATABASE</> commands since
1377       upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
1378       statistics directory and delete statistics files that do not
1379       correspond to any existing database.  Please note
1380       that <filename>db_0.stat</> should not be removed.
1381      </para>
1382     </listitem>
1383
1384 <!--
1385 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1386 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
1387 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
1388 -->
1389
1390     <listitem>
1391      <para>
1392       Fix <application>walsender</> ping logic to avoid inappropriate
1393       disconnects under continuous load (Andres Freund, Heikki Linnakangas)
1394      </para>
1395
1396      <para>
1397       <application>walsender</> failed to send ping messages to the client
1398       if it was constantly busy sending WAL data; but it expected to see
1399       ping responses despite that, and would therefore disconnect
1400       once <xref linkend="guc-wal-sender-timeout"> elapsed.
1401      </para>
1402     </listitem>
1403
1404 <!--
1405 Author: Fujii Masao <fujii@postgresql.org>
1406 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
1407 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
1408 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
1409 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
1410 -->
1411
1412     <listitem>
1413      <para>
1414       Fix <application>walsender</>'s failure to shut down cleanly when client
1415       is <application>pg_receivexlog</> (Fujii Masao)
1416      </para>
1417     </listitem>
1418
1419 <!--
1420 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1421 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
1422 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
1423 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
1424 -->
1425
1426     <listitem>
1427      <para>
1428       Check WAL level and hot standby parameters correctly when doing crash
1429       recovery that will be followed by archive recovery (Heikki Linnakangas)
1430      </para>
1431     </listitem>
1432
1433 <!--
1434 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1435 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
1436 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
1437 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
1438 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
1439 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
1440 -->
1441
1442     <listitem>
1443      <para>
1444       Fix test to see if hot standby connections can be allowed immediately
1445       after a crash (Heikki Linnakangas)
1446      </para>
1447     </listitem>
1448
1449 <!--
1450 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1451 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
1452 -->
1453
1454     <listitem>
1455      <para>
1456       Add read-only <xref linkend="guc-data-checksums"> parameter to
1457       display whether page checksums are enabled (Heikki Linnakangas)
1458      </para>
1459
1460      <para>
1461       Without this parameter, determining the state of checksum
1462       processing was difficult.
1463      </para>
1464     </listitem>
1465
1466 <!--
1467 Author: Tom Lane <tgl@sss.pgh.pa.us>
1468 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
1469 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
1470 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
1471 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
1472 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
1473 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
1474 -->
1475
1476     <listitem>
1477      <para>
1478       Prevent interrupts while reporting non-<literal>ERROR</> messages
1479       (Tom Lane)
1480      </para>
1481
1482      <para>
1483       This guards against rare server-process freezeups due to recursive
1484       entry to <function>syslog()</>, and perhaps other related problems.
1485      </para>
1486     </listitem>
1487
1488 <!--
1489 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1490 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
1491 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
1492 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
1493 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
1494 -->
1495
1496     <listitem>
1497      <para>
1498       Fix memory leak in PL/Perl when returning a composite result, including
1499       multiple-OUT-parameter cases (Alex Hunsaker)
1500      </para>
1501     </listitem>
1502
1503 <!--
1504 Author: Tom Lane <tgl@sss.pgh.pa.us>
1505 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
1506 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
1507 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
1508 -->
1509
1510     <listitem>
1511      <para>
1512       Fix tracking of <application>psql</> script line numbers
1513       during <literal>\copy</> from out-of-line data
1514       (Kumar Rajeev Rastogi, Amit Khandekar)
1515      </para>
1516
1517      <para>
1518       <literal>\copy ... from</> incremented the script file line number
1519       for each data line, even if the data was not coming from the script
1520       file.  This mistake resulted in wrong line numbers being reported for
1521       any errors occurring later in the same script file.
1522      </para>
1523     </listitem>
1524
1525 <!--
1526 Author: Tom Lane <tgl@sss.pgh.pa.us>
1527 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
1528 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
1529 -->
1530
1531     <listitem>
1532      <para>
1533       Fix <application>contrib/postgres_fdw</> to handle multiple join
1534       conditions properly (Tom Lane)
1535      </para>
1536
1537      <para>
1538       This oversight could result in sending <literal>WHERE</> clauses to
1539       the remote server for execution even though the clauses are not known
1540       to have the same semantics on the remote server (for example, clauses
1541       that use non-built-in operators).  The query might succeed anyway,
1542       but it could also fail with errors from the remote server, or worse
1543       give silently wrong answers.
1544      </para>
1545     </listitem>
1546
1547 <!--
1548 Author: Magnus Hagander <magnus@hagander.net>
1549 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
1550 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
1551 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
1552 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
1553 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
1554 -->
1555
1556     <listitem>
1557      <para>
1558       Prevent intermittent <quote>could not reserve shared memory region</>
1559       failures on recent Windows versions (MauMau)
1560      </para>
1561     </listitem>
1562
1563 <!--
1564 Author: Tom Lane <tgl@sss.pgh.pa.us>
1565 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
1566 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
1567 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
1568 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
1569 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
1570 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
1571 -->
1572
1573     <listitem>
1574      <para>
1575       Update time zone data files to <application>tzdata</> release 2014a
1576       for DST law changes in Fiji and Turkey, plus historical changes in
1577       Israel and Ukraine.
1578      </para>
1579     </listitem>
1580
1581    </itemizedlist>
1582
1583   </sect2>
1584  </sect1>
1585
1586  <sect1 id="release-9-3-3">
1587   <title>Release 9.3.3</title>
1588
1589   <note>
1590   <title>Release Date</title>
1591   <simpara>2014-02-20</simpara>
1592   </note>
1593
1594   <para>
1595    This release contains a variety of fixes from 9.3.2.
1596    For information about new features in the 9.3 major release, see
1597    <xref linkend="release-9-3">.
1598   </para>
1599
1600   <sect2>
1601    <title>Migration to Version 9.3.3</title>
1602
1603    <para>
1604     A dump/restore is not required for those running 9.3.X.
1605    </para>
1606
1607    <para>
1608     However, several of the issues corrected in this release could have
1609     resulted in corruption of foreign-key constraints; that is, there
1610     might now be referencing rows for which there is no matching row in
1611     the referenced table.  It may be worthwhile to recheck such
1612     constraints after installing this update.  The simplest way to do that
1613     is to drop and recreate each suspect constraint; however, that will
1614     require taking an exclusive lock on both tables, so it is unlikely to
1615     be acceptable in production databases.  Alternatively, you can do a
1616     manual join query between the two tables to look for unmatched rows.
1617    </para>
1618
1619    <para>
1620     Note also the requirement for replication standby servers to be
1621     upgraded before their master server is upgraded.
1622    </para>
1623
1624    <para>
1625     Also, if you are upgrading from a version earlier than 9.3.2,
1626     see <xref linkend="release-9-3-2">.
1627    </para>
1628
1629   </sect2>
1630
1631   <sect2>
1632    <title>Changes</title>
1633
1634    <itemizedlist>
1635
1636 <!--
1637 Author: Noah Misch <noah@leadboat.com>
1638 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
1639 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
1640 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
1641 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
1642 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
1643 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
1644 -->
1645
1646     <listitem>
1647      <para>
1648       Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
1649       (Noah Misch)
1650      </para>
1651
1652      <para>
1653       Granting a role without <literal>ADMIN OPTION</> is supposed to
1654       prevent the grantee from adding or removing members from the granted
1655       role, but this restriction was easily bypassed by doing <literal>SET
1656       ROLE</> first.  The security impact is mostly that a role member can
1657       revoke the access of others, contrary to the wishes of his grantor.
1658       Unapproved role member additions are a lesser concern, since an
1659       uncooperative role member could provide most of his rights to others
1660       anyway by creating views or <literal>SECURITY DEFINER</> functions.
1661       (CVE-2014-0060)
1662      </para>
1663     </listitem>
1664
1665 <!--
1666 Author: Noah Misch <noah@leadboat.com>
1667 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
1668 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
1669 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
1670 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
1671 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
1672 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
1673 -->
1674
1675     <listitem>
1676      <para>
1677       Prevent privilege escalation via manual calls to PL validator
1678       functions (Andres Freund)
1679      </para>
1680
1681      <para>
1682       The primary role of PL validator functions is to be called implicitly
1683       during <command>CREATE FUNCTION</>, but they are also normal SQL
1684       functions that a user can call explicitly.  Calling a validator on
1685       a function actually written in some other language was not checked
1686       for and could be exploited for privilege-escalation purposes.
1687       The fix involves adding a call to a privilege-checking function in
1688       each validator function.  Non-core procedural languages will also
1689       need to make this change to their own validator functions, if any.
1690       (CVE-2014-0061)
1691      </para>
1692     </listitem>
1693
1694 <!--
1695 Author: Robert Haas <rhaas@postgresql.org>
1696 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
1697 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
1698 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
1699 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
1700 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
1701 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
1702 -->
1703
1704     <listitem>
1705      <para>
1706       Avoid multiple name lookups during table and index DDL
1707       (Robert Haas, Andres Freund)
1708      </para>
1709
1710      <para>
1711       If the name lookups come to different conclusions due to concurrent
1712       activity, we might perform some parts of the DDL on a different table
1713       than other parts.  At least in the case of <command>CREATE INDEX</>,
1714       this can be used to cause the permissions checks to be performed
1715       against a different table than the index creation, allowing for a
1716       privilege escalation attack.
1717       (CVE-2014-0062)
1718      </para>
1719     </listitem>
1720
1721 <!--
1722 Author: Noah Misch <noah@leadboat.com>
1723 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
1724 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
1725 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
1726 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
1727 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
1728 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
1729 -->
1730
1731     <listitem>
1732      <para>
1733       Prevent buffer overrun with long datetime strings (Noah Misch)
1734      </para>
1735
1736      <para>
1737       The <literal>MAXDATELEN</> constant was too small for the longest
1738       possible value of type <type>interval</>, allowing a buffer overrun
1739       in <function>interval_out()</>.  Although the datetime input
1740       functions were more careful about avoiding buffer overrun, the limit
1741       was short enough to cause them to reject some valid inputs, such as
1742       input containing a very long timezone name.  The <application>ecpg</>
1743       library contained these vulnerabilities along with some of its own.
1744       (CVE-2014-0063)
1745      </para>
1746     </listitem>
1747
1748 <!--
1749 Author: Noah Misch <noah@leadboat.com>
1750 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
1751 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
1752 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
1753 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
1754 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
1755 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
1756 -->
1757
1758     <listitem>
1759      <para>
1760       Prevent buffer overrun due to integer overflow in size calculations
1761       (Noah Misch, Heikki Linnakangas)
1762      </para>
1763
1764      <para>
1765       Several functions, mostly type input functions, calculated an
1766       allocation size without checking for overflow.  If overflow did
1767       occur, a too-small buffer would be allocated and then written past.
1768       (CVE-2014-0064)
1769      </para>
1770     </listitem>
1771
1772 <!--
1773 Author: Tom Lane <tgl@sss.pgh.pa.us>
1774 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
1775 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
1776 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
1777 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
1778 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
1779 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
1780 -->
1781
1782     <listitem>
1783      <para>
1784       Prevent overruns of fixed-size buffers
1785       (Peter Eisentraut, Jozef Mlich)
1786      </para>
1787
1788      <para>
1789       Use <function>strlcpy()</> and related functions to provide a clear
1790       guarantee that fixed-size buffers are not overrun.  Unlike the
1791       preceding items, it is unclear whether these cases really represent
1792       live issues, since in most cases there appear to be previous
1793       constraints on the size of the input string.  Nonetheless it seems
1794       prudent to silence all Coverity warnings of this type.
1795       (CVE-2014-0065)
1796      </para>
1797     </listitem>
1798
1799 <!--
1800 Author: Tom Lane <tgl@sss.pgh.pa.us>
1801 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
1802 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
1803 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
1804 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
1805 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
1806 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
1807 -->
1808
1809     <listitem>
1810      <para>
1811       Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
1812       Bruce Momjian)
1813      </para>
1814
1815      <para>
1816       There are relatively few scenarios in which <function>crypt()</>
1817       could return NULL, but <filename>contrib/chkpass</> would crash
1818       if it did.  One practical case in which this could be an issue is
1819       if <application>libc</> is configured to refuse to execute unapproved
1820       hashing algorithms (e.g., <quote>FIPS mode</>).
1821       (CVE-2014-0066)
1822      </para>
1823     </listitem>
1824
1825 <!--
1826 Author: Tom Lane <tgl@sss.pgh.pa.us>
1827 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
1828 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
1829 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
1830 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
1831 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
1832 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
1833 -->
1834
1835     <listitem>
1836      <para>
1837       Document risks of <literal>make check</> in the regression testing
1838       instructions (Noah Misch, Tom Lane)
1839      </para>
1840
1841      <para>
1842       Since the temporary server started by <literal>make check</>
1843       uses <quote>trust</> authentication, another user on the same machine
1844       could connect to it as database superuser, and then potentially
1845       exploit the privileges of the operating-system user who started the
1846       tests.  A future release will probably incorporate changes in the
1847       testing procedure to prevent this risk, but some public discussion is
1848       needed first.  So for the moment, just warn people against using
1849       <literal>make check</> when there are untrusted users on the
1850       same machine.
1851       (CVE-2014-0067)
1852      </para>
1853     </listitem>
1854
1855 <!--
1856 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1857 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
1858 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
1859 -->
1860
1861     <listitem>
1862      <para>
1863       Rework tuple freezing protocol
1864       (&Aacute;lvaro Herrera, Andres Freund)
1865      </para>
1866
1867      <para>
1868       The logic for tuple freezing was unable to handle some cases involving
1869       freezing of
1870       <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
1871       IDs</link>, with the practical effect that shared row-level locks
1872       might be forgotten once old enough.
1873      </para>
1874
1875      <para>
1876       Fixing this required changing the WAL record format for tuple
1877       freezing.  While this is no issue for standalone servers, when using
1878       replication it means that <emphasis>standby servers must be upgraded
1879       to 9.3.3 or later before their masters are</>.  An older standby will
1880       be unable to interpret freeze records generated by a newer master, and
1881       will fail with a PANIC message.  (In such a case, upgrading the
1882       standby should be sufficient to let it resume execution.)
1883      </para>
1884     </listitem>
1885
1886 <!--
1887 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1888 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
1889 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
1890 -->
1891
1892     <listitem>
1893      <para>
1894       Create separate GUC parameters to control multixact freezing
1895       (&Aacute;lvaro Herrera)
1896      </para>
1897
1898      <para>
1899       9.3 requires multixact tuple labels to be frozen before
1900       they grow too old, in the same fashion as plain transaction ID labels
1901       have been frozen for some time.  Previously, the transaction ID
1902       freezing parameters were used for multixact IDs too; but since
1903       the consumption rates of transaction IDs and multixact IDs can be
1904       quite different, this did not work very well.  Introduce new settings
1905       <xref linkend="guc-vacuum-multixact-freeze-min-age">,
1906       <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
1907       <xref linkend="guc-autovacuum-multixact-freeze-max-age">
1908       to control when to freeze multixacts.
1909      </para>
1910     </listitem>
1911
1912 <!--
1913 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1914 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
1915 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
1916 -->
1917
1918     <listitem>
1919      <para>
1920       Account for remote row locks propagated by local updates
1921       (&Aacute;lvaro Herrera)
1922      </para>
1923
1924      <para>
1925       If a row was locked by transaction A, and transaction B updated it,
1926       the new version of the row created by B would be locked by A, yet
1927       visible only to B.  If transaction B then again updated the row, A's
1928       lock wouldn't get checked, thus possibly allowing B to complete when
1929       it shouldn't.  This case is new in 9.3 since prior versions did not
1930       have any types of row locking that would permit another transaction
1931       to update the row at all.
1932      </para>
1933
1934      <para>
1935       This oversight could allow referential integrity checks to give false
1936       positives (for instance, allow deletes that should have been rejected).
1937       Applications using the new commands <literal>SELECT FOR KEY SHARE</>
1938       and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
1939       locking failures of this kind.
1940      </para>
1941     </listitem>
1942
1943 <!--
1944 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1945 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
1946 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
1947 -->
1948
1949     <listitem>
1950      <para>
1951       Prevent <quote>forgetting</> valid row locks when one of several
1952       holders of a row lock aborts (&Aacute;lvaro Herrera)
1953      </para>
1954
1955      <para>
1956       This was yet another mechanism by which a shared row lock could be
1957       lost, thus possibly allowing updates that should have been prevented
1958       by foreign-key constraints.
1959      </para>
1960     </listitem>
1961
1962 <!--
1963 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1964 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
1965 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
1966 -->
1967
1968     <listitem>
1969      <para>
1970       Fix incorrect logic during update chain locking
1971       (&Aacute;lvaro Herrera)
1972      </para>
1973
1974      <para>
1975       This mistake could result in spurious <quote>could not serialize access
1976       due to concurrent update</> errors in <literal>REPEATABLE READ</>
1977       and <literal>SERIALIZABLE</> transaction isolation modes.
1978      </para>
1979     </listitem>
1980
1981 <!--
1982 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1983 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
1984 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
1985 -->
1986
1987     <listitem>
1988      <para>
1989       Handle wraparound correctly during extension or truncation
1990       of <filename>pg_multixact/members</>
1991       (Andres Freund, &Aacute;lvaro Herrera)
1992      </para>
1993     </listitem>
1994
1995 <!--
1996 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1997 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
1998 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
1999 -->
2000
2001     <listitem>
2002      <para>
2003       Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
2004       (&Aacute;lvaro Herrera)
2005      </para>
2006
2007      <para>
2008       As of 9.3, these names can be more than 4 digits, but the directory
2009       cleanup code ignored such files.
2010      </para>
2011     </listitem>
2012
2013 <!--
2014 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2015 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
2016 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
2017 -->
2018
2019     <listitem>
2020      <para>
2021       Improve performance of multixact cache code
2022       (&Aacute;lvaro Herrera)
2023      </para>
2024     </listitem>
2025
2026 <!--
2027 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2028 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
2029 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
2030 -->
2031
2032     <listitem>
2033      <para>
2034       Optimize updating a row that's already locked by the same transaction
2035       (Andres Freund, &Aacute;lvaro Herrera)
2036      </para>
2037
2038      <para>
2039       This fixes a performance regression from pre-9.3 versions when doing
2040       <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
2041      </para>
2042     </listitem>
2043
2044 <!--
2045 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2046 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
2047 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
2048 -->
2049
2050     <listitem>
2051      <para>
2052       During archive recovery, prefer highest timeline number when WAL
2053       segments with the same ID are present in both the archive
2054       and <filename>pg_xlog/</> (Kyotaro Horiguchi)
2055      </para>
2056
2057      <para>
2058       Previously, not-yet-archived segments could get ignored during
2059       recovery.  This reverts an undesirable behavioral change in 9.3.0
2060       back to the way things worked pre-9.3.
2061      </para>
2062     </listitem>
2063
2064 <!--
2065 Author: Tom Lane <tgl@sss.pgh.pa.us>
2066 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
2067 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
2068 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
2069 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
2070 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
2071 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
2072 -->
2073
2074     <listitem>
2075      <para>
2076       Fix possible mis-replay of WAL records when some segments of a
2077       relation aren't full size (Greg Stark, Tom Lane)
2078      </para>
2079
2080      <para>
2081       The WAL update could be applied to the wrong page, potentially many
2082       pages past where it should have been.  Aside from corrupting data,
2083       this error has been observed to result in significant <quote>bloat</>
2084       of standby servers compared to their masters, due to updates being
2085       applied far beyond where the end-of-file should have been.  This
2086       failure mode does not appear to be a significant risk during crash
2087       recovery, only when initially synchronizing a standby created from a
2088       base backup taken from a quickly-changing master.
2089      </para>
2090     </listitem>
2091
2092 <!--
2093 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2094 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
2095 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
2096 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
2097 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
2098 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
2099 -->
2100
2101     <listitem>
2102      <para>
2103       Fix bug in determining when recovery has reached consistency
2104       (Tomonari Katsumata, Heikki Linnakangas)
2105      </para>
2106
2107      <para>
2108       In some cases WAL replay would mistakenly conclude that the database
2109       was already consistent at the start of replay, thus possibly allowing
2110       hot-standby queries before the database was really consistent.  Other
2111       symptoms such as <quote>PANIC: WAL contains references to invalid
2112       pages</> were also possible.
2113      </para>
2114     </listitem>
2115
2116 <!--
2117 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2118 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
2119 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
2120 -->
2121
2122     <listitem>
2123      <para>
2124       Fix WAL logging of visibility map changes (Heikki Linnakangas)
2125      </para>
2126     </listitem>
2127
2128 <!--
2129 Author: Tom Lane <tgl@sss.pgh.pa.us>
2130 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
2131 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
2132 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
2133 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
2134 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
2135 -->
2136
2137     <listitem>
2138      <para>
2139       Fix improper locking of btree index pages while replaying
2140       a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
2141       Heikki Linnakangas, Tom Lane)
2142      </para>
2143
2144      <para>
2145       This error could result in <quote>PANIC: WAL contains references to
2146       invalid pages</> failures.
2147      </para>
2148     </listitem>
2149
2150 <!--
2151 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2152 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
2153 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
2154 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
2155 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
2156 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
2157 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
2158 -->
2159
2160     <listitem>
2161      <para>
2162       Ensure that insertions into non-leaf GIN index pages write a full-page
2163       WAL record when appropriate (Heikki Linnakangas)
2164      </para>
2165
2166      <para>
2167       The previous coding risked index corruption in the event of a
2168       partial-page write during a system crash.
2169      </para>
2170     </listitem>
2171
2172 <!--
2173 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2174 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
2175 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
2176 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
2177 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
2178 -->
2179
2180     <listitem>
2181      <para>
2182       When <literal>pause_at_recovery_target</>
2183       and <literal>recovery_target_inclusive</> are both set, ensure the
2184       target record is applied before pausing, not after (Heikki
2185       Linnakangas)
2186      </para>
2187     </listitem>
2188
2189 <!--
2190 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2191 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
2192 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
2193 -->
2194
2195     <listitem>
2196      <para>
2197       Ensure walreceiver sends hot-standby feedback messages on time even
2198       when there is a continuous stream of data (Andres Freund, Amit
2199       Kapila)
2200      </para>
2201     </listitem>
2202
2203 <!--
2204 Author: Tom Lane <tgl@sss.pgh.pa.us>
2205 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
2206 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
2207 -->
2208
2209     <listitem>
2210      <para>
2211       Prevent timeout interrupts from taking control away from mainline
2212       code unless <varname>ImmediateInterruptOK</> is set
2213       (Andres Freund, Tom Lane)
2214      </para>
2215
2216      <para>
2217       This is a serious issue for any application making use of statement
2218       timeouts, as it could cause all manner of strange failures after a
2219       timeout occurred.  We have seen reports of <quote>stuck</> spinlocks,
2220       ERRORs being unexpectedly promoted to PANICs, unkillable backends,
2221       and other misbehaviors.
2222      </para>
2223     </listitem>
2224
2225 <!--
2226 Author: Robert Haas <rhaas@postgresql.org>
2227 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
2228 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
2229 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
2230 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
2231 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
2232 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
2233 -->
2234
2235     <listitem>
2236      <para>
2237       Fix race conditions during server process exit (Robert Haas)
2238      </para>
2239
2240      <para>
2241       Ensure that signal handlers don't attempt to use the
2242       process's <varname>MyProc</> pointer after it's no longer valid.
2243      </para>
2244     </listitem>
2245
2246 <!--
2247 Author: Tom Lane <tgl@sss.pgh.pa.us>
2248 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
2249 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
2250 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
2251 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
2252 -->
2253
2254     <listitem>
2255      <para>
2256       Fix race conditions in walsender shutdown logic and walreceiver
2257       SIGHUP signal handler (Tom Lane)
2258      </para>
2259     </listitem>
2260
2261 <!--
2262 Author: Tom Lane <tgl@sss.pgh.pa.us>
2263 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
2264 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
2265 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
2266 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
2267 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
2268 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
2269 -->
2270
2271     <listitem>
2272      <para>
2273       Fix unsafe references to <varname>errno</> within error reporting
2274       logic (Christian Kruse)
2275      </para>
2276
2277      <para>
2278       This would typically lead to odd behaviors such as missing or
2279       inappropriate <literal>HINT</> fields.
2280      </para>
2281     </listitem>
2282
2283 <!--
2284 Author: Tom Lane <tgl@sss.pgh.pa.us>
2285 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
2286 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
2287 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
2288 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
2289 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
2290 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
2291 -->
2292
2293     <listitem>
2294      <para>
2295       Fix possible crashes from using <function>ereport()</> too early
2296       during server startup (Tom Lane)
2297      </para>
2298
2299      <para>
2300       The principal case we've seen in the field is a crash if the server
2301       is started in a directory it doesn't have permission to read.
2302      </para>
2303     </listitem>
2304
2305 <!--
2306 Author: Tom Lane <tgl@sss.pgh.pa.us>
2307 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
2308 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
2309 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
2310 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
2311 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
2312 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
2313 -->
2314
2315     <listitem>
2316      <para>
2317       Clear retry flags properly in OpenSSL socket write
2318       function (Alexander Kukushkin)
2319      </para>
2320
2321      <para>
2322       This omission could result in a server lockup after unexpected loss
2323       of an SSL-encrypted connection.
2324      </para>
2325     </listitem>
2326
2327 <!--
2328 Author: Tom Lane <tgl@sss.pgh.pa.us>
2329 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
2330 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
2331 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
2332 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
2333 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
2334 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
2335 -->
2336
2337     <listitem>
2338      <para>
2339       Fix length checking for Unicode identifiers (<literal>U&amp;"..."</>
2340       syntax) containing escapes (Tom Lane)
2341      </para>
2342
2343      <para>
2344       A spurious truncation warning would be printed for such identifiers
2345       if the escaped form of the identifier was too long, but the
2346       identifier actually didn't need truncation after de-escaping.
2347      </para>
2348     </listitem>
2349
2350 <!--
2351 Author: Tom Lane <tgl@sss.pgh.pa.us>
2352 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
2353 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
2354 -->
2355
2356     <listitem>
2357      <para>
2358       Fix parsing of Unicode literals and identifiers just before the end
2359       of a command string or function body (Tom Lane)
2360      </para>
2361     </listitem>
2362
2363 <!--
2364 Author: Stephen Frost <sfrost@snowman.net>
2365 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
2366 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
2367 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
2368 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
2369 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
2370 -->
2371
2372     <listitem>
2373      <para>
2374       Allow keywords that are type names to be used in lists of roles
2375       (Stephen Frost)
2376      </para>
2377
2378      <para>
2379       A previous patch allowed such keywords to be used without quoting
2380       in places such as role identifiers; but it missed cases where a
2381       list of role identifiers was permitted, such as <literal>DROP ROLE</>.
2382      </para>
2383     </listitem>
2384
2385 <!--
2386 Author: Tom Lane <tgl@sss.pgh.pa.us>
2387 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
2388 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
2389 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
2390 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
2391 -->
2392
2393     <listitem>
2394      <para>
2395       Fix parser crash for <literal>EXISTS(SELECT * FROM
2396       zero_column_table)</literal> (Tom Lane)
2397      </para>
2398     </listitem>
2399
2400 <!--
2401 Author: Tom Lane <tgl@sss.pgh.pa.us>
2402 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
2403 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
2404 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
2405 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
2406 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
2407 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
2408 -->
2409
2410     <listitem>
2411      <para>
2412       Fix possible crash due to invalid plan for nested sub-selects, such
2413       as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
2414       (Tom Lane)
2415      </para>
2416     </listitem>
2417
2418 <!--
2419 Author: Tom Lane <tgl@sss.pgh.pa.us>
2420 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
2421 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
2422 -->
2423
2424     <listitem>
2425      <para>
2426       Fix mishandling of <literal>WHERE</> conditions pulled up from
2427       a <literal>LATERAL</> subquery (Tom Lane)
2428      </para>
2429
2430      <para>
2431       The typical symptom of this bug was a <quote>JOIN qualification
2432       cannot refer to other relations</> error, though subtle logic
2433       errors in created plans seem possible as well.
2434      </para>
2435     </listitem>
2436
2437 <!--
2438 Author: Tom Lane <tgl@sss.pgh.pa.us>
2439 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
2440 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
2441 -->
2442
2443     <listitem>
2444      <para>
2445       Disallow <literal>LATERAL</> references to the target table of
2446       an <literal>UPDATE/DELETE</> (Tom Lane)
2447      </para>
2448
2449      <para>
2450       While this might be allowed in some future release, it was
2451       unintentional in 9.3, and didn't work quite right anyway.
2452      </para>
2453     </listitem>
2454
2455 <!--
2456 Author: Tom Lane <tgl@sss.pgh.pa.us>
2457 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
2458 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
2459 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
2460 -->
2461
2462     <listitem>
2463      <para>
2464       Fix <literal>UPDATE/DELETE</> of an inherited target table
2465       that has <literal>UNION ALL</> subqueries (Tom Lane)
2466      </para>
2467
2468      <para>
2469       Without this fix, <literal>UNION ALL</> subqueries aren't correctly
2470       inserted into the update plans for inheritance child tables after the
2471       first one, typically resulting in no update happening for those child
2472       table(s).
2473      </para>
2474     </listitem>
2475
2476 <!--
2477 Author: Tom Lane <tgl@sss.pgh.pa.us>
2478 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
2479 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
2480 -->
2481
2482     <listitem>
2483      <para>
2484       Fix <command>ANALYZE</> to not fail on a column that's a domain over
2485       a range type (Tom Lane)
2486      </para>
2487     </listitem>
2488
2489 <!--
2490 Author: Tom Lane <tgl@sss.pgh.pa.us>
2491 Branch: master [628652620] 2014-01-11 13:42:42 -0500
2492 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
2493 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
2494 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
2495 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
2496 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
2497 -->
2498
2499     <listitem>
2500      <para>
2501       Ensure that <command>ANALYZE</> creates statistics for a table column
2502       even when all the values in it are <quote>too wide</> (Tom Lane)
2503      </para>
2504
2505      <para>
2506       <command>ANALYZE</> intentionally omits very wide values from its
2507       histogram and most-common-values calculations, but it neglected to do
2508       something sane in the case that all the sampled entries are too wide.
2509      </para>
2510     </listitem>
2511
2512 <!--
2513 Author: Stephen Frost <sfrost@snowman.net>
2514 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
2515 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
2516 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
2517 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
2518 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
2519 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
2520 -->
2521
2522     <listitem>
2523      <para>
2524       In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
2525       default tablespace to be used without a permissions check
2526       (Stephen Frost)
2527      </para>
2528
2529      <para>
2530       <literal>CREATE TABLE</> has always allowed such usage,
2531       but <literal>ALTER TABLE</> didn't get the memo.
2532      </para>
2533     </listitem>
2534
2535 <!--
2536 Author: Tom Lane <tgl@sss.pgh.pa.us>
2537 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
2538 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
2539 -->
2540
2541     <listitem>
2542      <para>
2543       Fix support for extensions containing event triggers (Tom Lane)
2544      </para>
2545     </listitem>
2546
2547 <!--
2548 Author: Tom Lane <tgl@sss.pgh.pa.us>
2549 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
2550 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
2551 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
2552 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
2553 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
2554 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
2555 -->
2556
2557     <listitem>
2558      <para>
2559       Fix <quote>cannot accept a set</> error when some arms of
2560       a <literal>CASE</> return a set and others don't (Tom Lane)
2561      </para>
2562     </listitem>
2563
2564 <!--
2565 Author: Andrew Dunstan <andrew@dunslane.net>
2566 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
2567 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
2568 -->
2569
2570     <listitem>
2571      <para>
2572       Fix memory leakage in JSON functions (Craig Ringer)
2573      </para>
2574     </listitem>
2575
2576 <!--
2577 Author: Andrew Dunstan <andrew@dunslane.net>
2578 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
2579 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
2580 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
2581 -->
2582
2583     <listitem>
2584      <para>
2585       Properly distinguish numbers from non-numbers when generating JSON
2586       output (Andrew Dunstan)
2587      </para>
2588     </listitem>
2589
2590 <!--
2591 Author: Kevin Grittner <kgrittn@postgresql.org>
2592 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
2593 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
2594 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
2595 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
2596 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
2597 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
2598 -->
2599
2600     <listitem>
2601      <para>
2602       Fix checks for all-zero client addresses in pgstat functions (Kevin
2603       Grittner)
2604      </para>
2605     </listitem>
2606
2607 <!--
2608 Author: Tom Lane <tgl@sss.pgh.pa.us>
2609 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
2610 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
2611 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
2612 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
2613 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
2614 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
2615 -->
2616
2617     <listitem>
2618      <para>
2619       Fix possible misclassification of multibyte characters by the text
2620       search parser (Tom Lane)
2621      </para>
2622
2623      <para>
2624       Non-ASCII characters could be misclassified when using C locale with
2625       a multibyte encoding.  On Cygwin, non-C locales could fail as well.
2626      </para>
2627     </listitem>
2628
2629 <!--
2630 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2631 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
2632 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
2633 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
2634 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
2635 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
2636 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
2637 -->
2638
2639     <listitem>
2640      <para>
2641       Fix possible misbehavior in <function>plainto_tsquery()</>
2642       (Heikki Linnakangas)
2643      </para>
2644
2645      <para>
2646       Use <function>memmove()</> not <function>memcpy()</> for copying
2647       overlapping memory regions.  There have been no field reports of
2648       this actually causing trouble, but it's certainly risky.
2649      </para>
2650     </listitem>
2651
2652 <!--
2653 Author: Magnus Hagander <magnus@hagander.net>
2654 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
2655 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
2656 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
2657 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
2658 -->
2659
2660     <listitem>
2661      <para>
2662       Fix placement of permissions checks in <function>pg_start_backup()</>
2663       and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
2664      </para>
2665
2666      <para>
2667       The previous coding might attempt to do catalog access when it
2668       shouldn't.
2669      </para>
2670     </listitem>
2671
2672 <!--
2673 Author: Tatsuo Ishii <ishii@postgresql.org>
2674 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
2675 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
2676 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
2677 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
2678 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
2679 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
2680 -->
2681
2682     <listitem>
2683      <para>
2684       Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
2685       purposes (Tatsuo Ishii)
2686      </para>
2687     </listitem>
2688
2689 <!--
2690 Author: Tom Lane <tgl@sss.pgh.pa.us>
2691 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
2692 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
2693 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
2694 -->
2695
2696     <listitem>
2697      <para>
2698       Fix <literal>*</>-qualification of named parameters in SQL-language
2699       functions (Tom Lane)
2700      </para>
2701
2702      <para>
2703       Given a composite-type parameter
2704       named <literal>foo</>, <literal>$1.*</> worked fine,
2705       but <literal>foo.*</> not so much.
2706      </para>
2707     </listitem>
2708
2709 <!--
2710 Author: Fujii Masao <fujii@postgresql.org>
2711 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
2712 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
2713 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
2714 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
2715 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
2716 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
2717 -->
2718
2719     <listitem>
2720      <para>
2721       Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
2722      </para>
2723
2724      <para>
2725       It should return <literal>localhost</> if no host has been specified.
2726      </para>
2727     </listitem>
2728
2729 <!--
2730 Author: Tom Lane <tgl@sss.pgh.pa.us>
2731 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
2732 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
2733 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
2734 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
2735 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
2736 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
2737 -->
2738
2739     <listitem>
2740      <para>
2741       Improve error handling in <application>libpq</> and <application>psql</>
2742       for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
2743      </para>
2744
2745      <para>
2746       In particular this fixes an infinite loop that could occur in 9.2 and
2747       up if the server connection was lost during <literal>COPY FROM
2748       STDIN</>.  Variants of that scenario might be possible in older
2749       versions, or with other client applications.
2750      </para>
2751     </listitem>
2752
2753 <!--
2754 Author: Tom Lane <tgl@sss.pgh.pa.us>
2755 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
2756 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
2757 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
2758 -->
2759
2760     <listitem>
2761      <para>
2762       Fix incorrect translation handling in
2763       some <application>psql</> <literal>\d</> commands
2764       (Peter Eisentraut, Tom Lane)
2765      </para>
2766     </listitem>
2767
2768 <!--
2769 Author: Magnus Hagander <magnus@hagander.net>
2770 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
2771 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
2772 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
2773 -->
2774
2775     <listitem>
2776      <para>
2777       Ensure <application>pg_basebackup</>'s background process is killed
2778       when exiting its foreground process (Magnus Hagander)
2779      </para>
2780     </listitem>
2781
2782 <!--
2783 Author: Magnus Hagander <magnus@hagander.net>
2784 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
2785 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
2786 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
2787 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
2788 -->
2789
2790     <listitem>
2791      <para>
2792       Fix possible incorrect printing of filenames
2793       in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
2794      </para>
2795     </listitem>
2796
2797 <!--
2798 Author: Magnus Hagander <magnus@hagander.net>
2799 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
2800 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
2801 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
2802 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
2803 -->
2804
2805     <listitem>
2806      <para>
2807       Avoid including tablespaces inside PGDATA twice in base backups
2808       (Dimitri Fontaine, Magnus Hagander)
2809      </para>
2810     </listitem>
2811
2812 <!--
2813 Author: Michael Meskes <meskes@postgresql.org>
2814 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
2815 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
2816 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
2817 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
2818 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
2819 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
2820 -->
2821
2822     <listitem>
2823      <para>
2824       Fix misaligned descriptors in <application>ecpg</> (MauMau)
2825      </para>
2826     </listitem>
2827
2828 <!--
2829 Author: Michael Meskes <meskes@postgresql.org>
2830 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
2831 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
2832 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
2833 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
2834 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
2835 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
2836 -->
2837
2838     <listitem>
2839      <para>
2840       In <application>ecpg</>, handle lack of a hostname in the connection
2841       parameters properly (Michael Meskes)
2842      </para>
2843     </listitem>
2844
2845 <!--
2846 Author: Joe Conway <mail@joeconway.com>
2847 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
2848 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
2849 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
2850 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
2851 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
2852 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
2853 -->
2854
2855     <listitem>
2856      <para>
2857       Fix performance regression in <filename>contrib/dblink</> connection
2858       startup (Joe Conway)
2859      </para>
2860
2861      <para>
2862       Avoid an unnecessary round trip when client and server encodings match.
2863      </para>
2864     </listitem>
2865
2866 <!--
2867 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2868 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
2869 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
2870 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
2871 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
2872 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
2873 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
2874 -->
2875
2876     <listitem>
2877      <para>
2878       In <filename>contrib/isn</>, fix incorrect calculation of the check
2879       digit for ISMN values (Fabien Coelho)
2880      </para>
2881     </listitem>
2882
2883 <!--
2884 Author: Tatsuo Ishii <ishii@postgresql.org>
2885 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
2886 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
2887 -->
2888
2889     <listitem>
2890      <para>
2891       Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
2892       when the scale factor is large (Tatsuo Ishii)
2893      </para>
2894     </listitem>
2895
2896 <!--
2897 Author: Tom Lane <tgl@sss.pgh.pa.us>
2898 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
2899 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
2900 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
2901 -->
2902
2903     <listitem>
2904      <para>
2905       Fix <filename>contrib/pg_stat_statement</>'s handling
2906       of <literal>CURRENT_DATE</> and related constructs (Kyotaro
2907       Horiguchi)
2908      </para>
2909     </listitem>
2910
2911 <!--
2912 Author: Tom Lane <tgl@sss.pgh.pa.us>
2913 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
2914 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
2915 -->
2916
2917     <listitem>
2918      <para>
2919       Improve lost-connection error handling
2920       in <filename>contrib/postgres_fdw</> (Tom Lane)
2921      </para>
2922     </listitem>
2923
2924 <!--
2925 Author: Peter Eisentraut <peter_e@gmx.net>
2926 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
2927 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
2928 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
2929 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
2930 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
2931 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
2932 -->
2933
2934     <listitem>
2935      <para>
2936       Ensure client-code-only installation procedure works as documented
2937       (Peter Eisentraut)
2938      </para>
2939     </listitem>
2940
2941 <!--
2942 Author: Andrew Dunstan <andrew@dunslane.net>
2943 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
2944 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
2945 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
2946 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
2947 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
2948 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
2949 -->
2950
2951     <listitem>
2952      <para>
2953       In Mingw and Cygwin builds, install the <application>libpq</> DLL
2954       in the <filename>bin</> directory (Andrew Dunstan)
2955      </para>
2956
2957      <para>
2958       This duplicates what the MSVC build has long done.  It should fix
2959       problems with programs like <application>psql</> failing to start
2960       because they can't find the DLL.
2961      </para>
2962     </listitem>
2963
2964 <!--
2965 Author: Andrew Dunstan <andrew@dunslane.net>
2966 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
2967 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
2968 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
2969 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
2970 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
2971 -->
2972
2973     <listitem>
2974      <para>
2975       Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
2976       (Marco Atzeri)
2977      </para>
2978     </listitem>
2979
2980 <!--
2981 Author: Andrew Dunstan <andrew@dunslane.net>
2982 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
2983 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
2984 -->
2985
2986     <listitem>
2987      <para>
2988       Enable building with Visual Studio 2013 (Brar Piening)
2989      </para>
2990     </listitem>
2991
2992 <!--
2993 Author: Tom Lane <tgl@sss.pgh.pa.us>
2994 Branch: master [289541520] 2014-02-10 20:48:04 -0500
2995 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
2996 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
2997 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
2998 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
2999 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
3000 -->
3001
3002     <listitem>
3003      <para>
3004       Don't generate plain-text <filename>HISTORY</>
3005       and <filename>src/test/regress/README</> files anymore (Tom Lane)
3006      </para>
3007
3008      <para>
3009       These text files duplicated the main HTML and PDF documentation
3010       formats.  The trouble involved in maintaining them greatly outweighs
3011       the likely audience for plain-text format.  Distribution tarballs
3012       will still contain files by these names, but they'll just be stubs
3013       directing the reader to consult the main documentation.
3014       The plain-text <filename>INSTALL</> file will still be maintained, as
3015       there is arguably a use-case for that.
3016      </para>
3017     </listitem>
3018
3019 <!--
3020 Author: Tom Lane <tgl@sss.pgh.pa.us>
3021 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
3022 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
3023 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
3024 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
3025 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
3026 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
3027 -->
3028
3029     <listitem>
3030      <para>
3031       Update time zone data files to <application>tzdata</> release 2013i
3032       for DST law changes in Jordan and historical changes in Cuba.
3033      </para>
3034
3035      <para>
3036       In addition, the zones <literal>Asia/Riyadh87</>,
3037       <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
3038       removed, as they are no longer maintained by IANA, and never
3039       represented actual civil timekeeping practice.
3040      </para>
3041     </listitem>
3042
3043    </itemizedlist>
3044
3045   </sect2>
3046  </sect1>
3047
3048  <sect1 id="release-9-3-2">
3049   <title>Release 9.3.2</title>
3050
3051   <note>
3052   <title>Release Date</title>
3053   <simpara>2013-12-05</simpara>
3054   </note>
3055
3056   <para>
3057    This release contains a variety of fixes from 9.3.1.
3058    For information about new features in the 9.3 major release, see
3059    <xref linkend="release-9-3">.
3060   </para>
3061
3062   <sect2>
3063    <title>Migration to Version 9.3.2</title>
3064
3065    <para>
3066     A dump/restore is not required for those running 9.3.X.
3067    </para>
3068
3069    <para>
3070     However, this release corrects a number of potential data corruption
3071     issues.  See the first three changelog entries below to find out whether
3072     your installation has been affected and what steps you can take if so.
3073    </para>
3074
3075    <para>
3076     Also, if you are upgrading from a version earlier than 9.3.1,
3077     see <xref linkend="release-9-3-1">.
3078    </para>
3079
3080   </sect2>
3081
3082   <sect2>
3083    <title>Changes</title>
3084
3085    <itemizedlist>
3086
3087     <listitem>
3088      <para>
3089       Fix <command>VACUUM</>'s tests to see whether it can
3090       update <structfield>relfrozenxid</> (Andres Freund)
3091      </para>
3092
3093      <para>
3094       In some cases <command>VACUUM</> (either manual or autovacuum) could
3095       incorrectly advance a table's <structfield>relfrozenxid</> value,
3096       allowing tuples to escape freezing, causing those rows to become
3097       invisible once 2^31 transactions have elapsed.  The probability of
3098       data loss is fairly low since multiple incorrect advancements would
3099       need to happen before actual loss occurs, but it's not zero.  In 9.2.0
3100       and later, the probability of loss is higher, and it's also possible
3101       to get <quote>could not access status of transaction</> errors as a
3102       consequence of this bug.  Users upgrading from releases 9.0.4 or 8.4.8
3103       or earlier are not affected, but all later versions contain the bug.
3104      </para>
3105
3106      <para>
3107       The issue can be ameliorated by, after upgrading, vacuuming all tables
3108       in all databases while having <link
3109       linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
3110       set to zero.  This will fix any latent corruption but will not be able
3111       to fix all pre-existing data errors.  However, an installation can be
3112       presumed safe after performing this vacuuming if it has executed fewer
3113       than 2^31 update transactions in its lifetime (check this with
3114       <literal>SELECT txid_current() < 2^31</>).
3115      </para>
3116     </listitem>
3117
3118     <listitem>
3119      <para>
3120       Fix multiple bugs in MultiXactId freezing (Andres Freund,
3121       &Aacute;lvaro Herrera)
3122      </para>
3123
3124      <para>
3125       These bugs could lead to <quote>could not access status of
3126       transaction</> errors, or to duplicate or vanishing rows.
3127       Users upgrading from releases prior to 9.3.0 are not affected.
3128      </para>
3129
3130      <para>
3131       The issue can be ameliorated by, after upgrading, vacuuming all tables
3132       in all databases while having <link
3133       linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
3134       set to zero.  This will fix latent corruption but will not be able to
3135       fix all pre-existing data errors.
3136      </para>
3137
3138      <para>
3139       As a separate issue, these bugs can also cause standby servers to get
3140       out of sync with the primary, thus exhibiting data errors that are not
3141       in the primary.  Therefore, it's recommended that 9.3.0 and 9.3.1
3142       standby servers be re-cloned from the primary (e.g., with a new base
3143       backup) after upgrading.
3144      </para>
3145     </listitem>
3146
3147     <listitem>
3148      <para>
3149       Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
3150       during hot standby startup (Andres Freund, Heikki Linnakangas)
3151      </para>
3152
3153      <para>
3154       This bug can cause data loss on standby servers at the moment they
3155       start to accept hot-standby queries, by marking committed transactions
3156       as uncommitted. The likelihood of such corruption is small unless, at
3157       the time of standby startup, the primary server has executed many
3158       updating transactions since its last checkpoint.  Symptoms include
3159       missing rows, rows that should have been deleted being still visible,
3160       and obsolete versions of updated rows being still visible alongside
3161       their newer versions.
3162      </para>
3163
3164      <para>
3165       This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
3166       Standby servers that have only been running earlier releases are not
3167       at risk.  It's recommended that standby servers that have ever run any
3168       of the buggy releases be re-cloned from the primary (e.g., with a new
3169       base backup) after upgrading.
3170      </para>
3171     </listitem>
3172
3173     <listitem>
3174      <para>
3175       Fix multiple bugs in update chain traversal (Andres Freund,
3176       &Aacute;lvaro Herrera)
3177      </para>
3178
3179      <para>
3180       These bugs could result in incorrect behavior, such as locking or even
3181       updating the wrong row, in the presence of concurrent updates.
3182       Spurious <quote>unable to fetch updated version of tuple</> errors
3183       were also possible.
3184      </para>
3185     </listitem>
3186
3187     <listitem>
3188      <para>
3189       Fix dangling-pointer problem in fast-path locking (Tom Lane)
3190      </para>
3191
3192      <para>
3193       This could lead to corruption of the lock data structures in shared
3194       memory, causing <quote>lock already held</> and other odd errors.
3195      </para>
3196     </listitem>
3197
3198     <listitem>
3199      <para>
3200       Fix assorted race conditions in timeout management (Tom Lane)
3201      </para>
3202
3203      <para>
3204       These errors could result in a server process becoming unresponsive
3205       because it had blocked SIGALRM and/or SIGINT.
3206      </para>
3207     </listitem>
3208
3209     <listitem>
3210      <para>
3211       Truncate <filename>pg_multixact</> contents during WAL replay
3212       (Andres Freund)
3213      </para>
3214
3215      <para>
3216       This avoids ever-increasing disk space consumption in standby servers.
3217      </para>
3218     </listitem>
3219
3220     <listitem>
3221      <para>
3222       Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
3223       when it's only verified that no tuples need freezing (Sergey
3224       Burladyan, Jeff Janes)
3225      </para>
3226
3227      <para>
3228       This bug could result in failing to
3229       advance <structfield>relfrozenxid</>, so that the table would still be
3230       thought to need another anti-wraparound vacuum.  In the worst case the
3231       database might even shut down to prevent wraparound.
3232      </para>
3233     </listitem>
3234
3235     <listitem>
3236      <para>
3237       Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
3238      </para>
3239
3240      <para>
3241       This bug could result in large amounts of useless autovacuum activity.
3242      </para>
3243     </listitem>
3244
3245     <listitem>
3246      <para>
3247       Fix race condition in GIN index posting tree page deletion (Heikki
3248       Linnakangas)
3249      </para>
3250
3251      <para>
3252       This could lead to transient wrong answers or query failures.
3253      </para>
3254     </listitem>
3255
3256     <listitem>
3257      <para>
3258       Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
3259       index creation (Teodor Sigaev)
3260      </para>
3261     </listitem>
3262
3263     <listitem>
3264      <para>
3265       Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
3266      </para>
3267     </listitem>
3268
3269     <listitem>
3270      <para>
3271       Re-allow duplicate table aliases if they're within aliased JOINs
3272       (Tom Lane)
3273      </para>
3274
3275      <para>
3276       Historically <productname>PostgreSQL</> has accepted queries like
3277 <programlisting>
3278 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
3279 </programlisting>
3280       although a strict reading of the SQL standard would forbid the
3281       duplicate usage of table alias <literal>x</>.  A misguided change in
3282       9.3.0 caused it to reject some such cases that were formerly accepted.
3283       Restore the previous behavior.
3284      </para>
3285     </listitem>
3286
3287     <listitem>
3288      <para>
3289       Avoid flattening a subquery whose <literal>SELECT</> list contains a
3290       volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
3291      </para>
3292
3293      <para>
3294       This avoids unexpected results due to extra evaluations of the
3295       volatile function.
3296      </para>
3297     </listitem>
3298
3299     <listitem>
3300      <para>
3301       Fix planner's processing of non-simple-variable subquery outputs
3302       nested within outer joins (Tom Lane)
3303      </para>
3304
3305      <para>
3306       This error could lead to incorrect plans for queries involving
3307       multiple levels of subqueries within <literal>JOIN</> syntax.
3308      </para>
3309     </listitem>
3310
3311     <listitem>
3312      <para>
3313       Fix incorrect planning in cases where the same non-strict expression
3314       appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
3315       equality clauses (Tom Lane)
3316      </para>
3317     </listitem>
3318
3319     <listitem>
3320      <para>
3321       Fix planner crash with whole-row reference to a subquery (Tom Lane)
3322      </para>
3323     </listitem>
3324
3325     <listitem>
3326      <para>
3327       Fix incorrect generation of optimized MIN()/MAX() plans for
3328       inheritance trees (Tom Lane)
3329      </para>
3330
3331      <para>
3332       The planner could fail in cases where the MIN()/MAX() argument was an
3333       expression rather than a simple variable.
3334      </para>
3335     </listitem>
3336
3337     <listitem>
3338      <para>
3339       Fix premature deletion of temporary files (Andres Freund)
3340      </para>
3341     </listitem>
3342
3343     <listitem>
3344      <para>
3345       Prevent intra-transaction memory leak when printing range values
3346       (Tom Lane)
3347      </para>
3348
3349      <para>
3350       This fix actually cures transient memory leaks in any datatype output
3351       function, but range types are the only ones known to have had a
3352       significant problem.
3353      </para>
3354     </listitem>
3355
3356     <listitem>
3357      <para>
3358       Fix memory leaks when reloading configuration files (Heikki
3359       Linnakangas, Hari Babu)
3360      </para>
3361     </listitem>
3362
3363     <listitem>
3364      <para>
3365       Prevent incorrect display of dropped columns in NOT NULL and CHECK
3366       constraint violation messages (Michael Paquier and Tom Lane)
3367      </para>
3368     </listitem>
3369
3370     <listitem>
3371      <para>
3372       Allow default arguments and named-argument notation for window
3373       functions (Tom Lane)
3374      </para>
3375
3376      <para>
3377       Previously, these cases were likely to crash.
3378      </para>
3379     </listitem>
3380
3381     <listitem>
3382      <para>
3383       Suppress trailing whitespace on each line when pretty-printing rules
3384       and views (Tom Lane)
3385      </para>
3386
3387      <para>
3388       9.3.0 generated such whitespace in many more cases than previous
3389       versions did.  To reduce unexpected behavioral changes, suppress
3390       unnecessary whitespace in all cases.
3391      </para>
3392     </listitem>
3393
3394     <listitem>
3395      <para>
3396       Fix possible read past end of memory in rule printing (Peter Eisentraut)
3397      </para>
3398     </listitem>
3399
3400     <listitem>
3401      <para>
3402       Fix array slicing of <type>int2vector</> and <type>oidvector</> values
3403       (Tom Lane)
3404      </para>
3405
3406      <para>
3407       Expressions of this kind are now implicitly promoted to
3408       regular <type>int2</> or <type>oid</> arrays.
3409      </para>
3410     </listitem>
3411
3412     <listitem>
3413      <para>
3414       Return a valid JSON value when converting an empty <type>hstore</> value
3415       to <type>json</>
3416       (Oskari Saarenmaa)
3417      </para>
3418     </listitem>
3419
3420     <listitem>
3421      <para>
3422       Fix incorrect behaviors when using a SQL-standard, simple GMT offset
3423       timezone (Tom Lane)
3424      </para>
3425
3426      <para>
3427       In some cases, the system would use the simple GMT offset value when
3428       it should have used the regular timezone setting that had prevailed
3429       before the simple offset was selected.  This change also causes
3430       the <function>timeofday</> function to honor the simple GMT offset
3431       zone.
3432      </para>
3433     </listitem>
3434
3435     <listitem>
3436      <para>
3437       Prevent possible misbehavior when logging translations of Windows
3438       error codes (Tom Lane)
3439      </para>
3440     </listitem>
3441
3442     <listitem>
3443      <para>
3444       Properly quote generated command lines in <application>pg_ctl</>
3445       (Naoya Anzai and Tom Lane)
3446      </para>
3447
3448      <para>
3449       This fix applies only to Windows.
3450      </para>
3451     </listitem>
3452
3453     <listitem>
3454      <para>
3455       Fix <application>pg_dumpall</> to work when a source database
3456       sets <link
3457       linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
3458       via <command>ALTER DATABASE SET</> (Kevin Grittner)
3459      </para>
3460
3461      <para>
3462       Previously, the generated script would fail during restore.
3463      </para>
3464     </listitem>
3465
3466     <listitem>
3467      <para>
3468       Fix <application>pg_isready</> to handle its <option>-d</> option
3469       properly (Fabr&iacute;zio de Royes Mello and Fujii Masao)
3470      </para>
3471     </listitem>
3472
3473     <listitem>
3474      <para>
3475       Fix parsing of WAL file names in <application>pg_receivexlog</>
3476       (Heikki Linnakangas)
3477      </para>
3478
3479      <para>
3480       This error made <application>pg_receivexlog</> unable to restart
3481       streaming after stopping, once at least 4 GB of WAL had been written.
3482      </para>
3483     </listitem>
3484
3485     <listitem>
3486      <para>
3487       Report out-of-disk-space failures properly
3488       in <application>pg_upgrade</> (Peter Eisentraut)
3489      </para>
3490     </listitem>
3491
3492     <listitem>
3493      <para>
3494       Make <application>ecpg</> search for quoted cursor names
3495       case-sensitively (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
3496      </para>
3497     </listitem>
3498
3499     <listitem>
3500      <para>
3501       Fix <application>ecpg</>'s processing of lists of variables
3502       declared <type>varchar</> (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
3503      </para>
3504     </listitem>
3505
3506     <listitem>
3507      <para>
3508       Make <filename>contrib/lo</> defend against incorrect trigger definitions
3509       (Marc Cousin)
3510      </para>
3511     </listitem>
3512
3513     <listitem>
3514      <para>
3515       Update time zone data files to <application>tzdata</> release 2013h
3516       for DST law changes in Argentina, Brazil, Jordan, Libya,
3517       Liechtenstein, Morocco, and Palestine.  Also, new timezone
3518       abbreviations WIB, WIT, WITA for Indonesia.
3519      </para>
3520     </listitem>
3521
3522    </itemizedlist>
3523
3524   </sect2>
3525  </sect1>
3526
3527  <sect1 id="release-9-3-1">
3528   <title>Release 9.3.1</title>
3529
3530   <note>
3531   <title>Release Date</title>
3532   <simpara>2013-10-10</simpara>
3533   </note>
3534
3535   <para>
3536    This release contains a variety of fixes from 9.3.0.
3537    For information about new features in the 9.3 major release, see
3538    <xref linkend="release-9-3">.
3539   </para>
3540
3541   <sect2>
3542    <title>Migration to Version 9.3.1</title>
3543
3544    <para>
3545     A dump/restore is not required for those running 9.3.X.
3546    </para>
3547
3548    <para>
3549     However, if you use the <literal>hstore</> extension, see the
3550     first changelog entry.
3551    </para>
3552
3553   </sect2>
3554
3555   <sect2>
3556    <title>Changes</title>
3557
3558    <itemizedlist>
3559
3560     <listitem>
3561      <para>
3562       Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
3563       extension during an update (Andrew Dunstan)
3564      </para>
3565
3566      <para>
3567       Users who upgraded a pre-9.3 database containing <literal>hstore</>
3568       should execute
3569 <programlisting>
3570 ALTER EXTENSION hstore UPDATE;
3571 </programlisting>
3572       after installing 9.3.1, to add two new JSON functions and a cast.
3573       (If <literal>hstore</> is already up to date, this command does
3574       nothing.)
3575      </para>
3576     </listitem>
3577
3578     <listitem>
3579      <para>
3580       Fix memory leak when creating B-tree indexes on range columns
3581       (Heikki Linnakangas)
3582      </para>
3583     </listitem>
3584
3585     <listitem>
3586      <para>
3587       Fix memory leak caused by <function>lo_open()</function> failure
3588       (Heikki Linnakangas)
3589      </para>
3590     </listitem>
3591
3592     <listitem>
3593      <para>
3594       Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
3595      </para>
3596     </listitem>
3597
3598     <listitem>
3599      <para>
3600       Fix deadlock bug in libpq when using SSL (Stephen Frost)
3601      </para>
3602     </listitem>
3603
3604     <listitem>
3605      <para>
3606       Fix timeline handling bugs in <application>pg_receivexlog</>
3607       (Heikki Linnakangas, Andrew Gierth)
3608      </para>
3609     </listitem>
3610
3611     <listitem>
3612      <para>
3613       Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
3614       variables unless function body checking is enabled (Tom Lane)
3615      </para>
3616     </listitem>
3617
3618     <listitem>
3619      <para>
3620       Remove rare inaccurate warning during vacuum of index-less tables
3621       (Heikki Linnakangas)
3622      </para>
3623     </listitem>
3624
3625    </itemizedlist>
3626
3627   </sect2>
3628  </sect1>
3629
3630  <sect1 id="release-9-3">
3631   <title>Release 9.3</title>
3632
3633   <note>
3634    <title>Release Date</title>
3635    <simpara>2013-09-09</simpara>
3636   </note>
3637
3638   <sect2>
3639    <title>Overview</title>
3640
3641    <para>
3642     Major enhancements in <productname>PostgreSQL</> 9.3 include:
3643    </para>
3644
3645    <!-- This list duplicates items below, but without authors or details-->
3646
3647    <itemizedlist>
3648
3649     <listitem>
3650      <para>
3651       Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
3652       views</link>
3653      </para>
3654     </listitem>
3655
3656     <listitem>
3657      <para>
3658       Make simple views <link
3659       linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
3660      </para>
3661     </listitem>
3662
3663     <listitem>
3664      <para>
3665       Add many features for the <type>JSON</> data type,
3666       including <link linkend="functions-json">operators and functions</link>
3667       to extract elements from <type>JSON</> values
3668      </para>
3669     </listitem>
3670
3671     <listitem>
3672      <para>
3673       Implement <acronym>SQL</>-standard <link
3674       linkend="queries-lateral"><literal>LATERAL</></link> option for
3675       <literal>FROM</>-clause subqueries and function calls
3676      </para>
3677     </listitem>
3678
3679     <listitem>
3680      <para>
3681       Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
3682       wrappers</link> to support writes (inserts/updates/deletes) on foreign
3683       tables
3684      </para>
3685     </listitem>
3686
3687     <listitem>
3688      <para>
3689       Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
3690       data wrapper</link> to allow access to
3691       other <productname>Postgres</> servers
3692      </para>
3693     </listitem>
3694
3695     <listitem>
3696      <para>
3697       Add support for <link linkend="event-triggers">event triggers</link>
3698      </para>
3699     </listitem>
3700
3701     <listitem>
3702      <para>
3703       Add optional ability to <link
3704       linkend="app-initdb-data-checksums">checksum</link> data pages and
3705       report corruption
3706      </para>
3707     </listitem>
3708
3709     <listitem>
3710      <para>
3711       Prevent non-key-field row updates from blocking foreign key checks
3712      </para>
3713     </listitem>
3714
3715     <listitem>
3716      <para>
3717       Greatly reduce System V <link linkend="sysvipc">shared
3718       memory</link> requirements
3719      </para>
3720     </listitem>
3721
3722    </itemizedlist>
3723
3724    <para>
3725     The above items are explained in more detail in the sections below.
3726    </para>
3727
3728   </sect2>
3729
3730   <sect2>
3731
3732   <title>Migration to Version 9.3</title>
3733
3734    <para>
3735     A dump/restore using <link
3736     linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
3737     of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
3738     required for those wishing to migrate data from any previous release.
3739    </para>
3740
3741    <para>
3742     Version 9.3 contains a number of changes that may affect compatibility
3743     with previous releases.  Observe the following incompatibilities:
3744    </para>
3745
3746    <sect3>
3747     <title>Server Settings</title>
3748
3749      <itemizedlist>
3750
3751       <listitem>
3752        <para>
3753         Rename <varname>replication_timeout</> to <link
3754         linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
3755         (Amit Kapila)
3756        </para>
3757
3758        <para>
3759         This setting controls the <link
3760         linkend="wal"><acronym>WAL</></link> sender timeout.
3761        </para>
3762       </listitem>
3763
3764       <listitem>
3765        <para>
3766         Require superuser privileges to set <link
3767         linkend="guc-commit-delay"><varname>commit_delay</></link>
3768         because it can now potentially delay other sessions (Simon Riggs)
3769        </para>
3770       </listitem>
3771
3772       <listitem>
3773        <para>
3774         Allow in-memory sorts to use their full memory allocation (Jeff Janes)
3775        </para>
3776
3777        <para>
3778         Users who have set <link
3779         linkend="guc-work-mem"><varname>work_mem</></link> based on the
3780         previous behavior may need to revisit that setting.
3781        </para>
3782       </listitem>
3783
3784      </itemizedlist>
3785
3786    </sect3>
3787
3788    <sect3>
3789     <title>Other</title>
3790
3791      <itemizedlist>
3792
3793       <listitem>
3794        <para>
3795         Throw an error if a tuple to be updated or deleted has already been
3796         updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
3797        </para>
3798
3799        <para>
3800         Formerly, the originally-intended update was silently skipped,
3801         resulting in logical inconsistency since the trigger might have
3802         propagated data to other places based on the intended update.
3803         Now an error is thrown to prevent the inconsistent results from being
3804         committed.  If this change affects your application, the best solution
3805         is usually to move the data-propagation actions to
3806         an <literal>AFTER</> trigger.
3807        </para>
3808
3809        <para>
3810         This error will also be thrown if a query invokes a volatile function
3811         that modifies rows that are later modified by the query itself.
3812         Such cases likewise previously resulted in silently skipping updates.
3813        </para>
3814       </listitem>
3815
3816       <listitem>
3817        <para>
3818         Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
3819         SET NULL/SET DEFAULT</></link> foreign key actions to affect
3820         all columns of the constraint, not just those changed in the
3821         <command>UPDATE</> (Tom Lane)
3822        </para>
3823
3824        <para>
3825         Previously, we would set only those referencing columns that
3826         correspond to referenced columns that were changed by
3827         the <command>UPDATE</>.  This was what was required by SQL-92,
3828         but more recent editions of the SQL standard specify the new behavior.
3829        </para>
3830       </listitem>
3831
3832       <listitem>
3833        <para>
3834         Force cached plans to be replanned if the <link
3835         linkend="guc-search-path"><varname>search_path</></link> changes
3836         (Tom Lane)
3837        </para>
3838
3839        <para>
3840         Previously, cached plans already generated in the current session were
3841         not redone if the query was re-executed with a
3842         new <varname>search_path</> setting, resulting in surprising behavior.
3843        </para>
3844       </listitem>
3845
3846       <listitem>
3847        <para>
3848         Fix <link
3849         linkend="functions-formatting-table"><function>to_number()</></link>
3850         to properly handle a period used as a thousands separator (Tom Lane)
3851        </para>
3852
3853        <para>
3854         Previously, a period was considered to be a decimal point even when
3855         the locale says it isn't and the <literal>D</> format code is used to
3856         specify use of the locale-specific decimal point.  This resulted in
3857         wrong answers if <literal>FM</> format was also used.
3858        </para>
3859       </listitem>
3860
3861       <listitem>
3862        <para>
3863         Fix <literal>STRICT</> non-set-returning functions that have
3864         set-returning functions in their arguments to properly return null
3865         rows (Tom Lane)
3866        </para>
3867
3868        <para>
3869         A null value passed to the strict function should result in a null
3870         output, but instead, that output row was suppressed entirely.
3871        </para>
3872       </listitem>
3873
3874       <listitem>
3875        <para>
3876         Store <link linkend="wal"><acronym>WAL</></link> in a continuous
3877         stream, rather than skipping the last 16MB segment every 4GB
3878         (Heikki Linnakangas)
3879        </para>
3880
3881        <para>
3882         Previously, <acronym>WAL</> files with names ending in <literal>FF</>
3883         were not used because of this skipping.  If you have <acronym>WAL</>
3884         backup or restore scripts that took this behavior into account, they
3885         will need to be adjusted.
3886        </para>
3887       </listitem>
3888
3889       <listitem>
3890        <para>
3891         In <link
3892         linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
3893         store the default foreign key match type (non-<literal>FULL</>,
3894         non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
3895         (Tom Lane)
3896        </para>
3897
3898        <para>
3899         Previously this case was represented by <literal>u</>
3900         for <quote>unspecified</>.
3901        </para>
3902       </listitem>
3903
3904      </itemizedlist>
3905
3906    </sect3>
3907
3908   </sect2>
3909
3910   <sect2>
3911    <title>Changes</title>
3912
3913    <para>
3914     Below you will find a detailed account of the changes between
3915     <productname>PostgreSQL</productname> 9.3 and the previous major
3916     release.
3917    </para>
3918
3919    <sect3>
3920     <title>Server</title>
3921
3922     <sect4>
3923      <title>Locking</title>
3924
3925      <itemizedlist>
3926
3927       <listitem>
3928        <para>
3929         Prevent non-key-field row updates from blocking foreign key checks
3930         (&Aacute;lvaro Herrera, Noah Misch, Andres Freund, Alexander
3931         Shulgin, Marti Raudsepp, Alexander Shulgin)
3932        </para>
3933
3934        <para>
3935         This change improves concurrency and reduces the probability of
3936         deadlocks when updating tables involved in a foreign-key constraint.
3937         <command>UPDATE</>s that do not change any columns referenced in a
3938         foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
3939         the row, while foreign key checks use the new <literal>KEY SHARE</>
3940         lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
3941         So there is no blocking unless a foreign-key column is changed.
3942        </para>
3943       </listitem>
3944
3945       <listitem>
3946        <para>
3947         Add configuration variable <link
3948         linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
3949         allow limiting how long a session will wait to acquire any one lock
3950         (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
3951        </para>
3952       </listitem>
3953
3954      </itemizedlist>
3955
3956     </sect4>
3957
3958     <sect4>
3959      <title>Indexes</title>
3960
3961      <itemizedlist>
3962
3963       <listitem>
3964        <para>
3965         Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
3966         support for range data types (Alexander Korotkov)
3967        </para>
3968       </listitem>
3969
3970       <listitem>
3971        <para>
3972         Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
3973         unlogged (Jeevan Chalke)
3974        </para>
3975       </listitem>
3976
3977       <listitem>
3978        <para>
3979         Improve performance of <acronym>GiST</> index insertion by randomizing
3980         the choice of which page to descend to when there are multiple equally
3981         good alternatives (Heikki Linnakangas)
3982        </para>
3983       </listitem>
3984
3985       <listitem>
3986        <para>
3987         Improve concurrency of hash index operations (Robert Haas)
3988        </para>
3989       </listitem>
3990
3991      </itemizedlist>
3992
3993     </sect4>
3994
3995     <sect4>
3996      <title>Optimizer</title>
3997
3998      <itemizedlist>
3999
4000       <listitem>
4001        <para>
4002         Collect and use histograms of upper and lower bounds, as well as range
4003         lengths, for <link linkend="rangetypes">range types</link>
4004         (Alexander Korotkov)
4005        </para>
4006       </listitem>
4007
4008       <listitem>
4009        <para>
4010         Improve optimizer's cost estimation for index access (Tom Lane)
4011        </para>
4012       </listitem>
4013
4014       <listitem>
4015        <para>
4016         Improve optimizer's hash table size estimate for
4017         doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
4018        </para>
4019       </listitem>
4020
4021       <listitem>
4022        <para>
4023         Suppress no-op Result and Limit plan nodes
4024         (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
4025        </para>
4026       </listitem>
4027
4028       <listitem>
4029        <para>
4030         Reduce optimizer overhead by not keeping plans on the basis of cheap
4031         startup cost when the optimizer only cares about total cost overall
4032         (Tom Lane)
4033        </para>
4034       </listitem>
4035
4036      </itemizedlist>
4037
4038     </sect4>
4039
4040     <sect4>
4041      <title>General Performance</title>
4042
4043      <itemizedlist>
4044
4045       <listitem>
4046        <para>
4047         Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
4048         option to avoid the overhead of marking tuples as frozen later
4049         (Simon Riggs, Jeff Davis)
4050        </para>
4051       </listitem>
4052
4053       <listitem>
4054        <para>
4055         Improve performance of <link
4056         linkend="datatype-numeric"><type>NUMERIC</></link> calculations
4057         (Kyotaro Horiguchi)
4058        </para>
4059       </listitem>
4060
4061       <listitem>
4062        <para>
4063         Improve synchronization of sessions waiting for <link
4064         linkend="guc-commit-delay"><varname>commit_delay</></link>
4065         (Peter Geoghegan)
4066        </para>
4067
4068        <para>
4069         This greatly improves the usefulness of <varname>commit_delay</>.
4070        </para>
4071       </listitem>
4072
4073       <listitem>
4074        <para>
4075         Improve performance of the <link
4076         linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
4077         COMMIT DELETE ROWS</></link> option by not truncating such temporary
4078         tables in transactions that haven't touched any temporary tables
4079         (Heikki Linnakangas)
4080        </para>
4081       </listitem>
4082
4083       <listitem>
4084        <para>
4085         Make vacuum recheck visibility after it has removed expired tuples
4086         (Pavan Deolasee)
4087        </para>
4088
4089        <para>
4090         This increases the chance of a page being marked as all-visible.
4091        </para>
4092       </listitem>
4093
4094       <listitem>
4095        <para>
4096         Add per-resource-owner lock caches (Jeff Janes)
4097        </para>
4098
4099        <para>
4100         This speeds up lock bookkeeping at statement completion in
4101         multi-statement transactions that hold many locks; it is particularly
4102         useful for <application>pg_dump</>.
4103        </para>
4104       </listitem>
4105
4106       <listitem>
4107        <para>
4108         Avoid scanning the entire relation cache at commit of a transaction
4109         that creates a new relation (Jeff Janes)
4110        </para>
4111
4112        <para>
4113         This speeds up sessions that create many tables in successive
4114         small transactions, such as a <application>pg_restore</> run.
4115        </para>
4116       </listitem>
4117
4118       <listitem>
4119        <para>
4120         Improve performance of transactions that drop many relations
4121         (Tomas Vondra)
4122        </para>
4123       </listitem>
4124
4125      </itemizedlist>
4126
4127     </sect4>
4128
4129     <sect4>
4130      <title>Monitoring</title>
4131
4132      <itemizedlist>
4133
4134       <listitem>
4135        <para>
4136         Add optional ability to <link
4137         linkend="app-initdb-data-checksums">checksum</link> data pages and
4138         report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
4139        </para>
4140
4141        <para>
4142         The checksum option can be set during <link
4143         linkend="APP-INITDB">initdb</link>.
4144        </para>
4145       </listitem>
4146
4147       <listitem>
4148        <para>
4149         Split the <link linkend="monitoring-stats">statistics collector's</link>
4150         data file into separate global and per-database files (Tomas Vondra)
4151        </para>
4152
4153        <para>
4154         This reduces the I/O required for statistics tracking.
4155        </para>
4156       </listitem>
4157
4158       <listitem>
4159        <para>
4160         Fix the statistics collector to operate properly in cases where the
4161         system clock goes backwards (Tom Lane)
4162        </para>
4163
4164        <para>
4165         Previously, statistics collection would stop until the time again
4166         reached the latest time previously recorded.
4167        </para>
4168       </listitem>
4169
4170       <listitem>
4171        <para>
4172         Emit an informative message to postmaster standard error when we
4173         are about to stop logging there
4174         (Tom Lane)
4175        </para>
4176
4177        <para>
4178         This should help reduce user confusion about where to look for log
4179         output in common configurations that log to standard error only during
4180         postmaster startup.
4181        </para>
4182       </listitem>
4183
4184      </itemizedlist>
4185
4186     </sect4>
4187
4188     <sect4>
4189      <title>Authentication</title>
4190
4191      <itemizedlist>
4192
4193       <listitem>
4194        <para>
4195         When an authentication failure occurs, log the relevant
4196         <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
4197         line, to ease debugging of unintended failures
4198         (Magnus Hagander)
4199        </para>
4200       </listitem>
4201
4202       <listitem>
4203        <para>
4204         Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
4205         reporting and documentation (Peter Eisentraut)
4206        </para>
4207       </listitem>
4208
4209       <listitem>
4210        <para>
4211         Add support for specifying <acronym>LDAP</> authentication parameters
4212         in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
4213        </para>
4214       </listitem>
4215
4216       <listitem>
4217        <para>
4218         Change the <link
4219         linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
4220         to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
4221         then remove insecure ciphers (Magnus Hagander)
4222        </para>
4223
4224        <para>
4225         This should yield a more appropriate SSL cipher set.
4226        </para>
4227       </listitem>
4228
4229       <listitem>
4230        <para>
4231         Parse and load <link
4232         linkend="auth-username-maps"><filename>pg_ident.conf</></link>
4233         once, not during each connection (Amit Kapila)
4234        </para>
4235
4236        <para>
4237         This is similar to how <filename>pg_hba.conf</> is processed.
4238        </para>
4239       </listitem>
4240
4241      </itemizedlist>
4242
4243     </sect4>
4244
4245     <sect4>
4246      <title>Server Settings</title>
4247
4248      <itemizedlist>
4249
4250       <listitem>
4251        <para>
4252         Greatly reduce System V <link linkend="sysvipc">shared
4253         memory</link> requirements (Robert Haas)
4254        </para>
4255
4256        <para>
4257         On Unix-like systems, <function>mmap()</> is now used for most
4258         of <productname>PostgreSQL</>'s shared memory.  For most users, this
4259         will eliminate any need to adjust kernel parameters for shared memory.
4260        </para>
4261       </listitem>
4262
4263       <listitem>
4264        <para>
4265         Allow the postmaster to listen on multiple Unix-domain sockets
4266         (Honza Hor&aacute;k)
4267        </para>
4268
4269        <para>
4270         The configuration parameter
4271         <varname>unix_socket_directory</> is replaced by <link
4272         linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
4273         which accepts a list of directories.
4274        </para>
4275       </listitem>
4276
4277       <listitem>
4278        <para>
4279         Allow a directory of configuration files to be processed (Magnus
4280         Hagander, Greg Smith, Selena Deckelmann)
4281        </para>
4282
4283        <para>
4284         Such a directory is specified with <link
4285         linkend="config-includes"><varname>include_dir</></link> in the server
4286         configuration file.
4287        </para>
4288       </listitem>
4289
4290       <listitem>
4291        <para>
4292         Increase the maximum <link
4293         linkend="APP-INITDB">initdb</link>-configured value for <link
4294         linkend="guc-shared-buffers"><varname>shared_buffers</></link>
4295         to 128MB (Robert Haas)
4296        </para>
4297
4298        <para>
4299         This is the maximum value that initdb will attempt to set in <link
4300         linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
4301         the previous maximum was 32MB.
4302        </para>
4303       </listitem>
4304
4305       <listitem>
4306        <para>
4307         Remove the <link linkend="guc-external-pid-file">external
4308         <acronym>PID</> file</link>, if any, on postmaster exit
4309         (Peter Eisentraut)
4310        </para>
4311       </listitem>
4312
4313      </itemizedlist>
4314
4315     </sect4>
4316
4317    </sect3>
4318
4319    <sect3>
4320     <title>Replication and Recovery</title>
4321
4322      <itemizedlist>
4323
4324       <listitem>
4325        <para>
4326         Allow a streaming replication standby to <link
4327         linkend="protocol-replication">follow a timeline switch</link>
4328         (Heikki Linnakangas)
4329        </para>
4330
4331        <para>
4332         This allows streaming standby servers to receive WAL data from a slave
4333         newly promoted to master status.  Previously, other standbys would
4334         require a resync to begin following the new master.
4335        </para>
4336       </listitem>
4337
4338       <listitem>
4339        <para>
4340         Add <acronym>SQL</> functions <link
4341         linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
4342         and <link
4343         linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
4344         (Gilles Darold)
4345        </para>
4346
4347        <para>
4348         These functions report the status of base backups.
4349        </para>
4350       </listitem>
4351
4352       <listitem>
4353        <para>
4354         Improve performance of streaming log shipping with <link
4355         linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
4356         disabled (Andres Freund)
4357        </para>
4358       </listitem>
4359
4360       <listitem>
4361        <para>
4362         Allow much faster promotion of a streaming standby to primary (Simon
4363         Riggs, Kyotaro Horiguchi)
4364        </para>
4365       </listitem>
4366
4367       <listitem>
4368        <para>
4369         Add the last checkpoint's redo location to <link
4370         linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
4371         output (Fujii Masao)
4372        </para>
4373
4374        <para>
4375         This information is useful for determining which <acronym>WAL</>
4376         files are needed for restore.
4377        </para>
4378       </listitem>
4379
4380       <listitem>
4381        <para>
4382         Allow tools like <link
4383         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
4384         to run on computers with different architectures (Heikki
4385         Linnakangas)
4386        </para>
4387
4388        <para>
4389         WAL files can still only be replayed on servers with the same
4390         architecture as the primary; but they can now be transmitted to and
4391         stored on machines of any architecture, since the
4392         streaming replication protocol is now machine-independent.
4393        </para>
4394       </listitem>
4395
4396       <listitem>
4397        <para>
4398         Make <link
4399         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
4400         <option>--write-recovery-conf</> output a
4401         minimal <filename>recovery.conf</> file (Zolt&aacute;n
4402         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
4403        </para>
4404
4405        <para>
4406         This simplifies setting up a standby server.
4407        </para>
4408       </listitem>
4409
4410       <listitem>
4411        <para>
4412         Allow <link
4413         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
4414         and <link
4415         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
4416         <option>--xlog-method</> to handle streaming timeline switches
4417         (Heikki Linnakangas)
4418        </para>
4419       </listitem>
4420
4421       <listitem>
4422        <para>
4423         Add <link
4424         linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
4425         parameter to control the <acronym>WAL</> receiver's timeout
4426         (Amit Kapila)
4427        </para>
4428
4429        <para>
4430         This allows more rapid detection of connection failure.
4431        </para>
4432       </listitem>
4433
4434       <listitem>
4435        <para>
4436         Change the <link linkend="wal"><acronym>WAL</></link> record format to
4437         allow splitting the record header across pages (Heikki Linnakangas)
4438        </para>
4439
4440        <para>
4441         The new format is slightly more compact, and is more efficient to
4442         write.
4443        </para>
4444       </listitem>
4445
4446      </itemizedlist>
4447
4448    </sect3>
4449
4450    <sect3>
4451     <title>Queries</title>
4452
4453      <itemizedlist>
4454
4455       <listitem>
4456        <para>
4457         Implement <acronym>SQL</>-standard <link
4458         linkend="queries-lateral"><literal>LATERAL</></link> option for
4459         <literal>FROM</>-clause subqueries and function calls (Tom Lane)
4460        </para>
4461
4462        <para>
4463         This feature allows subqueries and functions in <literal>FROM</> to
4464         reference columns from other tables in the <literal>FROM</>
4465         clause. The <literal>LATERAL</> keyword is optional for functions.
4466        </para>
4467       </listitem>
4468
4469       <listitem>
4470        <para>
4471         Add support for piping <link
4472         linkend="SQL-COPY"><command>COPY</></link> and <link
4473         linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
4474         data to/from an external program (Etsuro Fujita)
4475        </para>
4476       </listitem>
4477
4478       <listitem>
4479        <para>
4480         Allow a multirow <link
4481         linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
4482         to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
4483        </para>
4484       </listitem>
4485
4486      </itemizedlist>
4487
4488    </sect3>
4489
4490    <sect3>
4491     <title>Object Manipulation</title>
4492
4493      <itemizedlist>
4494
4495       <listitem>
4496        <para>
4497         Add support for <link linkend="event-triggers">event triggers</link>
4498         (Dimitri Fontaine, Robert Haas, &Aacute;lvaro Herrera)
4499        </para>
4500
4501        <para>
4502         This allows server-side functions written in event-enabled
4503         languages to be called when DDL commands are run.
4504        </para>
4505       </listitem>
4506
4507       <listitem>
4508        <para>
4509         Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
4510         wrappers</link> to support writes (inserts/updates/deletes) on foreign
4511         tables (KaiGai Kohei)
4512        </para>
4513       </listitem>
4514
4515       <listitem>
4516        <para>
4517         Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
4518         NOT EXISTS</></link> clause (Fabr&iacute;zio de Royes Mello)
4519        </para>
4520       </listitem>
4521
4522       <listitem>
4523        <para>
4524         Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
4525         OWNED</></link> also change ownership of shared objects
4526         (&Aacute;lvaro Herrera)
4527        </para>
4528       </listitem>
4529
4530       <listitem>
4531        <para>
4532         Make <link linkend="sql-createaggregate"><command>CREATE
4533         AGGREGATE</></link> complain if the given initial value string is not
4534         valid input for the transition datatype (Tom Lane)
4535        </para>
4536       </listitem>
4537
4538       <listitem>
4539        <para>
4540         Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
4541         TABLE</></link>'s messages about implicit index and sequence creation
4542         (Robert Haas)
4543        </para>
4544
4545        <para>
4546         These messages now appear at <literal>DEBUG1</> verbosity, so that
4547         they will not be shown by default.
4548        </para>
4549       </listitem>
4550
4551       <listitem>
4552        <para>
4553         Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
4554         EXISTS</></link> to succeed when a non-existent schema is specified
4555         in the table name (Bruce Momjian)
4556        </para>
4557
4558        <para>
4559          Previously, it threw an error if the schema did not exist.
4560        </para>
4561       </listitem>
4562
4563       <listitem>
4564        <para>
4565         Provide clients with <link
4566         linkend="libpq-pqresulterrorfield">constraint violation details</link>
4567         as separate fields (Pavel Stehule)
4568        </para>
4569
4570        <para>
4571         This allows clients to retrieve table, column, data type, or
4572         constraint name error details.  Previously such information had to be
4573         extracted from error strings.  Client library support is required to
4574         access these fields.
4575        </para>
4576       </listitem>
4577
4578      </itemizedlist>
4579
4580     <sect4>
4581      <title><command>ALTER</></title>
4582
4583      <itemizedlist>
4584
4585       <listitem>
4586        <para>
4587         Support <literal>IF NOT EXISTS</> option in <link
4588         linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
4589         (Andrew Dunstan)
4590        </para>
4591
4592        <para>
4593         This is useful for conditionally adding values to enumerated types.
4594        </para>
4595       </listitem>
4596
4597       <listitem>
4598        <para>
4599         Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
4600         SET</></link> to establish settings for all users (Peter Eisentraut)
4601        </para>
4602
4603        <para>
4604         This allows settings to apply to all users in all databases. <link
4605         linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
4606         already allowed addition of settings for all users in a single
4607         database.  <filename>postgresql.conf</> has a similar effect.
4608        </para>
4609       </listitem>
4610
4611       <listitem>
4612        <para>
4613         Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
4614         ... RENAME</></link> (Ali Dar)
4615        </para>
4616       </listitem>
4617
4618      </itemizedlist>
4619
4620     </sect4>
4621
4622     <sect4>
4623      <title><link linkend="rules-views"><command>VIEWs</></link></title>
4624
4625      <itemizedlist>
4626
4627       <listitem>
4628        <para>
4629         Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
4630         views</link> (Kevin Grittner)
4631        </para>
4632
4633        <para>
4634         Unlike ordinary views, where the base tables are read on every access,
4635         materialized views create physical tables at creation or refresh time.
4636         Access to the materialized view then reads from its physical
4637         table. There is not yet any facility for incrementally refreshing
4638         materialized views or auto-accessing them via base table access.
4639        </para>
4640       </listitem>
4641
4642       <listitem>
4643        <para>
4644         Make simple views <link
4645         linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
4646         (Dean Rasheed)
4647        </para>
4648
4649        <para>
4650         Simple views that reference some or all columns from a
4651         single base table are now updatable by default. More
4652         complex views can be made updatable using <link
4653         linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
4654         or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
4655        </para>
4656       </listitem>
4657
4658       <listitem>
4659        <para>
4660         Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
4661         VIEW</></link> syntax (Peter Eisentraut)
4662        </para>
4663
4664        <para>
4665         Internally this is translated into <command>CREATE VIEW ... WITH
4666         RECURSIVE ...</>.
4667        </para>
4668       </listitem>
4669
4670       <listitem>
4671        <para>
4672         Improve view/rule printing code to handle cases where referenced
4673         tables are renamed, or columns are renamed, added, or dropped
4674         (Tom Lane)
4675        </para>
4676
4677        <para>
4678         Table and column renamings can produce cases where, if we merely
4679         substitute the new name into the original text of a rule or view, the
4680         result is ambiguous.  This change fixes the rule-dumping code to insert
4681         manufactured table and column aliases when needed to preserve the
4682         original semantics.
4683        </para>
4684       </listitem>
4685
4686      </itemizedlist>
4687
4688     </sect4>
4689
4690    </sect3>
4691
4692    <sect3>
4693     <title>Data Types</title>
4694
4695     <itemizedlist>
4696
4697       <listitem>
4698        <para>
4699         Increase the maximum size of <link linkend="largeObjects">large
4700         objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
4701        </para>
4702
4703        <para>
4704         This change includes adding 64-bit-capable large object access
4705         functions, both in the server and in libpq.
4706        </para>
4707       </listitem>
4708
4709       <listitem>
4710        <para>
4711         Allow text <link linkend="datatype-timezones">timezone
4712         designations</link>, e.g. <quote>America/Chicago</>, in the
4713         <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
4714         input (Bruce Momjian)
4715        </para>
4716       </listitem>
4717
4718     </itemizedlist>
4719
4720    <sect4>
4721     <title><link linkend="datatype-json"><type>JSON</></link></title>
4722
4723     <itemizedlist>
4724
4725       <listitem>
4726        <para>
4727         Add <link linkend="functions-json">operators and functions</link>
4728         to extract elements from <type>JSON</> values (Andrew Dunstan)
4729        </para>
4730       </listitem>
4731
4732       <listitem>
4733        <para>
4734         Allow <type>JSON</> values to be <link
4735         linkend="functions-json">converted into records</link>
4736         (Andrew Dunstan)
4737        </para>
4738       </listitem>
4739
4740       <listitem>
4741        <para>
4742         Add <link linkend="functions-json">functions</link> to convert
4743         scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
4744         Dunstan)
4745        </para>
4746       </listitem>
4747
4748     </itemizedlist>
4749
4750    </sect4>
4751
4752    </sect3>
4753
4754
4755    <sect3>
4756     <title>Functions</title>
4757
4758      <itemizedlist>
4759
4760       <listitem>
4761        <para>
4762         Add <link
4763         linkend="array-functions-table"><function>array_remove()</></link>
4764         and <link
4765         linkend="array-functions-table"><function>array_replace()</></link>
4766         functions (Marco Nenciarini, Gabriele Bartolini)
4767        </para>
4768       </listitem>
4769
4770       <listitem>
4771        <para>
4772         Allow <link
4773         linkend="functions-string-other"><function>concat()</></link>
4774         and <link
4775         linkend="functions-string-format"><function>format()</></link>
4776         to properly expand <literal>VARIADIC</>-labeled arguments
4777         (Pavel Stehule)
4778        </para>
4779       </listitem>
4780
4781       <listitem>
4782        <para>
4783         Improve <link
4784         linkend="functions-string-format"><function>format()</></link>
4785         to provide field width and left/right alignment options (Pavel Stehule)
4786        </para>
4787       </listitem>
4788
4789       <listitem>
4790        <para>
4791         Make <link
4792         linkend="functions-formatting-table"><function>to_char()</></link>,
4793         <link
4794         linkend="functions-formatting-table"><function>to_date()</></link>,
4795         and <link
4796         linkend="functions-formatting-table"><function>to_timestamp()</></link>
4797         handle negative (BC) century values properly
4798         (Bruce Momjian)
4799        </para>
4800
4801        <para>
4802         Previously the behavior was either wrong or inconsistent
4803         with positive/<acronym>AD</> handling, e.g. with the format mask
4804         <quote>IYYY-IW-DY</>.
4805        </para>
4806       </listitem>
4807
4808       <listitem>
4809        <para>
4810         Make <link
4811         linkend="functions-formatting-table"><function>to_date()</></link>
4812         and <link
4813         linkend="functions-formatting-table"><function>to_timestamp()</></link>
4814         return proper results when mixing <acronym>ISO</> and Gregorian
4815         week/day designations (Bruce Momjian)
4816        </para>
4817       </listitem>
4818
4819       <listitem>
4820        <para>
4821         Cause <link
4822         linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
4823         to start a new line by default after each <literal>SELECT</> target
4824         list entry and <literal>FROM</> entry (Marko Tiikkaja)
4825        </para>
4826
4827        <para>
4828         This reduces line length in view printing, for instance in <link
4829         linkend="APP-PGDUMP"><application>pg_dump</></link> output.
4830        </para>
4831       </listitem>
4832
4833       <listitem>
4834        <para>
4835         Fix <function>map_sql_value_to_xml_value()</> to print values of
4836         domain types the same way their base type would be printed
4837         (Pavel Stehule)
4838        </para>
4839
4840        <para>
4841         There are special formatting rules for certain built-in types such as
4842         <type>boolean</>; these rules now also apply to domains over these
4843         types.
4844        </para>
4845       </listitem>
4846
4847      </itemizedlist>
4848
4849    </sect3>
4850
4851    <sect3>
4852     <title>Server-Side Languages</title>
4853
4854     <sect4>
4855      <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
4856
4857      <itemizedlist>
4858
4859       <listitem>
4860        <para>
4861         Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
4862         expression (Asif Rehman)
4863        </para>
4864
4865        <para>
4866         Previously, in a function returning a composite type,
4867         <literal>RETURN</> could only reference a variable of that type.
4868        </para>
4869       </listitem>
4870
4871       <listitem>
4872        <para>
4873         Allow PL/pgSQL to access <link
4874         linkend="plpgsql-exception-diagnostics">constraint violation
4875         details</link> as separate fields (Pavel Stehule)
4876        </para>
4877       </listitem>
4878
4879       <listitem>
4880        <para>
4881         Allow PL/pgSQL to access the number of rows processed by
4882         <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
4883        </para>
4884
4885        <para>
4886         A <command>COPY</> executed in a PL/pgSQL function now updates the
4887         value retrieved by <link
4888         linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
4889         x = ROW_COUNT</></link>.
4890        </para>
4891       </listitem>
4892
4893       <listitem>
4894        <para>
4895         Allow unreserved keywords to be used as identifiers everywhere in
4896         PL/pgSQL (Tom Lane)
4897        </para>
4898
4899        <para>
4900         In certain places in the PL/pgSQL grammar, keywords had to be quoted
4901         to be used as identifiers, even if they were nominally unreserved.
4902        </para>
4903       </listitem>
4904
4905     </itemizedlist>
4906
4907     </sect4>
4908
4909     <sect4>
4910      <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
4911
4912      <itemizedlist>
4913
4914       <listitem>
4915        <para>
4916         Add PL/Python result object string handler (Peter Eisentraut)
4917        </para>
4918
4919        <para>
4920         This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
4921        </para>
4922       </listitem>
4923
4924       <listitem>
4925        <para>
4926         Make PL/Python convert OID values to a proper Python numeric type
4927         (Peter Eisentraut)
4928        </para>
4929       </listitem>
4930
4931       <listitem>
4932        <para>
4933         Handle <link linkend="spi"><acronym>SPI</></link> errors raised
4934         explicitly (with PL/Python's <literal>RAISE</>) the same as
4935         internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
4936        </para>
4937       </listitem>
4938
4939      </itemizedlist>
4940
4941     </sect4>
4942
4943    </sect3>
4944
4945    <sect3>
4946     <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
4947
4948      <itemizedlist>
4949
4950       <listitem>
4951        <para>
4952         Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
4953         abort (Tom Lane)
4954        </para>
4955
4956        <para>
4957         At the end of any failed subtransaction, the core SPI code now
4958         releases any SPI tuple tables that were created during that
4959         subtransaction.  This avoids the need for SPI-using code to keep track
4960         of such tuple tables and release them manually in error-recovery code.
4961         Failure to do so caused a number of transaction-lifespan memory leakage
4962         issues in PL/pgSQL and perhaps other SPI clients.  <link
4963         linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
4964         now protects itself against multiple freeing requests, so any existing
4965         code that did take care to clean up shouldn't be broken by this change.
4966        </para>
4967       </listitem>
4968
4969       <listitem>
4970        <para>
4971         Allow <acronym>SPI</> functions to access the number of rows processed
4972         by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
4973        </para>
4974       </listitem>
4975
4976      </itemizedlist>
4977
4978    </sect3>
4979
4980    <sect3>
4981     <title>Client Applications</title>
4982
4983     <itemizedlist>
4984
4985       <listitem>
4986        <para>
4987         Add command-line utility <link
4988         linkend="app-pg-isready"><application>pg_isready</></link> to
4989         check if the server is ready to accept connections (Phil Sorber)
4990        </para>
4991       </listitem>
4992
4993       <listitem>
4994        <para>
4995         Support multiple <option>--table</> arguments for <link
4996         linkend="APP-PGRESTORE"><application>pg_restore</></link>,
4997         <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
4998         <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
4999         and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
5000         (Josh Kupershmidt)
5001        </para>
5002
5003        <para>
5004         This is similar to the way <link
5005         linkend="APP-PGDUMP"><application>pg_dump</></link>'s
5006         <option>--table</> option works.
5007        </para>
5008       </listitem>
5009
5010       <listitem>
5011        <para>
5012         Add <option>--dbname</> option to <link
5013         linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
5014         linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
5015         <link
5016         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
5017         to allow specifying a connection string (Amit Kapila)
5018        </para>
5019       </listitem>
5020
5021       <listitem>
5022        <para>
5023         Add libpq function <link
5024         linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
5025         to return connection information (Zolt&aacute;n
5026         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
5027        </para>
5028       </listitem>
5029
5030     </itemizedlist>
5031
5032     <sect4>
5033      <title><link linkend="APP-PSQL"><application>psql</></link></title>
5034
5035      <itemizedlist>
5036
5037       <listitem>
5038        <para>
5039         Adjust function cost settings so <application>psql</> tab
5040         completion and pattern searching are more efficient (Tom Lane)
5041        </para>
5042       </listitem>
5043
5044       <listitem>
5045        <para>
5046         Improve <application>psql</>'s tab completion coverage (Jeff Janes,
5047         Dean Rasheed, Peter Eisentraut, Magnus Hagander)
5048        </para>
5049       </listitem>
5050
5051       <listitem>
5052        <para>
5053         Allow the <application>psql</> <option>--single-transaction</>
5054         mode to work when reading from standard input (Fabien Coelho,
5055         Robert Haas)
5056        </para>
5057
5058        <para>
5059         Previously this option only worked when reading from a file.
5060        </para>
5061       </listitem>
5062
5063       <listitem>
5064        <para>
5065         Remove <application>psql</> warning when connecting to an older
5066         server (Peter Eisentraut)
5067        </para>
5068
5069        <para>
5070         A warning is still issued when connecting to a server of a newer major
5071         version than <application>psql</>'s.
5072        </para>
5073       </listitem>
5074
5075      </itemizedlist>
5076
5077     <sect5>
5078      <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
5079
5080      <itemizedlist>
5081
5082       <listitem>
5083        <para>
5084         Add <application>psql</> command <command>\watch</> to repeatedly
5085         execute a SQL command (Will Leinweber)
5086        </para>
5087       </listitem>
5088
5089       <listitem>
5090        <para>
5091         Add <application>psql</> command <command>\gset</> to store query
5092         results in <application>psql</> variables (Pavel Stehule)
5093        </para>
5094       </listitem>
5095
5096       <listitem>
5097        <para>
5098         Add <acronym>SSL</> information to <application>psql</>'s
5099         <command>\conninfo</> command (Alastair Turner)
5100        </para>
5101       </listitem>
5102
5103       <listitem>
5104        <para>
5105         Add <quote>Security</> column to <application>psql</>'s
5106         <command>\df+</> output (Jon Erdman)
5107        </para>
5108       </listitem>
5109
5110       <listitem>
5111        <para>
5112         Allow <application>psql</> command <command>\l</> to accept a database
5113         name pattern (Peter Eisentraut)
5114        </para>
5115       </listitem>
5116
5117       <listitem>
5118        <para>
5119         In <application>psql</>, do not allow <command>\connect</> to
5120         use defaults if there is no active connection (Bruce Momjian)
5121        </para>
5122
5123        <para>
5124         This might be the case if the server had crashed.
5125        </para>
5126       </listitem>
5127
5128       <listitem>
5129        <para>
5130         Properly reset state after failure of a SQL command executed with
5131         <application>psql</>'s <literal>\g</> <replaceable>file</>
5132         (Tom Lane)
5133        </para>
5134
5135        <para>
5136         Previously, the output from subsequent SQL commands would unexpectedly
5137         continue to go to the same file.
5138        </para>
5139       </listitem>
5140
5141      </itemizedlist>
5142
5143     </sect5>
5144
5145     <sect5>
5146      <title>Output</title>
5147
5148      <itemizedlist>
5149
5150       <listitem>
5151        <para>
5152         Add a <literal>latex-longtable</> output format to
5153         <application>psql</> (Bruce Momjian)
5154        </para>
5155
5156        <para>
5157         This format allows tables to span multiple pages.
5158        </para>
5159       </listitem>
5160
5161       <listitem>
5162        <para>
5163         Add a <literal>border=3</> output mode to the <application>psql</>
5164         <literal>latex</> format (Bruce Momjian)
5165        </para>
5166       </listitem>
5167
5168       <listitem>
5169        <para>
5170         In <application>psql</>'s tuples-only and expanded output modes, no
5171         longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
5172        </para>
5173       </listitem>
5174
5175       <listitem>
5176        <para>
5177         In <application>psql</>'s unaligned, expanded output mode, no longer
5178         print an empty line for zero rows (Peter Eisentraut)
5179        </para>
5180       </listitem>
5181
5182      </itemizedlist>
5183
5184     </sect5>
5185
5186     </sect4>
5187
5188     <sect4>
5189      <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
5190
5191      <itemizedlist>
5192
5193       <listitem>
5194        <para>
5195         Add <application>pg_dump</> <option>--jobs</> option to dump tables in
5196         parallel (Joachim Wieland)
5197        </para>
5198       </listitem>
5199
5200       <listitem>
5201        <para>
5202         Make <application>pg_dump</> output functions in a more predictable
5203         order (Joel Jacobson)
5204        </para>
5205       </listitem>
5206
5207       <listitem>
5208        <para>
5209         Fix tar files emitted by <application>pg_dump</>
5210         to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
5211        </para>
5212       </listitem>
5213
5214       <listitem>
5215        <para>
5216         Add <option>--dbname</> option to <application>pg_dump</>, for
5217         consistency with other client commands (Heikki Linnakangas)
5218        </para>
5219
5220        <para>
5221         The database name could already be supplied last without a flag.
5222        </para>
5223       </listitem>
5224
5225      </itemizedlist>
5226
5227     </sect4>
5228
5229     <sect4>
5230      <title><link linkend="APP-INITDB"><application>initdb</></link></title>
5231
5232      <itemizedlist>
5233
5234       <listitem>
5235        <para>
5236         Make initdb fsync the newly created data directory (Jeff Davis)
5237        </para>
5238
5239        <para>
5240         This insures data integrity in event of a system crash shortly after
5241         initdb.  This can be disabled by using <option>--nosync</>.
5242        </para>
5243       </listitem>
5244
5245       <listitem>
5246        <para>
5247         Add initdb <option>--sync-only</> option to sync the data directory to durable
5248         storage (Bruce Momjian)
5249        </para>
5250
5251        <para>
5252         This is used by <link
5253         linkend="pgupgrade"><application>pg_upgrade</></link>.
5254        </para>
5255       </listitem>
5256
5257       <listitem>
5258        <para>
5259         Make initdb issue a warning about placing the data directory at the
5260         top of a file system mount point (Bruce Momjian)
5261        </para>
5262       </listitem>
5263
5264      </itemizedlist>
5265
5266     </sect4>
5267
5268    </sect3>
5269
5270    <sect3>
5271     <title>Source Code</title>
5272
5273      <itemizedlist>
5274
5275       <listitem>
5276        <para>
5277         Add infrastructure to allow plug-in <link
5278         linkend="bgworker">background worker processes</link>
5279         (&Aacute;lvaro Herrera)
5280        </para>
5281       </listitem>
5282
5283       <listitem>
5284        <para>
5285         Create a centralized timeout <acronym>API</> (Zolt&aacute;n
5286         B&ouml;sz&ouml;rm&eacute;nyi)
5287        </para>
5288       </listitem>
5289
5290       <listitem>
5291        <para>
5292         Create libpgcommon and move <function>pg_malloc()</> and other
5293         functions there (&Aacute;lvaro Herrera, Andres Freund)
5294        </para>
5295
5296        <para>
5297         This allows libpgport to be used solely for portability-related code.
5298        </para>
5299       </listitem>
5300
5301       <listitem>
5302        <para>
5303         Add support for list links embedded in larger structs (Andres Freund)
5304        </para>
5305       </listitem>
5306
5307       <listitem>
5308        <para>
5309         Use <literal>SA_RESTART</> for all signals,
5310         including <literal>SIGALRM</> (Tom Lane)
5311        </para>
5312       </listitem>
5313
5314       <listitem>
5315        <para>
5316         Ensure that the correct text domain is used when
5317         translating <function>errcontext()</> messages
5318         (Heikki Linnakangas)
5319        </para>
5320       </listitem>
5321
5322       <listitem>
5323        <para>
5324         Standardize naming of client-side memory allocation functions (Tom Lane)
5325        </para>
5326       </listitem>
5327
5328       <listitem>
5329        <para>
5330         Provide support for <quote>static assertions</> that will fail at
5331         compile time if some compile-time-constant condition is not met
5332         (Andres Freund, Tom Lane)
5333        </para>
5334       </listitem>
5335
5336       <listitem>
5337        <para>
5338         Support <function>Assert()</> in client-side code (Andrew Dunstan)
5339        </para>
5340       </listitem>
5341
5342       <listitem>
5343        <para>
5344         Add decoration to inform the C compiler that some <function>ereport()</>
5345         and <function>elog()</> calls do not return (Peter Eisentraut,
5346         Andres Freund, Tom Lane, Heikki Linnakangas)
5347        </para>
5348       </listitem>
5349
5350       <listitem>
5351        <para>
5352         Allow options to be passed to the regression
5353         test output comparison utility via <link
5354         linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
5355         (Peter Eisentraut)
5356        </para>
5357       </listitem>
5358
5359       <listitem>
5360        <para>
5361         Add isolation tests for <link
5362         linkend="SQL-CREATEINDEX"><command>CREATE INDEX
5363         CONCURRENTLY</></link> (Abhijit Menon-Sen)
5364        </para>
5365       </listitem>
5366
5367       <listitem>
5368        <para>
5369         Remove typedefs for <type>int2</>/<type>int4</> as they are better
5370         represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
5371        </para>
5372       </listitem>
5373
5374       <listitem>
5375        <para>
5376         Fix <link linkend="install">install-strip</link> on Mac <productname>OS
5377         X</> (Peter Eisentraut)
5378        </para>
5379       </listitem>
5380
5381       <listitem>
5382        <para>
5383         Remove <link linkend="configure">configure</link> flag
5384         <option>--disable-shared</>, as it is no longer supported
5385         (Bruce Momjian)
5386        </para>
5387       </listitem>
5388
5389       <listitem>
5390        <para>
5391         Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
5392        </para>
5393       </listitem>
5394
5395       <listitem>
5396        <para>
5397         Provide Emacs macro to set Perl formatting to
5398         match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
5399        </para>
5400       </listitem>
5401
5402       <listitem>
5403        <para>
5404         Run tool to check the keyword list whenever the backend grammar is
5405         changed (Tom Lane)
5406        </para>
5407       </listitem>
5408
5409       <listitem>
5410        <para>
5411         Change the way <literal>UESCAPE</> is lexed, to significantly reduce
5412         the size of the lexer tables (Heikki Linnakangas)
5413        </para>
5414       </listitem>
5415
5416       <listitem>
5417        <para>
5418         Centralize <application>flex</> and <application>bison</>
5419         <application>make</> rules (Peter Eisentraut)
5420        </para>
5421
5422        <para>
5423         This is useful for <application>pgxs</> authors.
5424        </para>
5425       </listitem>
5426
5427       <listitem>
5428        <para>
5429         Change many internal backend functions to return object <type>OID</>s
5430         rather than void (Dimitri Fontaine)
5431        </para>
5432
5433        <para>
5434         This is useful for event triggers.
5435        </para>
5436       </listitem>
5437
5438       <listitem>
5439        <para>
5440         Invent pre-commit/pre-prepare/pre-subcommit events for transaction
5441         callbacks (Tom Lane)
5442        </para>
5443
5444        <para>
5445         Loadable modules that use transaction callbacks might need modification
5446         to handle these new event types.
5447        </para>
5448       </listitem>
5449
5450       <listitem>
5451        <para>
5452         Add function <link
5453         linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
5454         to produce a machine-readable description of a database object
5455         (&Aacute;lvaro Herrera)
5456        </para>
5457       </listitem>
5458
5459       <listitem>
5460        <para>
5461         Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
5462        </para>
5463       </listitem>
5464
5465       <listitem>
5466        <para>
5467         Implement a generic binary heap and use it for Merge-Append
5468         operations (Abhijit Menon-Sen)
5469        </para>
5470       </listitem>
5471
5472       <listitem>
5473        <para>
5474         Provide a tool to help detect timezone abbreviation changes when
5475         updating the <filename>src/timezone/data</> files
5476         (Tom Lane)
5477        </para>
5478       </listitem>
5479
5480       <listitem>
5481        <para>
5482         Add <application>pkg-config</> support for <application>libpq</>
5483         and <application>ecpg</> libraries (Peter Eisentraut)
5484        </para>
5485       </listitem>
5486
5487       <listitem>
5488        <para>
5489         Remove <filename>src/tool/backend</>, now that the content is on
5490         the <productname>PostgreSQL</> wiki (Bruce Momjian)
5491        </para>
5492       </listitem>
5493
5494       <listitem>
5495        <para>
5496         Split out <link linkend="wal"><acronym>WAL</></link> reading as
5497         an independent facility (Heikki Linnakangas, Andres Freund)
5498        </para>
5499       </listitem>
5500
5501       <listitem>
5502        <para>
5503         Use a 64-bit integer to represent <link
5504         linkend="wal"><acronym>WAL</></link> positions
5505         (<structname>XLogRecPtr</>) instead of two 32-bit integers
5506         (Heikki Linnakangas)
5507        </para>
5508
5509        <para>
5510         Generally, tools that need to read the <acronym>WAL</> format
5511         will need to be adjusted.
5512        </para>
5513       </listitem>
5514
5515       <listitem>
5516        <para>
5517         Allow <link linkend="plpython">PL/Python</link> to support
5518         platform-specific include directories (Peter Eisentraut)
5519        </para>
5520       </listitem>
5521
5522       <listitem>
5523        <para>
5524         Allow <link linkend="plpython">PL/Python</link> on <productname>OS
5525         X</> to build against custom versions of <application>Python</>
5526         (Peter Eisentraut)
5527        </para>
5528       </listitem>
5529
5530      </itemizedlist>
5531
5532    </sect3>
5533
5534    <sect3>
5535     <title>Additional Modules</title>
5536
5537     <itemizedlist>
5538
5539       <listitem>
5540        <para>
5541         Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
5542         data wrapper</link> contrib module to allow access to
5543         other <productname>Postgres</> servers (Shigeru Hanada)
5544        </para>
5545
5546        <para>
5547         This foreign data wrapper supports writes.
5548        </para>
5549       </listitem>
5550
5551       <listitem>
5552        <para>
5553         Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
5554         contrib program (Andres Freund)
5555        </para>
5556       </listitem>
5557
5558       <listitem>
5559        <para>
5560         Add support for indexing of regular-expression searches in
5561         <link linkend="pgtrgm"><productname>pg_trgm</></link>
5562         (Alexander Korotkov)
5563        </para>
5564       </listitem>
5565
5566       <listitem>
5567        <para>
5568         Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
5569         handling of multibyte characters (Tom Lane)
5570        </para>
5571
5572        <para>
5573         On a platform that does not have the wcstombs() or towlower() library
5574         functions, this could result in an incompatible change in the contents
5575         of <productname>pg_trgm</> indexes for non-ASCII data.  In such cases,
5576         <command>REINDEX</> those indexes to ensure correct search results.
5577        </para>
5578       </listitem>
5579
5580       <listitem>
5581        <para>
5582         Add a <link linkend="pgstattuple">pgstattuple</link> function to report
5583         the size of the pending-insertions list of a <acronym>GIN</> index
5584         (Fujii Masao)
5585        </para>
5586       </listitem>
5587
5588       <listitem>
5589        <para>
5590         Make <link linkend="oid2name"><application>oid2name</></link>,
5591         <link linkend="pgbench"><application>pgbench</></link>, and
5592         <link linkend="vacuumlo"><application>vacuumlo</></link> set
5593         <varname>fallback_application_name</> (Amit Kapila)
5594        </para>
5595       </listitem>
5596
5597       <listitem>
5598        <para>
5599         Improve output of <link
5600         linkend="pgtesttiming"><application>pg_test_timing</></link>
5601         (Bruce Momjian)
5602        </para>
5603       </listitem>
5604
5605       <listitem>
5606        <para>
5607         Improve output of <link
5608         linkend="pgtestfsync"><application>pg_test_fsync</></link>
5609         (Peter Geoghegan)
5610        </para>
5611       </listitem>
5612
5613       <listitem>
5614        <para>
5615         Create a dedicated foreign data wrapper, with its own option validator
5616         function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
5617        </para>
5618
5619        <para>
5620         When using this FDW to define the target of a <application>dblink</>
5621         connection, instead of using a hard-wired list of connection options,
5622         the underlying <application>libpq</> library is consulted to see what
5623         connection options it supports.
5624        </para>
5625       </listitem>
5626
5627     </itemizedlist>
5628
5629     <sect4>
5630      <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
5631
5632      <itemizedlist>
5633
5634       <listitem>
5635        <para>
5636         Allow <application>pg_upgrade</> to do dumps and restores in
5637         parallel (Bruce Momjian, Andrew Dunstan)
5638        </para>
5639
5640        <para>
5641         This allows parallel schema dump/restore of databases, as well as
5642         parallel copy/link of data files per tablespace.  Use the
5643         <option>--jobs</> option to specify the level of parallelism.
5644        </para>
5645       </listitem>
5646
5647       <listitem>
5648        <para>
5649         Make <application>pg_upgrade</> create Unix-domain sockets in
5650         the current directory (Bruce Momjian, Tom Lane)
5651        </para>
5652
5653        <para>
5654         This reduces the possibility that someone will accidentally connect
5655         during the upgrade.
5656        </para>
5657       </listitem>
5658
5659       <listitem>
5660        <para>
5661         Make <application>pg_upgrade</> <option>--check</> mode properly
5662         detect the location of non-default socket directories (Bruce
5663         Momjian, Tom Lane)
5664        </para>
5665       </listitem>
5666
5667       <listitem>
5668        <para>
5669         Improve performance of <application>pg_upgrade</> for databases
5670         with many tables (Bruce Momjian)
5671        </para>
5672       </listitem>
5673
5674       <listitem>
5675        <para>
5676         Improve <application>pg_upgrade</>'s logs by showing
5677         executed commands (&Aacute;lvaro Herrera)
5678        </para>
5679       </listitem>
5680
5681       <listitem>
5682        <para>
5683         Improve <application>pg_upgrade</>'s status display during
5684         copy/link (Bruce Momjian)
5685        </para>
5686       </listitem>
5687
5688      </itemizedlist>
5689
5690     </sect4>
5691
5692     <sect4>
5693      <title><link linkend="pgbench"><application>pgbench</></link></title>
5694
5695      <itemizedlist>
5696
5697       <listitem>
5698        <para>
5699         Add <option>--foreign-keys</> option to <application>pgbench</>
5700         (Jeff Janes)
5701        </para>
5702
5703        <para>
5704         This adds foreign key constraints to the standard tables created by
5705         <application>pgbench</>, for use in foreign key performance testing.
5706        </para>
5707       </listitem>
5708
5709       <listitem>
5710        <para>
5711         Allow <application>pgbench</> to aggregate performance statistics
5712         and produce output every <option>--aggregate-interval</>
5713         seconds (Tomas Vondra)
5714        </para>
5715       </listitem>
5716
5717       <listitem>
5718        <para>
5719         Add <application>pgbench</> <option>--sampling-rate</> option
5720         to control the percentage of transactions logged (Tomas Vondra)
5721        </para>
5722       </listitem>
5723
5724       <listitem>
5725        <para>
5726         Reduce and improve the status message output of
5727         <application>pgbench</>'s initialization mode (Robert Haas,
5728         Peter Eisentraut)
5729        </para>
5730       </listitem>
5731
5732       <listitem>
5733        <para>
5734         Add <application>pgbench</> <option>-q</> mode to print one output
5735         line every five seconds (Tomas Vondra)
5736        </para>
5737       </listitem>
5738
5739       <listitem>
5740        <para>
5741         Output <application>pgbench</> elapsed and estimated remaining
5742         time during initialization (Tomas Vondra)
5743        </para>
5744       </listitem>
5745
5746       <listitem>
5747        <para>
5748         Allow <application>pgbench</> to use much larger scale factors,
5749         by changing relevant columns from <type>integer</> to <type>bigint</>
5750         when the requested scale factor exceeds 20000
5751         (Greg Smith)
5752        </para>
5753       </listitem>
5754
5755     </itemizedlist>
5756
5757     </sect4>
5758
5759    </sect3>
5760
5761    <sect3>
5762     <title>Documentation</title>
5763
5764     <itemizedlist>
5765
5766       <listitem>
5767        <para>
5768         Allow <productname>EPUB</>-format documentation to be created
5769         (Peter Eisentraut)
5770        </para>
5771       </listitem>
5772
5773       <listitem>
5774        <para>
5775         Update <productname>FreeBSD</> kernel configuration documentation
5776         (Brad Davis)
5777        </para>
5778       </listitem>
5779
5780       <listitem>
5781        <para>
5782         Improve <link linkend="tutorial-window"><literal>WINDOW</>
5783         function</link> documentation (Bruce Momjian, Florian Pflug)
5784        </para>
5785       </listitem>
5786
5787       <listitem>
5788        <para>
5789         Add <link linkend="docguide-toolsets">instructions</link> for setting
5790         up the documentation tool chain on Mac <productname>OS X</>
5791         (Peter Eisentraut)
5792        </para>
5793       </listitem>
5794
5795       <listitem>
5796        <para>
5797         Improve <link
5798         linkend="guc-commit-delay"><varname>commit_delay</></link>
5799         documentation (Peter Geoghegan)
5800        </para>
5801       </listitem>
5802
5803     </itemizedlist>
5804
5805    </sect3>
5806
5807   </sect2>
5808  </sect1>