1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-2">
5 <title>Release 9.3.2</title>
8 <title>Release Date</title>
9 <simpara>2013-12-05</simpara>
13 This release contains a variety of fixes from 9.3.1.
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.2</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, this release corrects a number of potential data corruption
27 issues. See the first three changelog entries below to find out whether
28 your installation has been affected and what steps you can take if so.
32 Also, if you are upgrading from a version earlier than 9.3.1,
33 see the release notes for 9.3.1.
39 <title>Changes</title>
44 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
45 Branch: master [82b43f7df] 2013-11-27 13:43:27 +0200
46 Branch: REL9_3_STABLE [08302a397] 2013-11-27 13:22:26 +0200
47 Branch: REL9_2_STABLE [0b132b904] 2013-11-27 13:28:47 +0200
48 Branch: REL9_1_STABLE [bf0d21e61] 2013-11-27 13:44:10 +0200
49 Branch: REL9_0_STABLE [ba6379959] 2013-11-27 13:43:18 +0200
50 Branch: REL8_4_STABLE [8a7f4466a] 2013-11-27 13:40:05 +0200
55 Fix <command>VACUUM</>'s tests to see whether it can
56 update <structfield>relfrozenxid</> (Andres Freund)
60 In some cases <command>VACUUM</> (either manual or autovacuum) could
61 incorrectly advance a table's <structfield>relfrozenxid</> value,
62 allowing tuples to escape freezing, causing those rows to become
63 invisible once 2^31 transactions have elapsed. The probability of
64 data loss is fairly low since multiple incorrect advancements would
65 need to happen before actual loss occurs, but it's not zero. In 9.2.0
66 and later, the probability of loss is higher, and it's also possible
67 to get <quote>could not access status of transaction</> errors as a
68 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
69 or earlier are not affected, but all later versions contain the bug.
73 The issue can be ameliorated by, after upgrading, vacuuming all tables
74 in all databases while having <link
75 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
76 set to zero. This will fix any latent corruption but will not be able
77 to fix all pre-existing data errors. However, an installation can be
78 presumed safe after performing this vacuuming if it has executed fewer
79 than 2^31 update transactions in its lifetime (check this with
80 <literal>SELECT txid_current() < 2^31</>).
85 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
86 Branch: master [2393c7d10] 2013-11-29 21:47:25 -0300
87 Branch: REL9_3_STABLE [8e53ae025] 2013-11-29 21:48:21 -0300
92 Fix multiple bugs in MultiXactId freezing (Andres Freund,
93 Álvaro Herrera)
97 These bugs could lead to <quote>could not access status of
98 transaction</> errors, or to duplicate or vanishing rows.
99 Users upgrading from releases prior to 9.3.0 are not affected.
103 The issue can be ameliorated by, after upgrading, vacuuming all tables
104 in all databases while having <link
105 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
106 set to zero. This will fix latent corruption but will not be able to
107 fix all pre-existing data errors.
111 As a separate issue, these bugs can also cause standby servers to get
112 out of sync with the primary, thus exhibiting data errors that are not
113 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
114 standby servers be re-cloned from the primary (e.g., with a new base
115 backup) after upgrading.
120 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
121 Branch: master [98f58a30c] 2013-11-22 14:45:41 +0200
122 Branch: REL9_3_STABLE [3e10cc492] 2013-11-22 14:48:05 +0200
123 Branch: REL9_2_STABLE [f22624cea] 2013-11-22 14:48:43 +0200
124 Branch: REL9_1_STABLE [fc8e54f39] 2013-11-22 14:48:55 +0200
125 Branch: REL9_0_STABLE [b4f697f8e] 2013-11-22 14:49:07 +0200
130 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
131 during hot standby startup (Andres Freund, Heikki Linnakangas)
135 This bug can cause data loss on standby servers at the moment they
136 start to accept hot-standby queries, by marking committed transactions
137 as uncommitted. The likelihood of such corruption is small unless, at
138 the time of standby startup, the primary server has executed many
139 updating transactions since its last checkpoint. Symptoms include
140 missing rows, rows that should have been deleted being still visible,
141 and obsolete versions of updated rows being still visible alongside
142 their newer versions.
146 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
147 Standby servers that have only been running earlier releases are not
148 at risk. It's recommended that standby servers that have ever run any
149 of the buggy releases be re-cloned from the primary (e.g., with a new
150 base backup) after upgrading.
155 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
156 Branch: master [1ce150b7b] 2013-11-29 21:47:21 -0300
157 Branch: REL9_3_STABLE [663d2e485] 2013-11-29 21:48:18 -0300
162 Fix multiple bugs in update chain traversal (Andres Freund,
163 Álvaro Herrera)
167 These bugs could result in incorrect behavior, such as locking or even
168 updating the wrong row, in the presence of concurrent updates.
169 Spurious <quote>unable to fetch updated version of tuple</> errors
175 Author: Tom Lane <tgl@sss.pgh.pa.us>
176 Branch: master [7db285afc] 2013-11-27 18:10:00 -0500
177 Branch: REL9_3_STABLE [d32e8387b] 2013-11-27 18:10:03 -0500
178 Branch: REL9_2_STABLE [024edb454] 2013-11-27 18:10:06 -0500
183 Fix dangling-pointer problem in fast-path locking (Tom Lane)
187 This could lead to corruption of the lock data structures in shared
188 memory, causing <quote>lock already held</> and other odd errors.
193 Author: Tom Lane <tgl@sss.pgh.pa.us>
194 Branch: master [16e1b7a1b] 2013-11-29 16:41:00 -0500
195 Branch: REL9_3_STABLE [c357be2cd] 2013-11-29 16:41:03 -0500
200 Fix assorted race conditions in timeout management (Tom Lane)
204 These errors could result in a server process becoming unresponsive
205 because it had blocked SIGALRM and/or SIGINT.
210 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
211 Branch: master [1df0122da] 2013-11-29 21:47:15 -0300
212 Branch: REL9_3_STABLE [215ac4ad6] 2013-11-29 21:48:15 -0300
213 Branch: REL9_2_STABLE [8f8c66614] 2013-11-29 21:59:15 -0300
214 Branch: REL9_1_STABLE [9f1e051ad] 2013-11-29 22:01:01 -0300
215 Branch: REL9_0_STABLE [6d0b8cd2f] 2013-11-29 22:02:15 -0300
220 Truncate <filename>pg_multixact</> contents during WAL replay
225 This avoids ever-increasing disk space consumption in standby servers.
230 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
231 Branch: master [4c697d8f4] 2013-11-18 09:51:09 +0200
232 Branch: REL9_3_STABLE [ea2bb1b47] 2013-11-18 10:16:31 +0200
233 Branch: REL9_2_STABLE [3379263b6] 2013-11-18 10:12:22 +0200
238 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
239 when it's only verified that no tuples need freezing (Sergey
240 Burladyan, Jeff Janes)
244 This bug could result in failing to
245 advance <structfield>relfrozenxid</>, so that the table would still be
246 thought to need another anti-wraparound vacuum. In the worst case the
247 database might even shut down to prevent wraparound.
252 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
253 Branch: master [f54106f77] 2013-11-29 21:47:13 -0300
254 Branch: REL9_3_STABLE [f5f92bdc4] 2013-11-29 21:48:11 -0300
259 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
263 This bug could result in large amounts of useless autovacuum activity.
268 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
269 Branch: master [ac4ab97ec] 2013-11-08 22:21:42 +0200
270 Branch: REL9_3_STABLE [fc545a254] 2013-11-08 22:23:03 +0200
271 Branch: REL9_2_STABLE [9a45a6559] 2013-11-08 22:23:11 +0200
272 Branch: REL9_1_STABLE [3527a5f59] 2013-11-08 22:23:14 +0200
273 Branch: REL9_0_STABLE [4b099e1bf] 2013-11-08 22:23:16 +0200
274 Branch: REL8_4_STABLE [b6f82acef] 2013-11-08 22:23:19 +0200
279 Fix race condition in GIN index posting tree page deletion (Heikki
284 This could lead to transient wrong answers or query failures.
289 Author: Tom Lane <tgl@sss.pgh.pa.us>
290 Branch: master [24ace4053] 2013-11-02 16:45:42 -0400
291 Branch: REL9_3_STABLE [86dab9c8a] 2013-11-02 16:45:52 -0400
292 Branch: REL9_2_STABLE [a1c3d54fb] 2013-11-02 16:45:57 -0400
297 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
298 index creation (Teodor Sigaev)
303 Author: Kevin Grittner <kgrittn@postgresql.org>
304 Branch: master [732758db4] 2013-11-04 14:31:07 -0600
305 Branch: REL9_3_STABLE [5b6ee03a3] 2013-11-04 14:45:18 -0600
310 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
315 Author: Tom Lane <tgl@sss.pgh.pa.us>
316 Branch: master [648bd05b1] 2013-11-11 10:42:57 -0500
317 Branch: REL9_3_STABLE [04e6ee402] 2013-11-11 10:43:00 -0500
322 Re-allow duplicate table aliases if they're within aliased JOINs
327 Historically <productname>PostgreSQL</> has accepted queries like
329 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
331 although a strict reading of the SQL standard would forbid the
332 duplicate usage of table alias <literal>x</>. A misguided change in
333 9.3.0 caused it to reject some such cases that were formerly accepted.
334 Restore the previous behavior.
339 Author: Tom Lane <tgl@sss.pgh.pa.us>
340 Branch: master [b97ee66cc] 2013-11-08 11:36:57 -0500
341 Branch: REL9_3_STABLE [9548bee2b] 2013-11-08 11:37:00 -0500
342 Branch: REL9_2_STABLE [f7171c7e2] 2013-11-08 11:37:04 -0500
343 Branch: REL9_1_STABLE [af38d140c] 2013-11-08 11:37:08 -0500
344 Branch: REL9_0_STABLE [987f05e16] 2013-11-08 11:37:12 -0500
345 Branch: REL8_4_STABLE [90b07dd7b] 2013-11-08 11:37:17 -0500
350 Avoid flattening a subquery whose <literal>SELECT</> list contains a
351 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
355 This avoids unexpected results due to extra evaluations of the
361 Author: Tom Lane <tgl@sss.pgh.pa.us>
362 Branch: master [f19e92ed0] 2013-11-22 14:37:21 -0500
363 Branch: REL9_3_STABLE [6bc68af1d] 2013-11-22 14:37:25 -0500
364 Branch: REL9_2_STABLE [c0aa210f6] 2013-11-22 14:37:29 -0500
365 Branch: REL9_1_STABLE [92a752151] 2013-11-22 14:37:31 -0500
366 Branch: REL9_0_STABLE [612f953c7] 2013-11-22 14:37:35 -0500
367 Branch: REL8_4_STABLE [122ba5dad] 2013-11-22 14:37:38 -0500
372 Fix planner's processing of non-simple-variable subquery outputs
373 nested within outer joins (Tom Lane)
377 This error could lead to incorrect plans for queries involving
378 multiple levels of subqueries within <literal>JOIN</> syntax.
383 Author: Tom Lane <tgl@sss.pgh.pa.us>
384 Branch: master [f3b3b8d5b] 2013-11-15 16:46:18 -0500
385 Branch: REL9_3_STABLE [1c0dfaa68] 2013-11-15 16:46:21 -0500
386 Branch: REL9_2_STABLE [51b6ae6bb] 2013-11-15 16:46:25 -0500
391 Fix incorrect planning in cases where the same non-strict expression
392 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
393 equality clauses (Tom Lane)
398 Author: Tom Lane <tgl@sss.pgh.pa.us>
399 Branch: master [ebefbb5fd] 2013-11-11 16:36:27 -0500
400 Branch: REL9_3_STABLE [e243bd79d] 2013-11-11 16:36:41 -0500
401 Branch: REL9_2_STABLE [449d5acd7] 2013-11-11 16:36:44 -0500
406 Fix planner crash with whole-row reference to a subquery (Tom Lane)
411 Author: Tom Lane <tgl@sss.pgh.pa.us>
412 Branch: master [5e900bc00] 2013-11-07 13:14:14 -0500
413 Branch: REL9_3_STABLE [5d0731da5] 2013-11-07 13:13:15 -0500
414 Branch: REL9_2_STABLE [aa8a2c3a6] 2013-11-07 13:13:19 -0500
415 Branch: REL9_1_STABLE [6e2c76248] 2013-11-07 13:13:47 -0500
420 Fix incorrect generation of optimized MIN()/MAX() plans for
421 inheritance trees (Tom Lane)
425 The planner could fail in cases where the MIN()/MAX() argument was an
426 expression rather than a simple variable.
431 Author: Tom Lane <tgl@sss.pgh.pa.us>
432 Branch: master [bffd1ce92] 2013-11-01 16:09:48 -0400
433 Branch: REL9_3_STABLE [14d4548f1] 2013-11-01 16:09:52 -0400
434 Branch: REL9_2_STABLE [2f2507e38] 2013-11-01 16:09:57 -0400
435 Branch: REL9_1_STABLE [8c0116a4c] 2013-11-01 16:10:00 -0400
436 Branch: REL9_0_STABLE [0c8462fd5] 2013-11-01 16:10:03 -0400
437 Branch: REL8_4_STABLE [d74eaf374] 2013-11-01 16:10:08 -0400
442 Fix premature deletion of temporary files (Andres Freund)
447 Author: Tom Lane <tgl@sss.pgh.pa.us>
448 Branch: master [b006f4ddb] 2013-11-03 11:33:05 -0500
449 Branch: REL9_3_STABLE [da2c6a919] 2013-11-03 11:33:09 -0500
450 Branch: REL9_2_STABLE [85de12624] 2013-11-03 11:33:13 -0500
455 Prevent intra-transaction memory leak when printing range values
460 This fix actually cures transient memory leaks in any datatype output
461 function, but range types are the only ones known to have had a
467 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
468 Branch: master [138184adc] 2013-10-24 15:27:40 +0300
469 Branch: REL9_3_STABLE [bb604d03a] 2013-10-24 15:28:15 +0300
474 Fix memory leaks when reloading configuration files (Heikki
475 Linnakangas, Hari Babu)
480 Author: Tom Lane <tgl@sss.pgh.pa.us>
481 Branch: master [c28b289bf] 2013-11-07 14:41:36 -0500
482 Branch: REL9_3_STABLE [df5d5f1dc] 2013-11-07 14:41:39 -0500
483 Branch: REL9_2_STABLE [8bd5a6af6] 2013-11-07 14:41:43 -0500
488 Prevent incorrect display of dropped columns in NOT NULL and CHECK
489 constraint violation messages (Michael Paquier and Tom Lane)
494 Author: Tom Lane <tgl@sss.pgh.pa.us>
495 Branch: master [bb45c6404] 2013-11-06 13:33:09 -0500
496 Branch: REL9_3_STABLE [66e6daa3e] 2013-11-06 13:33:18 -0500
497 Branch: REL9_2_STABLE [74aea2af9] 2013-11-06 13:26:38 -0500
502 Allow default arguments and named-argument notation for window
507 Previously, these cases were likely to crash.
512 Author: Tom Lane <tgl@sss.pgh.pa.us>
513 Branch: master [0b7e660d6] 2013-11-11 13:36:38 -0500
514 Branch: REL9_3_STABLE [fbbd150a2] 2013-11-11 13:36:42 -0500
519 Suppress trailing whitespace on each line when pretty-printing rules
524 9.3.0 generated such whitespace in many more cases than previous
525 versions did. To reduce unexpected behavioral changes, suppress
526 unnecessary whitespace in all cases.
531 Author: Peter Eisentraut <peter_e@gmx.net>
532 Branch: master [4053189d5] 2013-11-23 07:25:37 -0500
533 Branch: REL9_3_STABLE [0f8ff3e46] 2013-11-23 07:30:16 -0500
534 Branch: REL9_2_STABLE [654e006bb] 2013-11-23 07:30:45 -0500
535 Branch: REL9_1_STABLE [e1f7173ea] 2013-11-23 07:31:07 -0500
536 Branch: REL9_0_STABLE [44032290d] 2013-11-23 07:31:32 -0500
537 Branch: REL8_4_STABLE [240766a6e] 2013-11-23 07:31:53 -0500
542 Fix possible read past end of memory in rule printing (Peter Eisentraut)
547 Author: Tom Lane <tgl@sss.pgh.pa.us>
548 Branch: master [45e02e323] 2013-11-23 20:03:56 -0500
549 Branch: REL9_3_STABLE [c4d3cd3dc] 2013-11-23 20:04:00 -0500
550 Branch: REL9_2_STABLE [96ac8b518] 2013-11-23 20:04:03 -0500
551 Branch: REL9_1_STABLE [7b6352875] 2013-11-23 20:04:06 -0500
552 Branch: REL9_0_STABLE [747dd9724] 2013-11-23 20:04:10 -0500
553 Branch: REL8_4_STABLE [d0378c8a8] 2013-11-23 20:04:13 -0500
558 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
563 Expressions of this kind are now implicitly promoted to
564 regular <type>int2</> or <type>oid</> arrays.
569 Author: Andrew Dunstan <andrew@dunslane.net>
570 Branch: master [bbe4deac1] 2013-10-17 11:12:48 -0400
571 Branch: REL9_3_STABLE [bfb327ac1] 2013-10-17 11:09:55 -0400
576 Return a valid JSON value when converting an empty <type>hstore</> value
583 Author: Tom Lane <tgl@sss.pgh.pa.us>
584 Branch: master [631dc390f] 2013-11-01 12:13:18 -0400
585 Branch: REL9_3_STABLE [2650c5cf4] 2013-11-01 12:13:23 -0400
586 Branch: REL9_2_STABLE [2e2134954] 2013-11-01 12:13:26 -0400
587 Branch: REL9_1_STABLE [172ba4578] 2013-11-01 12:13:29 -0400
588 Branch: REL9_0_STABLE [d81cd0430] 2013-11-01 12:13:33 -0400
589 Branch: REL8_4_STABLE [01499ea33] 2013-11-01 12:13:38 -0400
594 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
599 In some cases, the system would use the simple GMT offset value when
600 it should have used the regular timezone setting that had prevailed
601 before the simple offset was selected. This change also causes
602 the <function>timeofday</> function to honor the simple GMT offset
608 Author: Tom Lane <tgl@sss.pgh.pa.us>
609 Branch: master [f145454d5] 2013-11-23 18:24:26 -0500
610 Branch: REL9_3_STABLE [69eb86169] 2013-11-23 18:24:42 -0500
611 Branch: REL9_2_STABLE [e86f2a052] 2013-11-23 18:24:46 -0500
612 Branch: REL9_1_STABLE [b2502ecef] 2013-11-23 18:24:50 -0500
613 Branch: REL9_0_STABLE [ec6a6a268] 2013-11-23 18:24:54 -0500
614 Branch: REL8_4_STABLE [3482f2986] 2013-11-23 18:25:00 -0500
619 Prevent possible misbehavior when logging translations of Windows
620 error codes (Tom Lane)
625 Author: Tom Lane <tgl@sss.pgh.pa.us>
626 Branch: master [79193c75f] 2013-11-29 18:34:07 -0500
627 Branch: REL9_3_STABLE [a9380b5c3] 2013-11-29 18:34:11 -0500
628 Branch: REL9_2_STABLE [19af7d4f0] 2013-11-29 18:34:14 -0500
629 Branch: REL9_1_STABLE [8c72b20e3] 2013-11-29 18:34:18 -0500
630 Branch: REL9_0_STABLE [4ab4e5c6b] 2013-11-29 18:34:22 -0500
631 Branch: REL8_4_STABLE [6cb109a81] 2013-11-29 18:34:25 -0500
636 Properly quote generated command lines in <application>pg_ctl</>
637 (Naoya Anzai and Tom Lane)
641 This fix applies only to Windows.
646 Author: Kevin Grittner <kgrittn@postgresql.org>
647 Branch: master [4bd371f6f] 2013-11-30 11:24:56 -0600
648 Branch: REL9_3_STABLE [53b0f2134] 2013-11-30 11:33:04 -0600
649 Branch: REL9_2_STABLE [27b33245a] 2013-11-30 11:33:54 -0600
650 Branch: REL9_1_STABLE [4bdccd842] 2013-11-30 12:06:48 -0600
651 Branch: REL9_0_STABLE [52898e005] 2013-11-30 12:07:05 -0600
652 Branch: REL8_4_STABLE [ac7113bb3] 2013-11-30 12:07:18 -0600
657 Fix <application>pg_dumpall</> to work when a source database
659 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
660 via <command>ALTER DATABASE SET</> (Kevin Grittner)
664 Previously, the generated script would fail during restore.
669 Author: Fujii Masao <fujii@postgresql.org>
670 Branch: master [38f432898] 2013-11-21 21:52:03 +0900
671 Branch: REL9_3_STABLE [844534dd4] 2013-11-21 21:54:19 +0900
676 Fix <application>pg_isready</> to handle its <option>-d</> option
677 properly (Fabrízio de Royes Mello and Fujii Masao)
682 Author: Peter Eisentraut <peter_e@gmx.net>
683 Branch: master [bd5a9a50e] 2013-11-18 22:01:59 -0500
684 Branch: REL9_3_STABLE [8ca75671b] 2013-11-18 22:02:36 -0500
689 Report out-of-disk-space failures properly
690 in <application>pg_upgrade</> (Peter Eisentraut)
695 Author: Michael Meskes <meskes@postgresql.org>
696 Branch: master [51867a0f9] 2013-11-27 11:02:13 +0100
697 Branch: REL9_3_STABLE [dcb05900b] 2013-11-27 11:14:52 +0100
698 Branch: REL9_2_STABLE [0cedfa766] 2013-11-27 11:15:13 +0100
699 Branch: REL9_1_STABLE [9a1c6dd43] 2013-11-27 11:15:34 +0100
704 Make <application>ecpg</> search for quoted cursor names
705 case-sensitively (Zoltán Böszörményi)
710 Author: Michael Meskes <meskes@postgresql.org>
711 Branch: master [b46fa3210] 2013-11-26 17:42:32 +0100
712 Branch: REL9_3_STABLE [b3866bc2b] 2013-11-26 17:32:40 +0100
713 Branch: REL9_2_STABLE [b05c415c8] 2013-11-26 17:32:26 +0100
714 Branch: REL9_1_STABLE [5bffd42a3] 2013-11-26 17:32:06 +0100
715 Branch: REL9_0_STABLE [7bee2e3e5] 2013-11-26 17:31:39 +0100
716 Branch: REL8_4_STABLE [3b41a7c74] 2013-11-26 17:30:24 +0100
721 Fix <application>ecpg</>'s processing of lists of variables
722 declared <type>varchar</> (Zoltán Böszörményi)
727 Author: Tom Lane <tgl@sss.pgh.pa.us>
728 Branch: master [64d15e424] 2013-11-23 22:46:43 -0500
729 Branch: REL9_3_STABLE [af1288e68] 2013-11-23 22:46:03 -0500
730 Branch: REL9_2_STABLE [b6da09fcb] 2013-11-23 22:46:08 -0500
731 Branch: REL9_1_STABLE [8bf45ea8b] 2013-11-23 22:46:11 -0500
732 Branch: REL9_0_STABLE [cd5316f67] 2013-11-23 22:46:15 -0500
733 Branch: REL8_4_STABLE [2c3b7d224] 2013-11-23 22:46:21 -0500
738 Make <filename>contrib/lo</> defend against incorrect trigger definitions
744 Author: Tom Lane <tgl@sss.pgh.pa.us>
745 Branch: master [335470251] 2013-12-01 14:11:44 -0500
746 Branch: REL9_3_STABLE [4e213be86] 2013-12-01 14:12:01 -0500
747 Branch: REL9_2_STABLE [c89acb41f] 2013-12-01 14:12:05 -0500
748 Branch: REL9_1_STABLE [99e7d2ad1] 2013-12-01 14:12:08 -0500
749 Branch: REL9_0_STABLE [47430452a] 2013-12-01 14:12:12 -0500
750 Branch: REL8_4_STABLE [0526889a6] 2013-12-01 14:12:17 -0500
755 Update time zone data files to <application>tzdata</> release 2013h
756 for DST law changes in Argentina, Brazil, Jordan, Libya,
757 Liechtenstein, Morocco, and Palestine. Also, new timezone
758 abbreviations WIB, WIT, WITA for Indonesia.
767 <sect1 id="release-9-3-1">
768 <title>Release 9.3.1</title>
771 <title>Release Date</title>
772 <simpara>2013-10-10</simpara>
776 This release contains a variety of fixes from 9.3.0.
777 For information about new features in the 9.3 major release, see
778 <xref linkend="release-9-3">.
782 <title>Migration to Version 9.3.1</title>
785 A dump/restore is not required for those running 9.3.X.
789 However, if you use the <literal>hstore</> extension, see the
790 first changelog entry.
796 <title>Changes</title>
802 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
803 extension during an update (Andrew Dunstan)
807 Users who upgraded a pre-9.3 database containing <literal>hstore</>
810 ALTER EXTENSION hstore UPDATE;
812 after installing 9.3.1, to add two new JSON functions and a cast.
813 (If <literal>hstore</> is already up to date, this command does
820 Fix memory leak when creating B-tree indexes on range columns
827 Fix memory leak caused by <function>lo_open()</function> failure
834 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
840 Fix deadlock bug in libpq when using SSL (Stephen Frost)
846 Fix timeline handling bugs in <application>pg_receivexlog</>
847 (Heikki Linnakangas, Andrew Gierth)
853 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
854 variables unless function body checking is enabled (Tom Lane)
860 Remove rare inaccurate warning during vacuum of index-less tables
870 <sect1 id="release-9-3">
871 <title>Release 9.3</title>
874 <title>Release Date</title>
875 <simpara>2013-09-09</simpara>
879 <title>Overview</title>
882 Major enhancements in <productname>PostgreSQL</> 9.3 include:
885 <!-- This list duplicates items below, but without authors or details-->
891 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
898 Make simple views <link
899 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
905 Add many features for the <type>JSON</> data type,
906 including <link linkend="functions-json">operators and functions</link>
907 to extract elements from <type>JSON</> values
913 Implement <acronym>SQL</>-standard <link
914 linkend="queries-lateral"><literal>LATERAL</></link> option for
915 <literal>FROM</>-clause subqueries and function calls
921 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
922 wrappers</link> to support writes (inserts/updates/deletes) on foreign
929 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
930 data wrapper</link> to allow access to
931 other <productname>Postgres</> servers
937 Add support for <link linkend="event-triggers">event triggers</link>
943 Add optional ability to <link
944 linkend="app-initdb-data-checksums">checksum</link> data pages and
951 Prevent non-key-field row updates from blocking foreign key checks
957 Greatly reduce System V <link linkend="sysvipc">shared
958 memory</link> requirements
965 The above items are explained in more detail in the sections below.
972 <title>Migration to Version 9.3</title>
975 A dump/restore using <link
976 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
977 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
978 required for those wishing to migrate data from any previous release.
982 Version 9.3 contains a number of changes that may affect compatibility
983 with previous releases. Observe the following incompatibilities:
987 <title>Server Settings</title>
993 Rename <varname>replication_timeout</> to <link
994 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
999 This setting controls the <link
1000 linkend="wal"><acronym>WAL</></link> sender timeout.
1006 Require superuser privileges to set <link
1007 linkend="guc-commit-delay"><varname>commit_delay</></link>
1008 because it can now potentially delay other sessions (Simon Riggs)
1014 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
1018 Users who have set <link
1019 linkend="guc-work-mem"><varname>work_mem</></link> based on the
1020 previous behavior may need to revisit that setting.
1029 <title>Other</title>
1035 Throw an error if a tuple to be updated or deleted has already been
1036 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
1040 Formerly, the originally-intended update was silently skipped,
1041 resulting in logical inconsistency since the trigger might have
1042 propagated data to other places based on the intended update.
1043 Now an error is thrown to prevent the inconsistent results from being
1044 committed. If this change affects your application, the best solution
1045 is usually to move the data-propagation actions to
1046 an <literal>AFTER</> trigger.
1050 This error will also be thrown if a query invokes a volatile function
1051 that modifies rows that are later modified by the query itself.
1052 Such cases likewise previously resulted in silently skipping updates.
1058 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
1059 SET NULL/SET DEFAULT</></link> foreign key actions to affect
1060 all columns of the constraint, not just those changed in the
1061 <command>UPDATE</> (Tom Lane)
1065 Previously, we would set only those referencing columns that
1066 correspond to referenced columns that were changed by
1067 the <command>UPDATE</>. This was what was required by SQL-92,
1068 but more recent editions of the SQL standard specify the new behavior.
1074 Force cached plans to be replanned if the <link
1075 linkend="guc-search-path"><varname>search_path</></link> changes
1080 Previously, cached plans already generated in the current session were
1081 not redone if the query was re-executed with a
1082 new <varname>search_path</> setting, resulting in surprising behavior.
1089 linkend="functions-formatting-table"><function>to_number()</></link>
1090 to properly handle a period used as a thousands separator (Tom Lane)
1094 Previously, a period was considered to be a decimal point even when
1095 the locale says it isn't and the <literal>D</> format code is used to
1096 specify use of the locale-specific decimal point. This resulted in
1097 wrong answers if <literal>FM</> format was also used.
1103 Fix <literal>STRICT</> non-set-returning functions that have
1104 set-returning functions in their arguments to properly return null
1109 A null value passed to the strict function should result in a null
1110 output, but instead, that output row was suppressed entirely.
1116 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
1117 stream, rather than skipping the last 16MB segment every 4GB
1118 (Heikki Linnakangas)
1122 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
1123 were not used because of this skipping. If you have <acronym>WAL</>
1124 backup or restore scripts that took this behavior into account, they
1125 will need to be adjusted.
1132 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
1133 store the default foreign key match type (non-<literal>FULL</>,
1134 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
1139 Previously this case was represented by <literal>u</>
1140 for <quote>unspecified</>.
1151 <title>Changes</title>
1154 Below you will find a detailed account of the changes between
1155 <productname>PostgreSQL</productname> 9.3 and the previous major
1160 <title>Server</title>
1163 <title>Locking</title>
1169 Prevent non-key-field row updates from blocking foreign key checks
1170 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
1171 Shulgin, Marti Raudsepp, Alexander Shulgin)
1175 This change improves concurrency and reduces the probability of
1176 deadlocks when updating tables involved in a foreign-key constraint.
1177 <command>UPDATE</>s that do not change any columns referenced in a
1178 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
1179 the row, while foreign key checks use the new <literal>KEY SHARE</>
1180 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
1181 So there is no blocking unless a foreign-key column is changed.
1187 Add configuration variable <link
1188 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
1189 allow limiting how long a session will wait to acquire any one lock
1190 (Zoltán Böszörményi)
1199 <title>Indexes</title>
1205 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
1206 support for range data types (Alexander Korotkov)
1212 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
1213 unlogged (Jeevan Chalke)
1219 Improve performance of <acronym>GiST</> index insertion by randomizing
1220 the choice of which page to descend to when there are multiple equally
1221 good alternatives (Heikki Linnakangas)
1227 Improve concurrency of hash index operations (Robert Haas)
1236 <title>Optimizer</title>
1242 Collect and use histograms of upper and lower bounds, as well as range
1243 lengths, for <link linkend="rangetypes">range types</link>
1244 (Alexander Korotkov)
1250 Improve optimizer's cost estimation for index access (Tom Lane)
1256 Improve optimizer's hash table size estimate for
1257 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
1263 Suppress no-op Result and Limit plan nodes
1264 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
1270 Reduce optimizer overhead by not keeping plans on the basis of cheap
1271 startup cost when the optimizer only cares about total cost overall
1281 <title>General Performance</title>
1287 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
1288 option to avoid the overhead of marking tuples as frozen later
1289 (Simon Riggs, Jeff Davis)
1295 Improve performance of <link
1296 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
1303 Improve synchronization of sessions waiting for <link
1304 linkend="guc-commit-delay"><varname>commit_delay</></link>
1309 This greatly improves the usefulness of <varname>commit_delay</>.
1315 Improve performance of the <link
1316 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
1317 COMMIT DELETE ROWS</></link> option by not truncating such temporary
1318 tables in transactions that haven't touched any temporary tables
1319 (Heikki Linnakangas)
1325 Make vacuum recheck visibility after it has removed expired tuples
1330 This increases the chance of a page being marked as all-visible.
1336 Add per-resource-owner lock caches (Jeff Janes)
1340 This speeds up lock bookkeeping at statement completion in
1341 multi-statement transactions that hold many locks; it is particularly
1342 useful for <application>pg_dump</>.
1348 Avoid scanning the entire relation cache at commit of a transaction
1349 that creates a new relation (Jeff Janes)
1353 This speeds up sessions that create many tables in successive
1354 small transactions, such as a <application>pg_restore</> run.
1360 Improve performance of transactions that drop many relations
1370 <title>Monitoring</title>
1376 Add optional ability to <link
1377 linkend="app-initdb-data-checksums">checksum</link> data pages and
1378 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
1382 The checksum option can be set during <link
1383 linkend="APP-INITDB">initdb</link>.
1389 Split the <link linkend="monitoring-stats">statistics collector's</link>
1390 data file into separate global and per-database files (Tomas Vondra)
1394 This reduces the I/O required for statistics tracking.
1400 Fix the statistics collector to operate properly in cases where the
1401 system clock goes backwards (Tom Lane)
1405 Previously, statistics collection would stop until the time again
1406 reached the latest time previously recorded.
1412 Emit an informative message to postmaster standard error when we
1413 are about to stop logging there
1418 This should help reduce user confusion about where to look for log
1419 output in common configurations that log to standard error only during
1429 <title>Authentication</title>
1435 When an authentication failure occurs, log the relevant
1436 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
1437 line, to ease debugging of unintended failures
1444 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
1445 reporting and documentation (Peter Eisentraut)
1451 Add support for specifying <acronym>LDAP</> authentication parameters
1452 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
1459 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
1460 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
1461 then remove insecure ciphers (Magnus Hagander)
1465 This should yield a more appropriate SSL cipher set.
1471 Parse and load <link
1472 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
1473 once, not during each connection (Amit Kapila)
1477 This is similar to how <filename>pg_hba.conf</> is processed.
1486 <title>Server Settings</title>
1492 Greatly reduce System V <link linkend="sysvipc">shared
1493 memory</link> requirements (Robert Haas)
1497 On Unix-like systems, <function>mmap()</> is now used for most
1498 of <productname>PostgreSQL</>'s shared memory. For most users, this
1499 will eliminate any need to adjust kernel parameters for shared memory.
1505 Allow the postmaster to listen on multiple Unix-domain sockets
1506 (Honza Horák)
1510 The configuration parameter
1511 <varname>unix_socket_directory</> is replaced by <link
1512 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
1513 which accepts a list of directories.
1519 Allow a directory of configuration files to be processed (Magnus
1520 Hagander, Greg Smith, Selena Deckelmann)
1524 Such a directory is specified with <link
1525 linkend="config-includes"><varname>include_dir</></link> in the server
1532 Increase the maximum <link
1533 linkend="APP-INITDB">initdb</link>-configured value for <link
1534 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
1535 to 128MB (Robert Haas)
1539 This is the maximum value that initdb will attempt to set in <link
1540 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
1541 the previous maximum was 32MB.
1547 Remove the <link linkend="guc-external-pid-file">external
1548 <acronym>PID</> file</link>, if any, on postmaster exit
1560 <title>Replication and Recovery</title>
1566 Allow a streaming replication standby to <link
1567 linkend="protocol-replication">follow a timeline switch</link>
1568 (Heikki Linnakangas)
1572 This allows streaming standby servers to receive WAL data from a slave
1573 newly promoted to master status. Previously, other standbys would
1574 require a resync to begin following the new master.
1580 Add <acronym>SQL</> functions <link
1581 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
1583 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
1588 These functions report the status of base backups.
1594 Improve performance of streaming log shipping with <link
1595 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
1596 disabled (Andres Freund)
1602 Allow much faster promotion of a streaming standby to primary (Simon
1603 Riggs, Kyotaro Horiguchi)
1609 Add the last checkpoint's redo location to <link
1610 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
1611 output (Fujii Masao)
1615 This information is useful for determining which <acronym>WAL</>
1616 files are needed for restore.
1622 Allow tools like <link
1623 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
1624 to run on computers with different architectures (Heikki
1629 WAL files can still only be replayed on servers with the same
1630 architecture as the primary; but they can now be transmitted to and
1631 stored on machines of any architecture, since the
1632 streaming replication protocol is now machine-independent.
1639 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
1640 <option>--write-recovery-conf</> output a
1641 minimal <filename>recovery.conf</> file (Zoltán
1642 Böszörményi, Magnus Hagander)
1646 This simplifies setting up a standby server.
1653 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
1655 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
1656 <option>--xlog-method</> to handle streaming timeline switches
1657 (Heikki Linnakangas)
1664 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
1665 parameter to control the <acronym>WAL</> receiver's timeout
1670 This allows more rapid detection of connection failure.
1676 Change the <link linkend="wal"><acronym>WAL</></link> record format to
1677 allow splitting the record header across pages (Heikki Linnakangas)
1681 The new format is slightly more compact, and is more efficient to
1691 <title>Queries</title>
1697 Implement <acronym>SQL</>-standard <link
1698 linkend="queries-lateral"><literal>LATERAL</></link> option for
1699 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
1703 This feature allows subqueries and functions in <literal>FROM</> to
1704 reference columns from other tables in the <literal>FROM</>
1705 clause. The <literal>LATERAL</> keyword is optional for functions.
1711 Add support for piping <link
1712 linkend="SQL-COPY"><command>COPY</></link> and <link
1713 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
1714 data to/from an external program (Etsuro Fujita)
1720 Allow a multirow <link
1721 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
1722 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
1731 <title>Object Manipulation</title>
1737 Add support for <link linkend="event-triggers">event triggers</link>
1738 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
1742 This allows server-side functions written in event-enabled
1743 languages to be called when DDL commands are run.
1749 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
1750 wrappers</link> to support writes (inserts/updates/deletes) on foreign
1751 tables (KaiGai Kohei)
1757 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
1758 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
1764 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
1765 OWNED</></link> also change ownership of shared objects
1766 (Álvaro Herrera)
1772 Make <link linkend="sql-createaggregate"><command>CREATE
1773 AGGREGATE</></link> complain if the given initial value string is not
1774 valid input for the transition datatype (Tom Lane)
1780 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
1781 TABLE</></link>'s messages about implicit index and sequence creation
1786 These messages now appear at <literal>DEBUG1</> verbosity, so that
1787 they will not be shown by default.
1793 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
1794 EXISTS</></link> to succeed when a non-existent schema is specified
1795 in the table name (Bruce Momjian)
1799 Previously, it threw an error if the schema did not exist.
1805 Provide clients with <link
1806 linkend="libpq-pqresulterrorfield">constraint violation details</link>
1807 as separate fields (Pavel Stehule)
1811 This allows clients to retrieve table, column, data type, or
1812 constraint name error details. Previously such information had to be
1813 extracted from error strings. Client library support is required to
1814 access these fields.
1821 <title><command>ALTER</></title>
1827 Support <literal>IF NOT EXISTS</> option in <link
1828 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
1833 This is useful for conditionally adding values to enumerated types.
1839 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
1840 SET</></link> to establish settings for all users (Peter Eisentraut)
1844 This allows settings to apply to all users in all databases. <link
1845 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
1846 already allowed addition of settings for all users in a single
1847 database. <filename>postgresql.conf</> has a similar effect.
1853 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
1854 ... RENAME</></link> (Ali Dar)
1863 <title><link linkend="rules-views"><command>VIEWs</></link></title>
1869 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
1870 views</link> (Kevin Grittner)
1874 Unlike ordinary views, where the base tables are read on every access,
1875 materialized views create physical tables at creation or refresh time.
1876 Access to the materialized view then reads from its physical
1877 table. There is not yet any facility for incrementally refreshing
1878 materialized views or auto-accessing them via base table access.
1884 Make simple views <link
1885 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
1890 Simple views that reference some or all columns from a
1891 single base table are now updatable by default. More
1892 complex views can be made updatable using <link
1893 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
1894 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
1900 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
1901 VIEW</></link> syntax (Peter Eisentraut)
1905 Internally this is translated into <command>CREATE VIEW ... WITH
1912 Improve view/rule printing code to handle cases where referenced
1913 tables are renamed, or columns are renamed, added, or dropped
1918 Table and column renamings can produce cases where, if we merely
1919 substitute the new name into the original text of a rule or view, the
1920 result is ambiguous. This change fixes the rule-dumping code to insert
1921 manufactured table and column aliases when needed to preserve the
1933 <title>Data Types</title>
1939 Increase the maximum size of <link linkend="largeObjects">large
1940 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
1944 This change includes adding 64-bit-capable large object access
1945 functions, both in the server and in libpq.
1951 Allow text <link linkend="datatype-timezones">timezone
1952 designations</link>, e.g. <quote>America/Chicago</>, in the
1953 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
1954 input (Bruce Momjian)
1961 <title><link linkend="datatype-json"><type>JSON</></link></title>
1967 Add <link linkend="functions-json">operators and functions</link>
1968 to extract elements from <type>JSON</> values (Andrew Dunstan)
1974 Allow <type>JSON</> values to be <link
1975 linkend="functions-json-table">converted into records</link>
1982 Add <link linkend="functions-json-table">functions</link> to convert
1983 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
1996 <title>Functions</title>
2003 linkend="array-functions-table"><function>array_remove()</></link>
2005 linkend="array-functions-table"><function>array_replace()</></link>
2006 functions (Marco Nenciarini, Gabriele Bartolini)
2013 linkend="functions-string-other"><function>concat()</></link>
2015 linkend="functions-string-format"><function>format()</></link>
2016 to properly expand <literal>VARIADIC</>-labeled arguments
2024 linkend="functions-string-format"><function>format()</></link>
2025 to provide field width and left/right alignment options (Pavel Stehule)
2032 linkend="functions-formatting-table"><function>to_char()</></link>,
2034 linkend="functions-formatting-table"><function>to_date()</></link>,
2036 linkend="functions-formatting-table"><function>to_timestamp()</></link>
2037 handle negative (BC) century values properly
2042 Previously the behavior was either wrong or inconsistent
2043 with positive/<acronym>AD</> handling, e.g. with the format mask
2044 <quote>IYYY-IW-DY</>.
2051 linkend="functions-formatting-table"><function>to_date()</></link>
2053 linkend="functions-formatting-table"><function>to_timestamp()</></link>
2054 return proper results when mixing <acronym>ISO</> and Gregorian
2055 week/day designations (Bruce Momjian)
2062 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
2063 to start a new line by default after each <literal>SELECT</> target
2064 list entry and <literal>FROM</> entry (Marko Tiikkaja)
2068 This reduces line length in view printing, for instance in <link
2069 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
2075 Fix <function>map_sql_value_to_xml_value()</> to print values of
2076 domain types the same way their base type would be printed
2081 There are special formatting rules for certain built-in types such as
2082 <type>boolean</>; these rules now also apply to domains over these
2092 <title>Server-Side Languages</title>
2095 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
2101 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
2102 expression (Asif Rehman)
2106 Previously, in a function returning a composite type,
2107 <literal>RETURN</> could only reference a variable of that type.
2113 Allow PL/pgSQL to access <link
2114 linkend="plpgsql-exception-diagnostics">constraint violation
2115 details</link> as separate fields (Pavel Stehule)
2121 Allow PL/pgSQL to access the number of rows processed by
2122 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
2126 A <command>COPY</> executed in a PL/pgSQL function now updates the
2127 value retrieved by <link
2128 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
2129 x = ROW_COUNT</></link>.
2135 Allow unreserved keywords to be used as identifiers everywhere in
2140 In certain places in the PL/pgSQL grammar, keywords had to be quoted
2141 to be used as identifiers, even if they were nominally unreserved.
2150 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
2156 Add PL/Python result object string handler (Peter Eisentraut)
2160 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
2166 Make PL/Python convert OID values to a proper Python numeric type
2173 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
2174 explicitly (with PL/Python's <literal>RAISE</>) the same as
2175 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
2186 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
2192 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
2197 At the end of any failed subtransaction, the core SPI code now
2198 releases any SPI tuple tables that were created during that
2199 subtransaction. This avoids the need for SPI-using code to keep track
2200 of such tuple tables and release them manually in error-recovery code.
2201 Failure to do so caused a number of transaction-lifespan memory leakage
2202 issues in PL/pgSQL and perhaps other SPI clients. <link
2203 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
2204 now protects itself against multiple freeing requests, so any existing
2205 code that did take care to clean up shouldn't be broken by this change.
2211 Allow <acronym>SPI</> functions to access the number of rows processed
2212 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
2221 <title>Client Applications</title>
2227 Add command-line utility <link
2228 linkend="app-pg-isready"><application>pg_isready</></link> to
2229 check if the server is ready to accept connections (Phil Sorber)
2235 Support multiple <option>--table</> arguments for <link
2236 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
2237 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
2238 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
2239 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
2244 This is similar to the way <link
2245 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
2246 <option>--table</> option works.
2252 Add <option>--dbname</> option to <link
2253 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
2254 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
2256 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
2257 to allow specifying a connection string (Amit Kapila)
2263 Add libpq function <link
2264 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
2265 to return connection information (Zoltán
2266 Böszörményi, Magnus Hagander)
2273 <title><link linkend="APP-PSQL"><application>psql</></link></title>
2279 Adjust function cost settings so <application>psql</> tab
2280 completion and pattern searching are more efficient (Tom Lane)
2286 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
2287 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
2293 Allow the <application>psql</> <option>--single-transaction</>
2294 mode to work when reading from standard input (Fabien Coelho,
2299 Previously this option only worked when reading from a file.
2305 Remove <application>psql</> warning when connecting to an older
2306 server (Peter Eisentraut)
2310 A warning is still issued when connecting to a server of a newer major
2311 version than <application>psql</>'s.
2318 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
2324 Add <application>psql</> command <command>\watch</> to repeatedly
2325 execute a SQL command (Will Leinweber)
2331 Add <application>psql</> command <command>\gset</> to store query
2332 results in <application>psql</> variables (Pavel Stehule)
2338 Add <acronym>SSL</> information to <application>psql</>'s
2339 <command>\conninfo</> command (Alastair Turner)
2345 Add <quote>Security</> column to <application>psql</>'s
2346 <command>\df+</> output (Jon Erdman)
2352 Allow <application>psql</> command <command>\l</> to accept a database
2353 name pattern (Peter Eisentraut)
2359 In <application>psql</>, do not allow <command>\connect</> to
2360 use defaults if there is no active connection (Bruce Momjian)
2364 This might be the case if the server had crashed.
2370 Properly reset state after failure of a SQL command executed with
2371 <application>psql</>'s <literal>\g</> <replaceable>file</>
2376 Previously, the output from subsequent SQL commands would unexpectedly
2377 continue to go to the same file.
2386 <title>Output</title>
2392 Add a <literal>latex-longtable</> output format to
2393 <application>psql</> (Bruce Momjian)
2397 This format allows tables to span multiple pages.
2403 Add a <literal>border=3</> output mode to the <application>psql</>
2404 <literal>latex</> format (Bruce Momjian)
2410 In <application>psql</>'s tuples-only and expanded output modes, no
2411 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
2417 In <application>psql</>'s unaligned, expanded output mode, no longer
2418 print an empty line for zero rows (Peter Eisentraut)
2429 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
2435 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
2436 parallel (Joachim Wieland)
2442 Make <application>pg_dump</> output functions in a more predictable
2443 order (Joel Jacobson)
2449 Fix tar files emitted by <application>pg_dump</>
2450 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
2456 Add <option>--dbname</> option to <application>pg_dump</>, for
2457 consistency with other client commands (Heikki Linnakangas)
2461 The database name could already be supplied last without a flag.
2470 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
2476 Make initdb fsync the newly created data directory (Jeff Davis)
2480 This insures data integrity in event of a system crash shortly after
2481 initdb. This can be disabled by using <option>--nosync</>.
2487 Add initdb <option>--sync-only</> option to sync the data directory to durable
2488 storage (Bruce Momjian)
2492 This is used by <link
2493 linkend="pgupgrade"><application>pg_upgrade</></link>.
2499 Make initdb issue a warning about placing the data directory at the
2500 top of a file system mount point (Bruce Momjian)
2511 <title>Source Code</title>
2517 Add infrastructure to allow plug-in <link
2518 linkend="bgworker">background worker processes</link>
2519 (Álvaro Herrera)
2525 Create a centralized timeout <acronym>API</> (Zoltán
2526 Böszörményi)
2532 Create libpgcommon and move <function>pg_malloc()</> and other
2533 functions there (Álvaro Herrera, Andres Freund)
2537 This allows libpgport to be used solely for portability-related code.
2543 Add support for list links embedded in larger structs (Andres Freund)
2549 Use <literal>SA_RESTART</> for all signals,
2550 including <literal>SIGALRM</> (Tom Lane)
2556 Ensure that the correct text domain is used when
2557 translating <function>errcontext()</> messages
2558 (Heikki Linnakangas)
2564 Standardize naming of client-side memory allocation functions (Tom Lane)
2570 Provide support for <quote>static assertions</> that will fail at
2571 compile time if some compile-time-constant condition is not met
2572 (Andres Freund, Tom Lane)
2578 Support <function>Assert()</> in client-side code (Andrew Dunstan)
2584 Add decoration to inform the C compiler that some <function>ereport()</>
2585 and <function>elog()</> calls do not return (Peter Eisentraut,
2586 Andres Freund, Tom Lane, Heikki Linnakangas)
2592 Allow options to be passed to the regression
2593 test output comparison utility via <link
2594 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
2601 Add isolation tests for <link
2602 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
2603 CONCURRENTLY</></link> (Abhijit Menon-Sen)
2609 Remove typedefs for <type>int2</>/<type>int4</> as they are better
2610 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
2616 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
2617 X</> (Peter Eisentraut)
2623 Remove <link linkend="configure">configure</link> flag
2624 <option>--disable-shared</>, as it is no longer supported
2631 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
2637 Provide Emacs macro to set Perl formatting to
2638 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
2644 Run tool to check the keyword list whenever the backend grammar is
2651 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
2652 the size of the lexer tables (Heikki Linnakangas)
2658 Centralize <application>flex</> and <application>bison</>
2659 <application>make</> rules (Peter Eisentraut)
2663 This is useful for <application>pgxs</> authors.
2669 Change many internal backend functions to return object <type>OID</>s
2670 rather than void (Dimitri Fontaine)
2674 This is useful for event triggers.
2680 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
2681 callbacks (Tom Lane)
2685 Loadable modules that use transaction callbacks might need modification
2686 to handle these new event types.
2693 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
2694 to produce a machine-readable description of a database object
2695 (Álvaro Herrera)
2701 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
2707 Implement a generic binary heap and use it for Merge-Append
2708 operations (Abhijit Menon-Sen)
2714 Provide a tool to help detect timezone abbreviation changes when
2715 updating the <filename>src/timezone/data</> files
2722 Add <application>pkg-config</> support for <application>libpq</>
2723 and <application>ecpg</> libraries (Peter Eisentraut)
2729 Remove <filename>src/tool/backend</>, now that the content is on
2730 the <productname>PostgreSQL</> wiki (Bruce Momjian)
2736 Split out <link linkend="wal"><acronym>WAL</></link> reading as
2737 an independent facility (Heikki Linnakangas, Andres Freund)
2743 Use a 64-bit integer to represent <link
2744 linkend="wal"><acronym>WAL</></link> positions
2745 (<structname>XLogRecPtr</>) instead of two 32-bit integers
2746 (Heikki Linnakangas)
2750 Generally, tools that need to read the <acronym>WAL</> format
2751 will need to be adjusted.
2757 Allow <link linkend="plpython">PL/Python</link> to support
2758 platform-specific include directories (Peter Eisentraut)
2764 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
2765 X</> to build against custom versions of <application>Python</>
2775 <title>Additional Modules</title>
2781 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
2782 data wrapper</link> contrib module to allow access to
2783 other <productname>Postgres</> servers (Shigeru Hanada)
2787 This foreign data wrapper supports writes.
2793 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
2794 contrib program (Andres Freund)
2800 Add support for indexing of regular-expression searches in
2801 <link linkend="pgtrgm"><productname>pg_trgm</></link>
2802 (Alexander Korotkov)
2808 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
2809 handling of multibyte characters (Tom Lane)
2813 On a platform that does not have the wcstombs() or towlower() library
2814 functions, this could result in an incompatible change in the contents
2815 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
2816 <command>REINDEX</> those indexes to ensure correct search results.
2822 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
2823 the size of the pending-insertions list of a <acronym>GIN</> index
2830 Make <link linkend="oid2name"><application>oid2name</></link>,
2831 <link linkend="pgbench"><application>pgbench</></link>, and
2832 <link linkend="vacuumlo"><application>vacuumlo</></link> set
2833 <varname>fallback_application_name</> (Amit Kapila)
2839 Improve output of <link
2840 linkend="pgtesttiming"><application>pg_test_timing</></link>
2847 Improve output of <link
2848 linkend="pgtestfsync"><application>pg_test_fsync</></link>
2855 Create a dedicated foreign data wrapper, with its own option validator
2856 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
2860 When using this FDW to define the target of a <application>dblink</>
2861 connection, instead of using a hard-wired list of connection options,
2862 the underlying <application>libpq</> library is consulted to see what
2863 connection options it supports.
2870 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
2876 Allow <application>pg_upgrade</> to do dumps and restores in
2877 parallel (Bruce Momjian, Andrew Dunstan)
2881 This allows parallel schema dump/restore of databases, as well as
2882 parallel copy/link of data files per tablespace. Use the
2883 <option>--jobs</> option to specify the level of parallelism.
2889 Make <application>pg_upgrade</> create Unix-domain sockets in
2890 the current directory (Bruce Momjian, Tom Lane)
2894 This reduces the possibility that someone will accidentally connect
2901 Make <application>pg_upgrade</> <option>--check</> mode properly
2902 detect the location of non-default socket directories (Bruce
2909 Improve performance of <application>pg_upgrade</> for databases
2910 with many tables (Bruce Momjian)
2916 Improve <application>pg_upgrade</>'s logs by showing
2917 executed commands (Álvaro Herrera)
2923 Improve <application>pg_upgrade</>'s status display during
2924 copy/link (Bruce Momjian)
2933 <title><link linkend="pgbench"><application>pgbench</></link></title>
2939 Add <option>--foreign-keys</> option to <application>pgbench</>
2944 This adds foreign key constraints to the standard tables created by
2945 <application>pgbench</>, for use in foreign key performance testing.
2951 Allow <application>pgbench</> to aggregate performance statistics
2952 and produce output every <option>--aggregate-interval</>
2953 seconds (Tomas Vondra)
2959 Add <application>pgbench</> <option>--sampling-rate</> option
2960 to control the percentage of transactions logged (Tomas Vondra)
2966 Reduce and improve the status message output of
2967 <application>pgbench</>'s initialization mode (Robert Haas,
2974 Add <application>pgbench</> <option>-q</> mode to print one output
2975 line every five seconds (Tomas Vondra)
2981 Output <application>pgbench</> elapsed and estimated remaining
2982 time during initialization (Tomas Vondra)
2988 Allow <application>pgbench</> to use much larger scale factors,
2989 by changing relevant columns from <type>integer</> to <type>bigint</>
2990 when the requested scale factor exceeds 20000
3002 <title>Documentation</title>
3008 Allow <productname>EPUB</>-format documentation to be created
3015 Update <productname>FreeBSD</> kernel configuration documentation
3022 Improve <link linkend="tutorial-window"><literal>WINDOW</>
3023 function</link> documentation (Bruce Momjian, Florian Pflug)
3029 Add <link linkend="docguide-toolsets">instructions</link> for setting
3030 up the documentation tool chain on Mac <productname>OS X</>
3038 linkend="guc-commit-delay"><varname>commit_delay</></link>
3039 documentation (Peter Geoghegan)