1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-3">
5 <title>Release 9.3.3</title>
8 <title>Release Date</title>
9 <simpara>2014-02-20</simpara>
13 This release contains a variety of fixes from 9.3.2.
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.3</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, several of the issues corrected in this release could have
27 resulted in corruption of foreign-key constraints; that is, there
28 might now be referencing rows for which there is no matching row in
29 the referenced table. It may be worthwhile to recheck such
30 constraints after installing this update. The simplest way to do that
31 is to drop and recreate each suspect constraint; however, that will
32 require taking an exclusive lock on both tables, so it is unlikely to
33 be acceptable in production databases. Alternatively, you can do a
34 manual join query between the two tables to look for unmatched rows.
38 Note also the requirement for replication standby servers to be
39 upgraded before their master server is upgraded.
43 Also, if you are upgrading from a version earlier than 9.3.2,
44 see <xref linkend="release-9-3-2">.
50 <title>Changes</title>
55 Author: Noah Misch <noah@leadboat.com>
56 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
57 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
58 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
59 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
60 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
61 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
66 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
71 Granting a role without <literal>ADMIN OPTION</> is supposed to
72 prevent the grantee from adding or removing members from the granted
73 role, but this restriction was easily bypassed by doing <literal>SET
74 ROLE</> first. The security impact is mostly that a role member can
75 revoke the access of others, contrary to the wishes of his grantor.
76 Unapproved role member additions are a lesser concern, since an
77 uncooperative role member could provide most of his rights to others
78 anyway by creating views or <literal>SECURITY DEFINER</> functions.
84 Author: Noah Misch <noah@leadboat.com>
85 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
86 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
87 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
88 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
89 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
90 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
95 Prevent privilege escalation via manual calls to PL validator
96 functions (Andres Freund)
100 The primary role of PL validator functions is to be called implicitly
101 during <command>CREATE FUNCTION</>, but they are also normal SQL
102 functions that a user can call explicitly. Calling a validator on
103 a function actually written in some other language was not checked
104 for and could be exploited for privilege-escalation purposes.
105 The fix involves adding a call to a privilege-checking function in
106 each validator function. Non-core procedural languages will also
107 need to make this change to their own validator functions, if any.
113 Author: Robert Haas <rhaas@postgresql.org>
114 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
115 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
116 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
117 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
118 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
119 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
124 Avoid multiple name lookups during table and index DDL
125 (Robert Haas, Andres Freund)
129 If the name lookups come to different conclusions due to concurrent
130 activity, we might perform some parts of the DDL on a different table
131 than other parts. At least in the case of <command>CREATE INDEX</>,
132 this can be used to cause the permissions checks to be performed
133 against a different table than the index creation, allowing for a
134 privilege escalation attack.
140 Author: Noah Misch <noah@leadboat.com>
141 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
142 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
143 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
144 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
145 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
146 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
151 Prevent buffer overrun with long datetime strings (Noah Misch)
155 The <literal>MAXDATELEN</> constant was too small for the longest
156 possible value of type <type>interval</>, allowing a buffer overrun
157 in <function>interval_out()</>. Although the datetime input
158 functions were more careful about avoiding buffer overrun, the limit
159 was short enough to cause them to reject some valid inputs, such as
160 input containing a very long timezone name. The <application>ecpg</>
161 library contained these vulnerabilities along with some of its own.
167 Author: Noah Misch <noah@leadboat.com>
168 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
169 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
170 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
171 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
172 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
173 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
178 Prevent buffer overrun due to integer overflow in size calculations
179 (Noah Misch, Heikki Linnakangas)
183 Several functions, mostly type input functions, calculated an
184 allocation size without checking for overflow. If overflow did
185 occur, a too-small buffer would be allocated and then written past.
191 Author: Tom Lane <tgl@sss.pgh.pa.us>
192 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
193 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
194 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
195 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
196 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
197 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
202 Prevent overruns of fixed-size buffers
203 (Peter Eisentraut, Jozef Mlich)
207 Use <function>strlcpy()</> and related functions to provide a clear
208 guarantee that fixed-size buffers are not overrun. Unlike the
209 preceding items, it is unclear whether these cases really represent
210 live issues, since in most cases there appear to be previous
211 constraints on the size of the input string. Nonetheless it seems
212 prudent to silence all Coverity warnings of this type.
218 Author: Tom Lane <tgl@sss.pgh.pa.us>
219 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
220 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
221 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
222 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
223 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
224 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
229 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
234 There are relatively few scenarios in which <function>crypt()</>
235 could return NULL, but <filename>contrib/chkpass</> would crash
236 if it did. One practical case in which this could be an issue is
237 if <application>libc</> is configured to refuse to execute unapproved
238 hashing algorithms (e.g., <quote>FIPS mode</>).
244 Author: Tom Lane <tgl@sss.pgh.pa.us>
245 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
246 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
247 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
248 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
249 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
250 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
255 Document risks of <literal>make check</> in the regression testing
256 instructions (Noah Misch, Tom Lane)
260 Since the temporary server started by <literal>make check</>
261 uses <quote>trust</> authentication, another user on the same machine
262 could connect to it as database superuser, and then potentially
263 exploit the privileges of the operating-system user who started the
264 tests. A future release will probably incorporate changes in the
265 testing procedure to prevent this risk, but some public discussion is
266 needed first. So for the moment, just warn people against using
267 <literal>make check</> when there are untrusted users on the
274 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
275 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
276 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
281 Rework tuple freezing protocol
282 (Álvaro Herrera, Andres Freund)
286 The logic for tuple freezing was unable to handle some cases involving
288 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
289 IDs</link>, with the practical effect that shared row-level locks
290 might be forgotten once old enough.
294 Fixing this required changing the WAL record format for tuple
295 freezing. While this is no issue for standalone servers, when using
296 replication it means that <emphasis>standby servers must be upgraded
297 to 9.3.3 or later before their masters are</>. An older standby will
298 be unable to interpret freeze records generated by a newer master, and
299 will fail with a PANIC message. (In such a case, upgrading the
300 standby should be sufficient to let it resume execution.)
305 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
306 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
307 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
312 Create separate GUC parameters to control multixact freezing
313 (Álvaro Herrera)
317 9.3 requires multixact tuple labels to be frozen before
318 they grow too old, in the same fashion as plain transaction ID labels
319 have been frozen for some time. Previously, the transaction ID
320 freezing parameters were used for multixact IDs too; but since
321 the consumption rates of transaction IDs and multixact IDs can be
322 quite different, this did not work very well. Introduce new settings
323 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
324 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
325 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
326 to control when to freeze multixacts.
331 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
332 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
333 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
338 Account for remote row locks propagated by local updates
339 (Álvaro Herrera)
343 If a row was locked by transaction A, and transaction B updated it,
344 the new version of the row created by B would be locked by A, yet
345 visible only to B. If transaction B then again updated the row, A's
346 lock wouldn't get checked, thus possibly allowing B to complete when
347 it shouldn't. This case is new in 9.3 since prior versions did not
348 have any types of row locking that would permit another transaction
349 to update the row at all.
353 This oversight could allow referential integrity checks to give false
354 positives (for instance, allow deletes that should have been rejected).
355 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
356 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
357 locking failures of this kind.
362 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
363 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
364 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
369 Prevent <quote>forgetting</> valid row locks when one of several
370 holders of a row lock aborts (Álvaro Herrera)
374 This was yet another mechanism by which a shared row lock could be
375 lost, thus possibly allowing updates that should have been prevented
376 by foreign-key constraints.
381 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
382 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
383 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
388 Fix incorrect logic during update chain locking
389 (Álvaro Herrera)
393 This mistake could result in spurious <quote>could not serialize access
394 due to concurrent update</> errors in <literal>REPEATABLE READ</>
395 and <literal>SERIALIZABLE</> transaction isolation modes.
400 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
401 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
402 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
407 Handle wraparound correctly during extension or truncation
408 of <filename>pg_multixact/members</>
409 (Andres Freund, Álvaro Herrera)
414 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
415 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
416 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
421 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
422 (Álvaro Herrera)
426 As of 9.3, these names can be more than 4 digits, but the directory
427 cleanup code ignored such files.
432 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
433 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
434 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
439 Improve performance of multixact cache code
440 (Álvaro Herrera)
445 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
446 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
447 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
452 Optimize updating a row that's already locked by the same transaction
453 (Andres Freund, Álvaro Herrera)
457 This fixes a performance regression from pre-9.3 versions when doing
458 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
463 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
464 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
465 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
470 During archive recovery, prefer highest timeline number when WAL
471 segments with the same ID are present in both the archive
472 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
476 Previously, not-yet-archived segments could get ignored during
477 recovery. This reverts an undesirable behavioral change in 9.3.0
478 back to the way things worked pre-9.3.
483 Author: Tom Lane <tgl@sss.pgh.pa.us>
484 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
485 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
486 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
487 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
488 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
489 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
494 Fix possible mis-replay of WAL records when some segments of a
495 relation aren't full size (Greg Stark, Tom Lane)
499 The WAL update could be applied to the wrong page, potentially many
500 pages past where it should have been. Aside from corrupting data,
501 this error has been observed to result in significant <quote>bloat</>
502 of standby servers compared to their masters, due to updates being
503 applied far beyond where the end-of-file should have been. This
504 failure mode does not appear to be a significant risk during crash
505 recovery, only when initially synchronizing a standby created from a
506 base backup taken from a quickly-changing master.
511 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
512 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
513 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
514 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
515 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
516 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
521 Fix bug in determining when recovery has reached consistency
522 (Tomonari Katsumata, Heikki Linnakangas)
526 In some cases WAL replay would mistakenly conclude that the database
527 was already consistent at the start of replay, thus possibly allowing
528 hot-standby queries before the database was really consistent. Other
529 symptoms such as <quote>PANIC: WAL contains references to invalid
530 pages</> were also possible.
535 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
536 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
537 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
542 Fix WAL logging of visibility map changes (Heikki Linnakangas)
547 Author: Tom Lane <tgl@sss.pgh.pa.us>
548 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
549 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
550 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
551 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
552 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
557 Fix improper locking of btree index pages while replaying
558 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
559 Heikki Linnakangas, Tom Lane)
563 This error could result in <quote>PANIC: WAL contains references to
564 invalid pages</> failures.
569 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
570 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
571 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
572 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
573 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
574 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
575 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
580 Ensure that insertions into non-leaf GIN index pages write a full-page
581 WAL record when appropriate (Heikki Linnakangas)
585 The previous coding risked index corruption in the event of a
586 partial-page write during a system crash.
591 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
592 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
593 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
594 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
595 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
600 When <literal>pause_at_recovery_target</>
601 and <literal>recovery_target_inclusive</> are both set, ensure the
602 target record is applied before pausing, not after (Heikki
608 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
609 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
610 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
615 Ensure walreceiver sends hot-standby feedback messages on time even
616 when there is a continuous stream of data (Andres Freund, Amit
622 Author: Tom Lane <tgl@sss.pgh.pa.us>
623 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
624 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
629 Prevent timeout interrupts from taking control away from mainline
630 code unless <varname>ImmediateInterruptOK</> is set
631 (Andres Freund, Tom Lane)
635 This is a serious issue for any application making use of statement
636 timeouts, as it could cause all manner of strange failures after a
637 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
638 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
639 and other misbehaviors.
644 Author: Robert Haas <rhaas@postgresql.org>
645 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
646 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
647 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
648 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
649 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
650 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
655 Fix race conditions during server process exit (Robert Haas)
659 Ensure that signal handlers don't attempt to use the
660 process's <varname>MyProc</> pointer after it's no longer valid.
665 Author: Tom Lane <tgl@sss.pgh.pa.us>
666 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
667 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
668 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
669 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
674 Fix race conditions in walsender shutdown logic and walreceiver
675 SIGHUP signal handler (Tom Lane)
680 Author: Tom Lane <tgl@sss.pgh.pa.us>
681 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
682 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
683 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
684 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
685 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
686 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
691 Fix unsafe references to <varname>errno</> within error reporting
692 logic (Christian Kruse)
696 This would typically lead to odd behaviors such as missing or
697 inappropriate <literal>HINT</> fields.
702 Author: Tom Lane <tgl@sss.pgh.pa.us>
703 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
704 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
705 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
706 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
707 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
708 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
713 Fix possible crashes from using <function>ereport()</> too early
714 during server startup (Tom Lane)
718 The principal case we've seen in the field is a crash if the server
719 is started in a directory it doesn't have permission to read.
724 Author: Tom Lane <tgl@sss.pgh.pa.us>
725 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
726 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
727 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
728 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
729 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
730 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
735 Clear retry flags properly in OpenSSL socket write
736 function (Alexander Kukushkin)
740 This omission could result in a server lockup after unexpected loss
741 of an SSL-encrypted connection.
746 Author: Tom Lane <tgl@sss.pgh.pa.us>
747 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
748 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
749 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
750 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
751 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
752 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
757 Fix length checking for Unicode identifiers (<literal>U&"..."</>
758 syntax) containing escapes (Tom Lane)
762 A spurious truncation warning would be printed for such identifiers
763 if the escaped form of the identifier was too long, but the
764 identifier actually didn't need truncation after de-escaping.
769 Author: Tom Lane <tgl@sss.pgh.pa.us>
770 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
771 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
776 Fix parsing of Unicode literals and identifiers just before the end
777 of a command string or function body (Tom Lane)
782 Author: Stephen Frost <sfrost@snowman.net>
783 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
784 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
785 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
786 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
787 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
792 Allow keywords that are type names to be used in lists of roles
797 A previous patch allowed such keywords to be used without quoting
798 in places such as role identifiers; but it missed cases where a
799 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
804 Author: Tom Lane <tgl@sss.pgh.pa.us>
805 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
806 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
807 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
808 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
813 Fix parser crash for <literal>EXISTS(SELECT * FROM
814 zero_column_table)</literal> (Tom Lane)
819 Author: Tom Lane <tgl@sss.pgh.pa.us>
820 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
821 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
822 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
823 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
824 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
825 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
830 Fix possible crash due to invalid plan for nested sub-selects, such
831 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
837 Author: Tom Lane <tgl@sss.pgh.pa.us>
838 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
839 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
844 Fix mishandling of <literal>WHERE</> conditions pulled up from
845 a <literal>LATERAL</> subquery (Tom Lane)
849 The typical symptom of this bug was a <quote>JOIN qualification
850 cannot refer to other relations</> error, though subtle logic
851 errors in created plans seem possible as well.
856 Author: Tom Lane <tgl@sss.pgh.pa.us>
857 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
858 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
863 Disallow <literal>LATERAL</> references to the target table of
864 an <literal>UPDATE/DELETE</> (Tom Lane)
868 While this might be allowed in some future release, it was
869 unintentional in 9.3, and didn't work quite right anyway.
874 Author: Tom Lane <tgl@sss.pgh.pa.us>
875 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
876 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
877 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
882 Fix <literal>UPDATE/DELETE</> of an inherited target table
883 that has <literal>UNION ALL</> subqueries (Tom Lane)
887 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
888 inserted into the update plans for inheritance child tables after the
889 first one, typically resulting in no update happening for those child
895 Author: Tom Lane <tgl@sss.pgh.pa.us>
896 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
897 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
902 Fix <command>ANALYZE</> to not fail on a column that's a domain over
903 a range type (Tom Lane)
908 Author: Tom Lane <tgl@sss.pgh.pa.us>
909 Branch: master [628652620] 2014-01-11 13:42:42 -0500
910 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
911 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
912 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
913 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
914 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
919 Ensure that <command>ANALYZE</> creates statistics for a table column
920 even when all the values in it are <quote>too wide</> (Tom Lane)
924 <command>ANALYZE</> intentionally omits very wide values from its
925 histogram and most-common-values calculations, but it neglected to do
926 something sane in the case that all the sampled entries are too wide.
931 Author: Stephen Frost <sfrost@snowman.net>
932 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
933 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
934 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
935 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
936 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
937 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
942 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
943 default tablespace to be used without a permissions check
948 <literal>CREATE TABLE</> has always allowed such usage,
949 but <literal>ALTER TABLE</> didn't get the memo.
954 Author: Tom Lane <tgl@sss.pgh.pa.us>
955 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
956 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
961 Fix support for extensions containing event triggers (Tom Lane)
966 Author: Tom Lane <tgl@sss.pgh.pa.us>
967 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
968 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
969 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
970 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
971 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
972 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
977 Fix <quote>cannot accept a set</> error when some arms of
978 a <literal>CASE</> return a set and others don't (Tom Lane)
983 Author: Andrew Dunstan <andrew@dunslane.net>
984 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
985 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
990 Fix memory leakage in JSON functions (Craig Ringer)
995 Author: Andrew Dunstan <andrew@dunslane.net>
996 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
997 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
998 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
1003 Properly distinguish numbers from non-numbers when generating JSON
1004 output (Andrew Dunstan)
1009 Author: Kevin Grittner <kgrittn@postgresql.org>
1010 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
1011 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
1012 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
1013 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
1014 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
1015 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
1020 Fix checks for all-zero client addresses in pgstat functions (Kevin
1026 Author: Tom Lane <tgl@sss.pgh.pa.us>
1027 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
1028 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
1029 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
1030 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
1031 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
1032 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
1037 Fix possible misclassification of multibyte characters by the text
1038 search parser (Tom Lane)
1042 Non-ASCII characters could be misclassified when using C locale with
1043 a multibyte encoding. On Cygwin, non-C locales could fail as well.
1048 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1049 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
1050 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
1051 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
1052 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
1053 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
1054 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
1059 Fix possible misbehavior in <function>plainto_tsquery()</>
1060 (Heikki Linnakangas)
1064 Use <function>memmove()</> not <function>memcpy()</> for copying
1065 overlapping memory regions. There have been no field reports of
1066 this actually causing trouble, but it's certainly risky.
1071 Author: Magnus Hagander <magnus@hagander.net>
1072 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
1073 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
1074 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
1075 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
1080 Fix placement of permissions checks in <function>pg_start_backup()</>
1081 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
1085 The previous coding might attempt to do catalog access when it
1091 Author: Tatsuo Ishii <ishii@postgresql.org>
1092 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
1093 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
1094 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
1095 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
1096 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
1097 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
1102 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
1103 purposes (Tatsuo Ishii)
1108 Author: Tom Lane <tgl@sss.pgh.pa.us>
1109 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
1110 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
1111 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
1116 Fix <literal>*</>-qualification of named parameters in SQL-language
1117 functions (Tom Lane)
1121 Given a composite-type parameter
1122 named <literal>foo</>, <literal>$1.*</> worked fine,
1123 but <literal>foo.*</> not so much.
1128 Author: Fujii Masao <fujii@postgresql.org>
1129 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
1130 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
1131 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
1132 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
1133 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
1134 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
1139 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
1143 It should return <literal>localhost</> if no host has been specified.
1148 Author: Tom Lane <tgl@sss.pgh.pa.us>
1149 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
1150 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
1151 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
1152 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
1153 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
1154 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
1159 Improve error handling in <application>libpq</> and <application>psql</>
1160 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
1164 In particular this fixes an infinite loop that could occur in 9.2 and
1165 up if the server connection was lost during <literal>COPY FROM
1166 STDIN</>. Variants of that scenario might be possible in older
1167 versions, or with other client applications.
1172 Author: Tom Lane <tgl@sss.pgh.pa.us>
1173 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
1174 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
1175 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
1180 Fix incorrect translation handling in
1181 some <application>psql</> <literal>\d</> commands
1182 (Peter Eisentraut, Tom Lane)
1190 Author: Magnus Hagander <magnus@hagander.net>
1191 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
1192 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
1193 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
1198 Ensure <application>pg_basebackup</>'s background process is killed
1199 when exiting its foreground process (Magnus Hagander)
1204 Author: Magnus Hagander <magnus@hagander.net>
1205 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
1206 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
1207 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
1208 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
1213 Fix possible incorrect printing of filenames
1214 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
1219 Author: Magnus Hagander <magnus@hagander.net>
1220 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
1221 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
1222 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
1223 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
1228 Avoid including tablespaces inside PGDATA twice in base backups
1229 (Dimitri Fontaine, Magnus Hagander)
1234 Author: Michael Meskes <meskes@postgresql.org>
1235 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
1236 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
1237 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
1238 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
1239 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
1240 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
1245 Fix misaligned descriptors in <application>ecpg</> (MauMau)
1250 Author: Michael Meskes <meskes@postgresql.org>
1251 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
1252 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
1253 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
1254 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
1255 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
1256 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
1261 In <application>ecpg</>, handle lack of a hostname in the connection
1262 parameters properly (Michael Meskes)
1267 Author: Joe Conway <mail@joeconway.com>
1268 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
1269 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
1270 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
1271 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
1272 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
1273 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
1278 Fix performance regression in <filename>contrib/dblink</> connection
1279 startup (Joe Conway)
1283 Avoid an unnecessary round trip when client and server encodings match.
1288 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1289 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
1290 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
1291 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
1292 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
1293 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
1294 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
1299 In <filename>contrib/isn</>, fix incorrect calculation of the check
1300 digit for ISMN values (Fabien Coelho)
1305 Author: Tatsuo Ishii <ishii@postgresql.org>
1306 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
1307 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
1312 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
1313 when the scale factor is large (Tatsuo Ishii)
1318 Author: Tom Lane <tgl@sss.pgh.pa.us>
1319 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
1320 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
1321 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
1326 Fix <filename>contrib/pg_stat_statement</>'s handling
1327 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
1333 Author: Tom Lane <tgl@sss.pgh.pa.us>
1334 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
1335 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
1340 Improve lost-connection error handling
1341 in <filename>contrib/postgres_fdw</> (Tom Lane)
1346 Author: Peter Eisentraut <peter_e@gmx.net>
1347 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
1348 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
1349 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
1350 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
1351 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
1352 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
1357 Ensure client-code-only installation procedure works as documented
1363 Author: Andrew Dunstan <andrew@dunslane.net>
1364 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
1365 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
1366 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
1367 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
1368 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
1369 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
1374 In Mingw and Cygwin builds, install the <application>libpq</> DLL
1375 in the <filename>bin</> directory (Andrew Dunstan)
1379 This duplicates what the MSVC build has long done. It should fix
1380 problems with programs like <application>psql</> failing to start
1381 because they can't find the DLL.
1386 Author: Andrew Dunstan <andrew@dunslane.net>
1387 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
1388 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
1389 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
1390 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
1391 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
1396 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
1402 Author: Andrew Dunstan <andrew@dunslane.net>
1403 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
1404 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
1409 Enable building with Visual Studio 2013 (Brar Piening)
1414 Author: Tom Lane <tgl@sss.pgh.pa.us>
1415 Branch: master [289541520] 2014-02-10 20:48:04 -0500
1416 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
1417 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
1418 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
1419 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
1420 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
1425 Don't generate plain-text <filename>HISTORY</>
1426 and <filename>src/test/regress/README</> files anymore (Tom Lane)
1430 These text files duplicated the main HTML and PDF documentation
1431 formats. The trouble involved in maintaining them greatly outweighs
1432 the likely audience for plain-text format. Distribution tarballs
1433 will still contain files by these names, but they'll just be stubs
1434 directing the reader to consult the main documentation.
1435 The plain-text <filename>INSTALL</> file will still be maintained, as
1436 there is arguably a use-case for that.
1441 Author: Tom Lane <tgl@sss.pgh.pa.us>
1442 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
1443 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
1444 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
1445 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
1446 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
1447 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
1452 Update time zone data files to <application>tzdata</> release 2013i
1453 for DST law changes in Jordan and historical changes in Cuba.
1457 In addition, the zones <literal>Asia/Riyadh87</>,
1458 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
1459 removed, as they are no longer maintained by IANA, and never
1460 represented actual civil timekeeping practice.
1469 <sect1 id="release-9-3-2">
1470 <title>Release 9.3.2</title>
1473 <title>Release Date</title>
1474 <simpara>2013-12-05</simpara>
1478 This release contains a variety of fixes from 9.3.1.
1479 For information about new features in the 9.3 major release, see
1480 <xref linkend="release-9-3">.
1484 <title>Migration to Version 9.3.2</title>
1487 A dump/restore is not required for those running 9.3.X.
1491 However, this release corrects a number of potential data corruption
1492 issues. See the first three changelog entries below to find out whether
1493 your installation has been affected and what steps you can take if so.
1497 Also, if you are upgrading from a version earlier than 9.3.1,
1498 see <xref linkend="release-9-3-1">.
1504 <title>Changes</title>
1510 Fix <command>VACUUM</>'s tests to see whether it can
1511 update <structfield>relfrozenxid</> (Andres Freund)
1515 In some cases <command>VACUUM</> (either manual or autovacuum) could
1516 incorrectly advance a table's <structfield>relfrozenxid</> value,
1517 allowing tuples to escape freezing, causing those rows to become
1518 invisible once 2^31 transactions have elapsed. The probability of
1519 data loss is fairly low since multiple incorrect advancements would
1520 need to happen before actual loss occurs, but it's not zero. In 9.2.0
1521 and later, the probability of loss is higher, and it's also possible
1522 to get <quote>could not access status of transaction</> errors as a
1523 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
1524 or earlier are not affected, but all later versions contain the bug.
1528 The issue can be ameliorated by, after upgrading, vacuuming all tables
1529 in all databases while having <link
1530 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
1531 set to zero. This will fix any latent corruption but will not be able
1532 to fix all pre-existing data errors. However, an installation can be
1533 presumed safe after performing this vacuuming if it has executed fewer
1534 than 2^31 update transactions in its lifetime (check this with
1535 <literal>SELECT txid_current() < 2^31</>).
1541 Fix multiple bugs in MultiXactId freezing (Andres Freund,
1542 Álvaro Herrera)
1546 These bugs could lead to <quote>could not access status of
1547 transaction</> errors, or to duplicate or vanishing rows.
1548 Users upgrading from releases prior to 9.3.0 are not affected.
1552 The issue can be ameliorated by, after upgrading, vacuuming all tables
1553 in all databases while having <link
1554 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
1555 set to zero. This will fix latent corruption but will not be able to
1556 fix all pre-existing data errors.
1560 As a separate issue, these bugs can also cause standby servers to get
1561 out of sync with the primary, thus exhibiting data errors that are not
1562 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
1563 standby servers be re-cloned from the primary (e.g., with a new base
1564 backup) after upgrading.
1570 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
1571 during hot standby startup (Andres Freund, Heikki Linnakangas)
1575 This bug can cause data loss on standby servers at the moment they
1576 start to accept hot-standby queries, by marking committed transactions
1577 as uncommitted. The likelihood of such corruption is small unless, at
1578 the time of standby startup, the primary server has executed many
1579 updating transactions since its last checkpoint. Symptoms include
1580 missing rows, rows that should have been deleted being still visible,
1581 and obsolete versions of updated rows being still visible alongside
1582 their newer versions.
1586 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
1587 Standby servers that have only been running earlier releases are not
1588 at risk. It's recommended that standby servers that have ever run any
1589 of the buggy releases be re-cloned from the primary (e.g., with a new
1590 base backup) after upgrading.
1596 Fix multiple bugs in update chain traversal (Andres Freund,
1597 Álvaro Herrera)
1601 These bugs could result in incorrect behavior, such as locking or even
1602 updating the wrong row, in the presence of concurrent updates.
1603 Spurious <quote>unable to fetch updated version of tuple</> errors
1610 Fix dangling-pointer problem in fast-path locking (Tom Lane)
1614 This could lead to corruption of the lock data structures in shared
1615 memory, causing <quote>lock already held</> and other odd errors.
1621 Fix assorted race conditions in timeout management (Tom Lane)
1625 These errors could result in a server process becoming unresponsive
1626 because it had blocked SIGALRM and/or SIGINT.
1632 Truncate <filename>pg_multixact</> contents during WAL replay
1637 This avoids ever-increasing disk space consumption in standby servers.
1643 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
1644 when it's only verified that no tuples need freezing (Sergey
1645 Burladyan, Jeff Janes)
1649 This bug could result in failing to
1650 advance <structfield>relfrozenxid</>, so that the table would still be
1651 thought to need another anti-wraparound vacuum. In the worst case the
1652 database might even shut down to prevent wraparound.
1658 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
1662 This bug could result in large amounts of useless autovacuum activity.
1668 Fix race condition in GIN index posting tree page deletion (Heikki
1673 This could lead to transient wrong answers or query failures.
1679 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
1680 index creation (Teodor Sigaev)
1686 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
1692 Re-allow duplicate table aliases if they're within aliased JOINs
1697 Historically <productname>PostgreSQL</> has accepted queries like
1699 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
1701 although a strict reading of the SQL standard would forbid the
1702 duplicate usage of table alias <literal>x</>. A misguided change in
1703 9.3.0 caused it to reject some such cases that were formerly accepted.
1704 Restore the previous behavior.
1710 Avoid flattening a subquery whose <literal>SELECT</> list contains a
1711 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
1715 This avoids unexpected results due to extra evaluations of the
1722 Fix planner's processing of non-simple-variable subquery outputs
1723 nested within outer joins (Tom Lane)
1727 This error could lead to incorrect plans for queries involving
1728 multiple levels of subqueries within <literal>JOIN</> syntax.
1734 Fix incorrect planning in cases where the same non-strict expression
1735 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
1736 equality clauses (Tom Lane)
1742 Fix planner crash with whole-row reference to a subquery (Tom Lane)
1748 Fix incorrect generation of optimized MIN()/MAX() plans for
1749 inheritance trees (Tom Lane)
1753 The planner could fail in cases where the MIN()/MAX() argument was an
1754 expression rather than a simple variable.
1760 Fix premature deletion of temporary files (Andres Freund)
1766 Prevent intra-transaction memory leak when printing range values
1771 This fix actually cures transient memory leaks in any datatype output
1772 function, but range types are the only ones known to have had a
1773 significant problem.
1779 Fix memory leaks when reloading configuration files (Heikki
1780 Linnakangas, Hari Babu)
1786 Prevent incorrect display of dropped columns in NOT NULL and CHECK
1787 constraint violation messages (Michael Paquier and Tom Lane)
1793 Allow default arguments and named-argument notation for window
1794 functions (Tom Lane)
1798 Previously, these cases were likely to crash.
1804 Suppress trailing whitespace on each line when pretty-printing rules
1805 and views (Tom Lane)
1809 9.3.0 generated such whitespace in many more cases than previous
1810 versions did. To reduce unexpected behavioral changes, suppress
1811 unnecessary whitespace in all cases.
1817 Fix possible read past end of memory in rule printing (Peter Eisentraut)
1823 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
1828 Expressions of this kind are now implicitly promoted to
1829 regular <type>int2</> or <type>oid</> arrays.
1835 Return a valid JSON value when converting an empty <type>hstore</> value
1843 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
1848 In some cases, the system would use the simple GMT offset value when
1849 it should have used the regular timezone setting that had prevailed
1850 before the simple offset was selected. This change also causes
1851 the <function>timeofday</> function to honor the simple GMT offset
1858 Prevent possible misbehavior when logging translations of Windows
1859 error codes (Tom Lane)
1865 Properly quote generated command lines in <application>pg_ctl</>
1866 (Naoya Anzai and Tom Lane)
1870 This fix applies only to Windows.
1876 Fix <application>pg_dumpall</> to work when a source database
1878 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
1879 via <command>ALTER DATABASE SET</> (Kevin Grittner)
1883 Previously, the generated script would fail during restore.
1889 Fix <application>pg_isready</> to handle its <option>-d</> option
1890 properly (Fabrízio de Royes Mello and Fujii Masao)
1896 Fix parsing of WAL file names in <application>pg_receivexlog</>
1897 (Heikki Linnakangas)
1901 This error made <application>pg_receivexlog</> unable to restart
1902 streaming after stopping, once at least 4 GB of WAL had been written.
1908 Report out-of-disk-space failures properly
1909 in <application>pg_upgrade</> (Peter Eisentraut)
1915 Make <application>ecpg</> search for quoted cursor names
1916 case-sensitively (Zoltán Böszörményi)
1922 Fix <application>ecpg</>'s processing of lists of variables
1923 declared <type>varchar</> (Zoltán Böszörményi)
1929 Make <filename>contrib/lo</> defend against incorrect trigger definitions
1936 Update time zone data files to <application>tzdata</> release 2013h
1937 for DST law changes in Argentina, Brazil, Jordan, Libya,
1938 Liechtenstein, Morocco, and Palestine. Also, new timezone
1939 abbreviations WIB, WIT, WITA for Indonesia.
1948 <sect1 id="release-9-3-1">
1949 <title>Release 9.3.1</title>
1952 <title>Release Date</title>
1953 <simpara>2013-10-10</simpara>
1957 This release contains a variety of fixes from 9.3.0.
1958 For information about new features in the 9.3 major release, see
1959 <xref linkend="release-9-3">.
1963 <title>Migration to Version 9.3.1</title>
1966 A dump/restore is not required for those running 9.3.X.
1970 However, if you use the <literal>hstore</> extension, see the
1971 first changelog entry.
1977 <title>Changes</title>
1983 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
1984 extension during an update (Andrew Dunstan)
1988 Users who upgraded a pre-9.3 database containing <literal>hstore</>
1991 ALTER EXTENSION hstore UPDATE;
1993 after installing 9.3.1, to add two new JSON functions and a cast.
1994 (If <literal>hstore</> is already up to date, this command does
2001 Fix memory leak when creating B-tree indexes on range columns
2002 (Heikki Linnakangas)
2008 Fix memory leak caused by <function>lo_open()</function> failure
2009 (Heikki Linnakangas)
2015 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
2021 Fix deadlock bug in libpq when using SSL (Stephen Frost)
2027 Fix timeline handling bugs in <application>pg_receivexlog</>
2028 (Heikki Linnakangas, Andrew Gierth)
2034 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
2035 variables unless function body checking is enabled (Tom Lane)
2041 Remove rare inaccurate warning during vacuum of index-less tables
2042 (Heikki Linnakangas)
2051 <sect1 id="release-9-3">
2052 <title>Release 9.3</title>
2055 <title>Release Date</title>
2056 <simpara>2013-09-09</simpara>
2060 <title>Overview</title>
2063 Major enhancements in <productname>PostgreSQL</> 9.3 include:
2066 <!-- This list duplicates items below, but without authors or details-->
2072 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
2079 Make simple views <link
2080 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
2086 Add many features for the <type>JSON</> data type,
2087 including <link linkend="functions-json">operators and functions</link>
2088 to extract elements from <type>JSON</> values
2094 Implement <acronym>SQL</>-standard <link
2095 linkend="queries-lateral"><literal>LATERAL</></link> option for
2096 <literal>FROM</>-clause subqueries and function calls
2102 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
2103 wrappers</link> to support writes (inserts/updates/deletes) on foreign
2110 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
2111 data wrapper</link> to allow access to
2112 other <productname>Postgres</> servers
2118 Add support for <link linkend="event-triggers">event triggers</link>
2124 Add optional ability to <link
2125 linkend="app-initdb-data-checksums">checksum</link> data pages and
2132 Prevent non-key-field row updates from blocking foreign key checks
2138 Greatly reduce System V <link linkend="sysvipc">shared
2139 memory</link> requirements
2146 The above items are explained in more detail in the sections below.
2153 <title>Migration to Version 9.3</title>
2156 A dump/restore using <link
2157 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
2158 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
2159 required for those wishing to migrate data from any previous release.
2163 Version 9.3 contains a number of changes that may affect compatibility
2164 with previous releases. Observe the following incompatibilities:
2168 <title>Server Settings</title>
2174 Rename <varname>replication_timeout</> to <link
2175 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
2180 This setting controls the <link
2181 linkend="wal"><acronym>WAL</></link> sender timeout.
2187 Require superuser privileges to set <link
2188 linkend="guc-commit-delay"><varname>commit_delay</></link>
2189 because it can now potentially delay other sessions (Simon Riggs)
2195 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
2199 Users who have set <link
2200 linkend="guc-work-mem"><varname>work_mem</></link> based on the
2201 previous behavior may need to revisit that setting.
2210 <title>Other</title>
2216 Throw an error if a tuple to be updated or deleted has already been
2217 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
2221 Formerly, the originally-intended update was silently skipped,
2222 resulting in logical inconsistency since the trigger might have
2223 propagated data to other places based on the intended update.
2224 Now an error is thrown to prevent the inconsistent results from being
2225 committed. If this change affects your application, the best solution
2226 is usually to move the data-propagation actions to
2227 an <literal>AFTER</> trigger.
2231 This error will also be thrown if a query invokes a volatile function
2232 that modifies rows that are later modified by the query itself.
2233 Such cases likewise previously resulted in silently skipping updates.
2239 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
2240 SET NULL/SET DEFAULT</></link> foreign key actions to affect
2241 all columns of the constraint, not just those changed in the
2242 <command>UPDATE</> (Tom Lane)
2246 Previously, we would set only those referencing columns that
2247 correspond to referenced columns that were changed by
2248 the <command>UPDATE</>. This was what was required by SQL-92,
2249 but more recent editions of the SQL standard specify the new behavior.
2255 Force cached plans to be replanned if the <link
2256 linkend="guc-search-path"><varname>search_path</></link> changes
2261 Previously, cached plans already generated in the current session were
2262 not redone if the query was re-executed with a
2263 new <varname>search_path</> setting, resulting in surprising behavior.
2270 linkend="functions-formatting-table"><function>to_number()</></link>
2271 to properly handle a period used as a thousands separator (Tom Lane)
2275 Previously, a period was considered to be a decimal point even when
2276 the locale says it isn't and the <literal>D</> format code is used to
2277 specify use of the locale-specific decimal point. This resulted in
2278 wrong answers if <literal>FM</> format was also used.
2284 Fix <literal>STRICT</> non-set-returning functions that have
2285 set-returning functions in their arguments to properly return null
2290 A null value passed to the strict function should result in a null
2291 output, but instead, that output row was suppressed entirely.
2297 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
2298 stream, rather than skipping the last 16MB segment every 4GB
2299 (Heikki Linnakangas)
2303 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
2304 were not used because of this skipping. If you have <acronym>WAL</>
2305 backup or restore scripts that took this behavior into account, they
2306 will need to be adjusted.
2313 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
2314 store the default foreign key match type (non-<literal>FULL</>,
2315 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
2320 Previously this case was represented by <literal>u</>
2321 for <quote>unspecified</>.
2332 <title>Changes</title>
2335 Below you will find a detailed account of the changes between
2336 <productname>PostgreSQL</productname> 9.3 and the previous major
2341 <title>Server</title>
2344 <title>Locking</title>
2350 Prevent non-key-field row updates from blocking foreign key checks
2351 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
2352 Shulgin, Marti Raudsepp, Alexander Shulgin)
2356 This change improves concurrency and reduces the probability of
2357 deadlocks when updating tables involved in a foreign-key constraint.
2358 <command>UPDATE</>s that do not change any columns referenced in a
2359 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
2360 the row, while foreign key checks use the new <literal>KEY SHARE</>
2361 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
2362 So there is no blocking unless a foreign-key column is changed.
2368 Add configuration variable <link
2369 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
2370 allow limiting how long a session will wait to acquire any one lock
2371 (Zoltán Böszörményi)
2380 <title>Indexes</title>
2386 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
2387 support for range data types (Alexander Korotkov)
2393 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
2394 unlogged (Jeevan Chalke)
2400 Improve performance of <acronym>GiST</> index insertion by randomizing
2401 the choice of which page to descend to when there are multiple equally
2402 good alternatives (Heikki Linnakangas)
2408 Improve concurrency of hash index operations (Robert Haas)
2417 <title>Optimizer</title>
2423 Collect and use histograms of upper and lower bounds, as well as range
2424 lengths, for <link linkend="rangetypes">range types</link>
2425 (Alexander Korotkov)
2431 Improve optimizer's cost estimation for index access (Tom Lane)
2437 Improve optimizer's hash table size estimate for
2438 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
2444 Suppress no-op Result and Limit plan nodes
2445 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
2451 Reduce optimizer overhead by not keeping plans on the basis of cheap
2452 startup cost when the optimizer only cares about total cost overall
2462 <title>General Performance</title>
2468 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
2469 option to avoid the overhead of marking tuples as frozen later
2470 (Simon Riggs, Jeff Davis)
2476 Improve performance of <link
2477 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
2484 Improve synchronization of sessions waiting for <link
2485 linkend="guc-commit-delay"><varname>commit_delay</></link>
2490 This greatly improves the usefulness of <varname>commit_delay</>.
2496 Improve performance of the <link
2497 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
2498 COMMIT DELETE ROWS</></link> option by not truncating such temporary
2499 tables in transactions that haven't touched any temporary tables
2500 (Heikki Linnakangas)
2506 Make vacuum recheck visibility after it has removed expired tuples
2511 This increases the chance of a page being marked as all-visible.
2517 Add per-resource-owner lock caches (Jeff Janes)
2521 This speeds up lock bookkeeping at statement completion in
2522 multi-statement transactions that hold many locks; it is particularly
2523 useful for <application>pg_dump</>.
2529 Avoid scanning the entire relation cache at commit of a transaction
2530 that creates a new relation (Jeff Janes)
2534 This speeds up sessions that create many tables in successive
2535 small transactions, such as a <application>pg_restore</> run.
2541 Improve performance of transactions that drop many relations
2551 <title>Monitoring</title>
2557 Add optional ability to <link
2558 linkend="app-initdb-data-checksums">checksum</link> data pages and
2559 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
2563 The checksum option can be set during <link
2564 linkend="APP-INITDB">initdb</link>.
2570 Split the <link linkend="monitoring-stats">statistics collector's</link>
2571 data file into separate global and per-database files (Tomas Vondra)
2575 This reduces the I/O required for statistics tracking.
2581 Fix the statistics collector to operate properly in cases where the
2582 system clock goes backwards (Tom Lane)
2586 Previously, statistics collection would stop until the time again
2587 reached the latest time previously recorded.
2593 Emit an informative message to postmaster standard error when we
2594 are about to stop logging there
2599 This should help reduce user confusion about where to look for log
2600 output in common configurations that log to standard error only during
2610 <title>Authentication</title>
2616 When an authentication failure occurs, log the relevant
2617 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
2618 line, to ease debugging of unintended failures
2625 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
2626 reporting and documentation (Peter Eisentraut)
2632 Add support for specifying <acronym>LDAP</> authentication parameters
2633 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
2640 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
2641 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
2642 then remove insecure ciphers (Magnus Hagander)
2646 This should yield a more appropriate SSL cipher set.
2652 Parse and load <link
2653 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
2654 once, not during each connection (Amit Kapila)
2658 This is similar to how <filename>pg_hba.conf</> is processed.
2667 <title>Server Settings</title>
2673 Greatly reduce System V <link linkend="sysvipc">shared
2674 memory</link> requirements (Robert Haas)
2678 On Unix-like systems, <function>mmap()</> is now used for most
2679 of <productname>PostgreSQL</>'s shared memory. For most users, this
2680 will eliminate any need to adjust kernel parameters for shared memory.
2686 Allow the postmaster to listen on multiple Unix-domain sockets
2687 (Honza Horák)
2691 The configuration parameter
2692 <varname>unix_socket_directory</> is replaced by <link
2693 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
2694 which accepts a list of directories.
2700 Allow a directory of configuration files to be processed (Magnus
2701 Hagander, Greg Smith, Selena Deckelmann)
2705 Such a directory is specified with <link
2706 linkend="config-includes"><varname>include_dir</></link> in the server
2713 Increase the maximum <link
2714 linkend="APP-INITDB">initdb</link>-configured value for <link
2715 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
2716 to 128MB (Robert Haas)
2720 This is the maximum value that initdb will attempt to set in <link
2721 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
2722 the previous maximum was 32MB.
2728 Remove the <link linkend="guc-external-pid-file">external
2729 <acronym>PID</> file</link>, if any, on postmaster exit
2741 <title>Replication and Recovery</title>
2747 Allow a streaming replication standby to <link
2748 linkend="protocol-replication">follow a timeline switch</link>
2749 (Heikki Linnakangas)
2753 This allows streaming standby servers to receive WAL data from a slave
2754 newly promoted to master status. Previously, other standbys would
2755 require a resync to begin following the new master.
2761 Add <acronym>SQL</> functions <link
2762 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
2764 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
2769 These functions report the status of base backups.
2775 Improve performance of streaming log shipping with <link
2776 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
2777 disabled (Andres Freund)
2783 Allow much faster promotion of a streaming standby to primary (Simon
2784 Riggs, Kyotaro Horiguchi)
2790 Add the last checkpoint's redo location to <link
2791 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
2792 output (Fujii Masao)
2796 This information is useful for determining which <acronym>WAL</>
2797 files are needed for restore.
2803 Allow tools like <link
2804 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
2805 to run on computers with different architectures (Heikki
2810 WAL files can still only be replayed on servers with the same
2811 architecture as the primary; but they can now be transmitted to and
2812 stored on machines of any architecture, since the
2813 streaming replication protocol is now machine-independent.
2820 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
2821 <option>--write-recovery-conf</> output a
2822 minimal <filename>recovery.conf</> file (Zoltán
2823 Böszörményi, Magnus Hagander)
2827 This simplifies setting up a standby server.
2834 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
2836 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
2837 <option>--xlog-method</> to handle streaming timeline switches
2838 (Heikki Linnakangas)
2845 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
2846 parameter to control the <acronym>WAL</> receiver's timeout
2851 This allows more rapid detection of connection failure.
2857 Change the <link linkend="wal"><acronym>WAL</></link> record format to
2858 allow splitting the record header across pages (Heikki Linnakangas)
2862 The new format is slightly more compact, and is more efficient to
2872 <title>Queries</title>
2878 Implement <acronym>SQL</>-standard <link
2879 linkend="queries-lateral"><literal>LATERAL</></link> option for
2880 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
2884 This feature allows subqueries and functions in <literal>FROM</> to
2885 reference columns from other tables in the <literal>FROM</>
2886 clause. The <literal>LATERAL</> keyword is optional for functions.
2892 Add support for piping <link
2893 linkend="SQL-COPY"><command>COPY</></link> and <link
2894 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
2895 data to/from an external program (Etsuro Fujita)
2901 Allow a multirow <link
2902 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
2903 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
2912 <title>Object Manipulation</title>
2918 Add support for <link linkend="event-triggers">event triggers</link>
2919 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
2923 This allows server-side functions written in event-enabled
2924 languages to be called when DDL commands are run.
2930 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
2931 wrappers</link> to support writes (inserts/updates/deletes) on foreign
2932 tables (KaiGai Kohei)
2938 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
2939 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
2945 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
2946 OWNED</></link> also change ownership of shared objects
2947 (Álvaro Herrera)
2953 Make <link linkend="sql-createaggregate"><command>CREATE
2954 AGGREGATE</></link> complain if the given initial value string is not
2955 valid input for the transition datatype (Tom Lane)
2961 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
2962 TABLE</></link>'s messages about implicit index and sequence creation
2967 These messages now appear at <literal>DEBUG1</> verbosity, so that
2968 they will not be shown by default.
2974 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
2975 EXISTS</></link> to succeed when a non-existent schema is specified
2976 in the table name (Bruce Momjian)
2980 Previously, it threw an error if the schema did not exist.
2986 Provide clients with <link
2987 linkend="libpq-pqresulterrorfield">constraint violation details</link>
2988 as separate fields (Pavel Stehule)
2992 This allows clients to retrieve table, column, data type, or
2993 constraint name error details. Previously such information had to be
2994 extracted from error strings. Client library support is required to
2995 access these fields.
3002 <title><command>ALTER</></title>
3008 Support <literal>IF NOT EXISTS</> option in <link
3009 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
3014 This is useful for conditionally adding values to enumerated types.
3020 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
3021 SET</></link> to establish settings for all users (Peter Eisentraut)
3025 This allows settings to apply to all users in all databases. <link
3026 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
3027 already allowed addition of settings for all users in a single
3028 database. <filename>postgresql.conf</> has a similar effect.
3034 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
3035 ... RENAME</></link> (Ali Dar)
3044 <title><link linkend="rules-views"><command>VIEWs</></link></title>
3050 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
3051 views</link> (Kevin Grittner)
3055 Unlike ordinary views, where the base tables are read on every access,
3056 materialized views create physical tables at creation or refresh time.
3057 Access to the materialized view then reads from its physical
3058 table. There is not yet any facility for incrementally refreshing
3059 materialized views or auto-accessing them via base table access.
3065 Make simple views <link
3066 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
3071 Simple views that reference some or all columns from a
3072 single base table are now updatable by default. More
3073 complex views can be made updatable using <link
3074 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
3075 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
3081 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
3082 VIEW</></link> syntax (Peter Eisentraut)
3086 Internally this is translated into <command>CREATE VIEW ... WITH
3093 Improve view/rule printing code to handle cases where referenced
3094 tables are renamed, or columns are renamed, added, or dropped
3099 Table and column renamings can produce cases where, if we merely
3100 substitute the new name into the original text of a rule or view, the
3101 result is ambiguous. This change fixes the rule-dumping code to insert
3102 manufactured table and column aliases when needed to preserve the
3114 <title>Data Types</title>
3120 Increase the maximum size of <link linkend="largeObjects">large
3121 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
3125 This change includes adding 64-bit-capable large object access
3126 functions, both in the server and in libpq.
3132 Allow text <link linkend="datatype-timezones">timezone
3133 designations</link>, e.g. <quote>America/Chicago</>, in the
3134 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
3135 input (Bruce Momjian)
3142 <title><link linkend="datatype-json"><type>JSON</></link></title>
3148 Add <link linkend="functions-json">operators and functions</link>
3149 to extract elements from <type>JSON</> values (Andrew Dunstan)
3155 Allow <type>JSON</> values to be <link
3156 linkend="functions-json-table">converted into records</link>
3163 Add <link linkend="functions-json-table">functions</link> to convert
3164 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
3177 <title>Functions</title>
3184 linkend="array-functions-table"><function>array_remove()</></link>
3186 linkend="array-functions-table"><function>array_replace()</></link>
3187 functions (Marco Nenciarini, Gabriele Bartolini)
3194 linkend="functions-string-other"><function>concat()</></link>
3196 linkend="functions-string-format"><function>format()</></link>
3197 to properly expand <literal>VARIADIC</>-labeled arguments
3205 linkend="functions-string-format"><function>format()</></link>
3206 to provide field width and left/right alignment options (Pavel Stehule)
3213 linkend="functions-formatting-table"><function>to_char()</></link>,
3215 linkend="functions-formatting-table"><function>to_date()</></link>,
3217 linkend="functions-formatting-table"><function>to_timestamp()</></link>
3218 handle negative (BC) century values properly
3223 Previously the behavior was either wrong or inconsistent
3224 with positive/<acronym>AD</> handling, e.g. with the format mask
3225 <quote>IYYY-IW-DY</>.
3232 linkend="functions-formatting-table"><function>to_date()</></link>
3234 linkend="functions-formatting-table"><function>to_timestamp()</></link>
3235 return proper results when mixing <acronym>ISO</> and Gregorian
3236 week/day designations (Bruce Momjian)
3243 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
3244 to start a new line by default after each <literal>SELECT</> target
3245 list entry and <literal>FROM</> entry (Marko Tiikkaja)
3249 This reduces line length in view printing, for instance in <link
3250 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
3256 Fix <function>map_sql_value_to_xml_value()</> to print values of
3257 domain types the same way their base type would be printed
3262 There are special formatting rules for certain built-in types such as
3263 <type>boolean</>; these rules now also apply to domains over these
3273 <title>Server-Side Languages</title>
3276 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
3282 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
3283 expression (Asif Rehman)
3287 Previously, in a function returning a composite type,
3288 <literal>RETURN</> could only reference a variable of that type.
3294 Allow PL/pgSQL to access <link
3295 linkend="plpgsql-exception-diagnostics">constraint violation
3296 details</link> as separate fields (Pavel Stehule)
3302 Allow PL/pgSQL to access the number of rows processed by
3303 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
3307 A <command>COPY</> executed in a PL/pgSQL function now updates the
3308 value retrieved by <link
3309 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
3310 x = ROW_COUNT</></link>.
3316 Allow unreserved keywords to be used as identifiers everywhere in
3321 In certain places in the PL/pgSQL grammar, keywords had to be quoted
3322 to be used as identifiers, even if they were nominally unreserved.
3331 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
3337 Add PL/Python result object string handler (Peter Eisentraut)
3341 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
3347 Make PL/Python convert OID values to a proper Python numeric type
3354 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
3355 explicitly (with PL/Python's <literal>RAISE</>) the same as
3356 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
3367 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
3373 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
3378 At the end of any failed subtransaction, the core SPI code now
3379 releases any SPI tuple tables that were created during that
3380 subtransaction. This avoids the need for SPI-using code to keep track
3381 of such tuple tables and release them manually in error-recovery code.
3382 Failure to do so caused a number of transaction-lifespan memory leakage
3383 issues in PL/pgSQL and perhaps other SPI clients. <link
3384 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
3385 now protects itself against multiple freeing requests, so any existing
3386 code that did take care to clean up shouldn't be broken by this change.
3392 Allow <acronym>SPI</> functions to access the number of rows processed
3393 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
3402 <title>Client Applications</title>
3408 Add command-line utility <link
3409 linkend="app-pg-isready"><application>pg_isready</></link> to
3410 check if the server is ready to accept connections (Phil Sorber)
3416 Support multiple <option>--table</> arguments for <link
3417 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
3418 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
3419 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
3420 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
3425 This is similar to the way <link
3426 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
3427 <option>--table</> option works.
3433 Add <option>--dbname</> option to <link
3434 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
3435 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
3437 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
3438 to allow specifying a connection string (Amit Kapila)
3444 Add libpq function <link
3445 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
3446 to return connection information (Zoltán
3447 Böszörményi, Magnus Hagander)
3454 <title><link linkend="APP-PSQL"><application>psql</></link></title>
3460 Adjust function cost settings so <application>psql</> tab
3461 completion and pattern searching are more efficient (Tom Lane)
3467 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
3468 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
3474 Allow the <application>psql</> <option>--single-transaction</>
3475 mode to work when reading from standard input (Fabien Coelho,
3480 Previously this option only worked when reading from a file.
3486 Remove <application>psql</> warning when connecting to an older
3487 server (Peter Eisentraut)
3491 A warning is still issued when connecting to a server of a newer major
3492 version than <application>psql</>'s.
3499 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
3505 Add <application>psql</> command <command>\watch</> to repeatedly
3506 execute a SQL command (Will Leinweber)
3512 Add <application>psql</> command <command>\gset</> to store query
3513 results in <application>psql</> variables (Pavel Stehule)
3519 Add <acronym>SSL</> information to <application>psql</>'s
3520 <command>\conninfo</> command (Alastair Turner)
3526 Add <quote>Security</> column to <application>psql</>'s
3527 <command>\df+</> output (Jon Erdman)
3533 Allow <application>psql</> command <command>\l</> to accept a database
3534 name pattern (Peter Eisentraut)
3540 In <application>psql</>, do not allow <command>\connect</> to
3541 use defaults if there is no active connection (Bruce Momjian)
3545 This might be the case if the server had crashed.
3551 Properly reset state after failure of a SQL command executed with
3552 <application>psql</>'s <literal>\g</> <replaceable>file</>
3557 Previously, the output from subsequent SQL commands would unexpectedly
3558 continue to go to the same file.
3567 <title>Output</title>
3573 Add a <literal>latex-longtable</> output format to
3574 <application>psql</> (Bruce Momjian)
3578 This format allows tables to span multiple pages.
3584 Add a <literal>border=3</> output mode to the <application>psql</>
3585 <literal>latex</> format (Bruce Momjian)
3591 In <application>psql</>'s tuples-only and expanded output modes, no
3592 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
3598 In <application>psql</>'s unaligned, expanded output mode, no longer
3599 print an empty line for zero rows (Peter Eisentraut)
3610 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
3616 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
3617 parallel (Joachim Wieland)
3623 Make <application>pg_dump</> output functions in a more predictable
3624 order (Joel Jacobson)
3630 Fix tar files emitted by <application>pg_dump</>
3631 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
3637 Add <option>--dbname</> option to <application>pg_dump</>, for
3638 consistency with other client commands (Heikki Linnakangas)
3642 The database name could already be supplied last without a flag.
3651 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
3657 Make initdb fsync the newly created data directory (Jeff Davis)
3661 This insures data integrity in event of a system crash shortly after
3662 initdb. This can be disabled by using <option>--nosync</>.
3668 Add initdb <option>--sync-only</> option to sync the data directory to durable
3669 storage (Bruce Momjian)
3673 This is used by <link
3674 linkend="pgupgrade"><application>pg_upgrade</></link>.
3680 Make initdb issue a warning about placing the data directory at the
3681 top of a file system mount point (Bruce Momjian)
3692 <title>Source Code</title>
3698 Add infrastructure to allow plug-in <link
3699 linkend="bgworker">background worker processes</link>
3700 (Álvaro Herrera)
3706 Create a centralized timeout <acronym>API</> (Zoltán
3707 Böszörményi)
3713 Create libpgcommon and move <function>pg_malloc()</> and other
3714 functions there (Álvaro Herrera, Andres Freund)
3718 This allows libpgport to be used solely for portability-related code.
3724 Add support for list links embedded in larger structs (Andres Freund)
3730 Use <literal>SA_RESTART</> for all signals,
3731 including <literal>SIGALRM</> (Tom Lane)
3737 Ensure that the correct text domain is used when
3738 translating <function>errcontext()</> messages
3739 (Heikki Linnakangas)
3745 Standardize naming of client-side memory allocation functions (Tom Lane)
3751 Provide support for <quote>static assertions</> that will fail at
3752 compile time if some compile-time-constant condition is not met
3753 (Andres Freund, Tom Lane)
3759 Support <function>Assert()</> in client-side code (Andrew Dunstan)
3765 Add decoration to inform the C compiler that some <function>ereport()</>
3766 and <function>elog()</> calls do not return (Peter Eisentraut,
3767 Andres Freund, Tom Lane, Heikki Linnakangas)
3773 Allow options to be passed to the regression
3774 test output comparison utility via <link
3775 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
3782 Add isolation tests for <link
3783 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
3784 CONCURRENTLY</></link> (Abhijit Menon-Sen)
3790 Remove typedefs for <type>int2</>/<type>int4</> as they are better
3791 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
3797 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
3798 X</> (Peter Eisentraut)
3804 Remove <link linkend="configure">configure</link> flag
3805 <option>--disable-shared</>, as it is no longer supported
3812 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
3818 Provide Emacs macro to set Perl formatting to
3819 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
3825 Run tool to check the keyword list whenever the backend grammar is
3832 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
3833 the size of the lexer tables (Heikki Linnakangas)
3839 Centralize <application>flex</> and <application>bison</>
3840 <application>make</> rules (Peter Eisentraut)
3844 This is useful for <application>pgxs</> authors.
3850 Change many internal backend functions to return object <type>OID</>s
3851 rather than void (Dimitri Fontaine)
3855 This is useful for event triggers.
3861 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
3862 callbacks (Tom Lane)
3866 Loadable modules that use transaction callbacks might need modification
3867 to handle these new event types.
3874 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
3875 to produce a machine-readable description of a database object
3876 (Álvaro Herrera)
3882 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
3888 Implement a generic binary heap and use it for Merge-Append
3889 operations (Abhijit Menon-Sen)
3895 Provide a tool to help detect timezone abbreviation changes when
3896 updating the <filename>src/timezone/data</> files
3903 Add <application>pkg-config</> support for <application>libpq</>
3904 and <application>ecpg</> libraries (Peter Eisentraut)
3910 Remove <filename>src/tool/backend</>, now that the content is on
3911 the <productname>PostgreSQL</> wiki (Bruce Momjian)
3917 Split out <link linkend="wal"><acronym>WAL</></link> reading as
3918 an independent facility (Heikki Linnakangas, Andres Freund)
3924 Use a 64-bit integer to represent <link
3925 linkend="wal"><acronym>WAL</></link> positions
3926 (<structname>XLogRecPtr</>) instead of two 32-bit integers
3927 (Heikki Linnakangas)
3931 Generally, tools that need to read the <acronym>WAL</> format
3932 will need to be adjusted.
3938 Allow <link linkend="plpython">PL/Python</link> to support
3939 platform-specific include directories (Peter Eisentraut)
3945 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
3946 X</> to build against custom versions of <application>Python</>
3956 <title>Additional Modules</title>
3962 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
3963 data wrapper</link> contrib module to allow access to
3964 other <productname>Postgres</> servers (Shigeru Hanada)
3968 This foreign data wrapper supports writes.
3974 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
3975 contrib program (Andres Freund)
3981 Add support for indexing of regular-expression searches in
3982 <link linkend="pgtrgm"><productname>pg_trgm</></link>
3983 (Alexander Korotkov)
3989 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
3990 handling of multibyte characters (Tom Lane)
3994 On a platform that does not have the wcstombs() or towlower() library
3995 functions, this could result in an incompatible change in the contents
3996 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
3997 <command>REINDEX</> those indexes to ensure correct search results.
4003 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
4004 the size of the pending-insertions list of a <acronym>GIN</> index
4011 Make <link linkend="oid2name"><application>oid2name</></link>,
4012 <link linkend="pgbench"><application>pgbench</></link>, and
4013 <link linkend="vacuumlo"><application>vacuumlo</></link> set
4014 <varname>fallback_application_name</> (Amit Kapila)
4020 Improve output of <link
4021 linkend="pgtesttiming"><application>pg_test_timing</></link>
4028 Improve output of <link
4029 linkend="pgtestfsync"><application>pg_test_fsync</></link>
4036 Create a dedicated foreign data wrapper, with its own option validator
4037 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
4041 When using this FDW to define the target of a <application>dblink</>
4042 connection, instead of using a hard-wired list of connection options,
4043 the underlying <application>libpq</> library is consulted to see what
4044 connection options it supports.
4051 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
4057 Allow <application>pg_upgrade</> to do dumps and restores in
4058 parallel (Bruce Momjian, Andrew Dunstan)
4062 This allows parallel schema dump/restore of databases, as well as
4063 parallel copy/link of data files per tablespace. Use the
4064 <option>--jobs</> option to specify the level of parallelism.
4070 Make <application>pg_upgrade</> create Unix-domain sockets in
4071 the current directory (Bruce Momjian, Tom Lane)
4075 This reduces the possibility that someone will accidentally connect
4082 Make <application>pg_upgrade</> <option>--check</> mode properly
4083 detect the location of non-default socket directories (Bruce
4090 Improve performance of <application>pg_upgrade</> for databases
4091 with many tables (Bruce Momjian)
4097 Improve <application>pg_upgrade</>'s logs by showing
4098 executed commands (Álvaro Herrera)
4104 Improve <application>pg_upgrade</>'s status display during
4105 copy/link (Bruce Momjian)
4114 <title><link linkend="pgbench"><application>pgbench</></link></title>
4120 Add <option>--foreign-keys</> option to <application>pgbench</>
4125 This adds foreign key constraints to the standard tables created by
4126 <application>pgbench</>, for use in foreign key performance testing.
4132 Allow <application>pgbench</> to aggregate performance statistics
4133 and produce output every <option>--aggregate-interval</>
4134 seconds (Tomas Vondra)
4140 Add <application>pgbench</> <option>--sampling-rate</> option
4141 to control the percentage of transactions logged (Tomas Vondra)
4147 Reduce and improve the status message output of
4148 <application>pgbench</>'s initialization mode (Robert Haas,
4155 Add <application>pgbench</> <option>-q</> mode to print one output
4156 line every five seconds (Tomas Vondra)
4162 Output <application>pgbench</> elapsed and estimated remaining
4163 time during initialization (Tomas Vondra)
4169 Allow <application>pgbench</> to use much larger scale factors,
4170 by changing relevant columns from <type>integer</> to <type>bigint</>
4171 when the requested scale factor exceeds 20000
4183 <title>Documentation</title>
4189 Allow <productname>EPUB</>-format documentation to be created
4196 Update <productname>FreeBSD</> kernel configuration documentation
4203 Improve <link linkend="tutorial-window"><literal>WINDOW</>
4204 function</link> documentation (Bruce Momjian, Florian Pflug)
4210 Add <link linkend="docguide-toolsets">instructions</link> for setting
4211 up the documentation tool chain on Mac <productname>OS X</>
4219 linkend="guc-commit-delay"><varname>commit_delay</></link>
4220 documentation (Peter Geoghegan)