1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-4">
5 <title>Release 9.3.4</title>
8 <title>Release Date</title>
9 <simpara>2014-03-20</simpara>
13 This release contains a variety of fixes from 9.3.3.
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.4</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, the error fixed in the first changelog entry below could have
27 resulted in corrupt data on standby servers. It may be prudent to
28 reinitialize standby servers from fresh base backups after installing
33 Also, if you are upgrading from a version earlier than 9.3.3,
34 see <xref linkend="release-9-3-3">.
40 <title>Changes</title>
45 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
46 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
47 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
52 Fix WAL replay of locking an already-updated tuple (Andres Freund,
53 Álvaro Herrera)
57 This error caused updated rows to not be found by index scans, resulting
58 in inconsistent query results depending on whether an index scan was
59 used. Subsequent processing could result in constraint violations,
60 since the previously updated row would not be found by later index
61 searches, thus possibly allowing conflicting rows to be inserted.
62 Since this error is in WAL replay, it would only manifest during crash
63 recovery or on standby servers. The improperly-replayed case most
64 commonly arises when a table row that is referenced by a foreign-key
65 constraint is updated concurrently with creation of a referencing row.
70 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
71 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
72 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
73 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
74 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
75 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
76 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
81 Restore GIN metapages unconditionally to avoid torn-page risk
86 Although this oversight could theoretically result in a corrupted
87 index, it is unlikely to have caused any problems in practice, since
88 the active part of a GIN metapage is smaller than a standard 512-byte
94 Author: Tom Lane <tgl@sss.pgh.pa.us>
95 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
96 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
97 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
98 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
99 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
104 Avoid race condition in checking transaction commit status during
105 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
109 This prevents a scenario wherein a sufficiently fast client might
110 respond to a notification before database updates made by the
111 notifier have become visible to the recipient.
116 Author: Tom Lane <tgl@sss.pgh.pa.us>
117 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
118 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
123 Allow materialized views to be referenced in <command>UPDATE</>
124 and <command>DELETE</> commands (Michael Paquier)
128 Previously such queries failed with a complaint about not being able
129 to lock rows in the materialized view.
134 Author: Tom Lane <tgl@sss.pgh.pa.us>
135 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
136 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
137 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
138 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
139 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
140 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
145 Allow regular-expression operators to be terminated early by query
146 cancel requests (Tom Lane)
150 This prevents scenarios wherein a pathological regular expression
151 could lock up a server process uninterruptably for a long time.
156 Author: Tom Lane <tgl@sss.pgh.pa.us>
157 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
158 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
159 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
160 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
161 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
162 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
167 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
168 single-element row arguments (Joshua Yanovski)
172 This code never worked correctly, and since the case is neither
173 specified by the SQL standard nor documented, it seemed better to
174 remove it than fix it.
179 Author: Tom Lane <tgl@sss.pgh.pa.us>
180 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
181 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
182 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
183 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
184 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
185 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
190 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
191 rule or view (Dean Rasheed)
195 This oversight resulted in <application>pg_dump</> unexpectedly
196 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
197 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
198 commands in rules. While usually harmless, that could interfere with
199 concurrent transactions that tried to acquire, for example,
200 <literal>ShareLock</> on those tables.
205 Author: Tom Lane <tgl@sss.pgh.pa.us>
206 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
207 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
208 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
209 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
210 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
215 Improve performance of index endpoint probes during planning (Tom Lane)
219 This change fixes a significant performance problem that occurred
220 when there were many not-yet-committed rows at the end of the index,
221 which is a common situation for indexes on sequentially-assigned
222 values such as timestamps or sequence-generated identifiers.
227 Author: Tom Lane <tgl@sss.pgh.pa.us>
228 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
229 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
234 Use non-default selectivity estimates for
235 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
236 <literal><replaceable>value</> <replaceable>operator</> ANY
237 (<replaceable>array</>)</literal>
238 expressions when the righthand side is a stable expression (Tom Lane)
243 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
244 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
245 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
250 Remove the correct per-database statistics file during <command>DROP
251 DATABASE</> (Tomas Vondra)
255 This fix prevents a permanent leak of statistics file space.
256 Users who have done many <command>DROP DATABASE</> commands since
257 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
258 statistics directory and delete statistics files that do not
259 correspond to any existing database. Please note
260 that <filename>db_0.stat</> should not be removed.
265 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
266 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
267 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
272 Fix <application>walsender</> ping logic to avoid inappropriate
273 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
277 <application>walsender</> failed to send ping messages to the client
278 if it was constantly busy sending WAL data; but it expected to see
279 ping responses despite that, and would therefore disconnect
280 once <xref linkend="guc-wal-sender-timeout"> elapsed.
285 Author: Fujii Masao <fujii@postgresql.org>
286 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
287 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
288 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
289 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
294 Fix <application>walsender</>'s failure to shut down cleanly when client
295 is <application>pg_receivexlog</> (Fujii Masao)
300 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
301 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
302 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
303 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
308 Check WAL level and hot standby parameters correctly when doing crash
309 recovery that will be followed by archive recovery (Heikki Linnakangas)
314 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
315 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
316 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
317 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
318 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
319 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
324 Fix test to see if hot standby connections can be allowed immediately
325 after a crash (Heikki Linnakangas)
330 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
331 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
336 Add read-only <xref linkend="guc-data-checksums"> parameter to
337 display whether page checksums are enabled (Heikki Linnakangas)
341 Without this parameter, determining the state of checksum
342 processing was difficult.
347 Author: Tom Lane <tgl@sss.pgh.pa.us>
348 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
349 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
350 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
351 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
352 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
353 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
358 Prevent interrupts while reporting non-<literal>ERROR</> messages
363 This guards against rare server-process freezeups due to recursive
364 entry to <function>syslog()</>, and perhaps other related problems.
369 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
370 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
371 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
372 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
373 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
378 Fix memory leak in PL/Perl when returning a composite result, including
379 multiple-OUT-parameter cases (Alex Hunsaker)
384 Author: Tom Lane <tgl@sss.pgh.pa.us>
385 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
386 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
387 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
392 Fix tracking of <application>psql</> script line numbers
393 during <literal>\copy</> from out-of-line data
394 (Kumar Rajeev Rastogi, Amit Khandekar)
398 <literal>\copy ... from</> incremented the script file line number
399 for each data line, even if the data was not coming from the script
400 file. This mistake resulted in wrong line numbers being reported for
401 any errors occurring later in the same script file.
406 Author: Tom Lane <tgl@sss.pgh.pa.us>
407 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
408 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
413 Fix <application>contrib/postgres_fdw</> to handle multiple join
414 conditions properly (Tom Lane)
418 This oversight could result in sending <literal>WHERE</> clauses to
419 the remote server for execution even though the clauses are not known
420 to have the same semantics on the remote server (for example, clauses
421 that use non-built-in operators). The query might succeed anyway,
422 but it could also fail with errors from the remote server, or worse
423 give silently wrong answers.
428 Author: Magnus Hagander <magnus@hagander.net>
429 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
430 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
431 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
432 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
433 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
438 Prevent intermittent <quote>could not reserve shared memory region</>
439 failures on recent Windows versions (MauMau)
444 Author: Tom Lane <tgl@sss.pgh.pa.us>
445 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
446 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
447 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
448 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
449 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
450 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
455 Update time zone data files to <application>tzdata</> release 2014a
456 for DST law changes in Fiji and Turkey, plus historical changes in
469 <sect1 id="release-9-3-3">
470 <title>Release 9.3.3</title>
473 <title>Release Date</title>
474 <simpara>2014-02-20</simpara>
478 This release contains a variety of fixes from 9.3.2.
479 For information about new features in the 9.3 major release, see
480 <xref linkend="release-9-3">.
484 <title>Migration to Version 9.3.3</title>
487 A dump/restore is not required for those running 9.3.X.
491 However, several of the issues corrected in this release could have
492 resulted in corruption of foreign-key constraints; that is, there
493 might now be referencing rows for which there is no matching row in
494 the referenced table. It may be worthwhile to recheck such
495 constraints after installing this update. The simplest way to do that
496 is to drop and recreate each suspect constraint; however, that will
497 require taking an exclusive lock on both tables, so it is unlikely to
498 be acceptable in production databases. Alternatively, you can do a
499 manual join query between the two tables to look for unmatched rows.
503 Note also the requirement for replication standby servers to be
504 upgraded before their master server is upgraded.
508 Also, if you are upgrading from a version earlier than 9.3.2,
509 see <xref linkend="release-9-3-2">.
515 <title>Changes</title>
520 Author: Noah Misch <noah@leadboat.com>
521 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
522 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
523 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
524 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
525 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
526 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
531 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
536 Granting a role without <literal>ADMIN OPTION</> is supposed to
537 prevent the grantee from adding or removing members from the granted
538 role, but this restriction was easily bypassed by doing <literal>SET
539 ROLE</> first. The security impact is mostly that a role member can
540 revoke the access of others, contrary to the wishes of his grantor.
541 Unapproved role member additions are a lesser concern, since an
542 uncooperative role member could provide most of his rights to others
543 anyway by creating views or <literal>SECURITY DEFINER</> functions.
549 Author: Noah Misch <noah@leadboat.com>
550 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
551 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
552 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
553 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
554 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
555 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
560 Prevent privilege escalation via manual calls to PL validator
561 functions (Andres Freund)
565 The primary role of PL validator functions is to be called implicitly
566 during <command>CREATE FUNCTION</>, but they are also normal SQL
567 functions that a user can call explicitly. Calling a validator on
568 a function actually written in some other language was not checked
569 for and could be exploited for privilege-escalation purposes.
570 The fix involves adding a call to a privilege-checking function in
571 each validator function. Non-core procedural languages will also
572 need to make this change to their own validator functions, if any.
578 Author: Robert Haas <rhaas@postgresql.org>
579 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
580 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
581 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
582 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
583 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
584 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
589 Avoid multiple name lookups during table and index DDL
590 (Robert Haas, Andres Freund)
594 If the name lookups come to different conclusions due to concurrent
595 activity, we might perform some parts of the DDL on a different table
596 than other parts. At least in the case of <command>CREATE INDEX</>,
597 this can be used to cause the permissions checks to be performed
598 against a different table than the index creation, allowing for a
599 privilege escalation attack.
605 Author: Noah Misch <noah@leadboat.com>
606 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
607 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
608 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
609 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
610 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
611 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
616 Prevent buffer overrun with long datetime strings (Noah Misch)
620 The <literal>MAXDATELEN</> constant was too small for the longest
621 possible value of type <type>interval</>, allowing a buffer overrun
622 in <function>interval_out()</>. Although the datetime input
623 functions were more careful about avoiding buffer overrun, the limit
624 was short enough to cause them to reject some valid inputs, such as
625 input containing a very long timezone name. The <application>ecpg</>
626 library contained these vulnerabilities along with some of its own.
632 Author: Noah Misch <noah@leadboat.com>
633 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
634 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
635 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
636 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
637 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
638 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
643 Prevent buffer overrun due to integer overflow in size calculations
644 (Noah Misch, Heikki Linnakangas)
648 Several functions, mostly type input functions, calculated an
649 allocation size without checking for overflow. If overflow did
650 occur, a too-small buffer would be allocated and then written past.
656 Author: Tom Lane <tgl@sss.pgh.pa.us>
657 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
658 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
659 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
660 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
661 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
662 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
667 Prevent overruns of fixed-size buffers
668 (Peter Eisentraut, Jozef Mlich)
672 Use <function>strlcpy()</> and related functions to provide a clear
673 guarantee that fixed-size buffers are not overrun. Unlike the
674 preceding items, it is unclear whether these cases really represent
675 live issues, since in most cases there appear to be previous
676 constraints on the size of the input string. Nonetheless it seems
677 prudent to silence all Coverity warnings of this type.
683 Author: Tom Lane <tgl@sss.pgh.pa.us>
684 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
685 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
686 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
687 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
688 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
689 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
694 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
699 There are relatively few scenarios in which <function>crypt()</>
700 could return NULL, but <filename>contrib/chkpass</> would crash
701 if it did. One practical case in which this could be an issue is
702 if <application>libc</> is configured to refuse to execute unapproved
703 hashing algorithms (e.g., <quote>FIPS mode</>).
709 Author: Tom Lane <tgl@sss.pgh.pa.us>
710 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
711 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
712 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
713 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
714 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
715 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
720 Document risks of <literal>make check</> in the regression testing
721 instructions (Noah Misch, Tom Lane)
725 Since the temporary server started by <literal>make check</>
726 uses <quote>trust</> authentication, another user on the same machine
727 could connect to it as database superuser, and then potentially
728 exploit the privileges of the operating-system user who started the
729 tests. A future release will probably incorporate changes in the
730 testing procedure to prevent this risk, but some public discussion is
731 needed first. So for the moment, just warn people against using
732 <literal>make check</> when there are untrusted users on the
739 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
740 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
741 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
746 Rework tuple freezing protocol
747 (Álvaro Herrera, Andres Freund)
751 The logic for tuple freezing was unable to handle some cases involving
753 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
754 IDs</link>, with the practical effect that shared row-level locks
755 might be forgotten once old enough.
759 Fixing this required changing the WAL record format for tuple
760 freezing. While this is no issue for standalone servers, when using
761 replication it means that <emphasis>standby servers must be upgraded
762 to 9.3.3 or later before their masters are</>. An older standby will
763 be unable to interpret freeze records generated by a newer master, and
764 will fail with a PANIC message. (In such a case, upgrading the
765 standby should be sufficient to let it resume execution.)
770 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
771 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
772 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
777 Create separate GUC parameters to control multixact freezing
778 (Álvaro Herrera)
782 9.3 requires multixact tuple labels to be frozen before
783 they grow too old, in the same fashion as plain transaction ID labels
784 have been frozen for some time. Previously, the transaction ID
785 freezing parameters were used for multixact IDs too; but since
786 the consumption rates of transaction IDs and multixact IDs can be
787 quite different, this did not work very well. Introduce new settings
788 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
789 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
790 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
791 to control when to freeze multixacts.
796 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
797 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
798 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
803 Account for remote row locks propagated by local updates
804 (Álvaro Herrera)
808 If a row was locked by transaction A, and transaction B updated it,
809 the new version of the row created by B would be locked by A, yet
810 visible only to B. If transaction B then again updated the row, A's
811 lock wouldn't get checked, thus possibly allowing B to complete when
812 it shouldn't. This case is new in 9.3 since prior versions did not
813 have any types of row locking that would permit another transaction
814 to update the row at all.
818 This oversight could allow referential integrity checks to give false
819 positives (for instance, allow deletes that should have been rejected).
820 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
821 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
822 locking failures of this kind.
827 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
828 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
829 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
834 Prevent <quote>forgetting</> valid row locks when one of several
835 holders of a row lock aborts (Álvaro Herrera)
839 This was yet another mechanism by which a shared row lock could be
840 lost, thus possibly allowing updates that should have been prevented
841 by foreign-key constraints.
846 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
847 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
848 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
853 Fix incorrect logic during update chain locking
854 (Álvaro Herrera)
858 This mistake could result in spurious <quote>could not serialize access
859 due to concurrent update</> errors in <literal>REPEATABLE READ</>
860 and <literal>SERIALIZABLE</> transaction isolation modes.
865 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
866 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
867 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
872 Handle wraparound correctly during extension or truncation
873 of <filename>pg_multixact/members</>
874 (Andres Freund, Álvaro Herrera)
879 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
880 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
881 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
886 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
887 (Álvaro Herrera)
891 As of 9.3, these names can be more than 4 digits, but the directory
892 cleanup code ignored such files.
897 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
898 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
899 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
904 Improve performance of multixact cache code
905 (Álvaro Herrera)
910 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
911 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
912 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
917 Optimize updating a row that's already locked by the same transaction
918 (Andres Freund, Álvaro Herrera)
922 This fixes a performance regression from pre-9.3 versions when doing
923 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
928 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
929 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
930 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
935 During archive recovery, prefer highest timeline number when WAL
936 segments with the same ID are present in both the archive
937 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
941 Previously, not-yet-archived segments could get ignored during
942 recovery. This reverts an undesirable behavioral change in 9.3.0
943 back to the way things worked pre-9.3.
948 Author: Tom Lane <tgl@sss.pgh.pa.us>
949 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
950 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
951 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
952 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
953 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
954 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
959 Fix possible mis-replay of WAL records when some segments of a
960 relation aren't full size (Greg Stark, Tom Lane)
964 The WAL update could be applied to the wrong page, potentially many
965 pages past where it should have been. Aside from corrupting data,
966 this error has been observed to result in significant <quote>bloat</>
967 of standby servers compared to their masters, due to updates being
968 applied far beyond where the end-of-file should have been. This
969 failure mode does not appear to be a significant risk during crash
970 recovery, only when initially synchronizing a standby created from a
971 base backup taken from a quickly-changing master.
976 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
977 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
978 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
979 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
980 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
981 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
986 Fix bug in determining when recovery has reached consistency
987 (Tomonari Katsumata, Heikki Linnakangas)
991 In some cases WAL replay would mistakenly conclude that the database
992 was already consistent at the start of replay, thus possibly allowing
993 hot-standby queries before the database was really consistent. Other
994 symptoms such as <quote>PANIC: WAL contains references to invalid
995 pages</> were also possible.
1000 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1001 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
1002 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
1007 Fix WAL logging of visibility map changes (Heikki Linnakangas)
1012 Author: Tom Lane <tgl@sss.pgh.pa.us>
1013 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
1014 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
1015 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
1016 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
1017 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
1022 Fix improper locking of btree index pages while replaying
1023 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
1024 Heikki Linnakangas, Tom Lane)
1028 This error could result in <quote>PANIC: WAL contains references to
1029 invalid pages</> failures.
1034 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1035 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
1036 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
1037 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
1038 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
1039 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
1040 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
1045 Ensure that insertions into non-leaf GIN index pages write a full-page
1046 WAL record when appropriate (Heikki Linnakangas)
1050 The previous coding risked index corruption in the event of a
1051 partial-page write during a system crash.
1056 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1057 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
1058 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
1059 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
1060 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
1065 When <literal>pause_at_recovery_target</>
1066 and <literal>recovery_target_inclusive</> are both set, ensure the
1067 target record is applied before pausing, not after (Heikki
1073 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1074 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
1075 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
1080 Ensure walreceiver sends hot-standby feedback messages on time even
1081 when there is a continuous stream of data (Andres Freund, Amit
1087 Author: Tom Lane <tgl@sss.pgh.pa.us>
1088 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
1089 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
1094 Prevent timeout interrupts from taking control away from mainline
1095 code unless <varname>ImmediateInterruptOK</> is set
1096 (Andres Freund, Tom Lane)
1100 This is a serious issue for any application making use of statement
1101 timeouts, as it could cause all manner of strange failures after a
1102 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
1103 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
1104 and other misbehaviors.
1109 Author: Robert Haas <rhaas@postgresql.org>
1110 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
1111 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
1112 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
1113 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
1114 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
1115 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
1120 Fix race conditions during server process exit (Robert Haas)
1124 Ensure that signal handlers don't attempt to use the
1125 process's <varname>MyProc</> pointer after it's no longer valid.
1130 Author: Tom Lane <tgl@sss.pgh.pa.us>
1131 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
1132 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
1133 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
1134 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
1139 Fix race conditions in walsender shutdown logic and walreceiver
1140 SIGHUP signal handler (Tom Lane)
1145 Author: Tom Lane <tgl@sss.pgh.pa.us>
1146 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
1147 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
1148 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
1149 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
1150 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
1151 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
1156 Fix unsafe references to <varname>errno</> within error reporting
1157 logic (Christian Kruse)
1161 This would typically lead to odd behaviors such as missing or
1162 inappropriate <literal>HINT</> fields.
1167 Author: Tom Lane <tgl@sss.pgh.pa.us>
1168 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
1169 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
1170 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
1171 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
1172 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
1173 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
1178 Fix possible crashes from using <function>ereport()</> too early
1179 during server startup (Tom Lane)
1183 The principal case we've seen in the field is a crash if the server
1184 is started in a directory it doesn't have permission to read.
1189 Author: Tom Lane <tgl@sss.pgh.pa.us>
1190 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
1191 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
1192 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
1193 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
1194 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
1195 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
1200 Clear retry flags properly in OpenSSL socket write
1201 function (Alexander Kukushkin)
1205 This omission could result in a server lockup after unexpected loss
1206 of an SSL-encrypted connection.
1211 Author: Tom Lane <tgl@sss.pgh.pa.us>
1212 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
1213 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
1214 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
1215 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
1216 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
1217 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
1222 Fix length checking for Unicode identifiers (<literal>U&"..."</>
1223 syntax) containing escapes (Tom Lane)
1227 A spurious truncation warning would be printed for such identifiers
1228 if the escaped form of the identifier was too long, but the
1229 identifier actually didn't need truncation after de-escaping.
1234 Author: Tom Lane <tgl@sss.pgh.pa.us>
1235 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
1236 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
1241 Fix parsing of Unicode literals and identifiers just before the end
1242 of a command string or function body (Tom Lane)
1247 Author: Stephen Frost <sfrost@snowman.net>
1248 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
1249 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
1250 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
1251 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
1252 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
1257 Allow keywords that are type names to be used in lists of roles
1262 A previous patch allowed such keywords to be used without quoting
1263 in places such as role identifiers; but it missed cases where a
1264 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
1269 Author: Tom Lane <tgl@sss.pgh.pa.us>
1270 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
1271 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
1272 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
1273 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
1278 Fix parser crash for <literal>EXISTS(SELECT * FROM
1279 zero_column_table)</literal> (Tom Lane)
1284 Author: Tom Lane <tgl@sss.pgh.pa.us>
1285 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
1286 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
1287 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
1288 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
1289 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
1290 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
1295 Fix possible crash due to invalid plan for nested sub-selects, such
1296 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
1302 Author: Tom Lane <tgl@sss.pgh.pa.us>
1303 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
1304 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
1309 Fix mishandling of <literal>WHERE</> conditions pulled up from
1310 a <literal>LATERAL</> subquery (Tom Lane)
1314 The typical symptom of this bug was a <quote>JOIN qualification
1315 cannot refer to other relations</> error, though subtle logic
1316 errors in created plans seem possible as well.
1321 Author: Tom Lane <tgl@sss.pgh.pa.us>
1322 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
1323 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
1328 Disallow <literal>LATERAL</> references to the target table of
1329 an <literal>UPDATE/DELETE</> (Tom Lane)
1333 While this might be allowed in some future release, it was
1334 unintentional in 9.3, and didn't work quite right anyway.
1339 Author: Tom Lane <tgl@sss.pgh.pa.us>
1340 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
1341 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
1342 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
1347 Fix <literal>UPDATE/DELETE</> of an inherited target table
1348 that has <literal>UNION ALL</> subqueries (Tom Lane)
1352 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
1353 inserted into the update plans for inheritance child tables after the
1354 first one, typically resulting in no update happening for those child
1360 Author: Tom Lane <tgl@sss.pgh.pa.us>
1361 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
1362 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
1367 Fix <command>ANALYZE</> to not fail on a column that's a domain over
1368 a range type (Tom Lane)
1373 Author: Tom Lane <tgl@sss.pgh.pa.us>
1374 Branch: master [628652620] 2014-01-11 13:42:42 -0500
1375 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
1376 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
1377 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
1378 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
1379 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
1384 Ensure that <command>ANALYZE</> creates statistics for a table column
1385 even when all the values in it are <quote>too wide</> (Tom Lane)
1389 <command>ANALYZE</> intentionally omits very wide values from its
1390 histogram and most-common-values calculations, but it neglected to do
1391 something sane in the case that all the sampled entries are too wide.
1396 Author: Stephen Frost <sfrost@snowman.net>
1397 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
1398 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
1399 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
1400 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
1401 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
1402 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
1407 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
1408 default tablespace to be used without a permissions check
1413 <literal>CREATE TABLE</> has always allowed such usage,
1414 but <literal>ALTER TABLE</> didn't get the memo.
1419 Author: Tom Lane <tgl@sss.pgh.pa.us>
1420 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
1421 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
1426 Fix support for extensions containing event triggers (Tom Lane)
1431 Author: Tom Lane <tgl@sss.pgh.pa.us>
1432 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
1433 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
1434 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
1435 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
1436 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
1437 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
1442 Fix <quote>cannot accept a set</> error when some arms of
1443 a <literal>CASE</> return a set and others don't (Tom Lane)
1448 Author: Andrew Dunstan <andrew@dunslane.net>
1449 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
1450 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
1455 Fix memory leakage in JSON functions (Craig Ringer)
1460 Author: Andrew Dunstan <andrew@dunslane.net>
1461 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
1462 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
1463 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
1468 Properly distinguish numbers from non-numbers when generating JSON
1469 output (Andrew Dunstan)
1474 Author: Kevin Grittner <kgrittn@postgresql.org>
1475 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
1476 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
1477 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
1478 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
1479 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
1480 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
1485 Fix checks for all-zero client addresses in pgstat functions (Kevin
1491 Author: Tom Lane <tgl@sss.pgh.pa.us>
1492 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
1493 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
1494 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
1495 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
1496 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
1497 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
1502 Fix possible misclassification of multibyte characters by the text
1503 search parser (Tom Lane)
1507 Non-ASCII characters could be misclassified when using C locale with
1508 a multibyte encoding. On Cygwin, non-C locales could fail as well.
1513 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1514 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
1515 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
1516 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
1517 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
1518 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
1519 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
1524 Fix possible misbehavior in <function>plainto_tsquery()</>
1525 (Heikki Linnakangas)
1529 Use <function>memmove()</> not <function>memcpy()</> for copying
1530 overlapping memory regions. There have been no field reports of
1531 this actually causing trouble, but it's certainly risky.
1536 Author: Magnus Hagander <magnus@hagander.net>
1537 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
1538 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
1539 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
1540 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
1545 Fix placement of permissions checks in <function>pg_start_backup()</>
1546 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
1550 The previous coding might attempt to do catalog access when it
1556 Author: Tatsuo Ishii <ishii@postgresql.org>
1557 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
1558 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
1559 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
1560 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
1561 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
1562 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
1567 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
1568 purposes (Tatsuo Ishii)
1573 Author: Tom Lane <tgl@sss.pgh.pa.us>
1574 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
1575 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
1576 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
1581 Fix <literal>*</>-qualification of named parameters in SQL-language
1582 functions (Tom Lane)
1586 Given a composite-type parameter
1587 named <literal>foo</>, <literal>$1.*</> worked fine,
1588 but <literal>foo.*</> not so much.
1593 Author: Fujii Masao <fujii@postgresql.org>
1594 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
1595 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
1596 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
1597 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
1598 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
1599 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
1604 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
1608 It should return <literal>localhost</> if no host has been specified.
1613 Author: Tom Lane <tgl@sss.pgh.pa.us>
1614 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
1615 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
1616 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
1617 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
1618 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
1619 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
1624 Improve error handling in <application>libpq</> and <application>psql</>
1625 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
1629 In particular this fixes an infinite loop that could occur in 9.2 and
1630 up if the server connection was lost during <literal>COPY FROM
1631 STDIN</>. Variants of that scenario might be possible in older
1632 versions, or with other client applications.
1637 Author: Tom Lane <tgl@sss.pgh.pa.us>
1638 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
1639 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
1640 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
1645 Fix incorrect translation handling in
1646 some <application>psql</> <literal>\d</> commands
1647 (Peter Eisentraut, Tom Lane)
1655 Author: Magnus Hagander <magnus@hagander.net>
1656 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
1657 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
1658 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
1663 Ensure <application>pg_basebackup</>'s background process is killed
1664 when exiting its foreground process (Magnus Hagander)
1669 Author: Magnus Hagander <magnus@hagander.net>
1670 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
1671 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
1672 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
1673 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
1678 Fix possible incorrect printing of filenames
1679 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
1684 Author: Magnus Hagander <magnus@hagander.net>
1685 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
1686 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
1687 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
1688 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
1693 Avoid including tablespaces inside PGDATA twice in base backups
1694 (Dimitri Fontaine, Magnus Hagander)
1699 Author: Michael Meskes <meskes@postgresql.org>
1700 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
1701 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
1702 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
1703 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
1704 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
1705 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
1710 Fix misaligned descriptors in <application>ecpg</> (MauMau)
1715 Author: Michael Meskes <meskes@postgresql.org>
1716 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
1717 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
1718 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
1719 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
1720 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
1721 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
1726 In <application>ecpg</>, handle lack of a hostname in the connection
1727 parameters properly (Michael Meskes)
1732 Author: Joe Conway <mail@joeconway.com>
1733 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
1734 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
1735 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
1736 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
1737 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
1738 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
1743 Fix performance regression in <filename>contrib/dblink</> connection
1744 startup (Joe Conway)
1748 Avoid an unnecessary round trip when client and server encodings match.
1753 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1754 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
1755 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
1756 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
1757 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
1758 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
1759 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
1764 In <filename>contrib/isn</>, fix incorrect calculation of the check
1765 digit for ISMN values (Fabien Coelho)
1770 Author: Tatsuo Ishii <ishii@postgresql.org>
1771 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
1772 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
1777 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
1778 when the scale factor is large (Tatsuo Ishii)
1783 Author: Tom Lane <tgl@sss.pgh.pa.us>
1784 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
1785 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
1786 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
1791 Fix <filename>contrib/pg_stat_statement</>'s handling
1792 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
1798 Author: Tom Lane <tgl@sss.pgh.pa.us>
1799 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
1800 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
1805 Improve lost-connection error handling
1806 in <filename>contrib/postgres_fdw</> (Tom Lane)
1811 Author: Peter Eisentraut <peter_e@gmx.net>
1812 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
1813 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
1814 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
1815 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
1816 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
1817 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
1822 Ensure client-code-only installation procedure works as documented
1828 Author: Andrew Dunstan <andrew@dunslane.net>
1829 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
1830 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
1831 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
1832 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
1833 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
1834 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
1839 In Mingw and Cygwin builds, install the <application>libpq</> DLL
1840 in the <filename>bin</> directory (Andrew Dunstan)
1844 This duplicates what the MSVC build has long done. It should fix
1845 problems with programs like <application>psql</> failing to start
1846 because they can't find the DLL.
1851 Author: Andrew Dunstan <andrew@dunslane.net>
1852 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
1853 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
1854 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
1855 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
1856 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
1861 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
1867 Author: Andrew Dunstan <andrew@dunslane.net>
1868 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
1869 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
1874 Enable building with Visual Studio 2013 (Brar Piening)
1879 Author: Tom Lane <tgl@sss.pgh.pa.us>
1880 Branch: master [289541520] 2014-02-10 20:48:04 -0500
1881 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
1882 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
1883 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
1884 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
1885 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
1890 Don't generate plain-text <filename>HISTORY</>
1891 and <filename>src/test/regress/README</> files anymore (Tom Lane)
1895 These text files duplicated the main HTML and PDF documentation
1896 formats. The trouble involved in maintaining them greatly outweighs
1897 the likely audience for plain-text format. Distribution tarballs
1898 will still contain files by these names, but they'll just be stubs
1899 directing the reader to consult the main documentation.
1900 The plain-text <filename>INSTALL</> file will still be maintained, as
1901 there is arguably a use-case for that.
1906 Author: Tom Lane <tgl@sss.pgh.pa.us>
1907 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
1908 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
1909 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
1910 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
1911 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
1912 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
1917 Update time zone data files to <application>tzdata</> release 2013i
1918 for DST law changes in Jordan and historical changes in Cuba.
1922 In addition, the zones <literal>Asia/Riyadh87</>,
1923 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
1924 removed, as they are no longer maintained by IANA, and never
1925 represented actual civil timekeeping practice.
1934 <sect1 id="release-9-3-2">
1935 <title>Release 9.3.2</title>
1938 <title>Release Date</title>
1939 <simpara>2013-12-05</simpara>
1943 This release contains a variety of fixes from 9.3.1.
1944 For information about new features in the 9.3 major release, see
1945 <xref linkend="release-9-3">.
1949 <title>Migration to Version 9.3.2</title>
1952 A dump/restore is not required for those running 9.3.X.
1956 However, this release corrects a number of potential data corruption
1957 issues. See the first three changelog entries below to find out whether
1958 your installation has been affected and what steps you can take if so.
1962 Also, if you are upgrading from a version earlier than 9.3.1,
1963 see <xref linkend="release-9-3-1">.
1969 <title>Changes</title>
1975 Fix <command>VACUUM</>'s tests to see whether it can
1976 update <structfield>relfrozenxid</> (Andres Freund)
1980 In some cases <command>VACUUM</> (either manual or autovacuum) could
1981 incorrectly advance a table's <structfield>relfrozenxid</> value,
1982 allowing tuples to escape freezing, causing those rows to become
1983 invisible once 2^31 transactions have elapsed. The probability of
1984 data loss is fairly low since multiple incorrect advancements would
1985 need to happen before actual loss occurs, but it's not zero. In 9.2.0
1986 and later, the probability of loss is higher, and it's also possible
1987 to get <quote>could not access status of transaction</> errors as a
1988 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
1989 or earlier are not affected, but all later versions contain the bug.
1993 The issue can be ameliorated by, after upgrading, vacuuming all tables
1994 in all databases while having <link
1995 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
1996 set to zero. This will fix any latent corruption but will not be able
1997 to fix all pre-existing data errors. However, an installation can be
1998 presumed safe after performing this vacuuming if it has executed fewer
1999 than 2^31 update transactions in its lifetime (check this with
2000 <literal>SELECT txid_current() < 2^31</>).
2006 Fix multiple bugs in MultiXactId freezing (Andres Freund,
2007 Álvaro Herrera)
2011 These bugs could lead to <quote>could not access status of
2012 transaction</> errors, or to duplicate or vanishing rows.
2013 Users upgrading from releases prior to 9.3.0 are not affected.
2017 The issue can be ameliorated by, after upgrading, vacuuming all tables
2018 in all databases while having <link
2019 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
2020 set to zero. This will fix latent corruption but will not be able to
2021 fix all pre-existing data errors.
2025 As a separate issue, these bugs can also cause standby servers to get
2026 out of sync with the primary, thus exhibiting data errors that are not
2027 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
2028 standby servers be re-cloned from the primary (e.g., with a new base
2029 backup) after upgrading.
2035 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
2036 during hot standby startup (Andres Freund, Heikki Linnakangas)
2040 This bug can cause data loss on standby servers at the moment they
2041 start to accept hot-standby queries, by marking committed transactions
2042 as uncommitted. The likelihood of such corruption is small unless, at
2043 the time of standby startup, the primary server has executed many
2044 updating transactions since its last checkpoint. Symptoms include
2045 missing rows, rows that should have been deleted being still visible,
2046 and obsolete versions of updated rows being still visible alongside
2047 their newer versions.
2051 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
2052 Standby servers that have only been running earlier releases are not
2053 at risk. It's recommended that standby servers that have ever run any
2054 of the buggy releases be re-cloned from the primary (e.g., with a new
2055 base backup) after upgrading.
2061 Fix multiple bugs in update chain traversal (Andres Freund,
2062 Álvaro Herrera)
2066 These bugs could result in incorrect behavior, such as locking or even
2067 updating the wrong row, in the presence of concurrent updates.
2068 Spurious <quote>unable to fetch updated version of tuple</> errors
2075 Fix dangling-pointer problem in fast-path locking (Tom Lane)
2079 This could lead to corruption of the lock data structures in shared
2080 memory, causing <quote>lock already held</> and other odd errors.
2086 Fix assorted race conditions in timeout management (Tom Lane)
2090 These errors could result in a server process becoming unresponsive
2091 because it had blocked SIGALRM and/or SIGINT.
2097 Truncate <filename>pg_multixact</> contents during WAL replay
2102 This avoids ever-increasing disk space consumption in standby servers.
2108 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
2109 when it's only verified that no tuples need freezing (Sergey
2110 Burladyan, Jeff Janes)
2114 This bug could result in failing to
2115 advance <structfield>relfrozenxid</>, so that the table would still be
2116 thought to need another anti-wraparound vacuum. In the worst case the
2117 database might even shut down to prevent wraparound.
2123 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
2127 This bug could result in large amounts of useless autovacuum activity.
2133 Fix race condition in GIN index posting tree page deletion (Heikki
2138 This could lead to transient wrong answers or query failures.
2144 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
2145 index creation (Teodor Sigaev)
2151 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
2157 Re-allow duplicate table aliases if they're within aliased JOINs
2162 Historically <productname>PostgreSQL</> has accepted queries like
2164 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
2166 although a strict reading of the SQL standard would forbid the
2167 duplicate usage of table alias <literal>x</>. A misguided change in
2168 9.3.0 caused it to reject some such cases that were formerly accepted.
2169 Restore the previous behavior.
2175 Avoid flattening a subquery whose <literal>SELECT</> list contains a
2176 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
2180 This avoids unexpected results due to extra evaluations of the
2187 Fix planner's processing of non-simple-variable subquery outputs
2188 nested within outer joins (Tom Lane)
2192 This error could lead to incorrect plans for queries involving
2193 multiple levels of subqueries within <literal>JOIN</> syntax.
2199 Fix incorrect planning in cases where the same non-strict expression
2200 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
2201 equality clauses (Tom Lane)
2207 Fix planner crash with whole-row reference to a subquery (Tom Lane)
2213 Fix incorrect generation of optimized MIN()/MAX() plans for
2214 inheritance trees (Tom Lane)
2218 The planner could fail in cases where the MIN()/MAX() argument was an
2219 expression rather than a simple variable.
2225 Fix premature deletion of temporary files (Andres Freund)
2231 Prevent intra-transaction memory leak when printing range values
2236 This fix actually cures transient memory leaks in any datatype output
2237 function, but range types are the only ones known to have had a
2238 significant problem.
2244 Fix memory leaks when reloading configuration files (Heikki
2245 Linnakangas, Hari Babu)
2251 Prevent incorrect display of dropped columns in NOT NULL and CHECK
2252 constraint violation messages (Michael Paquier and Tom Lane)
2258 Allow default arguments and named-argument notation for window
2259 functions (Tom Lane)
2263 Previously, these cases were likely to crash.
2269 Suppress trailing whitespace on each line when pretty-printing rules
2270 and views (Tom Lane)
2274 9.3.0 generated such whitespace in many more cases than previous
2275 versions did. To reduce unexpected behavioral changes, suppress
2276 unnecessary whitespace in all cases.
2282 Fix possible read past end of memory in rule printing (Peter Eisentraut)
2288 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
2293 Expressions of this kind are now implicitly promoted to
2294 regular <type>int2</> or <type>oid</> arrays.
2300 Return a valid JSON value when converting an empty <type>hstore</> value
2308 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
2313 In some cases, the system would use the simple GMT offset value when
2314 it should have used the regular timezone setting that had prevailed
2315 before the simple offset was selected. This change also causes
2316 the <function>timeofday</> function to honor the simple GMT offset
2323 Prevent possible misbehavior when logging translations of Windows
2324 error codes (Tom Lane)
2330 Properly quote generated command lines in <application>pg_ctl</>
2331 (Naoya Anzai and Tom Lane)
2335 This fix applies only to Windows.
2341 Fix <application>pg_dumpall</> to work when a source database
2343 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
2344 via <command>ALTER DATABASE SET</> (Kevin Grittner)
2348 Previously, the generated script would fail during restore.
2354 Fix <application>pg_isready</> to handle its <option>-d</> option
2355 properly (Fabrízio de Royes Mello and Fujii Masao)
2361 Fix parsing of WAL file names in <application>pg_receivexlog</>
2362 (Heikki Linnakangas)
2366 This error made <application>pg_receivexlog</> unable to restart
2367 streaming after stopping, once at least 4 GB of WAL had been written.
2373 Report out-of-disk-space failures properly
2374 in <application>pg_upgrade</> (Peter Eisentraut)
2380 Make <application>ecpg</> search for quoted cursor names
2381 case-sensitively (Zoltán Böszörményi)
2387 Fix <application>ecpg</>'s processing of lists of variables
2388 declared <type>varchar</> (Zoltán Böszörményi)
2394 Make <filename>contrib/lo</> defend against incorrect trigger definitions
2401 Update time zone data files to <application>tzdata</> release 2013h
2402 for DST law changes in Argentina, Brazil, Jordan, Libya,
2403 Liechtenstein, Morocco, and Palestine. Also, new timezone
2404 abbreviations WIB, WIT, WITA for Indonesia.
2413 <sect1 id="release-9-3-1">
2414 <title>Release 9.3.1</title>
2417 <title>Release Date</title>
2418 <simpara>2013-10-10</simpara>
2422 This release contains a variety of fixes from 9.3.0.
2423 For information about new features in the 9.3 major release, see
2424 <xref linkend="release-9-3">.
2428 <title>Migration to Version 9.3.1</title>
2431 A dump/restore is not required for those running 9.3.X.
2435 However, if you use the <literal>hstore</> extension, see the
2436 first changelog entry.
2442 <title>Changes</title>
2448 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
2449 extension during an update (Andrew Dunstan)
2453 Users who upgraded a pre-9.3 database containing <literal>hstore</>
2456 ALTER EXTENSION hstore UPDATE;
2458 after installing 9.3.1, to add two new JSON functions and a cast.
2459 (If <literal>hstore</> is already up to date, this command does
2466 Fix memory leak when creating B-tree indexes on range columns
2467 (Heikki Linnakangas)
2473 Fix memory leak caused by <function>lo_open()</function> failure
2474 (Heikki Linnakangas)
2480 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
2486 Fix deadlock bug in libpq when using SSL (Stephen Frost)
2492 Fix timeline handling bugs in <application>pg_receivexlog</>
2493 (Heikki Linnakangas, Andrew Gierth)
2499 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
2500 variables unless function body checking is enabled (Tom Lane)
2506 Remove rare inaccurate warning during vacuum of index-less tables
2507 (Heikki Linnakangas)
2516 <sect1 id="release-9-3">
2517 <title>Release 9.3</title>
2520 <title>Release Date</title>
2521 <simpara>2013-09-09</simpara>
2525 <title>Overview</title>
2528 Major enhancements in <productname>PostgreSQL</> 9.3 include:
2531 <!-- This list duplicates items below, but without authors or details-->
2537 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
2544 Make simple views <link
2545 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
2551 Add many features for the <type>JSON</> data type,
2552 including <link linkend="functions-json">operators and functions</link>
2553 to extract elements from <type>JSON</> values
2559 Implement <acronym>SQL</>-standard <link
2560 linkend="queries-lateral"><literal>LATERAL</></link> option for
2561 <literal>FROM</>-clause subqueries and function calls
2567 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
2568 wrappers</link> to support writes (inserts/updates/deletes) on foreign
2575 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
2576 data wrapper</link> to allow access to
2577 other <productname>Postgres</> servers
2583 Add support for <link linkend="event-triggers">event triggers</link>
2589 Add optional ability to <link
2590 linkend="app-initdb-data-checksums">checksum</link> data pages and
2597 Prevent non-key-field row updates from blocking foreign key checks
2603 Greatly reduce System V <link linkend="sysvipc">shared
2604 memory</link> requirements
2611 The above items are explained in more detail in the sections below.
2618 <title>Migration to Version 9.3</title>
2621 A dump/restore using <link
2622 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
2623 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
2624 required for those wishing to migrate data from any previous release.
2628 Version 9.3 contains a number of changes that may affect compatibility
2629 with previous releases. Observe the following incompatibilities:
2633 <title>Server Settings</title>
2639 Rename <varname>replication_timeout</> to <link
2640 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
2645 This setting controls the <link
2646 linkend="wal"><acronym>WAL</></link> sender timeout.
2652 Require superuser privileges to set <link
2653 linkend="guc-commit-delay"><varname>commit_delay</></link>
2654 because it can now potentially delay other sessions (Simon Riggs)
2660 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
2664 Users who have set <link
2665 linkend="guc-work-mem"><varname>work_mem</></link> based on the
2666 previous behavior may need to revisit that setting.
2675 <title>Other</title>
2681 Throw an error if a tuple to be updated or deleted has already been
2682 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
2686 Formerly, the originally-intended update was silently skipped,
2687 resulting in logical inconsistency since the trigger might have
2688 propagated data to other places based on the intended update.
2689 Now an error is thrown to prevent the inconsistent results from being
2690 committed. If this change affects your application, the best solution
2691 is usually to move the data-propagation actions to
2692 an <literal>AFTER</> trigger.
2696 This error will also be thrown if a query invokes a volatile function
2697 that modifies rows that are later modified by the query itself.
2698 Such cases likewise previously resulted in silently skipping updates.
2704 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
2705 SET NULL/SET DEFAULT</></link> foreign key actions to affect
2706 all columns of the constraint, not just those changed in the
2707 <command>UPDATE</> (Tom Lane)
2711 Previously, we would set only those referencing columns that
2712 correspond to referenced columns that were changed by
2713 the <command>UPDATE</>. This was what was required by SQL-92,
2714 but more recent editions of the SQL standard specify the new behavior.
2720 Force cached plans to be replanned if the <link
2721 linkend="guc-search-path"><varname>search_path</></link> changes
2726 Previously, cached plans already generated in the current session were
2727 not redone if the query was re-executed with a
2728 new <varname>search_path</> setting, resulting in surprising behavior.
2735 linkend="functions-formatting-table"><function>to_number()</></link>
2736 to properly handle a period used as a thousands separator (Tom Lane)
2740 Previously, a period was considered to be a decimal point even when
2741 the locale says it isn't and the <literal>D</> format code is used to
2742 specify use of the locale-specific decimal point. This resulted in
2743 wrong answers if <literal>FM</> format was also used.
2749 Fix <literal>STRICT</> non-set-returning functions that have
2750 set-returning functions in their arguments to properly return null
2755 A null value passed to the strict function should result in a null
2756 output, but instead, that output row was suppressed entirely.
2762 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
2763 stream, rather than skipping the last 16MB segment every 4GB
2764 (Heikki Linnakangas)
2768 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
2769 were not used because of this skipping. If you have <acronym>WAL</>
2770 backup or restore scripts that took this behavior into account, they
2771 will need to be adjusted.
2778 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
2779 store the default foreign key match type (non-<literal>FULL</>,
2780 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
2785 Previously this case was represented by <literal>u</>
2786 for <quote>unspecified</>.
2797 <title>Changes</title>
2800 Below you will find a detailed account of the changes between
2801 <productname>PostgreSQL</productname> 9.3 and the previous major
2806 <title>Server</title>
2809 <title>Locking</title>
2815 Prevent non-key-field row updates from blocking foreign key checks
2816 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
2817 Shulgin, Marti Raudsepp, Alexander Shulgin)
2821 This change improves concurrency and reduces the probability of
2822 deadlocks when updating tables involved in a foreign-key constraint.
2823 <command>UPDATE</>s that do not change any columns referenced in a
2824 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
2825 the row, while foreign key checks use the new <literal>KEY SHARE</>
2826 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
2827 So there is no blocking unless a foreign-key column is changed.
2833 Add configuration variable <link
2834 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
2835 allow limiting how long a session will wait to acquire any one lock
2836 (Zoltán Böszörményi)
2845 <title>Indexes</title>
2851 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
2852 support for range data types (Alexander Korotkov)
2858 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
2859 unlogged (Jeevan Chalke)
2865 Improve performance of <acronym>GiST</> index insertion by randomizing
2866 the choice of which page to descend to when there are multiple equally
2867 good alternatives (Heikki Linnakangas)
2873 Improve concurrency of hash index operations (Robert Haas)
2882 <title>Optimizer</title>
2888 Collect and use histograms of upper and lower bounds, as well as range
2889 lengths, for <link linkend="rangetypes">range types</link>
2890 (Alexander Korotkov)
2896 Improve optimizer's cost estimation for index access (Tom Lane)
2902 Improve optimizer's hash table size estimate for
2903 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
2909 Suppress no-op Result and Limit plan nodes
2910 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
2916 Reduce optimizer overhead by not keeping plans on the basis of cheap
2917 startup cost when the optimizer only cares about total cost overall
2927 <title>General Performance</title>
2933 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
2934 option to avoid the overhead of marking tuples as frozen later
2935 (Simon Riggs, Jeff Davis)
2941 Improve performance of <link
2942 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
2949 Improve synchronization of sessions waiting for <link
2950 linkend="guc-commit-delay"><varname>commit_delay</></link>
2955 This greatly improves the usefulness of <varname>commit_delay</>.
2961 Improve performance of the <link
2962 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
2963 COMMIT DELETE ROWS</></link> option by not truncating such temporary
2964 tables in transactions that haven't touched any temporary tables
2965 (Heikki Linnakangas)
2971 Make vacuum recheck visibility after it has removed expired tuples
2976 This increases the chance of a page being marked as all-visible.
2982 Add per-resource-owner lock caches (Jeff Janes)
2986 This speeds up lock bookkeeping at statement completion in
2987 multi-statement transactions that hold many locks; it is particularly
2988 useful for <application>pg_dump</>.
2994 Avoid scanning the entire relation cache at commit of a transaction
2995 that creates a new relation (Jeff Janes)
2999 This speeds up sessions that create many tables in successive
3000 small transactions, such as a <application>pg_restore</> run.
3006 Improve performance of transactions that drop many relations
3016 <title>Monitoring</title>
3022 Add optional ability to <link
3023 linkend="app-initdb-data-checksums">checksum</link> data pages and
3024 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
3028 The checksum option can be set during <link
3029 linkend="APP-INITDB">initdb</link>.
3035 Split the <link linkend="monitoring-stats">statistics collector's</link>
3036 data file into separate global and per-database files (Tomas Vondra)
3040 This reduces the I/O required for statistics tracking.
3046 Fix the statistics collector to operate properly in cases where the
3047 system clock goes backwards (Tom Lane)
3051 Previously, statistics collection would stop until the time again
3052 reached the latest time previously recorded.
3058 Emit an informative message to postmaster standard error when we
3059 are about to stop logging there
3064 This should help reduce user confusion about where to look for log
3065 output in common configurations that log to standard error only during
3075 <title>Authentication</title>
3081 When an authentication failure occurs, log the relevant
3082 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
3083 line, to ease debugging of unintended failures
3090 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
3091 reporting and documentation (Peter Eisentraut)
3097 Add support for specifying <acronym>LDAP</> authentication parameters
3098 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
3105 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
3106 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
3107 then remove insecure ciphers (Magnus Hagander)
3111 This should yield a more appropriate SSL cipher set.
3117 Parse and load <link
3118 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
3119 once, not during each connection (Amit Kapila)
3123 This is similar to how <filename>pg_hba.conf</> is processed.
3132 <title>Server Settings</title>
3138 Greatly reduce System V <link linkend="sysvipc">shared
3139 memory</link> requirements (Robert Haas)
3143 On Unix-like systems, <function>mmap()</> is now used for most
3144 of <productname>PostgreSQL</>'s shared memory. For most users, this
3145 will eliminate any need to adjust kernel parameters for shared memory.
3151 Allow the postmaster to listen on multiple Unix-domain sockets
3152 (Honza Horák)
3156 The configuration parameter
3157 <varname>unix_socket_directory</> is replaced by <link
3158 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
3159 which accepts a list of directories.
3165 Allow a directory of configuration files to be processed (Magnus
3166 Hagander, Greg Smith, Selena Deckelmann)
3170 Such a directory is specified with <link
3171 linkend="config-includes"><varname>include_dir</></link> in the server
3178 Increase the maximum <link
3179 linkend="APP-INITDB">initdb</link>-configured value for <link
3180 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
3181 to 128MB (Robert Haas)
3185 This is the maximum value that initdb will attempt to set in <link
3186 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
3187 the previous maximum was 32MB.
3193 Remove the <link linkend="guc-external-pid-file">external
3194 <acronym>PID</> file</link>, if any, on postmaster exit
3206 <title>Replication and Recovery</title>
3212 Allow a streaming replication standby to <link
3213 linkend="protocol-replication">follow a timeline switch</link>
3214 (Heikki Linnakangas)
3218 This allows streaming standby servers to receive WAL data from a slave
3219 newly promoted to master status. Previously, other standbys would
3220 require a resync to begin following the new master.
3226 Add <acronym>SQL</> functions <link
3227 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
3229 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
3234 These functions report the status of base backups.
3240 Improve performance of streaming log shipping with <link
3241 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
3242 disabled (Andres Freund)
3248 Allow much faster promotion of a streaming standby to primary (Simon
3249 Riggs, Kyotaro Horiguchi)
3255 Add the last checkpoint's redo location to <link
3256 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
3257 output (Fujii Masao)
3261 This information is useful for determining which <acronym>WAL</>
3262 files are needed for restore.
3268 Allow tools like <link
3269 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
3270 to run on computers with different architectures (Heikki
3275 WAL files can still only be replayed on servers with the same
3276 architecture as the primary; but they can now be transmitted to and
3277 stored on machines of any architecture, since the
3278 streaming replication protocol is now machine-independent.
3285 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
3286 <option>--write-recovery-conf</> output a
3287 minimal <filename>recovery.conf</> file (Zoltán
3288 Böszörményi, Magnus Hagander)
3292 This simplifies setting up a standby server.
3299 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
3301 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
3302 <option>--xlog-method</> to handle streaming timeline switches
3303 (Heikki Linnakangas)
3310 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
3311 parameter to control the <acronym>WAL</> receiver's timeout
3316 This allows more rapid detection of connection failure.
3322 Change the <link linkend="wal"><acronym>WAL</></link> record format to
3323 allow splitting the record header across pages (Heikki Linnakangas)
3327 The new format is slightly more compact, and is more efficient to
3337 <title>Queries</title>
3343 Implement <acronym>SQL</>-standard <link
3344 linkend="queries-lateral"><literal>LATERAL</></link> option for
3345 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
3349 This feature allows subqueries and functions in <literal>FROM</> to
3350 reference columns from other tables in the <literal>FROM</>
3351 clause. The <literal>LATERAL</> keyword is optional for functions.
3357 Add support for piping <link
3358 linkend="SQL-COPY"><command>COPY</></link> and <link
3359 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
3360 data to/from an external program (Etsuro Fujita)
3366 Allow a multirow <link
3367 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
3368 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
3377 <title>Object Manipulation</title>
3383 Add support for <link linkend="event-triggers">event triggers</link>
3384 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
3388 This allows server-side functions written in event-enabled
3389 languages to be called when DDL commands are run.
3395 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
3396 wrappers</link> to support writes (inserts/updates/deletes) on foreign
3397 tables (KaiGai Kohei)
3403 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
3404 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
3410 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
3411 OWNED</></link> also change ownership of shared objects
3412 (Álvaro Herrera)
3418 Make <link linkend="sql-createaggregate"><command>CREATE
3419 AGGREGATE</></link> complain if the given initial value string is not
3420 valid input for the transition datatype (Tom Lane)
3426 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
3427 TABLE</></link>'s messages about implicit index and sequence creation
3432 These messages now appear at <literal>DEBUG1</> verbosity, so that
3433 they will not be shown by default.
3439 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
3440 EXISTS</></link> to succeed when a non-existent schema is specified
3441 in the table name (Bruce Momjian)
3445 Previously, it threw an error if the schema did not exist.
3451 Provide clients with <link
3452 linkend="libpq-pqresulterrorfield">constraint violation details</link>
3453 as separate fields (Pavel Stehule)
3457 This allows clients to retrieve table, column, data type, or
3458 constraint name error details. Previously such information had to be
3459 extracted from error strings. Client library support is required to
3460 access these fields.
3467 <title><command>ALTER</></title>
3473 Support <literal>IF NOT EXISTS</> option in <link
3474 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
3479 This is useful for conditionally adding values to enumerated types.
3485 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
3486 SET</></link> to establish settings for all users (Peter Eisentraut)
3490 This allows settings to apply to all users in all databases. <link
3491 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
3492 already allowed addition of settings for all users in a single
3493 database. <filename>postgresql.conf</> has a similar effect.
3499 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
3500 ... RENAME</></link> (Ali Dar)
3509 <title><link linkend="rules-views"><command>VIEWs</></link></title>
3515 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
3516 views</link> (Kevin Grittner)
3520 Unlike ordinary views, where the base tables are read on every access,
3521 materialized views create physical tables at creation or refresh time.
3522 Access to the materialized view then reads from its physical
3523 table. There is not yet any facility for incrementally refreshing
3524 materialized views or auto-accessing them via base table access.
3530 Make simple views <link
3531 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
3536 Simple views that reference some or all columns from a
3537 single base table are now updatable by default. More
3538 complex views can be made updatable using <link
3539 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
3540 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
3546 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
3547 VIEW</></link> syntax (Peter Eisentraut)
3551 Internally this is translated into <command>CREATE VIEW ... WITH
3558 Improve view/rule printing code to handle cases where referenced
3559 tables are renamed, or columns are renamed, added, or dropped
3564 Table and column renamings can produce cases where, if we merely
3565 substitute the new name into the original text of a rule or view, the
3566 result is ambiguous. This change fixes the rule-dumping code to insert
3567 manufactured table and column aliases when needed to preserve the
3579 <title>Data Types</title>
3585 Increase the maximum size of <link linkend="largeObjects">large
3586 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
3590 This change includes adding 64-bit-capable large object access
3591 functions, both in the server and in libpq.
3597 Allow text <link linkend="datatype-timezones">timezone
3598 designations</link>, e.g. <quote>America/Chicago</>, in the
3599 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
3600 input (Bruce Momjian)
3607 <title><link linkend="datatype-json"><type>JSON</></link></title>
3613 Add <link linkend="functions-json">operators and functions</link>
3614 to extract elements from <type>JSON</> values (Andrew Dunstan)
3620 Allow <type>JSON</> values to be <link
3621 linkend="functions-json">converted into records</link>
3628 Add <link linkend="functions-json">functions</link> to convert
3629 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
3642 <title>Functions</title>
3649 linkend="array-functions-table"><function>array_remove()</></link>
3651 linkend="array-functions-table"><function>array_replace()</></link>
3652 functions (Marco Nenciarini, Gabriele Bartolini)
3659 linkend="functions-string-other"><function>concat()</></link>
3661 linkend="functions-string-format"><function>format()</></link>
3662 to properly expand <literal>VARIADIC</>-labeled arguments
3670 linkend="functions-string-format"><function>format()</></link>
3671 to provide field width and left/right alignment options (Pavel Stehule)
3678 linkend="functions-formatting-table"><function>to_char()</></link>,
3680 linkend="functions-formatting-table"><function>to_date()</></link>,
3682 linkend="functions-formatting-table"><function>to_timestamp()</></link>
3683 handle negative (BC) century values properly
3688 Previously the behavior was either wrong or inconsistent
3689 with positive/<acronym>AD</> handling, e.g. with the format mask
3690 <quote>IYYY-IW-DY</>.
3697 linkend="functions-formatting-table"><function>to_date()</></link>
3699 linkend="functions-formatting-table"><function>to_timestamp()</></link>
3700 return proper results when mixing <acronym>ISO</> and Gregorian
3701 week/day designations (Bruce Momjian)
3708 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
3709 to start a new line by default after each <literal>SELECT</> target
3710 list entry and <literal>FROM</> entry (Marko Tiikkaja)
3714 This reduces line length in view printing, for instance in <link
3715 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
3721 Fix <function>map_sql_value_to_xml_value()</> to print values of
3722 domain types the same way their base type would be printed
3727 There are special formatting rules for certain built-in types such as
3728 <type>boolean</>; these rules now also apply to domains over these
3738 <title>Server-Side Languages</title>
3741 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
3747 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
3748 expression (Asif Rehman)
3752 Previously, in a function returning a composite type,
3753 <literal>RETURN</> could only reference a variable of that type.
3759 Allow PL/pgSQL to access <link
3760 linkend="plpgsql-exception-diagnostics">constraint violation
3761 details</link> as separate fields (Pavel Stehule)
3767 Allow PL/pgSQL to access the number of rows processed by
3768 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
3772 A <command>COPY</> executed in a PL/pgSQL function now updates the
3773 value retrieved by <link
3774 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
3775 x = ROW_COUNT</></link>.
3781 Allow unreserved keywords to be used as identifiers everywhere in
3786 In certain places in the PL/pgSQL grammar, keywords had to be quoted
3787 to be used as identifiers, even if they were nominally unreserved.
3796 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
3802 Add PL/Python result object string handler (Peter Eisentraut)
3806 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
3812 Make PL/Python convert OID values to a proper Python numeric type
3819 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
3820 explicitly (with PL/Python's <literal>RAISE</>) the same as
3821 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
3832 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
3838 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
3843 At the end of any failed subtransaction, the core SPI code now
3844 releases any SPI tuple tables that were created during that
3845 subtransaction. This avoids the need for SPI-using code to keep track
3846 of such tuple tables and release them manually in error-recovery code.
3847 Failure to do so caused a number of transaction-lifespan memory leakage
3848 issues in PL/pgSQL and perhaps other SPI clients. <link
3849 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
3850 now protects itself against multiple freeing requests, so any existing
3851 code that did take care to clean up shouldn't be broken by this change.
3857 Allow <acronym>SPI</> functions to access the number of rows processed
3858 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
3867 <title>Client Applications</title>
3873 Add command-line utility <link
3874 linkend="app-pg-isready"><application>pg_isready</></link> to
3875 check if the server is ready to accept connections (Phil Sorber)
3881 Support multiple <option>--table</> arguments for <link
3882 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
3883 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
3884 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
3885 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
3890 This is similar to the way <link
3891 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
3892 <option>--table</> option works.
3898 Add <option>--dbname</> option to <link
3899 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
3900 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
3902 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
3903 to allow specifying a connection string (Amit Kapila)
3909 Add libpq function <link
3910 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
3911 to return connection information (Zoltán
3912 Böszörményi, Magnus Hagander)
3919 <title><link linkend="APP-PSQL"><application>psql</></link></title>
3925 Adjust function cost settings so <application>psql</> tab
3926 completion and pattern searching are more efficient (Tom Lane)
3932 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
3933 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
3939 Allow the <application>psql</> <option>--single-transaction</>
3940 mode to work when reading from standard input (Fabien Coelho,
3945 Previously this option only worked when reading from a file.
3951 Remove <application>psql</> warning when connecting to an older
3952 server (Peter Eisentraut)
3956 A warning is still issued when connecting to a server of a newer major
3957 version than <application>psql</>'s.
3964 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
3970 Add <application>psql</> command <command>\watch</> to repeatedly
3971 execute a SQL command (Will Leinweber)
3977 Add <application>psql</> command <command>\gset</> to store query
3978 results in <application>psql</> variables (Pavel Stehule)
3984 Add <acronym>SSL</> information to <application>psql</>'s
3985 <command>\conninfo</> command (Alastair Turner)
3991 Add <quote>Security</> column to <application>psql</>'s
3992 <command>\df+</> output (Jon Erdman)
3998 Allow <application>psql</> command <command>\l</> to accept a database
3999 name pattern (Peter Eisentraut)
4005 In <application>psql</>, do not allow <command>\connect</> to
4006 use defaults if there is no active connection (Bruce Momjian)
4010 This might be the case if the server had crashed.
4016 Properly reset state after failure of a SQL command executed with
4017 <application>psql</>'s <literal>\g</> <replaceable>file</>
4022 Previously, the output from subsequent SQL commands would unexpectedly
4023 continue to go to the same file.
4032 <title>Output</title>
4038 Add a <literal>latex-longtable</> output format to
4039 <application>psql</> (Bruce Momjian)
4043 This format allows tables to span multiple pages.
4049 Add a <literal>border=3</> output mode to the <application>psql</>
4050 <literal>latex</> format (Bruce Momjian)
4056 In <application>psql</>'s tuples-only and expanded output modes, no
4057 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
4063 In <application>psql</>'s unaligned, expanded output mode, no longer
4064 print an empty line for zero rows (Peter Eisentraut)
4075 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
4081 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
4082 parallel (Joachim Wieland)
4088 Make <application>pg_dump</> output functions in a more predictable
4089 order (Joel Jacobson)
4095 Fix tar files emitted by <application>pg_dump</>
4096 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
4102 Add <option>--dbname</> option to <application>pg_dump</>, for
4103 consistency with other client commands (Heikki Linnakangas)
4107 The database name could already be supplied last without a flag.
4116 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
4122 Make initdb fsync the newly created data directory (Jeff Davis)
4126 This insures data integrity in event of a system crash shortly after
4127 initdb. This can be disabled by using <option>--nosync</>.
4133 Add initdb <option>--sync-only</> option to sync the data directory to durable
4134 storage (Bruce Momjian)
4138 This is used by <link
4139 linkend="pgupgrade"><application>pg_upgrade</></link>.
4145 Make initdb issue a warning about placing the data directory at the
4146 top of a file system mount point (Bruce Momjian)
4157 <title>Source Code</title>
4163 Add infrastructure to allow plug-in <link
4164 linkend="bgworker">background worker processes</link>
4165 (Álvaro Herrera)
4171 Create a centralized timeout <acronym>API</> (Zoltán
4172 Böszörményi)
4178 Create libpgcommon and move <function>pg_malloc()</> and other
4179 functions there (Álvaro Herrera, Andres Freund)
4183 This allows libpgport to be used solely for portability-related code.
4189 Add support for list links embedded in larger structs (Andres Freund)
4195 Use <literal>SA_RESTART</> for all signals,
4196 including <literal>SIGALRM</> (Tom Lane)
4202 Ensure that the correct text domain is used when
4203 translating <function>errcontext()</> messages
4204 (Heikki Linnakangas)
4210 Standardize naming of client-side memory allocation functions (Tom Lane)
4216 Provide support for <quote>static assertions</> that will fail at
4217 compile time if some compile-time-constant condition is not met
4218 (Andres Freund, Tom Lane)
4224 Support <function>Assert()</> in client-side code (Andrew Dunstan)
4230 Add decoration to inform the C compiler that some <function>ereport()</>
4231 and <function>elog()</> calls do not return (Peter Eisentraut,
4232 Andres Freund, Tom Lane, Heikki Linnakangas)
4238 Allow options to be passed to the regression
4239 test output comparison utility via <link
4240 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
4247 Add isolation tests for <link
4248 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
4249 CONCURRENTLY</></link> (Abhijit Menon-Sen)
4255 Remove typedefs for <type>int2</>/<type>int4</> as they are better
4256 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
4262 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
4263 X</> (Peter Eisentraut)
4269 Remove <link linkend="configure">configure</link> flag
4270 <option>--disable-shared</>, as it is no longer supported
4277 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
4283 Provide Emacs macro to set Perl formatting to
4284 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
4290 Run tool to check the keyword list whenever the backend grammar is
4297 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
4298 the size of the lexer tables (Heikki Linnakangas)
4304 Centralize <application>flex</> and <application>bison</>
4305 <application>make</> rules (Peter Eisentraut)
4309 This is useful for <application>pgxs</> authors.
4315 Change many internal backend functions to return object <type>OID</>s
4316 rather than void (Dimitri Fontaine)
4320 This is useful for event triggers.
4326 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
4327 callbacks (Tom Lane)
4331 Loadable modules that use transaction callbacks might need modification
4332 to handle these new event types.
4339 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
4340 to produce a machine-readable description of a database object
4341 (Álvaro Herrera)
4347 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
4353 Implement a generic binary heap and use it for Merge-Append
4354 operations (Abhijit Menon-Sen)
4360 Provide a tool to help detect timezone abbreviation changes when
4361 updating the <filename>src/timezone/data</> files
4368 Add <application>pkg-config</> support for <application>libpq</>
4369 and <application>ecpg</> libraries (Peter Eisentraut)
4375 Remove <filename>src/tool/backend</>, now that the content is on
4376 the <productname>PostgreSQL</> wiki (Bruce Momjian)
4382 Split out <link linkend="wal"><acronym>WAL</></link> reading as
4383 an independent facility (Heikki Linnakangas, Andres Freund)
4389 Use a 64-bit integer to represent <link
4390 linkend="wal"><acronym>WAL</></link> positions
4391 (<structname>XLogRecPtr</>) instead of two 32-bit integers
4392 (Heikki Linnakangas)
4396 Generally, tools that need to read the <acronym>WAL</> format
4397 will need to be adjusted.
4403 Allow <link linkend="plpython">PL/Python</link> to support
4404 platform-specific include directories (Peter Eisentraut)
4410 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
4411 X</> to build against custom versions of <application>Python</>
4421 <title>Additional Modules</title>
4427 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
4428 data wrapper</link> contrib module to allow access to
4429 other <productname>Postgres</> servers (Shigeru Hanada)
4433 This foreign data wrapper supports writes.
4439 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
4440 contrib program (Andres Freund)
4446 Add support for indexing of regular-expression searches in
4447 <link linkend="pgtrgm"><productname>pg_trgm</></link>
4448 (Alexander Korotkov)
4454 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
4455 handling of multibyte characters (Tom Lane)
4459 On a platform that does not have the wcstombs() or towlower() library
4460 functions, this could result in an incompatible change in the contents
4461 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
4462 <command>REINDEX</> those indexes to ensure correct search results.
4468 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
4469 the size of the pending-insertions list of a <acronym>GIN</> index
4476 Make <link linkend="oid2name"><application>oid2name</></link>,
4477 <link linkend="pgbench"><application>pgbench</></link>, and
4478 <link linkend="vacuumlo"><application>vacuumlo</></link> set
4479 <varname>fallback_application_name</> (Amit Kapila)
4485 Improve output of <link
4486 linkend="pgtesttiming"><application>pg_test_timing</></link>
4493 Improve output of <link
4494 linkend="pgtestfsync"><application>pg_test_fsync</></link>
4501 Create a dedicated foreign data wrapper, with its own option validator
4502 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
4506 When using this FDW to define the target of a <application>dblink</>
4507 connection, instead of using a hard-wired list of connection options,
4508 the underlying <application>libpq</> library is consulted to see what
4509 connection options it supports.
4516 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
4522 Allow <application>pg_upgrade</> to do dumps and restores in
4523 parallel (Bruce Momjian, Andrew Dunstan)
4527 This allows parallel schema dump/restore of databases, as well as
4528 parallel copy/link of data files per tablespace. Use the
4529 <option>--jobs</> option to specify the level of parallelism.
4535 Make <application>pg_upgrade</> create Unix-domain sockets in
4536 the current directory (Bruce Momjian, Tom Lane)
4540 This reduces the possibility that someone will accidentally connect
4547 Make <application>pg_upgrade</> <option>--check</> mode properly
4548 detect the location of non-default socket directories (Bruce
4555 Improve performance of <application>pg_upgrade</> for databases
4556 with many tables (Bruce Momjian)
4562 Improve <application>pg_upgrade</>'s logs by showing
4563 executed commands (Álvaro Herrera)
4569 Improve <application>pg_upgrade</>'s status display during
4570 copy/link (Bruce Momjian)
4579 <title><link linkend="pgbench"><application>pgbench</></link></title>
4585 Add <option>--foreign-keys</> option to <application>pgbench</>
4590 This adds foreign key constraints to the standard tables created by
4591 <application>pgbench</>, for use in foreign key performance testing.
4597 Allow <application>pgbench</> to aggregate performance statistics
4598 and produce output every <option>--aggregate-interval</>
4599 seconds (Tomas Vondra)
4605 Add <application>pgbench</> <option>--sampling-rate</> option
4606 to control the percentage of transactions logged (Tomas Vondra)
4612 Reduce and improve the status message output of
4613 <application>pgbench</>'s initialization mode (Robert Haas,
4620 Add <application>pgbench</> <option>-q</> mode to print one output
4621 line every five seconds (Tomas Vondra)
4627 Output <application>pgbench</> elapsed and estimated remaining
4628 time during initialization (Tomas Vondra)
4634 Allow <application>pgbench</> to use much larger scale factors,
4635 by changing relevant columns from <type>integer</> to <type>bigint</>
4636 when the requested scale factor exceeds 20000
4648 <title>Documentation</title>
4654 Allow <productname>EPUB</>-format documentation to be created
4661 Update <productname>FreeBSD</> kernel configuration documentation
4668 Improve <link linkend="tutorial-window"><literal>WINDOW</>
4669 function</link> documentation (Bruce Momjian, Florian Pflug)
4675 Add <link linkend="docguide-toolsets">instructions</link> for setting
4676 up the documentation tool chain on Mac <productname>OS X</>
4684 linkend="guc-commit-delay"><varname>commit_delay</></link>
4685 documentation (Peter Geoghegan)