1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-5">
5 <title>Release 9.3.5</title>
8 <title>Release Date</title>
9 <simpara>2014-07-24</simpara>
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">.
19 <title>Migration to Version 9.3.5</title>
22 A dump/restore is not required for those running 9.3.X.
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
34 Also, if you are upgrading from a version earlier than 9.3.4,
35 see <xref linkend="release-9-3-4">.
41 <title>Changes</title>
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
54 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
55 left behind by <application>initdb</> (Bruce Momjian)
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:
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;
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</>.
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
93 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
94 indexes on <type>bit</> columns (Heikki Linnakangas)
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
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
118 Protect against torn pages when deleting GIN list pages (Heikki
123 This fix prevents possible index corruption if a system crash occurs
124 while the page update is being written to disk.
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
139 Don't clear the right-link of a GiST index page while replaying
140 updates from WAL (Heikki Linnakangas)
144 This error could lead to transiently wrong answers from GiST index
145 scans performed in Hot Standby.
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
158 Fix corner-case infinite loop during insertion into an SP-GiST text
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
172 Fix incorrect answers from SP-GiST index searches
173 with <literal>-|-</literal> (range adjacency) operator
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
186 Fix wraparound handling for <filename>pg_multixact/members</>
187 (Álvaro Herrera)
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
200 Truncate <structname>pg_multixact</> during checkpoints, not
201 during <command>VACUUM</> (Álvaro Herrera)
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.
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
218 Fix possible inconsistency of all-visible flags after WAL recovery
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
235 Fix possibly-incorrect cache invalidation during nested calls
236 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
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
248 Fix race condition when updating a tuple concurrently locked by
249 another process (Andres Freund, Álvaro Herrera)
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
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)
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
281 Don't assume a subquery's output is unique if there's a set-returning
282 function in its targetlist (David Rowley)
286 This oversight could lead to misoptimization of constructs
287 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
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
301 Improve planner to drop constant-NULL inputs
302 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
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.
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
320 Ensure that the planner sees equivalent <literal>VARIADIC</> and
321 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
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
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
342 Fix handling of nested <type>JSON</> objects
343 in <function>json_populate_recordset()</> and friends
344 (Michael Paquier, Tom Lane)
348 A nested <type>JSON</> object could result in previous fields of the
349 parent object not being shown in the output.
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
362 Fix identification of input type category in <function>to_json()</>
363 and friends (Tom Lane)
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.
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
385 Fix failure to detoast fields in composite elements of structured
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.
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
410 Fix <quote>record type has not been registered</> failures with
411 whole-row references to the output of Append plan nodes (Tom Lane)
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
427 Fix possible crash when invoking a user-defined function while
428 rewinding a cursor (Tom Lane)
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
445 Fix query-lifespan memory leak while evaluating the arguments for a
446 function in <literal>FROM</> (Tom Lane)
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
463 Fix session-lifespan memory leaks in regular-expression processing
464 (Tom Lane, Arthur O'Dwyer, Greg Stark)
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
481 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
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
496 Prevent foreign tables from being created with OIDS
497 when <xref linkend="guc-default-with-oids"> is true
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
514 Fix liveness checks for rows that were inserted in the current
515 transaction and then deleted by a now-rolled-back subtransaction
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.
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
538 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
539 during <command>PREPARE TRANSACTION</> (Andres Freund)
543 After the <command>PREPARE</>, the originating session is no longer in
544 a transaction, so it should not continue to display a transaction
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
562 Fix <command>REASSIGN OWNED</> to not fail for text search objects
563 (Álvaro Herrera)
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
576 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
577 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
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
589 Reduce indentation in rule/view dumps to improve readability and avoid
590 excessive whitespace (Greg Stark, Tom Lane)
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.
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
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)
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
629 Repair view printing for some cases involving functions
630 in <literal>FROM</> that return a composite type containing dropped
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
647 Block signals during postmaster startup (Tom Lane)
651 This ensures that the postmaster will properly clean up after itself
652 if, for example, it receives <systemitem>SIGINT</> while still
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
667 Fix client host name lookup when processing <filename>pg_hba.conf</>
668 entries that specify host names instead of IP addresses (Tom Lane)
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.
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
688 Allow the root user to use <literal>postgres -C variable</> and
689 <literal>postgres --describe-config</> (MauMau)
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.
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
712 Secure Unix-domain sockets of temporary postmasters started during
713 <literal>make check</> (Noah Misch)
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.
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.
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
747 Fix tablespace creation WAL replay to work on Windows (MauMau)
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
762 Fix detection of socket creation failures on Windows (Bruce Momjian)
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
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)
784 Previously, if such a parameter were changed in the file post-startup,
785 the change would have no effect.
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
801 Properly quote executable path names on Windows (Nikhil Deshpande)
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.
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
823 Fix linking of <application>libpython</> on OS X (Tom Lane)
827 The method we previously used can fail with the Python library
828 supplied by Xcode 5.0 and later.
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
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)
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.
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
872 Ensure that LDAP lookup attempts in <application>libpq</> time out as
873 intended (Laurenz Albe)
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
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
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
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
910 Fix <application>pg_dump</> to cope with a materialized view that
911 depends on a table's primary key (Tom Lane)
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
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
930 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
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
948 Fix <application>pg_restore</>'s processing of old-style large object
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.
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
969 Fix <application>pg_upgrade</> for cases where the new server creates
970 a TOAST table but the old version did not (Bruce Momjian)
974 This rare situation would manifest as <quote>relation OID mismatch</>
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
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
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, Álvaro Herrera, Tom Lane)
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.
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
1018 Prevent <filename>contrib/auto_explain</> from changing the output of
1019 a user's <command>EXPLAIN</> (Tom Lane)
1023 If <filename>auto_explain</> is active, it could cause
1024 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
1025 print timing information.
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
1039 Fix query-lifespan memory leak in <filename>contrib/dblink</>
1040 (MauMau, Joe Conway)
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
1056 In <filename>contrib/pgcrypto</> functions, ensure sensitive
1057 information is cleared from stack variables before returning
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
1072 Prevent use of already-freed memory in
1073 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
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
1090 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
1091 library across calls (Tom Lane)
1095 This improves the efficiency of UUID generation and reduces the amount
1096 of entropy drawn from <filename>/dev/urandom</>, on platforms that
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
1114 Update time zone data files to <application>tzdata</> release 2014e
1115 for DST law changes in Crimea, Egypt, and Morocco.
1124 <sect1 id="release-9-3-4">
1125 <title>Release 9.3.4</title>
1128 <title>Release Date</title>
1129 <simpara>2014-03-20</simpara>
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">.
1139 <title>Migration to Version 9.3.4</title>
1142 A dump/restore is not required for those running 9.3.X.
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
1153 Also, if you are upgrading from a version earlier than 9.3.3,
1154 see <xref linkend="release-9-3-3">.
1160 <title>Changes</title>
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
1172 Fix WAL replay of locking an already-updated tuple (Andres Freund,
1173 Álvaro Herrera)
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.
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
1201 Restore GIN metapages unconditionally to avoid torn-page risk
1202 (Heikki Linnakangas)
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
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
1224 Avoid race condition in checking transaction commit status during
1225 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
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.
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
1243 Allow materialized views to be referenced in <command>UPDATE</>
1244 and <command>DELETE</> commands (Michael Paquier)
1248 Previously such queries failed with a complaint about not being able
1249 to lock rows in the materialized view.
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
1265 Allow regular-expression operators to be terminated early by query
1266 cancel requests (Tom Lane)
1270 This prevents scenarios wherein a pathological regular expression
1271 could lock up a server process uninterruptably for a long time.
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
1287 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
1288 single-element row arguments (Joshua Yanovski)
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.
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
1310 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
1311 rule or view (Dean Rasheed)
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.
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
1335 Improve performance of index endpoint probes during planning (Tom Lane)
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.
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
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)
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
1370 Remove the correct per-database statistics file during <command>DROP
1371 DATABASE</> (Tomas Vondra)
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.
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
1392 Fix <application>walsender</> ping logic to avoid inappropriate
1393 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
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.
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
1414 Fix <application>walsender</>'s failure to shut down cleanly when client
1415 is <application>pg_receivexlog</> (Fujii Masao)
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
1428 Check WAL level and hot standby parameters correctly when doing crash
1429 recovery that will be followed by archive recovery (Heikki Linnakangas)
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
1444 Fix test to see if hot standby connections can be allowed immediately
1445 after a crash (Heikki Linnakangas)
1450 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1451 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
1456 Add read-only <xref linkend="guc-data-checksums"> parameter to
1457 display whether page checksums are enabled (Heikki Linnakangas)
1461 Without this parameter, determining the state of checksum
1462 processing was difficult.
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
1478 Prevent interrupts while reporting non-<literal>ERROR</> messages
1483 This guards against rare server-process freezeups due to recursive
1484 entry to <function>syslog()</>, and perhaps other related problems.
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
1498 Fix memory leak in PL/Perl when returning a composite result, including
1499 multiple-OUT-parameter cases (Alex Hunsaker)
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
1512 Fix tracking of <application>psql</> script line numbers
1513 during <literal>\copy</> from out-of-line data
1514 (Kumar Rajeev Rastogi, Amit Khandekar)
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.
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
1533 Fix <application>contrib/postgres_fdw</> to handle multiple join
1534 conditions properly (Tom Lane)
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.
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
1558 Prevent intermittent <quote>could not reserve shared memory region</>
1559 failures on recent Windows versions (MauMau)
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
1575 Update time zone data files to <application>tzdata</> release 2014a
1576 for DST law changes in Fiji and Turkey, plus historical changes in
1586 <sect1 id="release-9-3-3">
1587 <title>Release 9.3.3</title>
1590 <title>Release Date</title>
1591 <simpara>2014-02-20</simpara>
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">.
1601 <title>Migration to Version 9.3.3</title>
1604 A dump/restore is not required for those running 9.3.X.
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.
1620 Note also the requirement for replication standby servers to be
1621 upgraded before their master server is upgraded.
1625 Also, if you are upgrading from a version earlier than 9.3.2,
1626 see <xref linkend="release-9-3-2">.
1632 <title>Changes</title>
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
1648 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
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.
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
1677 Prevent privilege escalation via manual calls to PL validator
1678 functions (Andres Freund)
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.
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
1706 Avoid multiple name lookups during table and index DDL
1707 (Robert Haas, Andres Freund)
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.
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
1733 Prevent buffer overrun with long datetime strings (Noah Misch)
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.
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
1760 Prevent buffer overrun due to integer overflow in size calculations
1761 (Noah Misch, Heikki Linnakangas)
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.
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
1784 Prevent overruns of fixed-size buffers
1785 (Peter Eisentraut, Jozef Mlich)
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.
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
1811 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
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</>).
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
1837 Document risks of <literal>make check</> in the regression testing
1838 instructions (Noah Misch, Tom Lane)
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
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
1863 Rework tuple freezing protocol
1864 (Álvaro Herrera, Andres Freund)
1868 The logic for tuple freezing was unable to handle some cases involving
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.
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.)
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
1894 Create separate GUC parameters to control multixact freezing
1895 (Álvaro Herrera)
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.
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
1920 Account for remote row locks propagated by local updates
1921 (Álvaro Herrera)
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.
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.
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
1951 Prevent <quote>forgetting</> valid row locks when one of several
1952 holders of a row lock aborts (Álvaro Herrera)
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.
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
1970 Fix incorrect logic during update chain locking
1971 (Álvaro Herrera)
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.
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
1989 Handle wraparound correctly during extension or truncation
1990 of <filename>pg_multixact/members</>
1991 (Andres Freund, Álvaro Herrera)
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
2003 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
2004 (Álvaro Herrera)
2008 As of 9.3, these names can be more than 4 digits, but the directory
2009 cleanup code ignored such files.
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
2021 Improve performance of multixact cache code
2022 (Álvaro Herrera)
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
2034 Optimize updating a row that's already locked by the same transaction
2035 (Andres Freund, Álvaro Herrera)
2039 This fixes a performance regression from pre-9.3 versions when doing
2040 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
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
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)
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.
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
2076 Fix possible mis-replay of WAL records when some segments of a
2077 relation aren't full size (Greg Stark, Tom Lane)
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.
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
2103 Fix bug in determining when recovery has reached consistency
2104 (Tomonari Katsumata, Heikki Linnakangas)
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.
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
2124 Fix WAL logging of visibility map changes (Heikki Linnakangas)
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
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)
2145 This error could result in <quote>PANIC: WAL contains references to
2146 invalid pages</> failures.
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
2162 Ensure that insertions into non-leaf GIN index pages write a full-page
2163 WAL record when appropriate (Heikki Linnakangas)
2167 The previous coding risked index corruption in the event of a
2168 partial-page write during a system crash.
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
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
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
2197 Ensure walreceiver sends hot-standby feedback messages on time even
2198 when there is a continuous stream of data (Andres Freund, Amit
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
2211 Prevent timeout interrupts from taking control away from mainline
2212 code unless <varname>ImmediateInterruptOK</> is set
2213 (Andres Freund, Tom Lane)
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.
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
2237 Fix race conditions during server process exit (Robert Haas)
2241 Ensure that signal handlers don't attempt to use the
2242 process's <varname>MyProc</> pointer after it's no longer valid.
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
2256 Fix race conditions in walsender shutdown logic and walreceiver
2257 SIGHUP signal handler (Tom Lane)
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
2273 Fix unsafe references to <varname>errno</> within error reporting
2274 logic (Christian Kruse)
2278 This would typically lead to odd behaviors such as missing or
2279 inappropriate <literal>HINT</> fields.
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
2295 Fix possible crashes from using <function>ereport()</> too early
2296 during server startup (Tom Lane)
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.
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
2317 Clear retry flags properly in OpenSSL socket write
2318 function (Alexander Kukushkin)
2322 This omission could result in a server lockup after unexpected loss
2323 of an SSL-encrypted connection.
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
2339 Fix length checking for Unicode identifiers (<literal>U&"..."</>
2340 syntax) containing escapes (Tom Lane)
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.
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
2358 Fix parsing of Unicode literals and identifiers just before the end
2359 of a command string or function body (Tom Lane)
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
2374 Allow keywords that are type names to be used in lists of roles
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</>.
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
2395 Fix parser crash for <literal>EXISTS(SELECT * FROM
2396 zero_column_table)</literal> (Tom Lane)
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
2412 Fix possible crash due to invalid plan for nested sub-selects, such
2413 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
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
2426 Fix mishandling of <literal>WHERE</> conditions pulled up from
2427 a <literal>LATERAL</> subquery (Tom Lane)
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.
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
2445 Disallow <literal>LATERAL</> references to the target table of
2446 an <literal>UPDATE/DELETE</> (Tom Lane)
2450 While this might be allowed in some future release, it was
2451 unintentional in 9.3, and didn't work quite right anyway.
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
2464 Fix <literal>UPDATE/DELETE</> of an inherited target table
2465 that has <literal>UNION ALL</> subqueries (Tom Lane)
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
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
2484 Fix <command>ANALYZE</> to not fail on a column that's a domain over
2485 a range type (Tom Lane)
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
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)
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.
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
2524 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
2525 default tablespace to be used without a permissions check
2530 <literal>CREATE TABLE</> has always allowed such usage,
2531 but <literal>ALTER TABLE</> didn't get the memo.
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
2543 Fix support for extensions containing event triggers (Tom Lane)
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
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)
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
2572 Fix memory leakage in JSON functions (Craig Ringer)
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
2585 Properly distinguish numbers from non-numbers when generating JSON
2586 output (Andrew Dunstan)
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
2602 Fix checks for all-zero client addresses in pgstat functions (Kevin
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
2619 Fix possible misclassification of multibyte characters by the text
2620 search parser (Tom Lane)
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.
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
2641 Fix possible misbehavior in <function>plainto_tsquery()</>
2642 (Heikki Linnakangas)
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.
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
2662 Fix placement of permissions checks in <function>pg_start_backup()</>
2663 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
2667 The previous coding might attempt to do catalog access when it
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
2684 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
2685 purposes (Tatsuo Ishii)
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
2698 Fix <literal>*</>-qualification of named parameters in SQL-language
2699 functions (Tom Lane)
2703 Given a composite-type parameter
2704 named <literal>foo</>, <literal>$1.*</> worked fine,
2705 but <literal>foo.*</> not so much.
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
2721 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
2725 It should return <literal>localhost</> if no host has been specified.
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
2741 Improve error handling in <application>libpq</> and <application>psql</>
2742 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
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.
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
2762 Fix incorrect translation handling in
2763 some <application>psql</> <literal>\d</> commands
2764 (Peter Eisentraut, Tom Lane)
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
2777 Ensure <application>pg_basebackup</>'s background process is killed
2778 when exiting its foreground process (Magnus Hagander)
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
2792 Fix possible incorrect printing of filenames
2793 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
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
2807 Avoid including tablespaces inside PGDATA twice in base backups
2808 (Dimitri Fontaine, Magnus Hagander)
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
2824 Fix misaligned descriptors in <application>ecpg</> (MauMau)
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
2840 In <application>ecpg</>, handle lack of a hostname in the connection
2841 parameters properly (Michael Meskes)
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
2857 Fix performance regression in <filename>contrib/dblink</> connection
2858 startup (Joe Conway)
2862 Avoid an unnecessary round trip when client and server encodings match.
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
2878 In <filename>contrib/isn</>, fix incorrect calculation of the check
2879 digit for ISMN values (Fabien Coelho)
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
2891 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
2892 when the scale factor is large (Tatsuo Ishii)
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
2905 Fix <filename>contrib/pg_stat_statement</>'s handling
2906 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
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
2919 Improve lost-connection error handling
2920 in <filename>contrib/postgres_fdw</> (Tom Lane)
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
2936 Ensure client-code-only installation procedure works as documented
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
2953 In Mingw and Cygwin builds, install the <application>libpq</> DLL
2954 in the <filename>bin</> directory (Andrew Dunstan)
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.
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
2975 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
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
2988 Enable building with Visual Studio 2013 (Brar Piening)
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
3004 Don't generate plain-text <filename>HISTORY</>
3005 and <filename>src/test/regress/README</> files anymore (Tom Lane)
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.
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
3031 Update time zone data files to <application>tzdata</> release 2013i
3032 for DST law changes in Jordan and historical changes in Cuba.
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.
3048 <sect1 id="release-9-3-2">
3049 <title>Release 9.3.2</title>
3052 <title>Release Date</title>
3053 <simpara>2013-12-05</simpara>
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">.
3063 <title>Migration to Version 9.3.2</title>
3066 A dump/restore is not required for those running 9.3.X.
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.
3076 Also, if you are upgrading from a version earlier than 9.3.1,
3077 see <xref linkend="release-9-3-1">.
3083 <title>Changes</title>
3089 Fix <command>VACUUM</>'s tests to see whether it can
3090 update <structfield>relfrozenxid</> (Andres Freund)
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.
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</>).
3120 Fix multiple bugs in MultiXactId freezing (Andres Freund,
3121 Álvaro Herrera)
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.
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.
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.
3149 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
3150 during hot standby startup (Andres Freund, Heikki Linnakangas)
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.
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.
3175 Fix multiple bugs in update chain traversal (Andres Freund,
3176 Álvaro Herrera)
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
3189 Fix dangling-pointer problem in fast-path locking (Tom Lane)
3193 This could lead to corruption of the lock data structures in shared
3194 memory, causing <quote>lock already held</> and other odd errors.
3200 Fix assorted race conditions in timeout management (Tom Lane)
3204 These errors could result in a server process becoming unresponsive
3205 because it had blocked SIGALRM and/or SIGINT.
3211 Truncate <filename>pg_multixact</> contents during WAL replay
3216 This avoids ever-increasing disk space consumption in standby servers.
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)
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.
3237 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
3241 This bug could result in large amounts of useless autovacuum activity.
3247 Fix race condition in GIN index posting tree page deletion (Heikki
3252 This could lead to transient wrong answers or query failures.
3258 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
3259 index creation (Teodor Sigaev)
3265 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
3271 Re-allow duplicate table aliases if they're within aliased JOINs
3276 Historically <productname>PostgreSQL</> has accepted queries like
3278 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
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.
3289 Avoid flattening a subquery whose <literal>SELECT</> list contains a
3290 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
3294 This avoids unexpected results due to extra evaluations of the
3301 Fix planner's processing of non-simple-variable subquery outputs
3302 nested within outer joins (Tom Lane)
3306 This error could lead to incorrect plans for queries involving
3307 multiple levels of subqueries within <literal>JOIN</> syntax.
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)
3321 Fix planner crash with whole-row reference to a subquery (Tom Lane)
3327 Fix incorrect generation of optimized MIN()/MAX() plans for
3328 inheritance trees (Tom Lane)
3332 The planner could fail in cases where the MIN()/MAX() argument was an
3333 expression rather than a simple variable.
3339 Fix premature deletion of temporary files (Andres Freund)
3345 Prevent intra-transaction memory leak when printing range values
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.
3358 Fix memory leaks when reloading configuration files (Heikki
3359 Linnakangas, Hari Babu)
3365 Prevent incorrect display of dropped columns in NOT NULL and CHECK
3366 constraint violation messages (Michael Paquier and Tom Lane)
3372 Allow default arguments and named-argument notation for window
3373 functions (Tom Lane)
3377 Previously, these cases were likely to crash.
3383 Suppress trailing whitespace on each line when pretty-printing rules
3384 and views (Tom Lane)
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.
3396 Fix possible read past end of memory in rule printing (Peter Eisentraut)
3402 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
3407 Expressions of this kind are now implicitly promoted to
3408 regular <type>int2</> or <type>oid</> arrays.
3414 Return a valid JSON value when converting an empty <type>hstore</> value
3422 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
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
3437 Prevent possible misbehavior when logging translations of Windows
3438 error codes (Tom Lane)
3444 Properly quote generated command lines in <application>pg_ctl</>
3445 (Naoya Anzai and Tom Lane)
3449 This fix applies only to Windows.
3455 Fix <application>pg_dumpall</> to work when a source database
3457 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
3458 via <command>ALTER DATABASE SET</> (Kevin Grittner)
3462 Previously, the generated script would fail during restore.
3468 Fix <application>pg_isready</> to handle its <option>-d</> option
3469 properly (Fabrízio de Royes Mello and Fujii Masao)
3475 Fix parsing of WAL file names in <application>pg_receivexlog</>
3476 (Heikki Linnakangas)
3480 This error made <application>pg_receivexlog</> unable to restart
3481 streaming after stopping, once at least 4 GB of WAL had been written.
3487 Report out-of-disk-space failures properly
3488 in <application>pg_upgrade</> (Peter Eisentraut)
3494 Make <application>ecpg</> search for quoted cursor names
3495 case-sensitively (Zoltán Böszörményi)
3501 Fix <application>ecpg</>'s processing of lists of variables
3502 declared <type>varchar</> (Zoltán Böszörményi)
3508 Make <filename>contrib/lo</> defend against incorrect trigger definitions
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.
3527 <sect1 id="release-9-3-1">
3528 <title>Release 9.3.1</title>
3531 <title>Release Date</title>
3532 <simpara>2013-10-10</simpara>
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">.
3542 <title>Migration to Version 9.3.1</title>
3545 A dump/restore is not required for those running 9.3.X.
3549 However, if you use the <literal>hstore</> extension, see the
3550 first changelog entry.
3556 <title>Changes</title>
3562 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
3563 extension during an update (Andrew Dunstan)
3567 Users who upgraded a pre-9.3 database containing <literal>hstore</>
3570 ALTER EXTENSION hstore UPDATE;
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
3580 Fix memory leak when creating B-tree indexes on range columns
3581 (Heikki Linnakangas)
3587 Fix memory leak caused by <function>lo_open()</function> failure
3588 (Heikki Linnakangas)
3594 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
3600 Fix deadlock bug in libpq when using SSL (Stephen Frost)
3606 Fix timeline handling bugs in <application>pg_receivexlog</>
3607 (Heikki Linnakangas, Andrew Gierth)
3613 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
3614 variables unless function body checking is enabled (Tom Lane)
3620 Remove rare inaccurate warning during vacuum of index-less tables
3621 (Heikki Linnakangas)
3630 <sect1 id="release-9-3">
3631 <title>Release 9.3</title>
3634 <title>Release Date</title>
3635 <simpara>2013-09-09</simpara>
3639 <title>Overview</title>
3642 Major enhancements in <productname>PostgreSQL</> 9.3 include:
3645 <!-- This list duplicates items below, but without authors or details-->
3651 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
3658 Make simple views <link
3659 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
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
3673 Implement <acronym>SQL</>-standard <link
3674 linkend="queries-lateral"><literal>LATERAL</></link> option for
3675 <literal>FROM</>-clause subqueries and function calls
3681 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
3682 wrappers</link> to support writes (inserts/updates/deletes) on foreign
3689 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
3690 data wrapper</link> to allow access to
3691 other <productname>Postgres</> servers
3697 Add support for <link linkend="event-triggers">event triggers</link>
3703 Add optional ability to <link
3704 linkend="app-initdb-data-checksums">checksum</link> data pages and
3711 Prevent non-key-field row updates from blocking foreign key checks
3717 Greatly reduce System V <link linkend="sysvipc">shared
3718 memory</link> requirements
3725 The above items are explained in more detail in the sections below.
3732 <title>Migration to Version 9.3</title>
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.
3742 Version 9.3 contains a number of changes that may affect compatibility
3743 with previous releases. Observe the following incompatibilities:
3747 <title>Server Settings</title>
3753 Rename <varname>replication_timeout</> to <link
3754 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
3759 This setting controls the <link
3760 linkend="wal"><acronym>WAL</></link> sender timeout.
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)
3774 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
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.
3789 <title>Other</title>
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)
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.
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.
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)
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.
3834 Force cached plans to be replanned if the <link
3835 linkend="guc-search-path"><varname>search_path</></link> changes
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.
3849 linkend="functions-formatting-table"><function>to_number()</></link>
3850 to properly handle a period used as a thousands separator (Tom Lane)
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.
3863 Fix <literal>STRICT</> non-set-returning functions that have
3864 set-returning functions in their arguments to properly return null
3869 A null value passed to the strict function should result in a null
3870 output, but instead, that output row was suppressed entirely.
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)
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.
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</>
3899 Previously this case was represented by <literal>u</>
3900 for <quote>unspecified</>.
3911 <title>Changes</title>
3914 Below you will find a detailed account of the changes between
3915 <productname>PostgreSQL</productname> 9.3 and the previous major
3920 <title>Server</title>
3923 <title>Locking</title>
3929 Prevent non-key-field row updates from blocking foreign key checks
3930 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
3931 Shulgin, Marti Raudsepp, Alexander Shulgin)
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.
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án Böszörményi)
3959 <title>Indexes</title>
3965 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
3966 support for range data types (Alexander Korotkov)
3972 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
3973 unlogged (Jeevan Chalke)
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)
3987 Improve concurrency of hash index operations (Robert Haas)
3996 <title>Optimizer</title>
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)
4010 Improve optimizer's cost estimation for index access (Tom Lane)
4016 Improve optimizer's hash table size estimate for
4017 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
4023 Suppress no-op Result and Limit plan nodes
4024 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
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
4041 <title>General Performance</title>
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)
4055 Improve performance of <link
4056 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
4063 Improve synchronization of sessions waiting for <link
4064 linkend="guc-commit-delay"><varname>commit_delay</></link>
4069 This greatly improves the usefulness of <varname>commit_delay</>.
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)
4085 Make vacuum recheck visibility after it has removed expired tuples
4090 This increases the chance of a page being marked as all-visible.
4096 Add per-resource-owner lock caches (Jeff Janes)
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</>.
4108 Avoid scanning the entire relation cache at commit of a transaction
4109 that creates a new relation (Jeff Janes)
4113 This speeds up sessions that create many tables in successive
4114 small transactions, such as a <application>pg_restore</> run.
4120 Improve performance of transactions that drop many relations
4130 <title>Monitoring</title>
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)
4142 The checksum option can be set during <link
4143 linkend="APP-INITDB">initdb</link>.
4149 Split the <link linkend="monitoring-stats">statistics collector's</link>
4150 data file into separate global and per-database files (Tomas Vondra)
4154 This reduces the I/O required for statistics tracking.
4160 Fix the statistics collector to operate properly in cases where the
4161 system clock goes backwards (Tom Lane)
4165 Previously, statistics collection would stop until the time again
4166 reached the latest time previously recorded.
4172 Emit an informative message to postmaster standard error when we
4173 are about to stop logging there
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
4189 <title>Authentication</title>
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
4204 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
4205 reporting and documentation (Peter Eisentraut)
4211 Add support for specifying <acronym>LDAP</> authentication parameters
4212 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
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)
4225 This should yield a more appropriate SSL cipher set.
4231 Parse and load <link
4232 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
4233 once, not during each connection (Amit Kapila)
4237 This is similar to how <filename>pg_hba.conf</> is processed.
4246 <title>Server Settings</title>
4252 Greatly reduce System V <link linkend="sysvipc">shared
4253 memory</link> requirements (Robert Haas)
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.
4265 Allow the postmaster to listen on multiple Unix-domain sockets
4266 (Honza Horák)
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.
4279 Allow a directory of configuration files to be processed (Magnus
4280 Hagander, Greg Smith, Selena Deckelmann)
4284 Such a directory is specified with <link
4285 linkend="config-includes"><varname>include_dir</></link> in the server
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)
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.
4307 Remove the <link linkend="guc-external-pid-file">external
4308 <acronym>PID</> file</link>, if any, on postmaster exit
4320 <title>Replication and Recovery</title>
4326 Allow a streaming replication standby to <link
4327 linkend="protocol-replication">follow a timeline switch</link>
4328 (Heikki Linnakangas)
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.
4340 Add <acronym>SQL</> functions <link
4341 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
4343 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
4348 These functions report the status of base backups.
4354 Improve performance of streaming log shipping with <link
4355 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
4356 disabled (Andres Freund)
4362 Allow much faster promotion of a streaming standby to primary (Simon
4363 Riggs, Kyotaro Horiguchi)
4369 Add the last checkpoint's redo location to <link
4370 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
4371 output (Fujii Masao)
4375 This information is useful for determining which <acronym>WAL</>
4376 files are needed for restore.
4382 Allow tools like <link
4383 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
4384 to run on computers with different architectures (Heikki
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.
4399 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
4400 <option>--write-recovery-conf</> output a
4401 minimal <filename>recovery.conf</> file (Zoltán
4402 Böszörményi, Magnus Hagander)
4406 This simplifies setting up a standby server.
4413 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
4415 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
4416 <option>--xlog-method</> to handle streaming timeline switches
4417 (Heikki Linnakangas)
4424 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
4425 parameter to control the <acronym>WAL</> receiver's timeout
4430 This allows more rapid detection of connection failure.
4436 Change the <link linkend="wal"><acronym>WAL</></link> record format to
4437 allow splitting the record header across pages (Heikki Linnakangas)
4441 The new format is slightly more compact, and is more efficient to
4451 <title>Queries</title>
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)
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.
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)
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)
4491 <title>Object Manipulation</title>
4497 Add support for <link linkend="event-triggers">event triggers</link>
4498 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
4502 This allows server-side functions written in event-enabled
4503 languages to be called when DDL commands are run.
4509 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
4510 wrappers</link> to support writes (inserts/updates/deletes) on foreign
4511 tables (KaiGai Kohei)
4517 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
4518 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
4524 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
4525 OWNED</></link> also change ownership of shared objects
4526 (Álvaro Herrera)
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)
4540 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
4541 TABLE</></link>'s messages about implicit index and sequence creation
4546 These messages now appear at <literal>DEBUG1</> verbosity, so that
4547 they will not be shown by default.
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)
4559 Previously, it threw an error if the schema did not exist.
4565 Provide clients with <link
4566 linkend="libpq-pqresulterrorfield">constraint violation details</link>
4567 as separate fields (Pavel Stehule)
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.
4581 <title><command>ALTER</></title>
4587 Support <literal>IF NOT EXISTS</> option in <link
4588 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
4593 This is useful for conditionally adding values to enumerated types.
4599 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
4600 SET</></link> to establish settings for all users (Peter Eisentraut)
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.
4613 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
4614 ... RENAME</></link> (Ali Dar)
4623 <title><link linkend="rules-views"><command>VIEWs</></link></title>
4629 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
4630 views</link> (Kevin Grittner)
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.
4644 Make simple views <link
4645 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
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.
4660 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
4661 VIEW</></link> syntax (Peter Eisentraut)
4665 Internally this is translated into <command>CREATE VIEW ... WITH
4672 Improve view/rule printing code to handle cases where referenced
4673 tables are renamed, or columns are renamed, added, or dropped
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
4693 <title>Data Types</title>
4699 Increase the maximum size of <link linkend="largeObjects">large
4700 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
4704 This change includes adding 64-bit-capable large object access
4705 functions, both in the server and in libpq.
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)
4721 <title><link linkend="datatype-json"><type>JSON</></link></title>
4727 Add <link linkend="functions-json">operators and functions</link>
4728 to extract elements from <type>JSON</> values (Andrew Dunstan)
4734 Allow <type>JSON</> values to be <link
4735 linkend="functions-json">converted into records</link>
4742 Add <link linkend="functions-json">functions</link> to convert
4743 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
4756 <title>Functions</title>
4763 linkend="array-functions-table"><function>array_remove()</></link>
4765 linkend="array-functions-table"><function>array_replace()</></link>
4766 functions (Marco Nenciarini, Gabriele Bartolini)
4773 linkend="functions-string-other"><function>concat()</></link>
4775 linkend="functions-string-format"><function>format()</></link>
4776 to properly expand <literal>VARIADIC</>-labeled arguments
4784 linkend="functions-string-format"><function>format()</></link>
4785 to provide field width and left/right alignment options (Pavel Stehule)
4792 linkend="functions-formatting-table"><function>to_char()</></link>,
4794 linkend="functions-formatting-table"><function>to_date()</></link>,
4796 linkend="functions-formatting-table"><function>to_timestamp()</></link>
4797 handle negative (BC) century values properly
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</>.
4811 linkend="functions-formatting-table"><function>to_date()</></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)
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)
4828 This reduces line length in view printing, for instance in <link
4829 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
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
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
4852 <title>Server-Side Languages</title>
4855 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
4861 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
4862 expression (Asif Rehman)
4866 Previously, in a function returning a composite type,
4867 <literal>RETURN</> could only reference a variable of that type.
4873 Allow PL/pgSQL to access <link
4874 linkend="plpgsql-exception-diagnostics">constraint violation
4875 details</link> as separate fields (Pavel Stehule)
4881 Allow PL/pgSQL to access the number of rows processed by
4882 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
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>.
4895 Allow unreserved keywords to be used as identifiers everywhere in
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.
4910 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
4916 Add PL/Python result object string handler (Peter Eisentraut)
4920 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
4926 Make PL/Python convert OID values to a proper Python numeric type
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)
4946 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
4952 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
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.
4971 Allow <acronym>SPI</> functions to access the number of rows processed
4972 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
4981 <title>Client Applications</title>
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)
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>
5004 This is similar to the way <link
5005 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
5006 <option>--table</> option works.
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
5016 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
5017 to allow specifying a connection string (Amit Kapila)
5023 Add libpq function <link
5024 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
5025 to return connection information (Zoltán
5026 Böszörményi, Magnus Hagander)
5033 <title><link linkend="APP-PSQL"><application>psql</></link></title>
5039 Adjust function cost settings so <application>psql</> tab
5040 completion and pattern searching are more efficient (Tom Lane)
5046 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
5047 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
5053 Allow the <application>psql</> <option>--single-transaction</>
5054 mode to work when reading from standard input (Fabien Coelho,
5059 Previously this option only worked when reading from a file.
5065 Remove <application>psql</> warning when connecting to an older
5066 server (Peter Eisentraut)
5070 A warning is still issued when connecting to a server of a newer major
5071 version than <application>psql</>'s.
5078 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
5084 Add <application>psql</> command <command>\watch</> to repeatedly
5085 execute a SQL command (Will Leinweber)
5091 Add <application>psql</> command <command>\gset</> to store query
5092 results in <application>psql</> variables (Pavel Stehule)
5098 Add <acronym>SSL</> information to <application>psql</>'s
5099 <command>\conninfo</> command (Alastair Turner)
5105 Add <quote>Security</> column to <application>psql</>'s
5106 <command>\df+</> output (Jon Erdman)
5112 Allow <application>psql</> command <command>\l</> to accept a database
5113 name pattern (Peter Eisentraut)
5119 In <application>psql</>, do not allow <command>\connect</> to
5120 use defaults if there is no active connection (Bruce Momjian)
5124 This might be the case if the server had crashed.
5130 Properly reset state after failure of a SQL command executed with
5131 <application>psql</>'s <literal>\g</> <replaceable>file</>
5136 Previously, the output from subsequent SQL commands would unexpectedly
5137 continue to go to the same file.
5146 <title>Output</title>
5152 Add a <literal>latex-longtable</> output format to
5153 <application>psql</> (Bruce Momjian)
5157 This format allows tables to span multiple pages.
5163 Add a <literal>border=3</> output mode to the <application>psql</>
5164 <literal>latex</> format (Bruce Momjian)
5170 In <application>psql</>'s tuples-only and expanded output modes, no
5171 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
5177 In <application>psql</>'s unaligned, expanded output mode, no longer
5178 print an empty line for zero rows (Peter Eisentraut)
5189 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
5195 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
5196 parallel (Joachim Wieland)
5202 Make <application>pg_dump</> output functions in a more predictable
5203 order (Joel Jacobson)
5209 Fix tar files emitted by <application>pg_dump</>
5210 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
5216 Add <option>--dbname</> option to <application>pg_dump</>, for
5217 consistency with other client commands (Heikki Linnakangas)
5221 The database name could already be supplied last without a flag.
5230 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
5236 Make initdb fsync the newly created data directory (Jeff Davis)
5240 This insures data integrity in event of a system crash shortly after
5241 initdb. This can be disabled by using <option>--nosync</>.
5247 Add initdb <option>--sync-only</> option to sync the data directory to durable
5248 storage (Bruce Momjian)
5252 This is used by <link
5253 linkend="pgupgrade"><application>pg_upgrade</></link>.
5259 Make initdb issue a warning about placing the data directory at the
5260 top of a file system mount point (Bruce Momjian)
5271 <title>Source Code</title>
5277 Add infrastructure to allow plug-in <link
5278 linkend="bgworker">background worker processes</link>
5279 (Álvaro Herrera)
5285 Create a centralized timeout <acronym>API</> (Zoltán
5286 Böszörményi)
5292 Create libpgcommon and move <function>pg_malloc()</> and other
5293 functions there (Álvaro Herrera, Andres Freund)
5297 This allows libpgport to be used solely for portability-related code.
5303 Add support for list links embedded in larger structs (Andres Freund)
5309 Use <literal>SA_RESTART</> for all signals,
5310 including <literal>SIGALRM</> (Tom Lane)
5316 Ensure that the correct text domain is used when
5317 translating <function>errcontext()</> messages
5318 (Heikki Linnakangas)
5324 Standardize naming of client-side memory allocation functions (Tom Lane)
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)
5338 Support <function>Assert()</> in client-side code (Andrew Dunstan)
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)
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>
5361 Add isolation tests for <link
5362 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
5363 CONCURRENTLY</></link> (Abhijit Menon-Sen)
5369 Remove typedefs for <type>int2</>/<type>int4</> as they are better
5370 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
5376 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
5377 X</> (Peter Eisentraut)
5383 Remove <link linkend="configure">configure</link> flag
5384 <option>--disable-shared</>, as it is no longer supported
5391 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
5397 Provide Emacs macro to set Perl formatting to
5398 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
5404 Run tool to check the keyword list whenever the backend grammar is
5411 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
5412 the size of the lexer tables (Heikki Linnakangas)
5418 Centralize <application>flex</> and <application>bison</>
5419 <application>make</> rules (Peter Eisentraut)
5423 This is useful for <application>pgxs</> authors.
5429 Change many internal backend functions to return object <type>OID</>s
5430 rather than void (Dimitri Fontaine)
5434 This is useful for event triggers.
5440 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
5441 callbacks (Tom Lane)
5445 Loadable modules that use transaction callbacks might need modification
5446 to handle these new event types.
5453 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
5454 to produce a machine-readable description of a database object
5455 (Álvaro Herrera)
5461 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
5467 Implement a generic binary heap and use it for Merge-Append
5468 operations (Abhijit Menon-Sen)
5474 Provide a tool to help detect timezone abbreviation changes when
5475 updating the <filename>src/timezone/data</> files
5482 Add <application>pkg-config</> support for <application>libpq</>
5483 and <application>ecpg</> libraries (Peter Eisentraut)
5489 Remove <filename>src/tool/backend</>, now that the content is on
5490 the <productname>PostgreSQL</> wiki (Bruce Momjian)
5496 Split out <link linkend="wal"><acronym>WAL</></link> reading as
5497 an independent facility (Heikki Linnakangas, Andres Freund)
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)
5510 Generally, tools that need to read the <acronym>WAL</> format
5511 will need to be adjusted.
5517 Allow <link linkend="plpython">PL/Python</link> to support
5518 platform-specific include directories (Peter Eisentraut)
5524 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
5525 X</> to build against custom versions of <application>Python</>
5535 <title>Additional Modules</title>
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)
5547 This foreign data wrapper supports writes.
5553 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
5554 contrib program (Andres Freund)
5560 Add support for indexing of regular-expression searches in
5561 <link linkend="pgtrgm"><productname>pg_trgm</></link>
5562 (Alexander Korotkov)
5568 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
5569 handling of multibyte characters (Tom Lane)
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.
5582 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
5583 the size of the pending-insertions list of a <acronym>GIN</> index
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)
5599 Improve output of <link
5600 linkend="pgtesttiming"><application>pg_test_timing</></link>
5607 Improve output of <link
5608 linkend="pgtestfsync"><application>pg_test_fsync</></link>
5615 Create a dedicated foreign data wrapper, with its own option validator
5616 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
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.
5630 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
5636 Allow <application>pg_upgrade</> to do dumps and restores in
5637 parallel (Bruce Momjian, Andrew Dunstan)
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.
5649 Make <application>pg_upgrade</> create Unix-domain sockets in
5650 the current directory (Bruce Momjian, Tom Lane)
5654 This reduces the possibility that someone will accidentally connect
5661 Make <application>pg_upgrade</> <option>--check</> mode properly
5662 detect the location of non-default socket directories (Bruce
5669 Improve performance of <application>pg_upgrade</> for databases
5670 with many tables (Bruce Momjian)
5676 Improve <application>pg_upgrade</>'s logs by showing
5677 executed commands (Álvaro Herrera)
5683 Improve <application>pg_upgrade</>'s status display during
5684 copy/link (Bruce Momjian)
5693 <title><link linkend="pgbench"><application>pgbench</></link></title>
5699 Add <option>--foreign-keys</> option to <application>pgbench</>
5704 This adds foreign key constraints to the standard tables created by
5705 <application>pgbench</>, for use in foreign key performance testing.
5711 Allow <application>pgbench</> to aggregate performance statistics
5712 and produce output every <option>--aggregate-interval</>
5713 seconds (Tomas Vondra)
5719 Add <application>pgbench</> <option>--sampling-rate</> option
5720 to control the percentage of transactions logged (Tomas Vondra)
5726 Reduce and improve the status message output of
5727 <application>pgbench</>'s initialization mode (Robert Haas,
5734 Add <application>pgbench</> <option>-q</> mode to print one output
5735 line every five seconds (Tomas Vondra)
5741 Output <application>pgbench</> elapsed and estimated remaining
5742 time during initialization (Tomas Vondra)
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
5762 <title>Documentation</title>
5768 Allow <productname>EPUB</>-format documentation to be created
5775 Update <productname>FreeBSD</> kernel configuration documentation
5782 Improve <link linkend="tutorial-window"><literal>WINDOW</>
5783 function</link> documentation (Bruce Momjian, Florian Pflug)
5789 Add <link linkend="docguide-toolsets">instructions</link> for setting
5790 up the documentation tool chain on Mac <productname>OS X</>
5798 linkend="guc-commit-delay"><varname>commit_delay</></link>
5799 documentation (Peter Geoghegan)