]> granicus.if.org Git - postgresql/blob - doc/src/sgml/release-9.3.sgml
Last-minute updates for release notes.
[postgresql] / doc / src / sgml / release-9.3.sgml
1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
3
4  <sect1 id="release-9-3-7">
5   <title>Release 9.3.7</title>
6
7   <note>
8   <title>Release Date</title>
9   <simpara>2015-05-21</simpara>
10   </note>
11
12   <para>
13    This release contains a variety of fixes from 9.3.6.
14    For information about new features in the 9.3 major release, see
15    <xref linkend="release-9-3">.
16   </para>
17
18   <sect2>
19    <title>Migration to Version 9.3.7</title>
20
21    <para>
22     A dump/restore is not required for those running 9.3.X.
23    </para>
24
25    <para>
26     However, if you use <filename>contrib/citext</>'s
27     <function>regexp_matches()</> functions, see the changelog entry below
28     about that.
29    </para>
30
31    <para>
32     Also, if you are upgrading from a version earlier than 9.3.6,
33     see <xref linkend="release-9-3-6">.
34    </para>
35
36   </sect2>
37
38   <sect2>
39    <title>Changes</title>
40
41    <itemizedlist>
42
43     <listitem>
44      <para>
45       Avoid possible crash when client disconnects just before the
46       authentication timeout expires (Benkocs Norbert Attila)
47      </para>
48
49      <para>
50       If the timeout interrupt fired partway through the session shutdown
51       sequence, SSL-related state would be freed twice, typically causing a
52       crash and hence denial of service to other sessions.  Experimentation
53       shows that an unauthenticated remote attacker could trigger the bug
54       somewhat consistently, hence treat as security issue.
55       (CVE-2015-3165)
56      </para>
57     </listitem>
58
59     <listitem>
60      <para>
61       Consistently check for failure of the <function>*printf()</> family of
62       functions (Noah Misch)
63      </para>
64
65      <para>
66       Most calls of these functions did not consider the possibility that
67       the functions could fail with, eg, out-of-memory conditions.  The usual
68       result would just be missing output, but crashes or exposure of
69       unintended information are also possible.  To protect against such
70       risks uniformly, create wrappers around these functions that throw an
71       error on failure.  Also add missing error checks to a few
72       security-relevant calls of other system functions.
73       (CVE-2015-3166)
74      </para>
75     </listitem>
76
77     <listitem>
78      <para>
79       In <filename>contrib/pgcrypto</>, uniformly report decryption failures
80       as <quote>Wrong key or corrupt data</> (Noah Misch)
81      </para>
82
83      <para>
84       Previously, some cases of decryption with an incorrect key could report
85       other error message texts.  It has been shown that such variance in
86       error reports can aid attackers in recovering keys from other systems.
87       While it's unknown whether <filename>pgcrypto</>'s specific behaviors
88       are likewise exploitable, it seems better to avoid the risk by using a
89       one-size-fits-all message.
90       (CVE-2015-3167)
91      </para>
92     </listitem>
93
94     <listitem>
95      <para>
96       Protect against wraparound of multixact member IDs
97       (&Aacute;lvaro Herrera, Robert Haas, Thomas Munro)
98      </para>
99
100      <para>
101       Under certain usage patterns, the existing defenses against this might
102       be insufficient, allowing <filename>pg_multixact/members</> files to be
103       removed too early, resulting in data loss.
104       The fix for this includes modifying the server to fail transactions
105       that would result in overwriting old multixact member ID data, and
106       improving autovacuum to ensure it will act proactively to prevent
107       multixact member ID wraparound, as it does for transaction ID
108       wraparound.
109      </para>
110     </listitem>
111
112     <listitem>
113      <para>
114       Fix incorrect declaration of <filename>contrib/citext</>'s
115       <function>regexp_matches()</> functions (Tom Lane)
116      </para>
117
118      <para>
119       These functions should return <type>setof text[]</>, like the core
120       functions they are wrappers for; but they were incorrectly declared as
121       returning just <type>text[]</>.  This mistake had two results: first,
122       if there was no match you got a scalar null result, whereas what you
123       should get is an empty set (zero rows).  Second, the <literal>g</> flag
124       was effectively ignored, since you would get only one result array even
125       if there were multiple matches.
126      </para>
127
128      <para>
129       While the latter behavior is clearly a bug, there might be applications
130       depending on the former behavior; therefore the function declarations
131       will not be changed by default until <productname>PostgreSQL</> 9.5.
132       In pre-9.5 branches, the old behavior exists in version 1.0 of
133       the <literal>citext</> extension, while we have provided corrected
134       declarations in version 1.1 (which is <emphasis>not</> installed by
135       default).  To adopt the fix in pre-9.5 branches, execute
136       <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
137       which <literal>citext</> is installed.  (You can also <quote>update</>
138       back to 1.0 if you need to undo that.)  Be aware that either update
139       direction will require dropping and recreating any views or rules that
140       use <filename>citext</>'s <function>regexp_matches()</> functions.
141      </para>
142     </listitem>
143
144     <listitem>
145      <para>
146       Fix incorrect checking of deferred exclusion constraints after a HOT
147       update (Tom Lane)
148      </para>
149
150      <para>
151       If a new row that potentially violates a deferred exclusion constraint
152       is HOT-updated (that is, no indexed columns change and the row can be
153       stored back onto the same table page) later in the same transaction,
154       the exclusion constraint would be reported as violated when the check
155       finally occurred, even if the row(s) the new row originally conflicted
156       with had been deleted.
157      </para>
158     </listitem>
159
160     <listitem>
161      <para>
162       Fix planning of star-schema-style queries (Tom Lane)
163      </para>
164
165      <para>
166       Sometimes, efficient scanning of a large table requires that index
167       parameters be provided from more than one other table (commonly,
168       dimension tables whose keys are needed to index a large fact table).
169       The planner should be able to find such plans, but an overly
170       restrictive search heuristic prevented it.
171      </para>
172     </listitem>
173
174     <listitem>
175      <para>
176       Prevent improper reordering of antijoins (NOT EXISTS joins) versus
177       other outer joins (Tom Lane)
178      </para>
179
180      <para>
181       This oversight in the planner has been observed to cause <quote>could
182       not find RelOptInfo for given relids</> errors, but it seems possible
183       that sometimes an incorrect query plan might get past that consistency
184       check and result in silently-wrong query output.
185      </para>
186     </listitem>
187
188     <listitem>
189      <para>
190       Fix incorrect matching of subexpressions in outer-join plan nodes
191       (Tom Lane)
192      </para>
193
194      <para>
195       Previously, if textually identical non-strict subexpressions were used
196       both above and below an outer join, the planner might try to re-use
197       the value computed below the join, which would be incorrect because the
198       executor would force the value to NULL in case of an unmatched outer row.
199      </para>
200     </listitem>
201
202     <listitem>
203      <para>
204       Fix GEQO planner to cope with failure of its join order heuristic
205       (Tom Lane)
206      </para>
207
208      <para>
209       This oversight has been seen to lead to <quote>failed to join all
210       relations together</> errors in queries involving <literal>LATERAL</>,
211       and that might happen in other cases as well.
212      </para>
213     </listitem>
214
215     <listitem>
216      <para>
217       Fix possible deadlock at startup
218       when <literal>max_prepared_transactions</> is too small
219       (Heikki Linnakangas)
220      </para>
221     </listitem>
222
223     <listitem>
224      <para>
225       Don't archive useless preallocated WAL files after a timeline switch
226       (Heikki Linnakangas)
227      </para>
228     </listitem>
229
230     <listitem>
231      <para>
232       Recursively <function>fsync()</> the data directory after a crash
233       (Abhijit Menon-Sen, Robert Haas)
234      </para>
235
236      <para>
237       This ensures consistency if another crash occurs shortly later.  (The
238       second crash would have to be a system-level crash, not just a database
239       crash, for there to be a problem.)
240      </para>
241     </listitem>
242
243     <listitem>
244      <para>
245       Fix autovacuum launcher's possible failure to shut down, if an error
246       occurs after it receives SIGTERM (&Aacute;lvaro Herrera)
247      </para>
248     </listitem>
249
250     <listitem>
251      <para>
252       Cope with unexpected signals in <function>LockBufferForCleanup()</>
253       (Andres Freund)
254      </para>
255
256      <para>
257       This oversight could result in spurious errors about <quote>multiple
258       backends attempting to wait for pincount 1</>.
259      </para>
260     </listitem>
261
262     <listitem>
263      <para>
264       Fix crash when doing <literal>COPY IN</> to a table with check
265       constraints that contain whole-row references (Tom Lane)
266      </para>
267
268      <para>
269       The known failure case only crashes in 9.4 and up, but there is very
270       similar code in 9.3 and 9.2, so back-patch those branches as well.
271      </para>
272     </listitem>
273
274     <listitem>
275      <para>
276       Avoid waiting for WAL flush or synchronous replication during commit of
277       a transaction that was read-only so far as the user is concerned
278       (Andres Freund)
279      </para>
280
281      <para>
282       Previously, a delay could occur at commit in transactions that had
283       written WAL due to HOT page pruning, leading to undesirable effects
284       such as sessions getting stuck at startup if all synchronous replicas
285       are down.  Sessions have also been observed to get stuck in catchup
286       interrupt processing when using synchronous replication; this will fix
287       that problem as well.
288      </para>
289     </listitem>
290
291     <listitem>
292      <para>
293       Fix crash when manipulating hash indexes on temporary tables
294       (Heikki Linnakangas)
295      </para>
296     </listitem>
297
298     <listitem>
299      <para>
300       Fix possible failure during hash index bucket split, if other processes
301       are modifying the index concurrently (Tom Lane)
302      </para>
303     </listitem>
304
305     <listitem>
306      <para>
307       Check for interrupts while analyzing index expressions (Jeff Janes)
308      </para>
309
310      <para>
311       <command>ANALYZE</> executes index expressions many times; if there are
312       slow functions in such an expression, it's desirable to be able to
313       cancel the <command>ANALYZE</> before that loop finishes.
314      </para>
315     </listitem>
316
317     <listitem>
318      <para>
319       Ensure <structfield>tableoid</> of a foreign table is reported
320       correctly when a <literal>READ COMMITTED</> recheck occurs after
321       locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
322       or <command>DELETE</> (Etsuro Fujita)
323      </para>
324     </listitem>
325
326     <listitem>
327      <para>
328       Add the name of the target server to object description strings for
329       foreign-server user mappings (&Aacute;lvaro Herrera)
330      </para>
331     </listitem>
332
333     <listitem>
334      <para>
335       Include the schema name in object identity strings for conversions
336       (&Aacute;lvaro Herrera)
337      </para>
338     </listitem>
339
340     <listitem>
341      <para>
342       Recommend setting <literal>include_realm</> to 1 when using
343       Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
344      </para>
345
346      <para>
347       Without this, identically-named users from different realms cannot be
348       distinguished.  For the moment this is only a documentation change, but
349       it will become the default setting in <productname>PostgreSQL</> 9.5.
350      </para>
351     </listitem>
352
353     <listitem>
354      <para>
355       Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
356       IPv4-in-IPv6 addresses (Tom Lane)
357      </para>
358
359      <para>
360       This hack was added in 2003 in response to a report that some Linux
361       kernels of the time would report IPv4 connections as having
362       IPv4-in-IPv6 addresses.  However, the logic was accidentally broken in
363       9.0.  The lack of any field complaints since then shows that it's not
364       needed anymore.  Now we have reports that the broken code causes
365       crashes on some systems, so let's just remove it rather than fix it.
366       (Had we chosen to fix it, that would make for a subtle and potentially
367       security-sensitive change in the effective meaning of
368       IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
369       thing to do in minor releases.)
370      </para>
371     </listitem>
372
373     <listitem>
374      <para>
375       Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
376       replication command (Heikki Linnakangas)
377      </para>
378
379      <para>
380       This avoids a possible startup failure
381       in <application>pg_receivexlog</>.
382      </para>
383     </listitem>
384
385     <listitem>
386      <para>
387       While shutting down service on Windows, periodically send status
388       updates to the Service Control Manager to prevent it from killing the
389       service too soon; and ensure that <application>pg_ctl</> will wait for
390       shutdown (Krystian Bigaj)
391      </para>
392     </listitem>
393
394     <listitem>
395      <para>
396       Reduce risk of network deadlock when using <application>libpq</>'s
397       non-blocking mode (Heikki Linnakangas)
398      </para>
399
400      <para>
401       When sending large volumes of data, it's important to drain the input
402       buffer every so often, in case the server has sent enough response data
403       to cause it to block on output.  (A typical scenario is that the server
404       is sending a stream of NOTICE messages during <literal>COPY FROM
405       STDIN</>.)  This worked properly in the normal blocking mode, but not
406       so much in non-blocking mode.  We've modified <application>libpq</>
407       to opportunistically drain input when it can, but a full defense
408       against this problem requires application cooperation: the application
409       should watch for socket read-ready as well as write-ready conditions,
410       and be sure to call <function>PQconsumeInput()</> upon read-ready.
411      </para>
412     </listitem>
413
414     <listitem>
415      <para>
416       In <application>libpq</>, fix misparsing of empty values in URI
417       connection strings (Thomas Fanghaenel)
418      </para>
419     </listitem>
420
421     <listitem>
422      <para>
423       Fix array handling in <application>ecpg</> (Michael Meskes)
424      </para>
425     </listitem>
426
427     <listitem>
428      <para>
429       Fix <application>psql</> to sanely handle URIs and conninfo strings as
430       the first parameter to <command>\connect</>
431       (David Fetter, Andrew Dunstan, &Aacute;lvaro Herrera)
432      </para>
433
434      <para>
435       This syntax has been accepted (but undocumented) for a long time, but
436       previously some parameters might be taken from the old connection
437       instead of the given string, which was agreed to be undesirable.
438      </para>
439     </listitem>
440
441     <listitem>
442      <para>
443       Suppress incorrect complaints from <application>psql</> on some
444       platforms that it failed to write <filename>~/.psql_history</> at exit
445       (Tom Lane)
446      </para>
447
448      <para>
449       This misbehavior was caused by a workaround for a bug in very old
450       (pre-2006) versions of <application>libedit</>.  We fixed it by
451       removing the workaround, which will cause a similar failure to appear
452       for anyone still using such versions of <application>libedit</>.
453       Recommendation: upgrade that library, or use <application>libreadline</>.
454      </para>
455     </listitem>
456
457     <listitem>
458      <para>
459       Fix <application>pg_dump</>'s rule for deciding which casts are
460       system-provided casts that should not be dumped (Tom Lane)
461      </para>
462     </listitem>
463
464     <listitem>
465      <para>
466       In <application>pg_dump</>, fix failure to honor <literal>-Z</>
467       compression level option together with <literal>-Fd</>
468       (Michael Paquier)
469      </para>
470     </listitem>
471
472     <listitem>
473      <para>
474       Make <application>pg_dump</> consider foreign key relationships
475       between extension configuration tables while choosing dump order
476       (Gilles Darold, Michael Paquier, Stephen Frost)
477      </para>
478
479      <para>
480       This oversight could result in producing dumps that fail to reload
481       because foreign key constraints are transiently violated.
482      </para>
483     </listitem>
484
485     <listitem>
486      <para>
487       Avoid possible <application>pg_dump</> failure when concurrent sessions
488       are creating and dropping temporary functions (Tom Lane)
489      </para>
490     </listitem>
491
492     <listitem>
493      <para>
494       Fix dumping of views that are just <literal>VALUES(...)</> but have
495       column aliases (Tom Lane)
496      </para>
497     </listitem>
498
499     <listitem>
500      <para>
501       In <application>pg_upgrade</>, force timeline 1 in the new cluster
502       (Bruce Momjian)
503      </para>
504
505      <para>
506       This change prevents upgrade failures caused by bogus complaints about
507       missing WAL history files.
508      </para>
509     </listitem>
510
511     <listitem>
512      <para>
513       In <application>pg_upgrade</>, check for improperly non-connectable
514       databases before proceeding
515       (Bruce Momjian)
516      </para>
517     </listitem>
518
519     <listitem>
520      <para>
521       In <application>pg_upgrade</>, quote directory paths
522       properly in the generated <literal>delete_old_cluster</> script
523       (Bruce Momjian)
524      </para>
525     </listitem>
526
527     <listitem>
528      <para>
529       In <application>pg_upgrade</>, preserve database-level freezing info
530       properly
531       (Bruce Momjian)
532      </para>
533
534      <para>
535       This oversight could cause missing-clog-file errors for tables within
536       the <literal>postgres</> and <literal>template1</> databases.
537      </para>
538     </listitem>
539
540     <listitem>
541      <para>
542       Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
543       restricted privileges on Windows, so that they don't fail when run by
544       an administrator (Muhammad Asif Naeem)
545      </para>
546     </listitem>
547
548     <listitem>
549      <para>
550       Improve handling of <function>readdir()</> failures when scanning
551       directories in <application>initdb</> and <application>pg_basebackup</>
552       (Marco Nenciarini)
553      </para>
554     </listitem>
555
556     <listitem>
557      <para>
558       Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
559      </para>
560     </listitem>
561
562     <listitem>
563      <para>
564       Fix compile failure on Sparc V8 machines (Rob Rowan)
565      </para>
566     </listitem>
567
568     <listitem>
569      <para>
570       Silence some build warnings on OS X (Tom Lane)
571      </para>
572     </listitem>
573
574     <listitem>
575      <para>
576       Update time zone data files to <application>tzdata</> release 2015d
577       for DST law changes in Egypt, Mongolia, and Palestine, plus historical
578       changes in Canada and Chile.  Also adopt revised zone abbreviations for
579       the America/Adak zone (HST/HDT not HAST/HADT).
580      </para>
581     </listitem>
582
583    </itemizedlist>
584
585   </sect2>
586  </sect1>
587
588  <sect1 id="release-9-3-6">
589   <title>Release 9.3.6</title>
590
591   <note>
592   <title>Release Date</title>
593   <simpara>2015-02-05</simpara>
594   </note>
595
596   <para>
597    This release contains a variety of fixes from 9.3.5.
598    For information about new features in the 9.3 major release, see
599    <xref linkend="release-9-3">.
600   </para>
601
602   <sect2>
603    <title>Migration to Version 9.3.6</title>
604
605    <para>
606     A dump/restore is not required for those running 9.3.X.
607    </para>
608
609    <para>
610     However, if you are a Windows user and are using the <quote>Norwegian
611     (Bokm&aring;l)</> locale, manual action is needed after the upgrade to
612     replace any <quote>Norwegian (Bokm&aring;l)_Norway</> locale names stored
613     in <productname>PostgreSQL</> system catalogs with the plain-ASCII
614     alias <quote>Norwegian_Norway</>.  For details see
615     <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
616    </para>
617
618    <para>
619     Also, if you are upgrading from a version earlier than 9.3.5,
620     see <xref linkend="release-9-3-5">.
621    </para>
622
623   </sect2>
624
625   <sect2>
626    <title>Changes</title>
627
628    <itemizedlist>
629
630 <!--
631 Author: Bruce Momjian <bruce@momjian.us>
632 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
633 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
634 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
635 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
636 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
637 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
638 Author: Bruce Momjian <bruce@momjian.us>
639 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
640 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
641 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
642 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
643 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
644 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
645 -->
646
647     <listitem>
648      <para>
649       Fix buffer overruns in <function>to_char()</>
650       (Bruce Momjian)
651      </para>
652
653      <para>
654       When <function>to_char()</> processes a numeric formatting template
655       calling for a large number of digits, <productname>PostgreSQL</>
656       would read past the end of a buffer.  When processing a crafted
657       timestamp formatting template, <productname>PostgreSQL</> would write
658       past the end of a buffer.  Either case could crash the server.
659       We have not ruled out the possibility of attacks that lead to
660       privilege escalation, though they seem unlikely.
661       (CVE-2015-0241)
662      </para>
663     </listitem>
664
665 <!--
666 Author: Bruce Momjian <bruce@momjian.us>
667 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
668 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
669 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
670 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
671 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
672 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
673 -->
674
675     <listitem>
676      <para>
677       Fix buffer overrun in replacement <function>*printf()</> functions
678       (Tom Lane)
679      </para>
680
681      <para>
682       <productname>PostgreSQL</> includes a replacement implementation
683       of <function>printf</> and related functions.  This code will overrun
684       a stack buffer when formatting a floating point number (conversion
685       specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
686       <literal>g</> or <literal>G</>) with requested precision greater than
687       about 500.  This will crash the server, and we have not ruled out the
688       possibility of attacks that lead to privilege escalation.
689       A database user can trigger such a buffer overrun through
690       the <function>to_char()</> SQL function.  While that is the only
691       affected core <productname>PostgreSQL</> functionality, extension
692       modules that use printf-family functions may be at risk as well.
693      </para>
694
695      <para>
696       This issue primarily affects <productname>PostgreSQL</> on Windows.
697       <productname>PostgreSQL</> uses the system implementation of these
698       functions where adequate, which it is on other modern platforms.
699       (CVE-2015-0242)
700      </para>
701     </listitem>
702
703 <!--
704 Author: Noah Misch <noah@leadboat.com>
705 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
706 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
707 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
708 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
709 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
710 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
711 Author: Noah Misch <noah@leadboat.com>
712 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
713 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
714 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
715 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
716 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
717 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
718 -->
719
720     <listitem>
721      <para>
722       Fix buffer overruns in <filename>contrib/pgcrypto</>
723       (Marko Tiikkaja, Noah Misch)
724      </para>
725
726      <para>
727       Errors in memory size tracking within the <filename>pgcrypto</>
728       module permitted stack buffer overruns and improper dependence on the
729       contents of uninitialized memory.  The buffer overrun cases can
730       crash the server, and we have not ruled out the possibility of
731       attacks that lead to privilege escalation.
732       (CVE-2015-0243)
733      </para>
734     </listitem>
735
736 <!--
737 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
738 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
739 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
740 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
741 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
742 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
743 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
744 -->
745
746     <listitem>
747      <para>
748       Fix possible loss of frontend/backend protocol synchronization after
749       an error
750       (Heikki Linnakangas)
751      </para>
752
753      <para>
754       If any error occurred while the server was in the middle of reading a
755       protocol message from the client, it could lose synchronization and
756       incorrectly try to interpret part of the message's data as a new
757       protocol message.  An attacker able to submit crafted binary data
758       within a command parameter might succeed in injecting his own SQL
759       commands this way.  Statement timeout and query cancellation are the
760       most likely sources of errors triggering this scenario.  Particularly
761       vulnerable are applications that use a timeout and also submit
762       arbitrary user-crafted data as binary query parameters.  Disabling
763       statement timeout will reduce, but not eliminate, the risk of
764       exploit.  Our thanks to Emil Lenngren for reporting this issue.
765       (CVE-2015-0244)
766      </para>
767     </listitem>
768
769 <!--
770 Author: Stephen Frost <sfrost@snowman.net>
771 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
772 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
773 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
774 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
775 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
776 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
777 -->
778
779     <listitem>
780      <para>
781       Fix information leak via constraint-violation error messages
782       (Stephen Frost)
783      </para>
784
785      <para>
786       Some server error messages show the values of columns that violate
787       a constraint, such as a unique constraint.  If the user does not have
788       <literal>SELECT</> privilege on all columns of the table, this could
789       mean exposing values that the user should not be able to see.  Adjust
790       the code so that values are displayed only when they came from the SQL
791       command or could be selected by the user.
792       (CVE-2014-8161)
793      </para>
794     </listitem>
795
796 <!--
797 Author: Noah Misch <noah@leadboat.com>
798 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
799 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
800 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
801 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
802 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
803 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
804 -->
805
806     <listitem>
807      <para>
808       Lock down regression testing's temporary installations on Windows
809       (Noah Misch)
810      </para>
811
812      <para>
813       Use SSPI authentication to allow connections only from the OS user
814       who launched the test suite.  This closes on Windows the same
815       vulnerability previously closed on other platforms, namely that other
816       users might be able to connect to the test postmaster.
817       (CVE-2014-0067)
818      </para>
819     </listitem>
820
821 <!--
822 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
823 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
824 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
825 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
826 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
827 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
828 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
829 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
830 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
831 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
832 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
833 -->
834
835     <listitem>
836      <para>
837       Cope with the Windows locale named <quote>Norwegian (Bokm&aring;l)</>
838       (Heikki Linnakangas)
839      </para>
840
841      <para>
842       Non-ASCII locale names are problematic since it's not clear what
843       encoding they should be represented in.  Map the troublesome locale
844       name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
845      </para>
846     </listitem>
847
848 <!--
849 Author: Tom Lane <tgl@sss.pgh.pa.us>
850 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
851 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
852 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
853 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
854 -->
855
856     <listitem>
857      <para>
858       Avoid possible data corruption if <command>ALTER DATABASE SET
859       TABLESPACE</> is used to move a database to a new tablespace and then
860       shortly later move it back to its original tablespace (Tom Lane)
861      </para>
862     </listitem>
863
864 <!--
865 Author: Tom Lane <tgl@sss.pgh.pa.us>
866 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
867 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
868 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
869 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
870 Author: Tom Lane <tgl@sss.pgh.pa.us>
871 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
872 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
873 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
874 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
875 -->
876
877     <listitem>
878      <para>
879       Avoid corrupting tables when <command>ANALYZE</> inside a transaction
880       is rolled back (Andres Freund, Tom Lane, Michael Paquier)
881      </para>
882
883      <para>
884       If the failing transaction had earlier removed the last index, rule, or
885       trigger from the table, the table would be left in a corrupted state
886       with the relevant <structname>pg_class</> flags not set though they
887       should be.
888      </para>
889     </listitem>
890
891 <!--
892 Author: Andres Freund <andres@anarazel.de>
893 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
894 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
895 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
896 -->
897
898     <listitem>
899      <para>
900       Ensure that unlogged tables are copied correctly
901       during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
902       TABLESPACE</> (Pavan Deolasee, Andres Freund)
903      </para>
904     </listitem>
905
906 <!--
907 Author: Robert Haas <rhaas@postgresql.org>
908 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
909 -->
910
911     <listitem>
912      <para>
913       Fix incorrect processing
914       of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
915       Jelinek)
916      </para>
917
918      <para>
919       This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
920       were executed as a prepared query, or via extended query protocol.
921      </para>
922     </listitem>
923
924 <!--
925 Author: Tom Lane <tgl@sss.pgh.pa.us>
926 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
927 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
928 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
929 -->
930
931     <listitem>
932      <para>
933       Fix <command>DROP</>'s dependency searching to correctly handle the
934       case where a table column is recursively visited before its table
935       (Petr Jelinek, Tom Lane)
936      </para>
937
938      <para>
939       This case is only known to arise when an extension creates both a
940       datatype and a table using that datatype.  The faulty code might
941       refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
942       specified, which should not be required.
943      </para>
944     </listitem>
945
946 <!--
947 Author: Tom Lane <tgl@sss.pgh.pa.us>
948 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
949 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
950 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
951 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
952 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
953 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
954 -->
955
956     <listitem>
957      <para>
958       Fix use-of-already-freed-memory problem in EvalPlanQual processing
959       (Tom Lane)
960      </para>
961
962      <para>
963       In <literal>READ COMMITTED</> mode, queries that lock or update
964       recently-updated rows could crash as a result of this bug.
965      </para>
966     </listitem>
967
968 <!--
969 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
970 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
971 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
972 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
973 -->
974
975     <listitem>
976      <para>
977       Avoid possible deadlock while trying to acquire tuple locks
978       in EvalPlanQual processing (&Aacute;lvaro Herrera, Mark Kirkwood)
979      </para>
980     </listitem>
981
982 <!--
983 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
984 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
985 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
986 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
987 -->
988
989     <listitem>
990      <para>
991       Fix failure to wait when a transaction tries to acquire a <literal>FOR
992       NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
993       currently hold <literal>FOR SHARE</> locks (&Aacute;lvaro Herrera)
994      </para>
995     </listitem>
996
997 <!--
998 Author: Tom Lane <tgl@sss.pgh.pa.us>
999 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
1000 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
1001 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
1002 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
1003 -->
1004
1005     <listitem>
1006      <para>
1007       Fix planning of <command>SELECT FOR UPDATE</> when using a partial
1008       index on a child table (Kyotaro Horiguchi)
1009      </para>
1010
1011      <para>
1012       In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
1013       also recheck the partial index's <literal>WHERE</> condition when
1014       rechecking a recently-updated row to see if it still satisfies the
1015       query's <literal>WHERE</> condition.  This requirement was missed if the
1016       index belonged to an inheritance child table, so that it was possible
1017       to incorrectly return rows that no longer satisfy the query condition.
1018      </para>
1019     </listitem>
1020
1021 <!--
1022 Author: Tom Lane <tgl@sss.pgh.pa.us>
1023 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
1024 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
1025 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
1026 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
1027 -->
1028
1029     <listitem>
1030      <para>
1031       Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
1032       twice, and possibly miss returning other rows (Tom Lane)
1033      </para>
1034
1035      <para>
1036       In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
1037       that is scanning an inheritance tree could incorrectly return a row
1038       from a prior child table instead of the one it should return from a
1039       later child table.
1040      </para>
1041     </listitem>
1042
1043 <!--
1044 Author: Tom Lane <tgl@sss.pgh.pa.us>
1045 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
1046 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
1047 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
1048 -->
1049
1050     <listitem>
1051      <para>
1052       Improve performance of <command>EXPLAIN</> with large range tables
1053       (Tom Lane)
1054      </para>
1055     </listitem>
1056
1057 <!--
1058 Author: Tom Lane <tgl@sss.pgh.pa.us>
1059 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
1060 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
1061 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
1062 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
1063 -->
1064
1065     <listitem>
1066      <para>
1067       Reject duplicate column names in the referenced-columns list of
1068       a <literal>FOREIGN KEY</> declaration (David Rowley)
1069      </para>
1070
1071      <para>
1072       This restriction is per SQL standard.  Previously we did not reject
1073       the case explicitly, but later on the code would fail with
1074       bizarre-looking errors.
1075      </para>
1076     </listitem>
1077
1078 <!--
1079 Author: Tom Lane <tgl@sss.pgh.pa.us>
1080 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
1081 -->
1082
1083     <listitem>
1084      <para>
1085       Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
1086      </para>
1087
1088      <para>
1089       A negative offset value has been an error since 8.4, but an
1090       optimization added in 9.3 accidentally turned the case into a no-op.
1091       Restore the expected behavior.
1092      </para>
1093     </listitem>
1094
1095 <!--
1096 Author: Tom Lane <tgl@sss.pgh.pa.us>
1097 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
1098 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
1099 -->
1100
1101     <listitem>
1102      <para>
1103       Restore previous behavior of conversion of domains to JSON
1104       (Tom Lane)
1105      </para>
1106
1107      <para>
1108       This change causes domains over numeric and boolean to be treated
1109       like their base types for purposes of conversion to JSON.  It worked
1110       like that before 9.3.5 and 9.2.9, but was unintentionally changed
1111       while fixing a related problem.
1112      </para>
1113     </listitem>
1114
1115 <!--
1116 Author: Tom Lane <tgl@sss.pgh.pa.us>
1117 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
1118 -->
1119
1120     <listitem>
1121      <para>
1122       Fix <function>json_agg()</> to not return extra trailing right
1123       brackets in its result (Tom Lane)
1124      </para>
1125     </listitem>
1126
1127 <!--
1128 Author: Tom Lane <tgl@sss.pgh.pa.us>
1129 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
1130 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
1131 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
1132 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
1133 -->
1134
1135     <listitem>
1136      <para>
1137       Fix bugs in raising a <type>numeric</> value to a large integral power
1138       (Tom Lane)
1139      </para>
1140
1141      <para>
1142       The previous code could get a wrong answer, or consume excessive
1143       amounts of time and memory before realizing that the answer must
1144       overflow.
1145      </para>
1146     </listitem>
1147
1148 <!--
1149 Author: Tom Lane <tgl@sss.pgh.pa.us>
1150 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
1151 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
1152 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
1153 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
1154 -->
1155
1156     <listitem>
1157      <para>
1158       In <function>numeric_recv()</>, truncate away any fractional digits
1159       that would be hidden according to the value's <literal>dscale</> field
1160       (Tom Lane)
1161      </para>
1162
1163      <para>
1164       A <type>numeric</> value's display scale (<literal>dscale</>) should
1165       never be less than the number of nonzero fractional digits; but
1166       apparently there's at least one broken client application that
1167       transmits binary <type>numeric</> values in which that's true.
1168       This leads to strange behavior since the extra digits are taken into
1169       account by arithmetic operations even though they aren't printed.
1170       The least risky fix seems to be to truncate away such <quote>hidden</>
1171       digits on receipt, so that the value is indeed what it prints as.
1172      </para>
1173     </listitem>
1174
1175 <!--
1176 Author: Tom Lane <tgl@sss.pgh.pa.us>
1177 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
1178 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
1179 -->
1180
1181     <listitem>
1182      <para>
1183       Fix incorrect search for shortest-first regular expression matches
1184       (Tom Lane)
1185      </para>
1186
1187      <para>
1188       Matching would often fail when the number of allowed iterations is
1189       limited by a <literal>?</> quantifier or a bound expression.
1190      </para>
1191     </listitem>
1192
1193 <!--
1194 Author: Tom Lane <tgl@sss.pgh.pa.us>
1195 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
1196 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
1197 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
1198 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
1199 -->
1200
1201     <listitem>
1202      <para>
1203       Reject out-of-range numeric timezone specifications (Tom Lane)
1204      </para>
1205
1206      <para>
1207       Simple numeric timezone specifications exceeding +/- 168 hours (one
1208       week) would be accepted, but could then cause null-pointer dereference
1209       crashes in certain operations.  There's no use-case for such large UTC
1210       offsets, so reject them.
1211      </para>
1212     </listitem>
1213
1214 <!--
1215 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1216 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
1217 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
1218 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
1219 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
1220 -->
1221
1222     <listitem>
1223      <para>
1224       Fix bugs in <type>tsquery</> <literal>@&gt;</> <type>tsquery</>
1225       operator (Heikki Linnakangas)
1226      </para>
1227
1228      <para>
1229       Two different terms would be considered to match if they had the same
1230       CRC.  Also, if the second operand had more terms than the first, it
1231       would be assumed not to be contained in the first; which is wrong
1232       since it might contain duplicate terms.
1233      </para>
1234     </listitem>
1235
1236 <!--
1237 Author: Tom Lane <tgl@sss.pgh.pa.us>
1238 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
1239 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
1240 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
1241 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
1242 -->
1243
1244     <listitem>
1245      <para>
1246       Improve ispell dictionary's defenses against bad affix files (Tom Lane)
1247      </para>
1248     </listitem>
1249
1250 <!--
1251 Author: Tom Lane <tgl@sss.pgh.pa.us>
1252 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
1253 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
1254 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
1255 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
1256 -->
1257
1258     <listitem>
1259      <para>
1260       Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
1261      </para>
1262
1263      <para>
1264       The previous coding could crash on an oversize dictionary, so this was
1265       deemed a back-patchable bug fix rather than a feature addition.
1266      </para>
1267     </listitem>
1268
1269 <!--
1270 Author: Peter Eisentraut <peter_e@gmx.net>
1271 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
1272 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
1273 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
1274 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
1275 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
1276 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
1277 -->
1278
1279     <listitem>
1280      <para>
1281       Fix namespace handling in <function>xpath()</> (Ali Akbar)
1282      </para>
1283
1284      <para>
1285       Previously, the <type>xml</> value resulting from
1286       an <function>xpath()</> call would not have namespace declarations if
1287       the namespace declarations were attached to an ancestor element in the
1288       input <type>xml</> value, rather than to the specific element being
1289       returned.  Propagate the ancestral declaration so that the result is
1290       correct when considered in isolation.
1291      </para>
1292     </listitem>
1293
1294 <!--
1295 Author: Tom Lane <tgl@sss.pgh.pa.us>
1296 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
1297 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
1298 -->
1299
1300     <listitem>
1301      <para>
1302       Ensure that whole-row variables expose nonempty column names
1303       to functions that pay attention to column names within composite
1304       arguments (Tom Lane)
1305      </para>
1306
1307      <para>
1308       In some contexts, constructs like <literal>row_to_json(tab.*)</> may
1309       not produce the expected column names.  This is fixed properly as of
1310       9.4; in older branches, just ensure that we produce some nonempty
1311       name.  (In some cases this will be the underlying table's column name
1312       rather than the query-assigned alias that should theoretically be
1313       visible.)
1314      </para>
1315     </listitem>
1316
1317 <!--
1318 Author: Tom Lane <tgl@sss.pgh.pa.us>
1319 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
1320 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
1321 -->
1322
1323     <listitem>
1324      <para>
1325       Fix mishandling of system columns,
1326       particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
1327      </para>
1328     </listitem>
1329
1330 <!--
1331 Author: Tom Lane <tgl@sss.pgh.pa.us>
1332 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
1333 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
1334 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
1335 -->
1336
1337     <listitem>
1338      <para>
1339       Fix assorted oversights in range-operator selectivity estimation
1340       (Emre Hasegeli)
1341      </para>
1342
1343      <para>
1344       This patch fixes corner-case <quote>unexpected operator NNNN</> planner
1345       errors, and improves the selectivity estimates for some other cases.
1346      </para>
1347     </listitem>
1348
1349 <!--
1350 Author: Tom Lane <tgl@sss.pgh.pa.us>
1351 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
1352 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
1353 -->
1354
1355     <listitem>
1356      <para>
1357       Avoid doing <literal><replaceable>indexed_column</> = ANY
1358       (<replaceable>array</>)</literal> as an index qualifier if that leads
1359       to an inferior plan (Andrew Gierth)
1360      </para>
1361
1362      <para>
1363       In some cases, <literal>= ANY</> conditions applied to non-first index
1364       columns would be done as index conditions even though it would be
1365       better to use them as simple filter conditions.
1366      </para>
1367     </listitem>
1368
1369 <!--
1370 Author: Tom Lane <tgl@sss.pgh.pa.us>
1371 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
1372 -->
1373
1374     <listitem>
1375      <para>
1376       Fix <quote>variable not found in subplan target list</> planner
1377       failure when an inline-able SQL function taking a composite argument
1378       is used in a <literal>LATERAL</> subselect and the composite argument
1379       is a lateral reference (Tom Lane)
1380      </para>
1381     </listitem>
1382
1383 <!--
1384 Author: Tom Lane <tgl@sss.pgh.pa.us>
1385 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
1386 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
1387 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
1388 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
1389 -->
1390
1391     <listitem>
1392      <para>
1393       Fix planner problems with nested append relations, such as inherited
1394       tables within <literal>UNION ALL</> subqueries (Tom Lane)
1395      </para>
1396     </listitem>
1397
1398 <!--
1399 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1400 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
1401 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
1402 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
1403 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
1404 -->
1405
1406     <listitem>
1407      <para>
1408       Fail cleanly when a GiST index tuple doesn't fit on a page, rather
1409       than going into infinite recursion (Andrew Gierth)
1410      </para>
1411     </listitem>
1412
1413 <!--
1414 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1415 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
1416 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
1417 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
1418 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
1419 -->
1420
1421     <listitem>
1422      <para>
1423       Exempt tables that have per-table <varname>cost_limit</>
1424       and/or <varname>cost_delay</> settings from autovacuum's global cost
1425       balancing rules (&Aacute;lvaro Herrera)
1426      </para>
1427
1428      <para>
1429       The previous behavior resulted in basically ignoring these per-table
1430       settings, which was unintended.  Now, a table having such settings
1431       will be vacuumed using those settings, independently of what is going
1432       on in other autovacuum workers.  This may result in heavier total I/O
1433       load than before, so such settings should be re-examined for sanity.
1434      </para>
1435     </listitem>
1436
1437 <!--
1438 Author: Tom Lane <tgl@sss.pgh.pa.us>
1439 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
1440 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
1441 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
1442 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
1443 -->
1444
1445     <listitem>
1446      <para>
1447       Avoid wholesale autovacuuming when autovacuum is nominally off
1448       (Tom Lane)
1449      </para>
1450
1451      <para>
1452       Even when autovacuum is nominally off, we will still launch autovacuum
1453       worker processes to vacuum tables that are at risk of XID wraparound.
1454       However, such a worker process then proceeded to vacuum all tables in
1455       the target database, if they met the usual thresholds for
1456       autovacuuming.  This is at best pretty unexpected; at worst it delays
1457       response to the wraparound threat.  Fix it so that if autovacuum is
1458       turned off, workers <emphasis>only</> do anti-wraparound vacuums and
1459       not any other work.
1460      </para>
1461     </listitem>
1462
1463 <!--
1464 Author: Andres Freund <andres@anarazel.de>
1465 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
1466 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
1467 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
1468 Author: Andres Freund <andres@anarazel.de>
1469 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
1470 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
1471 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
1472 Author: Andres Freund <andres@anarazel.de>
1473 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
1474 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
1475 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
1476 -->
1477
1478     <listitem>
1479      <para>
1480       During crash recovery, ensure that unlogged relations are rewritten as
1481       empty and are synced to disk before recovery is considered complete
1482       (Abhijit Menon-Sen, Andres Freund)
1483      </para>
1484
1485      <para>
1486       This prevents scenarios in which unlogged relations might contain
1487       garbage data following database crash recovery.
1488      </para>
1489     </listitem>
1490
1491 <!--
1492 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1493 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
1494 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
1495 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
1496 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
1497 -->
1498
1499     <listitem>
1500      <para>
1501       Fix race condition between hot standby queries and replaying a
1502       full-page image (Heikki Linnakangas)
1503      </para>
1504
1505      <para>
1506       This mistake could result in transient errors in queries being
1507       executed in hot standby.
1508      </para>
1509     </listitem>
1510
1511 <!--
1512 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1513 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
1514 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
1515 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
1516 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
1517 -->
1518
1519     <listitem>
1520      <para>
1521       Fix several cases where recovery logic improperly ignored WAL records
1522       for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
1523      </para>
1524
1525      <para>
1526       The most notable oversight was
1527       that <varname>recovery_min_apply_delay</> failed to delay application
1528       of a two-phase commit.
1529      </para>
1530     </listitem>
1531
1532 <!--
1533 Author: Fujii Masao <fujii@postgresql.org>
1534 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
1535 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
1536 -->
1537
1538     <listitem>
1539      <para>
1540       Prevent latest WAL file from being archived a second time at completion
1541       of crash recovery (Fujii Masao)
1542      </para>
1543     </listitem>
1544
1545 <!--
1546 Author: Fujii Masao <fujii@postgresql.org>
1547 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
1548 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
1549 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
1550 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
1551 -->
1552
1553     <listitem>
1554      <para>
1555       Avoid creating unnecessary <filename>.ready</> marker files for
1556       timeline history files (Fujii Masao)
1557      </para>
1558     </listitem>
1559
1560 <!--
1561 Author: Fujii Masao <fujii@postgresql.org>
1562 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
1563 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
1564 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
1565 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
1566 -->
1567
1568     <listitem>
1569      <para>
1570       Fix possible null pointer dereference when an empty prepared statement
1571       is used and the <varname>log_statement</> setting is <literal>mod</>
1572       or <literal>ddl</> (Fujii Masao)
1573      </para>
1574     </listitem>
1575
1576 <!--
1577 Author: Tom Lane <tgl@sss.pgh.pa.us>
1578 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
1579 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
1580 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
1581 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
1582 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
1583 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
1584 -->
1585
1586     <listitem>
1587      <para>
1588       Change <quote>pgstat wait timeout</> warning message to be LOG level,
1589       and rephrase it to be more understandable (Tom Lane)
1590      </para>
1591
1592      <para>
1593       This message was originally thought to be essentially a can't-happen
1594       case, but it occurs often enough on our slower buildfarm members to be
1595       a nuisance.  Reduce it to LOG level, and expend a bit more effort on
1596       the wording: it now reads <quote>using stale statistics instead of
1597       current ones because stats collector is not responding</>.
1598      </para>
1599     </listitem>
1600
1601 <!--
1602 Author: Andres Freund <andres@anarazel.de>
1603 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
1604 -->
1605
1606     <listitem>
1607      <para>
1608       Fix possible corruption of postmaster's list of dynamic background
1609       workers (Andres Freund)
1610      </para>
1611     </listitem>
1612
1613 <!--
1614 Author: Andres Freund <andres@anarazel.de>
1615 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
1616 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
1617 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
1618 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
1619 -->
1620
1621     <listitem>
1622      <para>
1623       Fix SPARC spinlock implementation to ensure correctness if the CPU is
1624       being run in a non-TSO coherency mode, as some non-Solaris kernels do
1625       (Andres Freund)
1626      </para>
1627     </listitem>
1628
1629 <!--
1630 Author: Noah Misch <noah@leadboat.com>
1631 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
1632 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
1633 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
1634 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
1635 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
1636 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
1637 -->
1638
1639     <listitem>
1640      <para>
1641       Warn if OS X's <function>setlocale()</> starts an unwanted extra
1642       thread inside the postmaster (Noah Misch)
1643      </para>
1644     </listitem>
1645
1646 <!--
1647 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1648 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
1649 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
1650 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
1651 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
1652 -->
1653
1654     <listitem>
1655      <para>
1656       Fix processing of repeated <literal>dbname</> parameters
1657       in <function>PQconnectdbParams()</> (Alex Shulgin)
1658      </para>
1659
1660      <para>
1661       Unexpected behavior ensued if the first occurrence
1662       of <literal>dbname</> contained a connection string or URI to be
1663       expanded.
1664      </para>
1665     </listitem>
1666
1667 <!--
1668 Author: Tom Lane <tgl@sss.pgh.pa.us>
1669 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
1670 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
1671 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
1672 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
1673 -->
1674
1675     <listitem>
1676      <para>
1677       Ensure that <application>libpq</> reports a suitable error message on
1678       unexpected socket EOF (Marko Tiikkaja, Tom Lane)
1679      </para>
1680
1681      <para>
1682       Depending on kernel behavior, <application>libpq</> might return an
1683       empty error string rather than something useful when the server
1684       unexpectedly closed the socket.
1685      </para>
1686     </listitem>
1687
1688 <!--
1689 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1690 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
1691 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
1692 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
1693 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
1694 -->
1695
1696     <listitem>
1697      <para>
1698       Clear any old error message during <function>PQreset()</>
1699       (Heikki Linnakangas)
1700      </para>
1701
1702      <para>
1703       If <function>PQreset()</> is called repeatedly, and the connection
1704       cannot be re-established, error messages from the failed connection
1705       attempts kept accumulating in the <structname>PGconn</>'s error
1706       string.
1707      </para>
1708     </listitem>
1709
1710 <!--
1711 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1712 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
1713 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
1714 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
1715 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
1716 -->
1717
1718     <listitem>
1719      <para>
1720       Properly handle out-of-memory conditions while parsing connection
1721       options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
1722      </para>
1723     </listitem>
1724
1725 <!--
1726 Author: Tom Lane <tgl@sss.pgh.pa.us>
1727 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
1728 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
1729 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
1730 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
1731 -->
1732
1733     <listitem>
1734      <para>
1735       Fix array overrun in <application>ecpg</>'s version
1736       of <function>ParseDateTime()</> (Michael Paquier)
1737      </para>
1738     </listitem>
1739
1740 <!--
1741 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1742 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
1743 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
1744 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
1745 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
1746 -->
1747
1748     <listitem>
1749      <para>
1750       In <application>initdb</>, give a clearer error message if a password
1751       file is specified but is empty (Mats Erik Andersson)
1752      </para>
1753     </listitem>
1754
1755 <!--
1756 Author: Tom Lane <tgl@sss.pgh.pa.us>
1757 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
1758 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
1759 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
1760 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
1761 -->
1762
1763     <listitem>
1764      <para>
1765       Fix <application>psql</>'s <command>\s</> command to work nicely with
1766       libedit, and add pager support (Stepan Rutz, Tom Lane)
1767      </para>
1768
1769      <para>
1770       When using libedit rather than readline, <command>\s</> printed the
1771       command history in a fairly unreadable encoded format, and on recent
1772       libedit versions might fail altogether.  Fix that by printing the
1773       history ourselves rather than having the library do it.  A pleasant
1774       side-effect is that the pager is used if appropriate.
1775      </para>
1776
1777      <para>
1778       This patch also fixes a bug that caused newline encoding to be applied
1779       inconsistently when saving the command history with libedit.
1780       Multiline history entries written by older <application>psql</>
1781       versions will be read cleanly with this patch, but perhaps not
1782       vice versa, depending on the exact libedit versions involved.
1783      </para>
1784     </listitem>
1785
1786 <!--
1787 Author: Tom Lane <tgl@sss.pgh.pa.us>
1788 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
1789 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
1790 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
1791 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
1792 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
1793 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
1794 -->
1795
1796     <listitem>
1797      <para>
1798       Improve consistency of parsing of <application>psql</>'s special
1799       variables (Tom Lane)
1800      </para>
1801
1802      <para>
1803       Allow variant spellings of <literal>on</> and <literal>off</> (such
1804       as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
1805       and <literal>ON_ERROR_ROLLBACK</>.  Report a warning for unrecognized
1806       values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
1807       <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
1808       <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>.  Recognize
1809       all values for all these variables case-insensitively; previously
1810       there was a mishmash of case-sensitive and case-insensitive behaviors.
1811      </para>
1812     </listitem>
1813
1814 <!--
1815 Author: Fujii Masao <fujii@postgresql.org>
1816 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
1817 -->
1818
1819     <listitem>
1820      <para>
1821       Make <application>psql</>'s <command>\watch</> command display
1822       nulls as specified by <command>\pset null</> (Fujii Masao)
1823      </para>
1824     </listitem>
1825
1826 <!--
1827 Author: Stephen Frost <sfrost@snowman.net>
1828 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
1829 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
1830 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
1831 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
1832 -->
1833
1834     <listitem>
1835      <para>
1836       Fix <application>psql</>'s expanded-mode display to work
1837       consistently when using <literal>border</> = 3
1838       and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
1839       (Stephen Frost)
1840      </para>
1841     </listitem>
1842
1843 <!--
1844 Author: Tom Lane <tgl@sss.pgh.pa.us>
1845 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
1846 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
1847 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
1848 -->
1849
1850     <listitem>
1851      <para>
1852       Fix <application>pg_dump</> to handle comments on event triggers
1853       without failing (Tom Lane)
1854      </para>
1855     </listitem>
1856
1857 <!--
1858 Author: Kevin Grittner <kgrittn@postgresql.org>
1859 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
1860 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
1861 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
1862 -->
1863
1864     <listitem>
1865      <para>
1866       Allow parallel <application>pg_dump</> to
1867       use <option>--serializable-deferrable</> (Kevin Grittner)
1868      </para>
1869     </listitem>
1870
1871 <!--
1872 Author: Tom Lane <tgl@sss.pgh.pa.us>
1873 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
1874 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
1875 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
1876 -->
1877
1878     <listitem>
1879      <para>
1880       Improve performance of <application>pg_dump</> when the database
1881       contains many instances of multiple dependency paths between the same
1882       two objects (Tom Lane)
1883      </para>
1884     </listitem>
1885
1886 <!--
1887 Author: Tom Lane <tgl@sss.pgh.pa.us>
1888 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
1889 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
1890 -->
1891
1892     <listitem>
1893      <para>
1894       Fix <application>pg_dumpall</> to restore its ability to dump from
1895       pre-8.1 servers (Gilles Darold)
1896      </para>
1897     </listitem>
1898
1899 <!--
1900 Author: Robert Haas <rhaas@postgresql.org>
1901 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
1902 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
1903 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
1904 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
1905 -->
1906
1907     <listitem>
1908      <para>
1909       Fix possible deadlock during parallel restore of a schema-only dump
1910       (Robert Haas, Tom Lane)
1911      </para>
1912     </listitem>
1913
1914 <!--
1915 Author: Tom Lane <tgl@sss.pgh.pa.us>
1916 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
1917 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
1918 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
1919 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
1920 -->
1921
1922     <listitem>
1923      <para>
1924       Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
1925       composite type (Rushabh Lathia)
1926      </para>
1927     </listitem>
1928
1929 <!--
1930 Author: Andres Freund <andres@anarazel.de>
1931 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
1932 -->
1933
1934     <listitem>
1935      <para>
1936       Fix failure to fsync tables in nondefault tablespaces
1937       during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
1938      </para>
1939
1940      <para>
1941       With an operating system crash and some bad luck, this could result in
1942       data loss during an upgrade.
1943      </para>
1944     </listitem>
1945
1946 <!--
1947 Author: Bruce Momjian <bruce@momjian.us>
1948 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
1949 -->
1950
1951     <listitem>
1952      <para>
1953       In <application>pg_upgrade</>, cope with cases where the new cluster
1954       creates a TOAST table for a table that didn't previously have one
1955       (Bruce Momjian)
1956      </para>
1957
1958      <para>
1959       Previously this could result in failures due to OID conflicts.
1960      </para>
1961     </listitem>
1962
1963 <!--
1964 Author: Bruce Momjian <bruce@momjian.us>
1965 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
1966 -->
1967
1968     <listitem>
1969      <para>
1970       In <application>pg_upgrade</>, don't try to
1971       set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
1972       (Bruce Momjian)
1973      </para>
1974
1975      <para>
1976       This could result in failure because not all 9.3.X versions have that
1977       parameter.  Fortunately, we don't actually need to set it at all.
1978      </para>
1979     </listitem>
1980
1981 <!--
1982 Author: Bruce Momjian <bruce@momjian.us>
1983 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
1984 -->
1985
1986     <listitem>
1987      <para>
1988       In <application>pg_upgrade</>, preserve the transaction ID epoch
1989       (Bruce Momjian)
1990      </para>
1991
1992      <para>
1993       This oversight did not bother <productname>PostgreSQL</> proper,
1994       but could confuse some external replication tools.
1995      </para>
1996     </listitem>
1997
1998 <!--
1999 Author: Andres Freund <andres@anarazel.de>
2000 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
2001 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
2002 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
2003 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
2004 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
2005 -->
2006
2007     <listitem>
2008      <para>
2009       Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
2010       being archived again when the standby is promoted (Andres Freund)
2011      </para>
2012     </listitem>
2013
2014 <!--
2015 Author: Fujii Masao <fujii@postgresql.org>
2016 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
2017 -->
2018
2019     <listitem>
2020      <para>
2021       Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
2022      </para>
2023     </listitem>
2024
2025 <!--
2026 Author: Fujii Masao <fujii@postgresql.org>
2027 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
2028 -->
2029
2030     <listitem>
2031      <para>
2032       Fix unintended suppression of <application>pg_receivexlog</> verbose
2033       messages (Fujii Masao)
2034      </para>
2035     </listitem>
2036
2037 <!--
2038 Author: Tom Lane <tgl@sss.pgh.pa.us>
2039 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
2040 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
2041 -->
2042
2043     <listitem>
2044      <para>
2045       Fix failure of <filename>contrib/auto_explain</> to print per-node
2046       timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
2047      </para>
2048     </listitem>
2049
2050 <!--
2051 Author: Tom Lane <tgl@sss.pgh.pa.us>
2052 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
2053 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
2054 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
2055 -->
2056
2057     <listitem>
2058      <para>
2059       Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
2060       (Tom Lane)
2061      </para>
2062     </listitem>
2063
2064 <!--
2065 Author: Tom Lane <tgl@sss.pgh.pa.us>
2066 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
2067 -->
2068
2069     <listitem>
2070      <para>
2071       Avoid integer overflow and buffer overrun
2072       in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
2073       (Heikki Linnakangas)
2074      </para>
2075     </listitem>
2076
2077 <!--
2078 Author: Andrew Dunstan <andrew@dunslane.net>
2079 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
2080 -->
2081
2082     <listitem>
2083      <para>
2084       Fix recognition of numbers in <function>hstore_to_json_loose()</>,
2085       so that JSON numbers and strings are correctly distinguished
2086       (Andrew Dunstan)
2087      </para>
2088     </listitem>
2089
2090 <!--
2091 Author: Tom Lane <tgl@sss.pgh.pa.us>
2092 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
2093 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
2094 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
2095 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
2096 -->
2097
2098     <listitem>
2099      <para>
2100       Fix block number checking
2101       in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
2102       (Tom Lane)
2103      </para>
2104
2105      <para>
2106       The incorrect checking logic could prevent access to some pages in
2107       non-main relation forks.
2108      </para>
2109     </listitem>
2110
2111 <!--
2112 Author: Tom Lane <tgl@sss.pgh.pa.us>
2113 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
2114 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
2115 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
2116 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
2117 -->
2118
2119     <listitem>
2120      <para>
2121       Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
2122       to not fail on messages whose length is 6 less than a power of 2
2123       (Marko Tiikkaja)
2124      </para>
2125     </listitem>
2126
2127 <!--
2128 Author: Robert Haas <rhaas@postgresql.org>
2129 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
2130 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
2131 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
2132 -->
2133
2134     <listitem>
2135      <para>
2136       Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
2137       (Jeff Janes)
2138      </para>
2139
2140      <para>
2141       This could cause failure to remove temporary files on Windows.
2142      </para>
2143     </listitem>
2144
2145 <!--
2146 Author: Tom Lane <tgl@sss.pgh.pa.us>
2147 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
2148 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
2149 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
2150 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
2151 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
2152 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
2153 -->
2154
2155     <listitem>
2156      <para>
2157       Handle unexpected query results, especially NULLs, safely in
2158       <filename>contrib/tablefunc</>'s <function>connectby()</>
2159       (Michael Paquier)
2160      </para>
2161
2162      <para>
2163       <function>connectby()</> previously crashed if it encountered a NULL
2164       key value.  It now prints that row but doesn't recurse further.
2165      </para>
2166     </listitem>
2167
2168 <!--
2169 Author: Tom Lane <tgl@sss.pgh.pa.us>
2170 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
2171 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
2172 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
2173 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
2174 -->
2175
2176     <listitem>
2177      <para>
2178       Avoid a possible crash in <filename>contrib/xml2</>'s
2179       <function>xslt_process()</> (Mark Simonetti)
2180      </para>
2181
2182      <para>
2183       <application>libxslt</> seems to have an undocumented dependency on
2184       the order in which resources are freed; reorder our calls to avoid a
2185       crash.
2186      </para>
2187     </listitem>
2188
2189 <!--
2190 Author: Tom Lane <tgl@sss.pgh.pa.us>
2191 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
2192 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
2193 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
2194 -->
2195
2196     <listitem>
2197      <para>
2198       Mark some <filename>contrib</> I/O functions with correct volatility
2199       properties (Tom Lane)
2200      </para>
2201
2202      <para>
2203       The previous over-conservative marking was immaterial in normal use,
2204       but could cause optimization problems or rejection of valid index
2205       expression definitions.  Since the consequences are not large, we've
2206       just adjusted the function definitions in the extension modules'
2207       scripts, without changing version numbers.
2208      </para>
2209     </listitem>
2210
2211 <!--
2212 Author: Tom Lane <tgl@sss.pgh.pa.us>
2213 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
2214 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
2215 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
2216 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
2217 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
2218 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
2219 Author: Tom Lane <tgl@sss.pgh.pa.us>
2220 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
2221 Author: Robert Haas <rhaas@postgresql.org>
2222 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
2223 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
2224 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
2225 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
2226 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
2227 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
2228 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2229 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
2230 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
2231 Author: Andres Freund <andres@anarazel.de>
2232 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
2233 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
2234 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
2235 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
2236 Author: Andres Freund <andres@anarazel.de>
2237 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
2238 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
2239 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
2240 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
2241 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
2242 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
2243 Author: Andres Freund <andres@anarazel.de>
2244 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
2245 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
2246 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
2247 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
2248 Author: Tatsuo Ishii <ishii@postgresql.org>
2249 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
2250 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
2251 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
2252 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
2253 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
2254 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
2255 Author: Tom Lane <tgl@sss.pgh.pa.us>
2256 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
2257 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
2258 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
2259 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
2260 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
2261 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
2262 Author: Tom Lane <tgl@sss.pgh.pa.us>
2263 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
2264 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
2265 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
2266 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
2267 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
2268 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
2269 Author: Tom Lane <tgl@sss.pgh.pa.us>
2270 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
2271 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
2272 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
2273 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
2274 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
2275 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
2276 -->
2277
2278     <listitem>
2279      <para>
2280       Numerous cleanups of warnings from Coverity static code analyzer
2281       (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
2282      </para>
2283
2284      <para>
2285       These changes are mostly cosmetic but in some cases fix corner-case
2286       bugs, for example a crash rather than a proper error report after an
2287       out-of-memory failure.  None are believed to represent security
2288       issues.
2289      </para>
2290     </listitem>
2291
2292 <!--
2293 Author: Robert Haas <rhaas@postgresql.org>
2294 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
2295 -->
2296
2297     <listitem>
2298      <para>
2299       Fix setup of background workers in EXEC_BACKEND builds, eg Windows
2300       (Robert Haas)
2301      </para>
2302     </listitem>
2303
2304 <!--
2305 Author: Noah Misch <noah@leadboat.com>
2306 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
2307 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
2308 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
2309 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
2310 -->
2311
2312     <listitem>
2313      <para>
2314       Detect incompatible OpenLDAP versions during build (Noah Misch)
2315      </para>
2316
2317      <para>
2318       With OpenLDAP versions 2.4.24 through 2.4.31,
2319       inclusive, <productname>PostgreSQL</> backends can crash at exit.
2320       Raise a warning during <application>configure</> based on the
2321       compile-time OpenLDAP version number, and test the crashing scenario
2322       in the <filename>contrib/dblink</> regression test.
2323      </para>
2324     </listitem>
2325
2326 <!--
2327 Author: Noah Misch <noah@leadboat.com>
2328 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
2329 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
2330 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
2331 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
2332 -->
2333
2334     <listitem>
2335      <para>
2336       In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
2337       with execute permissions (Noah Misch)
2338      </para>
2339     </listitem>
2340
2341 <!--
2342 Author: Tom Lane <tgl@sss.pgh.pa.us>
2343 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
2344 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
2345 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
2346 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
2347 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
2348 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
2349 -->
2350
2351     <listitem>
2352      <para>
2353       Make <application>pg_regress</> remove any temporary installation it
2354       created upon successful exit (Tom Lane)
2355      </para>
2356
2357      <para>
2358       This results in a very substantial reduction in disk space usage
2359       during <literal>make check-world</>, since that sequence involves
2360       creation of numerous temporary installations.
2361      </para>
2362     </listitem>
2363
2364 <!--
2365 Author: Tom Lane <tgl@sss.pgh.pa.us>
2366 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
2367 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
2368 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
2369 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
2370 -->
2371
2372     <listitem>
2373      <para>
2374       Support time zone abbreviations that change UTC offset from time to
2375       time (Tom Lane)
2376      </para>
2377
2378      <para>
2379       Previously, <productname>PostgreSQL</> assumed that the UTC offset
2380       associated with a time zone abbreviation (such as <literal>EST</>)
2381       never changes in the usage of any particular locale.  However this
2382       assumption fails in the real world, so introduce the ability for a
2383       zone abbreviation to represent a UTC offset that sometimes changes.
2384       Update the zone abbreviation definition files to make use of this
2385       feature in timezone locales that have changed the UTC offset of their
2386       abbreviations since 1970 (according to the IANA timezone database).
2387       In such timezones, <productname>PostgreSQL</> will now associate the
2388       correct UTC offset with the abbreviation depending on the given date.
2389      </para>
2390     </listitem>
2391
2392 <!--
2393 Author: Tom Lane <tgl@sss.pgh.pa.us>
2394 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
2395 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
2396 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
2397 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
2398 Author: Tom Lane <tgl@sss.pgh.pa.us>
2399 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
2400 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
2401 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
2402 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
2403 -->
2404
2405     <listitem>
2406      <para>
2407       Update time zone abbreviations lists (Tom Lane)
2408      </para>
2409
2410      <para>
2411       Add CST (China Standard Time) to our lists.
2412       Remove references to ADT as <quote>Arabia Daylight Time</>, an
2413       abbreviation that's been out of use since 2007; therefore, claiming
2414       there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
2415       especially helpful.
2416       Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
2417       (Fiji); we didn't even have them on the proper side of the date line.
2418      </para>
2419     </listitem>
2420
2421 <!--
2422 Author: Tom Lane <tgl@sss.pgh.pa.us>
2423 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
2424 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
2425 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
2426 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
2427 Author: Tom Lane <tgl@sss.pgh.pa.us>
2428 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
2429 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
2430 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
2431 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
2432 Author: Tom Lane <tgl@sss.pgh.pa.us>
2433 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
2434 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
2435 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
2436 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
2437 -->
2438
2439     <listitem>
2440      <para>
2441       Update time zone data files to <application>tzdata</> release 2015a.
2442      </para>
2443
2444      <para>
2445       The IANA timezone database has adopted abbreviations of the form
2446       <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
2447       for all Australian time zones, reflecting what they believe to be
2448       current majority practice Down Under.  These names do not conflict
2449       with usage elsewhere (other than ACST for Acre Summer Time, which has
2450       been in disuse since 1994).  Accordingly, adopt these names into
2451       our <quote>Default</> timezone abbreviation set.
2452       The <quote>Australia</> abbreviation set now contains only CST, EAST,
2453       EST, SAST, SAT, and WST, all of which are thought to be mostly
2454       historical usage.  Note that SAST has also been changed to be South
2455       Africa Standard Time in the <quote>Default</> abbreviation set.
2456      </para>
2457
2458      <para>
2459       Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
2460       (Asia/Urumqi), and use WSST/WSDT for western Samoa.  Also, there were
2461       DST law changes in Chile, Mexico, the Turks &amp; Caicos Islands
2462       (America/Grand_Turk), and Fiji.  There is a new zone
2463       Pacific/Bougainville for portions of Papua New Guinea.  Also, numerous
2464       corrections for historical (pre-1970) time zone data.
2465      </para>
2466     </listitem>
2467
2468    </itemizedlist>
2469
2470   </sect2>
2471  </sect1>
2472
2473  <sect1 id="release-9-3-5">
2474   <title>Release 9.3.5</title>
2475
2476   <note>
2477   <title>Release Date</title>
2478   <simpara>2014-07-24</simpara>
2479   </note>
2480
2481   <para>
2482    This release contains a variety of fixes from 9.3.4.
2483    For information about new features in the 9.3 major release, see
2484    <xref linkend="release-9-3">.
2485   </para>
2486
2487   <sect2>
2488    <title>Migration to Version 9.3.5</title>
2489
2490    <para>
2491     A dump/restore is not required for those running 9.3.X.
2492    </para>
2493
2494    <para>
2495     However, this release corrects a logic error
2496     in <application>pg_upgrade</>, as well as an index corruption problem in
2497     some GiST indexes.  See the first two changelog entries below to find out
2498     whether your installation has been affected and what steps you should take
2499     if so.
2500    </para>
2501
2502    <para>
2503     Also, if you are upgrading from a version earlier than 9.3.4,
2504     see <xref linkend="release-9-3-4">.
2505    </para>
2506
2507   </sect2>
2508
2509   <sect2>
2510    <title>Changes</title>
2511
2512    <itemizedlist>
2513
2514 <!--
2515 Author: Bruce Momjian <bruce@momjian.us>
2516 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
2517 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
2518 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
2519 -->
2520
2521     <listitem>
2522      <para>
2523       In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
2524       left behind by <application>initdb</> (Bruce Momjian)
2525      </para>
2526
2527      <para>
2528       If you used a pre-9.3.5 version of <application>pg_upgrade</> to
2529       upgrade a database cluster to 9.3, it might have left behind a file
2530       <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
2531       there and will eventually cause problems in <command>VACUUM</>.
2532       <emphasis>However, in common cases this file is actually valid and
2533       must not be removed.</emphasis>
2534       To determine whether your installation has this problem, run this
2535       query as superuser, in any database of the cluster:
2536 <programlisting>
2537 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
2538 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
2539        NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
2540        NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
2541        EXISTS (SELECT * FROM list WHERE file != '0000')
2542        AS file_0000_removal_required;
2543 </programlisting>
2544       If this query returns <literal>t</>, manually remove the file
2545       <filename>$PGDATA/pg_multixact/offsets/0000</>.
2546       Do nothing if the query returns <literal>f</>.
2547      </para>
2548     </listitem>
2549
2550 <!--
2551 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2552 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
2553 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
2554 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
2555 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
2556 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
2557 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
2558 -->
2559
2560     <listitem>
2561      <para>
2562       Correctly initialize padding bytes in <filename>contrib/btree_gist</>
2563       indexes on <type>bit</> columns (Heikki Linnakangas)
2564      </para>
2565
2566      <para>
2567       This error could result in incorrect query results due to values that
2568       should compare equal not being seen as equal.
2569       Users with GiST indexes on <type>bit</> or <type>bit varying</>
2570       columns should <command>REINDEX</> those indexes after installing this
2571       update.
2572      </para>
2573     </listitem>
2574
2575 <!--
2576 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2577 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
2578 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
2579 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
2580 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
2581 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
2582 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
2583 -->
2584
2585     <listitem>
2586      <para>
2587       Protect against torn pages when deleting GIN list pages (Heikki
2588       Linnakangas)
2589      </para>
2590
2591      <para>
2592       This fix prevents possible index corruption if a system crash occurs
2593       while the page update is being written to disk.
2594      </para>
2595     </listitem>
2596
2597 <!--
2598 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2599 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
2600 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
2601 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
2602 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
2603 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
2604 -->
2605
2606     <listitem>
2607      <para>
2608       Don't clear the right-link of a GiST index page while replaying
2609       updates from WAL (Heikki Linnakangas)
2610      </para>
2611
2612      <para>
2613       This error could lead to transiently wrong answers from GiST index
2614       scans performed in Hot Standby.
2615      </para>
2616     </listitem>
2617
2618 <!--
2619 Author: Tom Lane <tgl@sss.pgh.pa.us>
2620 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
2621 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
2622 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
2623 -->
2624
2625     <listitem>
2626      <para>
2627       Fix corner-case infinite loop during insertion into an SP-GiST text
2628       index (Tom Lane)
2629      </para>
2630     </listitem>
2631
2632 <!--
2633 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2634 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
2635 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
2636 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
2637 -->
2638
2639     <listitem>
2640      <para>
2641       Fix incorrect answers from SP-GiST index searches
2642       with <literal>-|-</literal> (range adjacency) operator
2643       (Heikki Linnakangas)
2644      </para>
2645     </listitem>
2646
2647 <!--
2648 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2649 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
2650 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
2651 -->
2652
2653     <listitem>
2654      <para>
2655       Fix wraparound handling for <filename>pg_multixact/members</>
2656       (&Aacute;lvaro Herrera)
2657      </para>
2658     </listitem>
2659
2660 <!--
2661 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2662 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
2663 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
2664 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
2665 -->
2666
2667     <listitem>
2668      <para>
2669       Truncate <structname>pg_multixact</> during checkpoints, not
2670       during <command>VACUUM</> (&Aacute;lvaro Herrera)
2671      </para>
2672
2673      <para>
2674       This change ensures that <structname>pg_multixact</> segments can't be
2675       removed if they'd still be needed during WAL replay after a crash.
2676      </para>
2677     </listitem>
2678
2679 <!--
2680 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2681 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
2682 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
2683 -->
2684
2685     <listitem>
2686      <para>
2687       Fix possible inconsistency of all-visible flags after WAL recovery
2688       (Heikki Linnakangas)
2689      </para>
2690     </listitem>
2691
2692 <!--
2693 Author: Tom Lane <tgl@sss.pgh.pa.us>
2694 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
2695 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
2696 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
2697 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
2698 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
2699 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
2700 -->
2701
2702     <listitem>
2703      <para>
2704       Fix possibly-incorrect cache invalidation during nested calls
2705       to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
2706      </para>
2707     </listitem>
2708
2709 <!--
2710 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2711 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
2712 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
2713 -->
2714
2715     <listitem>
2716      <para>
2717       Fix race condition when updating a tuple concurrently locked by
2718       another process (Andres Freund, &Aacute;lvaro Herrera)
2719      </para>
2720     </listitem>
2721
2722 <!--
2723 Author: Tom Lane <tgl@sss.pgh.pa.us>
2724 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
2725 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
2726 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
2727 -->
2728
2729     <listitem>
2730      <para>
2731       Fix <quote>could not find pathkey item to sort</> planner failures
2732       with <literal>UNION ALL</> over subqueries reading from tables with
2733       inheritance children (Tom Lane)
2734      </para>
2735     </listitem>
2736
2737 <!--
2738 Author: Tom Lane <tgl@sss.pgh.pa.us>
2739 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
2740 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
2741 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
2742 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
2743 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
2744 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
2745 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
2746 -->
2747
2748     <listitem>
2749      <para>
2750       Don't assume a subquery's output is unique if there's a set-returning
2751       function in its targetlist (David Rowley)
2752      </para>
2753
2754      <para>
2755       This oversight could lead to misoptimization of constructs
2756       like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
2757       BY y)</literal>.
2758      </para>
2759     </listitem>
2760
2761 <!--
2762 Author: Tom Lane <tgl@sss.pgh.pa.us>
2763 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
2764 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
2765 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
2766 -->
2767
2768     <listitem>
2769      <para>
2770       Improve planner to drop constant-NULL inputs
2771       of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
2772      </para>
2773
2774      <para>
2775       This change fixes some cases where the more aggressive parameter
2776       substitution done by 9.2 and later can lead to a worse plan than
2777       older versions produced.
2778      </para>
2779     </listitem>
2780
2781 <!--
2782 Author: Tom Lane <tgl@sss.pgh.pa.us>
2783 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
2784 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
2785 -->
2786
2787     <listitem>
2788      <para>
2789       Ensure that the planner sees equivalent <literal>VARIADIC</> and
2790       non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
2791      </para>
2792
2793      <para>
2794       This bug could for example result in failure to use expression indexes
2795       involving variadic functions.  It might be necessary to re-create such
2796       indexes, and/or re-create views including variadic function calls that
2797       should match the indexes, for the fix to be effective for existing 9.3
2798       installations.
2799      </para>
2800     </listitem>
2801
2802 <!--
2803 Author: Tom Lane <tgl@sss.pgh.pa.us>
2804 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
2805 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
2806 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
2807 -->
2808
2809     <listitem>
2810      <para>
2811       Fix handling of nested <type>JSON</> objects
2812       in <function>json_populate_recordset()</> and friends
2813       (Michael Paquier, Tom Lane)
2814      </para>
2815
2816      <para>
2817       A nested <type>JSON</> object could result in previous fields of the
2818       parent object not being shown in the output.
2819      </para>
2820     </listitem>
2821
2822 <!--
2823 Author: Tom Lane <tgl@sss.pgh.pa.us>
2824 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
2825 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
2826 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
2827 -->
2828
2829     <listitem>
2830      <para>
2831       Fix identification of input type category in <function>to_json()</>
2832       and friends (Tom Lane)
2833      </para>
2834
2835      <para>
2836       This is known to have led to inadequate quoting of <type>money</>
2837       fields in the <type>JSON</> result, and there may have been wrong
2838       results for other data types as well.
2839      </para>
2840     </listitem>
2841
2842 <!--
2843 Author: Tom Lane <tgl@sss.pgh.pa.us>
2844 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
2845 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
2846 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
2847 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
2848 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
2849 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
2850 -->
2851
2852     <listitem>
2853      <para>
2854       Fix failure to detoast fields in composite elements of structured
2855       types (Tom Lane)
2856      </para>
2857
2858      <para>
2859       This corrects cases where TOAST pointers could be copied into other
2860       tables without being dereferenced.  If the original data is later
2861       deleted, it would lead to errors like <quote>missing chunk number 0
2862       for toast value ...</> when the now-dangling pointer is used.
2863      </para>
2864     </listitem>
2865
2866 <!--
2867 Author: Tom Lane <tgl@sss.pgh.pa.us>
2868 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
2869 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
2870 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
2871 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
2872 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
2873 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
2874 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
2875 -->
2876
2877     <listitem>
2878      <para>
2879       Fix <quote>record type has not been registered</> failures with
2880       whole-row references to the output of Append plan nodes (Tom Lane)
2881      </para>
2882     </listitem>
2883
2884 <!--
2885 Author: Tom Lane <tgl@sss.pgh.pa.us>
2886 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
2887 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
2888 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
2889 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
2890 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
2891 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
2892 -->
2893
2894     <listitem>
2895      <para>
2896       Fix possible crash when invoking a user-defined function while
2897       rewinding a cursor (Tom Lane)
2898      </para>
2899     </listitem>
2900
2901 <!--
2902 Author: Tom Lane <tgl@sss.pgh.pa.us>
2903 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
2904 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
2905 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
2906 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
2907 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
2908 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
2909 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
2910 -->
2911
2912     <listitem>
2913      <para>
2914       Fix query-lifespan memory leak while evaluating the arguments for a
2915       function in <literal>FROM</> (Tom Lane)
2916      </para>
2917     </listitem>
2918
2919 <!--
2920 Author: Tom Lane <tgl@sss.pgh.pa.us>
2921 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
2922 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
2923 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
2924 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
2925 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
2926 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
2927 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
2928 -->
2929
2930     <listitem>
2931      <para>
2932       Fix session-lifespan memory leaks in regular-expression processing
2933       (Tom Lane, Arthur O'Dwyer, Greg Stark)
2934      </para>
2935     </listitem>
2936
2937 <!--
2938 Author: Tom Lane <tgl@sss.pgh.pa.us>
2939 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
2940 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
2941 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
2942 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
2943 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
2944 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
2945 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
2946 -->
2947
2948     <listitem>
2949      <para>
2950       Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
2951      </para>
2952     </listitem>
2953
2954 <!--
2955 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2956 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
2957 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
2958 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
2959 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
2960 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
2961 -->
2962
2963     <listitem>
2964      <para>
2965       Prevent foreign tables from being created with OIDS
2966       when <xref linkend="guc-default-with-oids"> is true
2967       (Etsuro Fujita)
2968      </para>
2969     </listitem>
2970
2971 <!--
2972 Author: Andres Freund <andres@anarazel.de>
2973 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
2974 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
2975 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
2976 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
2977 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
2978 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
2979 -->
2980
2981     <listitem>
2982      <para>
2983       Fix liveness checks for rows that were inserted in the current
2984       transaction and then deleted by a now-rolled-back subtransaction
2985       (Andres Freund)
2986      </para>
2987
2988      <para>
2989       This could cause problems (at least spurious warnings, and at worst an
2990       infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
2991       done later in the same transaction.
2992      </para>
2993     </listitem>
2994
2995 <!--
2996 Author: Tom Lane <tgl@sss.pgh.pa.us>
2997 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
2998 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
2999 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
3000 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
3001 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
3002 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
3003 -->
3004
3005     <listitem>
3006      <para>
3007       Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
3008       during <command>PREPARE TRANSACTION</> (Andres Freund)
3009      </para>
3010
3011      <para>
3012       After the <command>PREPARE</>, the originating session is no longer in
3013       a transaction, so it should not continue to display a transaction
3014       start time.
3015      </para>
3016     </listitem>
3017
3018 <!--
3019 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3020 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
3021 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
3022 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
3023 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
3024 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
3025 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
3026 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
3027 -->
3028
3029     <listitem>
3030      <para>
3031       Fix <command>REASSIGN OWNED</> to not fail for text search objects
3032       (&Aacute;lvaro Herrera)
3033      </para>
3034     </listitem>
3035
3036 <!--
3037 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3038 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
3039 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
3040 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
3041 -->
3042
3043     <listitem>
3044      <para>
3045       Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
3046       going backwards during <command>VACUUM FULL</> (&Aacute;lvaro Herrera)
3047      </para>
3048     </listitem>
3049
3050 <!--
3051 Author: Tom Lane <tgl@sss.pgh.pa.us>
3052 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
3053 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
3054 -->
3055
3056     <listitem>
3057      <para>
3058       Reduce indentation in rule/view dumps to improve readability and avoid
3059       excessive whitespace (Greg Stark, Tom Lane)
3060      </para>
3061
3062      <para>
3063       This change reduces the amount of indentation applied to nested
3064       constructs, including some cases that the user probably doesn't think
3065       of as nested, such as UNION lists.  Previously, deeply nested
3066       constructs were printed with an amount of whitespace growing as
3067       O(N^2), which created a performance problem and even risk of
3068       out-of-memory failures.  Now the indentation is reduced modulo 40,
3069       which is initially odd to look at but seems to preserve readability
3070       better than simply limiting the indentation would do.
3071       Redundant parenthesization of UNION lists has been reduced as well.
3072      </para>
3073     </listitem>
3074
3075 <!--
3076 Author: Tom Lane <tgl@sss.pgh.pa.us>
3077 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
3078 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
3079 -->
3080
3081     <listitem>
3082      <para>
3083       Fix dumping of rules/views when subsequent addition of a column has
3084       resulted in multiple input columns matching a <literal>USING</>
3085       specification (Tom Lane)
3086      </para>
3087     </listitem>
3088
3089 <!--
3090 Author: Tom Lane <tgl@sss.pgh.pa.us>
3091 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
3092 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
3093 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
3094 -->
3095
3096     <listitem>
3097      <para>
3098       Repair view printing for some cases involving functions
3099       in <literal>FROM</> that return a composite type containing dropped
3100       columns (Tom Lane)
3101      </para>
3102     </listitem>
3103
3104 <!--
3105 Author: Tom Lane <tgl@sss.pgh.pa.us>
3106 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
3107 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
3108 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
3109 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
3110 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
3111 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
3112 -->
3113
3114     <listitem>
3115      <para>
3116       Block signals during postmaster startup (Tom Lane)
3117      </para>
3118
3119      <para>
3120       This ensures that the postmaster will properly clean up after itself
3121       if, for example, it receives <systemitem>SIGINT</> while still
3122       starting up.
3123      </para>
3124     </listitem>
3125
3126 <!--
3127 Author: Tom Lane <tgl@sss.pgh.pa.us>
3128 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
3129 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
3130 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
3131 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
3132 -->
3133
3134     <listitem>
3135      <para>
3136       Fix client host name lookup when processing <filename>pg_hba.conf</>
3137       entries that specify host names instead of IP addresses (Tom Lane)
3138      </para>
3139
3140      <para>
3141       Ensure that reverse-DNS lookup failures are reported, instead of just
3142       silently not matching such entries.  Also ensure that we make only
3143       one reverse-DNS lookup attempt per connection, not one per host name
3144       entry, which is what previously happened if the lookup attempts failed.
3145      </para>
3146     </listitem>
3147
3148 <!--
3149 Author: Tom Lane <tgl@sss.pgh.pa.us>
3150 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
3151 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
3152 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
3153 -->
3154
3155     <listitem>
3156      <para>
3157       Allow the root user to use <literal>postgres -C variable</> and
3158       <literal>postgres --describe-config</> (MauMau)
3159      </para>
3160
3161      <para>
3162       The prohibition on starting the server as root does not need to extend
3163       to these operations, and relaxing it prevents failure
3164       of <application>pg_ctl</> in some scenarios.
3165      </para>
3166     </listitem>
3167
3168 <!--
3169 Author: Noah Misch <noah@leadboat.com>
3170 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
3171 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
3172 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
3173 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
3174 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
3175 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
3176 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
3177 -->
3178
3179     <listitem>
3180      <para>
3181       Secure Unix-domain sockets of temporary postmasters started during
3182       <literal>make check</> (Noah Misch)
3183      </para>
3184
3185      <para>
3186       Any local user able to access the socket file could connect as the
3187       server's bootstrap superuser, then proceed to execute arbitrary code as
3188       the operating-system user running the test, as we previously noted in
3189       CVE-2014-0067.  This change defends against that risk by placing the
3190       server's socket in a temporary, mode 0700 subdirectory
3191       of <filename>/tmp</>.  The hazard remains however on platforms where
3192       Unix sockets are not supported, notably Windows, because then the
3193       temporary postmaster must accept local TCP connections.
3194      </para>
3195
3196      <para>
3197       A useful side effect of this change is to simplify
3198       <literal>make check</> testing in builds that
3199       override <literal>DEFAULT_PGSOCKET_DIR</>.  Popular non-default values
3200       like <filename>/var/run/postgresql</> are often not writable by the
3201       build user, requiring workarounds that will no longer be necessary.
3202      </para>
3203     </listitem>
3204
3205 <!--
3206 Author: Tom Lane <tgl@sss.pgh.pa.us>
3207 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
3208 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
3209 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
3210 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
3211 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
3212 -->
3213
3214     <listitem>
3215      <para>
3216       Fix tablespace creation WAL replay to work on Windows (MauMau)
3217      </para>
3218     </listitem>
3219
3220 <!--
3221 Author: Bruce Momjian <bruce@momjian.us>
3222 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
3223 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
3224 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
3225 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
3226 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
3227 -->
3228
3229     <listitem>
3230      <para>
3231       Fix detection of socket creation failures on Windows (Bruce Momjian)
3232      </para>
3233     </listitem>
3234
3235 <!--
3236 Author: Tom Lane <tgl@sss.pgh.pa.us>
3237 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
3238 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
3239 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
3240 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
3241 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
3242 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
3243 -->
3244
3245     <listitem>
3246      <para>
3247       On Windows, allow new sessions to absorb values of PGC_BACKEND
3248       parameters (such as <xref linkend="guc-log-connections">) from the
3249       configuration file (Amit Kapila)
3250      </para>
3251
3252      <para>
3253       Previously, if such a parameter were changed in the file post-startup,
3254       the change would have no effect.
3255      </para>
3256     </listitem>
3257
3258 <!--
3259 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3260 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
3261 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
3262 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
3263 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
3264 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
3265 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
3266 -->
3267
3268     <listitem>
3269      <para>
3270       Properly quote executable path names on Windows (Nikhil Deshpande)
3271      </para>
3272
3273      <para>
3274       This oversight could cause <application>initdb</>
3275       and <application>pg_upgrade</> to fail on Windows, if the installation
3276       path contained both spaces and <literal>@</> signs.
3277      </para>
3278     </listitem>
3279
3280 <!--
3281 Author: Tom Lane <tgl@sss.pgh.pa.us>
3282 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
3283 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
3284 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
3285 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
3286 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
3287 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
3288 -->
3289
3290     <listitem>
3291      <para>
3292       Fix linking of <application>libpython</> on OS X (Tom Lane)
3293      </para>
3294
3295      <para>
3296       The method we previously used can fail with the Python library
3297       supplied by Xcode 5.0 and later.
3298      </para>
3299     </listitem>
3300
3301 <!--
3302 Author: Tom Lane <tgl@sss.pgh.pa.us>
3303 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
3304 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
3305 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
3306 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
3307 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
3308 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
3309 -->
3310
3311     <listitem>
3312      <para>
3313       Avoid buffer bloat in <application>libpq</> when the server
3314       consistently sends data faster than the client can absorb it
3315       (Shin-ichi Morita, Tom Lane)
3316      </para>
3317
3318      <para>
3319       <application>libpq</> could be coerced into enlarging its input buffer
3320       until it runs out of memory (which would be reported misleadingly
3321       as <quote>lost synchronization with server</>).  Under ordinary
3322       circumstances it's quite far-fetched that data could be continuously
3323       transmitted more quickly than the <function>recv()</> loop can
3324       absorb it, but this has been observed when the client is artificially
3325       slowed by scheduler constraints.
3326      </para>
3327     </listitem>
3328
3329 <!--
3330 Author: Magnus Hagander <magnus@hagander.net>
3331 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
3332 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
3333 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
3334 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
3335 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
3336 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
3337 -->
3338
3339     <listitem>
3340      <para>
3341       Ensure that LDAP lookup attempts in <application>libpq</> time out as
3342       intended (Laurenz Albe)
3343      </para>
3344     </listitem>
3345
3346 <!--
3347 Author: Michael Meskes <meskes@postgresql.org>
3348 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
3349 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
3350 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
3351 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
3352 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
3353
3354 Author: Michael Meskes <meskes@postgresql.org>
3355 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
3356 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
3357 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
3358 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
3359 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
3360 -->
3361
3362     <listitem>
3363      <para>
3364       Fix <application>ecpg</> to do the right thing when an array
3365       of <type>char *</> is the target for a FETCH statement returning more
3366       than one row, as well as some other array-handling fixes
3367       (Ashutosh Bapat)
3368      </para>
3369     </listitem>
3370
3371 <!--
3372 Author: Tom Lane <tgl@sss.pgh.pa.us>
3373 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
3374 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
3375 -->
3376
3377     <listitem>
3378      <para>
3379       Fix <application>pg_dump</> to cope with a materialized view that
3380       depends on a table's primary key (Tom Lane)
3381      </para>
3382
3383      <para>
3384       This occurs if the view's query relies on functional dependency to
3385       abbreviate a <literal>GROUP BY</> list.  <application>pg_dump</> got
3386       sufficiently confused that it dumped the materialized view as a
3387       regular view.
3388      </para>
3389     </listitem>
3390
3391 <!--
3392 Author: Tom Lane <tgl@sss.pgh.pa.us>
3393 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
3394 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
3395 -->
3396
3397     <listitem>
3398      <para>
3399       Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
3400       (Tom Lane)
3401      </para>
3402     </listitem>
3403
3404 <!--
3405 Author: Tom Lane <tgl@sss.pgh.pa.us>
3406 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
3407 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
3408 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
3409 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
3410 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
3411 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
3412 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
3413 -->
3414
3415     <listitem>
3416      <para>
3417       Fix <application>pg_restore</>'s processing of old-style large object
3418       comments (Tom Lane)
3419      </para>
3420
3421      <para>
3422       A direct-to-database restore from an archive file generated by a
3423       pre-9.0 version of <application>pg_dump</> would usually fail if the
3424       archive contained more than a few comments for large objects.
3425      </para>
3426     </listitem>
3427
3428 <!--
3429 Author: Bruce Momjian <bruce@momjian.us>
3430 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
3431 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
3432 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
3433 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
3434 -->
3435
3436     <listitem>
3437      <para>
3438       Fix <application>pg_upgrade</> for cases where the new server creates
3439       a TOAST table but the old version did not (Bruce Momjian)
3440      </para>
3441
3442      <para>
3443       This rare situation would manifest as <quote>relation OID mismatch</>
3444       errors.
3445      </para>
3446     </listitem>
3447
3448 <!--
3449 Author: Bruce Momjian <bruce@momjian.us>
3450 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
3451 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
3452 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
3453
3454 Author: Tom Lane <tgl@sss.pgh.pa.us>
3455 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
3456 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
3457 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
3458 -->
3459
3460     <listitem>
3461      <para>
3462       In <application>pg_upgrade</>,
3463       preserve <structname>pg_database</>.<structfield>datminmxid</>
3464       and <structname>pg_class</>.<structfield>relminmxid</> values from the
3465       old cluster, or insert reasonable values when upgrading from pre-9.3;
3466       also defend against unreasonable values in the core server
3467       (Bruce Momjian, &Aacute;lvaro Herrera, Tom Lane)
3468      </para>
3469
3470      <para>
3471       These changes prevent scenarios in which autovacuum might insist on
3472       scanning the entire cluster's contents immediately upon starting the
3473       new cluster, or in which tracking of unfrozen MXID values might be
3474       disabled completely.
3475      </para>
3476     </listitem>
3477
3478 <!--
3479 Author: Tom Lane <tgl@sss.pgh.pa.us>
3480 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
3481 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
3482 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
3483 -->
3484
3485     <listitem>
3486      <para>
3487       Prevent <filename>contrib/auto_explain</> from changing the output of
3488       a user's <command>EXPLAIN</> (Tom Lane)
3489      </para>
3490
3491      <para>
3492       If <filename>auto_explain</> is active, it could cause
3493       an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
3494       print timing information.
3495      </para>
3496     </listitem>
3497
3498 <!--
3499 Author: Joe Conway <mail@joeconway.com>
3500 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
3501 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
3502 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
3503 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
3504 -->
3505
3506     <listitem>
3507      <para>
3508       Fix query-lifespan memory leak in <filename>contrib/dblink</>
3509       (MauMau, Joe Conway)
3510      </para>
3511     </listitem>
3512
3513 <!--
3514 Author: Bruce Momjian <bruce@momjian.us>
3515 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
3516 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
3517 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
3518 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
3519 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
3520 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
3521 -->
3522
3523     <listitem>
3524      <para>
3525       In <filename>contrib/pgcrypto</> functions, ensure sensitive
3526       information is cleared from stack variables before returning
3527       (Marko Kreen)
3528      </para>
3529     </listitem>
3530
3531 <!--
3532 Author: Noah Misch <noah@leadboat.com>
3533 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
3534 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
3535 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
3536 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
3537 -->
3538
3539     <listitem>
3540      <para>
3541       Prevent use of already-freed memory in
3542       <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
3543       (Noah Misch)
3544      </para>
3545     </listitem>
3546
3547 <!--
3548 Author: Tom Lane <tgl@sss.pgh.pa.us>
3549 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
3550 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
3551 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
3552 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
3553 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
3554 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
3555 -->
3556
3557     <listitem>
3558      <para>
3559       In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
3560       library across calls (Tom Lane)
3561      </para>
3562
3563      <para>
3564       This improves the efficiency of UUID generation and reduces the amount
3565       of entropy drawn from <filename>/dev/urandom</>, on platforms that
3566       have that.
3567      </para>
3568     </listitem>
3569
3570 <!--
3571 Author: Tom Lane <tgl@sss.pgh.pa.us>
3572 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
3573 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
3574 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
3575 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
3576 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
3577 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
3578 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
3579 -->
3580
3581     <listitem>
3582      <para>
3583       Update time zone data files to <application>tzdata</> release 2014e
3584       for DST law changes in Crimea, Egypt, and Morocco.
3585      </para>
3586     </listitem>
3587
3588    </itemizedlist>
3589
3590   </sect2>
3591  </sect1>
3592
3593  <sect1 id="release-9-3-4">
3594   <title>Release 9.3.4</title>
3595
3596   <note>
3597   <title>Release Date</title>
3598   <simpara>2014-03-20</simpara>
3599   </note>
3600
3601   <para>
3602    This release contains a variety of fixes from 9.3.3.
3603    For information about new features in the 9.3 major release, see
3604    <xref linkend="release-9-3">.
3605   </para>
3606
3607   <sect2>
3608    <title>Migration to Version 9.3.4</title>
3609
3610    <para>
3611     A dump/restore is not required for those running 9.3.X.
3612    </para>
3613
3614    <para>
3615     However, the error fixed in the first changelog entry below could have
3616     resulted in corrupt data on standby servers.  It may be prudent to
3617     reinitialize standby servers from fresh base backups after installing
3618     this update.
3619    </para>
3620
3621    <para>
3622     Also, if you are upgrading from a version earlier than 9.3.3,
3623     see <xref linkend="release-9-3-3">.
3624    </para>
3625
3626   </sect2>
3627
3628   <sect2>
3629    <title>Changes</title>
3630
3631    <itemizedlist>
3632
3633 <!--
3634 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3635 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
3636 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
3637 -->
3638
3639     <listitem>
3640      <para>
3641       Fix WAL replay of locking an already-updated tuple (Andres Freund,
3642       &Aacute;lvaro Herrera)
3643      </para>
3644
3645      <para>
3646       This error caused updated rows to not be found by index scans, resulting
3647       in inconsistent query results depending on whether an index scan was
3648       used.  Subsequent processing could result in constraint violations,
3649       since the previously updated row would not be found by later index
3650       searches, thus possibly allowing conflicting rows to be inserted.
3651       Since this error is in WAL replay, it would only manifest during crash
3652       recovery or on standby servers.  The improperly-replayed case most
3653       commonly arises when a table row that is referenced by a foreign-key
3654       constraint is updated concurrently with creation of a referencing row.
3655      </para>
3656     </listitem>
3657
3658 <!--
3659 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3660 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
3661 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
3662 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
3663 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
3664 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
3665 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
3666 -->
3667
3668     <listitem>
3669      <para>
3670       Restore GIN metapages unconditionally to avoid torn-page risk
3671       (Heikki Linnakangas)
3672      </para>
3673
3674      <para>
3675       Although this oversight could theoretically result in a corrupted
3676       index, it is unlikely to have caused any problems in practice, since
3677       the active part of a GIN metapage is smaller than a standard 512-byte
3678       disk sector.
3679      </para>
3680     </listitem>
3681
3682 <!--
3683 Author: Tom Lane <tgl@sss.pgh.pa.us>
3684 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
3685 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
3686 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
3687 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
3688 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
3689 -->
3690
3691     <listitem>
3692      <para>
3693       Avoid race condition in checking transaction commit status during
3694       receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
3695      </para>
3696
3697      <para>
3698       This prevents a scenario wherein a sufficiently fast client might
3699       respond to a notification before database updates made by the
3700       notifier have become visible to the recipient.
3701      </para>
3702     </listitem>
3703
3704 <!--
3705 Author: Tom Lane <tgl@sss.pgh.pa.us>
3706 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
3707 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
3708 -->
3709
3710     <listitem>
3711      <para>
3712       Allow materialized views to be referenced in <command>UPDATE</>
3713       and <command>DELETE</> commands (Michael Paquier)
3714      </para>
3715
3716      <para>
3717       Previously such queries failed with a complaint about not being able
3718       to lock rows in the materialized view.
3719      </para>
3720     </listitem>
3721
3722 <!--
3723 Author: Tom Lane <tgl@sss.pgh.pa.us>
3724 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
3725 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
3726 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
3727 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
3728 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
3729 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
3730 -->
3731
3732     <listitem>
3733      <para>
3734       Allow regular-expression operators to be terminated early by query
3735       cancel requests (Tom Lane)
3736      </para>
3737
3738      <para>
3739       This prevents scenarios wherein a pathological regular expression
3740       could lock up a server process uninterruptably for a long time.
3741      </para>
3742     </listitem>
3743
3744 <!--
3745 Author: Tom Lane <tgl@sss.pgh.pa.us>
3746 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
3747 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
3748 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
3749 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
3750 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
3751 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
3752 -->
3753
3754     <listitem>
3755      <para>
3756       Remove incorrect code that tried to allow <literal>OVERLAPS</> with
3757       single-element row arguments (Joshua Yanovski)
3758      </para>
3759
3760      <para>
3761       This code never worked correctly, and since the case is neither
3762       specified by the SQL standard nor documented, it seemed better to
3763       remove it than fix it.
3764      </para>
3765     </listitem>
3766
3767 <!--
3768 Author: Tom Lane <tgl@sss.pgh.pa.us>
3769 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
3770 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
3771 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
3772 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
3773 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
3774 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
3775 -->
3776
3777     <listitem>
3778      <para>
3779       Avoid getting more than <literal>AccessShareLock</> when de-parsing a
3780       rule or view (Dean Rasheed)
3781      </para>
3782
3783      <para>
3784       This oversight resulted in <application>pg_dump</> unexpectedly
3785       acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
3786       the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
3787       commands in rules.  While usually harmless, that could interfere with
3788       concurrent transactions that tried to acquire, for example,
3789       <literal>ShareLock</> on those tables.
3790      </para>
3791     </listitem>
3792
3793 <!--
3794 Author: Tom Lane <tgl@sss.pgh.pa.us>
3795 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
3796 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
3797 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
3798 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
3799 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
3800 -->
3801
3802     <listitem>
3803      <para>
3804       Improve performance of index endpoint probes during planning (Tom Lane)
3805      </para>
3806
3807      <para>
3808       This change fixes a significant performance problem that occurred
3809       when there were many not-yet-committed rows at the end of the index,
3810       which is a common situation for indexes on sequentially-assigned
3811       values such as timestamps or sequence-generated identifiers.
3812      </para>
3813     </listitem>
3814
3815 <!--
3816 Author: Tom Lane <tgl@sss.pgh.pa.us>
3817 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
3818 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
3819 -->
3820
3821     <listitem>
3822      <para>
3823       Use non-default selectivity estimates for
3824       <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
3825       <literal><replaceable>value</> <replaceable>operator</> ANY
3826       (<replaceable>array</>)</literal>
3827       expressions when the righthand side is a stable expression (Tom Lane)
3828      </para>
3829     </listitem>
3830
3831 <!--
3832 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3833 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
3834 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
3835 -->
3836
3837     <listitem>
3838      <para>
3839       Remove the correct per-database statistics file during <command>DROP
3840       DATABASE</> (Tomas Vondra)
3841      </para>
3842
3843      <para>
3844       This fix prevents a permanent leak of statistics file space.
3845       Users who have done many <command>DROP DATABASE</> commands since
3846       upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
3847       statistics directory and delete statistics files that do not
3848       correspond to any existing database.  Please note
3849       that <filename>db_0.stat</> should not be removed.
3850      </para>
3851     </listitem>
3852
3853 <!--
3854 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3855 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
3856 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
3857 -->
3858
3859     <listitem>
3860      <para>
3861       Fix <application>walsender</> ping logic to avoid inappropriate
3862       disconnects under continuous load (Andres Freund, Heikki Linnakangas)
3863      </para>
3864
3865      <para>
3866       <application>walsender</> failed to send ping messages to the client
3867       if it was constantly busy sending WAL data; but it expected to see
3868       ping responses despite that, and would therefore disconnect
3869       once <xref linkend="guc-wal-sender-timeout"> elapsed.
3870      </para>
3871     </listitem>
3872
3873 <!--
3874 Author: Fujii Masao <fujii@postgresql.org>
3875 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
3876 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
3877 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
3878 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
3879 -->
3880
3881     <listitem>
3882      <para>
3883       Fix <application>walsender</>'s failure to shut down cleanly when client
3884       is <application>pg_receivexlog</> (Fujii Masao)
3885      </para>
3886     </listitem>
3887
3888 <!--
3889 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3890 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
3891 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
3892 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
3893 -->
3894
3895     <listitem>
3896      <para>
3897       Check WAL level and hot standby parameters correctly when doing crash
3898       recovery that will be followed by archive recovery (Heikki Linnakangas)
3899      </para>
3900     </listitem>
3901
3902 <!--
3903 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3904 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
3905 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
3906 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
3907 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
3908 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
3909 -->
3910
3911     <listitem>
3912      <para>
3913       Fix test to see if hot standby connections can be allowed immediately
3914       after a crash (Heikki Linnakangas)
3915      </para>
3916     </listitem>
3917
3918 <!--
3919 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3920 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
3921 -->
3922
3923     <listitem>
3924      <para>
3925       Add read-only <xref linkend="guc-data-checksums"> parameter to
3926       display whether page checksums are enabled (Heikki Linnakangas)
3927      </para>
3928
3929      <para>
3930       Without this parameter, determining the state of checksum
3931       processing was difficult.
3932      </para>
3933     </listitem>
3934
3935 <!--
3936 Author: Tom Lane <tgl@sss.pgh.pa.us>
3937 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
3938 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
3939 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
3940 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
3941 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
3942 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
3943 -->
3944
3945     <listitem>
3946      <para>
3947       Prevent interrupts while reporting non-<literal>ERROR</> messages
3948       (Tom Lane)
3949      </para>
3950
3951      <para>
3952       This guards against rare server-process freezeups due to recursive
3953       entry to <function>syslog()</>, and perhaps other related problems.
3954      </para>
3955     </listitem>
3956
3957 <!--
3958 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3959 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
3960 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
3961 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
3962 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
3963 -->
3964
3965     <listitem>
3966      <para>
3967       Fix memory leak in PL/Perl when returning a composite result, including
3968       multiple-OUT-parameter cases (Alex Hunsaker)
3969      </para>
3970     </listitem>
3971
3972 <!--
3973 Author: Tom Lane <tgl@sss.pgh.pa.us>
3974 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
3975 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
3976 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
3977 -->
3978
3979     <listitem>
3980      <para>
3981       Fix tracking of <application>psql</> script line numbers
3982       during <literal>\copy</> from out-of-line data
3983       (Kumar Rajeev Rastogi, Amit Khandekar)
3984      </para>
3985
3986      <para>
3987       <literal>\copy ... from</> incremented the script file line number
3988       for each data line, even if the data was not coming from the script
3989       file.  This mistake resulted in wrong line numbers being reported for
3990       any errors occurring later in the same script file.
3991      </para>
3992     </listitem>
3993
3994 <!--
3995 Author: Tom Lane <tgl@sss.pgh.pa.us>
3996 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
3997 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
3998 -->
3999
4000     <listitem>
4001      <para>
4002       Fix <application>contrib/postgres_fdw</> to handle multiple join
4003       conditions properly (Tom Lane)
4004      </para>
4005
4006      <para>
4007       This oversight could result in sending <literal>WHERE</> clauses to
4008       the remote server for execution even though the clauses are not known
4009       to have the same semantics on the remote server (for example, clauses
4010       that use non-built-in operators).  The query might succeed anyway,
4011       but it could also fail with errors from the remote server, or worse
4012       give silently wrong answers.
4013      </para>
4014     </listitem>
4015
4016 <!--
4017 Author: Magnus Hagander <magnus@hagander.net>
4018 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
4019 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
4020 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
4021 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
4022 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
4023 -->
4024
4025     <listitem>
4026      <para>
4027       Prevent intermittent <quote>could not reserve shared memory region</>
4028       failures on recent Windows versions (MauMau)
4029      </para>
4030     </listitem>
4031
4032 <!--
4033 Author: Tom Lane <tgl@sss.pgh.pa.us>
4034 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
4035 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
4036 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
4037 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
4038 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
4039 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
4040 -->
4041
4042     <listitem>
4043      <para>
4044       Update time zone data files to <application>tzdata</> release 2014a
4045       for DST law changes in Fiji and Turkey, plus historical changes in
4046       Israel and Ukraine.
4047      </para>
4048     </listitem>
4049
4050    </itemizedlist>
4051
4052   </sect2>
4053  </sect1>
4054
4055  <sect1 id="release-9-3-3">
4056   <title>Release 9.3.3</title>
4057
4058   <note>
4059   <title>Release Date</title>
4060   <simpara>2014-02-20</simpara>
4061   </note>
4062
4063   <para>
4064    This release contains a variety of fixes from 9.3.2.
4065    For information about new features in the 9.3 major release, see
4066    <xref linkend="release-9-3">.
4067   </para>
4068
4069   <sect2>
4070    <title>Migration to Version 9.3.3</title>
4071
4072    <para>
4073     A dump/restore is not required for those running 9.3.X.
4074    </para>
4075
4076    <para>
4077     However, several of the issues corrected in this release could have
4078     resulted in corruption of foreign-key constraints; that is, there
4079     might now be referencing rows for which there is no matching row in
4080     the referenced table.  It may be worthwhile to recheck such
4081     constraints after installing this update.  The simplest way to do that
4082     is to drop and recreate each suspect constraint; however, that will
4083     require taking an exclusive lock on both tables, so it is unlikely to
4084     be acceptable in production databases.  Alternatively, you can do a
4085     manual join query between the two tables to look for unmatched rows.
4086    </para>
4087
4088    <para>
4089     Note also the requirement for replication standby servers to be
4090     upgraded before their master server is upgraded.
4091    </para>
4092
4093    <para>
4094     Also, if you are upgrading from a version earlier than 9.3.2,
4095     see <xref linkend="release-9-3-2">.
4096    </para>
4097
4098   </sect2>
4099
4100   <sect2>
4101    <title>Changes</title>
4102
4103    <itemizedlist>
4104
4105 <!--
4106 Author: Noah Misch <noah@leadboat.com>
4107 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
4108 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
4109 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
4110 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
4111 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
4112 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
4113 -->
4114
4115     <listitem>
4116      <para>
4117       Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
4118       (Noah Misch)
4119      </para>
4120
4121      <para>
4122       Granting a role without <literal>ADMIN OPTION</> is supposed to
4123       prevent the grantee from adding or removing members from the granted
4124       role, but this restriction was easily bypassed by doing <literal>SET
4125       ROLE</> first.  The security impact is mostly that a role member can
4126       revoke the access of others, contrary to the wishes of his grantor.
4127       Unapproved role member additions are a lesser concern, since an
4128       uncooperative role member could provide most of his rights to others
4129       anyway by creating views or <literal>SECURITY DEFINER</> functions.
4130       (CVE-2014-0060)
4131      </para>
4132     </listitem>
4133
4134 <!--
4135 Author: Noah Misch <noah@leadboat.com>
4136 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
4137 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
4138 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
4139 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
4140 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
4141 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
4142 -->
4143
4144     <listitem>
4145      <para>
4146       Prevent privilege escalation via manual calls to PL validator
4147       functions (Andres Freund)
4148      </para>
4149
4150      <para>
4151       The primary role of PL validator functions is to be called implicitly
4152       during <command>CREATE FUNCTION</>, but they are also normal SQL
4153       functions that a user can call explicitly.  Calling a validator on
4154       a function actually written in some other language was not checked
4155       for and could be exploited for privilege-escalation purposes.
4156       The fix involves adding a call to a privilege-checking function in
4157       each validator function.  Non-core procedural languages will also
4158       need to make this change to their own validator functions, if any.
4159       (CVE-2014-0061)
4160      </para>
4161     </listitem>
4162
4163 <!--
4164 Author: Robert Haas <rhaas@postgresql.org>
4165 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
4166 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
4167 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
4168 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
4169 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
4170 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
4171 -->
4172
4173     <listitem>
4174      <para>
4175       Avoid multiple name lookups during table and index DDL
4176       (Robert Haas, Andres Freund)
4177      </para>
4178
4179      <para>
4180       If the name lookups come to different conclusions due to concurrent
4181       activity, we might perform some parts of the DDL on a different table
4182       than other parts.  At least in the case of <command>CREATE INDEX</>,
4183       this can be used to cause the permissions checks to be performed
4184       against a different table than the index creation, allowing for a
4185       privilege escalation attack.
4186       (CVE-2014-0062)
4187      </para>
4188     </listitem>
4189
4190 <!--
4191 Author: Noah Misch <noah@leadboat.com>
4192 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
4193 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
4194 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
4195 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
4196 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
4197 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
4198 -->
4199
4200     <listitem>
4201      <para>
4202       Prevent buffer overrun with long datetime strings (Noah Misch)
4203      </para>
4204
4205      <para>
4206       The <literal>MAXDATELEN</> constant was too small for the longest
4207       possible value of type <type>interval</>, allowing a buffer overrun
4208       in <function>interval_out()</>.  Although the datetime input
4209       functions were more careful about avoiding buffer overrun, the limit
4210       was short enough to cause them to reject some valid inputs, such as
4211       input containing a very long timezone name.  The <application>ecpg</>
4212       library contained these vulnerabilities along with some of its own.
4213       (CVE-2014-0063)
4214      </para>
4215     </listitem>
4216
4217 <!--
4218 Author: Noah Misch <noah@leadboat.com>
4219 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
4220 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
4221 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
4222 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
4223 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
4224 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
4225 -->
4226
4227     <listitem>
4228      <para>
4229       Prevent buffer overrun due to integer overflow in size calculations
4230       (Noah Misch, Heikki Linnakangas)
4231      </para>
4232
4233      <para>
4234       Several functions, mostly type input functions, calculated an
4235       allocation size without checking for overflow.  If overflow did
4236       occur, a too-small buffer would be allocated and then written past.
4237       (CVE-2014-0064)
4238      </para>
4239     </listitem>
4240
4241 <!--
4242 Author: Tom Lane <tgl@sss.pgh.pa.us>
4243 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
4244 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
4245 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
4246 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
4247 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
4248 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
4249 -->
4250
4251     <listitem>
4252      <para>
4253       Prevent overruns of fixed-size buffers
4254       (Peter Eisentraut, Jozef Mlich)
4255      </para>
4256
4257      <para>
4258       Use <function>strlcpy()</> and related functions to provide a clear
4259       guarantee that fixed-size buffers are not overrun.  Unlike the
4260       preceding items, it is unclear whether these cases really represent
4261       live issues, since in most cases there appear to be previous
4262       constraints on the size of the input string.  Nonetheless it seems
4263       prudent to silence all Coverity warnings of this type.
4264       (CVE-2014-0065)
4265      </para>
4266     </listitem>
4267
4268 <!--
4269 Author: Tom Lane <tgl@sss.pgh.pa.us>
4270 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
4271 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
4272 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
4273 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
4274 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
4275 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
4276 -->
4277
4278     <listitem>
4279      <para>
4280       Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
4281       Bruce Momjian)
4282      </para>
4283
4284      <para>
4285       There are relatively few scenarios in which <function>crypt()</>
4286       could return NULL, but <filename>contrib/chkpass</> would crash
4287       if it did.  One practical case in which this could be an issue is
4288       if <application>libc</> is configured to refuse to execute unapproved
4289       hashing algorithms (e.g., <quote>FIPS mode</>).
4290       (CVE-2014-0066)
4291      </para>
4292     </listitem>
4293
4294 <!--
4295 Author: Tom Lane <tgl@sss.pgh.pa.us>
4296 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
4297 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
4298 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
4299 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
4300 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
4301 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
4302 -->
4303
4304     <listitem>
4305      <para>
4306       Document risks of <literal>make check</> in the regression testing
4307       instructions (Noah Misch, Tom Lane)
4308      </para>
4309
4310      <para>
4311       Since the temporary server started by <literal>make check</>
4312       uses <quote>trust</> authentication, another user on the same machine
4313       could connect to it as database superuser, and then potentially
4314       exploit the privileges of the operating-system user who started the
4315       tests.  A future release will probably incorporate changes in the
4316       testing procedure to prevent this risk, but some public discussion is
4317       needed first.  So for the moment, just warn people against using
4318       <literal>make check</> when there are untrusted users on the
4319       same machine.
4320       (CVE-2014-0067)
4321      </para>
4322     </listitem>
4323
4324 <!--
4325 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4326 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
4327 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
4328 -->
4329
4330     <listitem>
4331      <para>
4332       Rework tuple freezing protocol
4333       (&Aacute;lvaro Herrera, Andres Freund)
4334      </para>
4335
4336      <para>
4337       The logic for tuple freezing was unable to handle some cases involving
4338       freezing of
4339       <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
4340       IDs</link>, with the practical effect that shared row-level locks
4341       might be forgotten once old enough.
4342      </para>
4343
4344      <para>
4345       Fixing this required changing the WAL record format for tuple
4346       freezing.  While this is no issue for standalone servers, when using
4347       replication it means that <emphasis>standby servers must be upgraded
4348       to 9.3.3 or later before their masters are</>.  An older standby will
4349       be unable to interpret freeze records generated by a newer master, and
4350       will fail with a PANIC message.  (In such a case, upgrading the
4351       standby should be sufficient to let it resume execution.)
4352      </para>
4353     </listitem>
4354
4355 <!--
4356 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4357 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
4358 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
4359 -->
4360
4361     <listitem>
4362      <para>
4363       Create separate GUC parameters to control multixact freezing
4364       (&Aacute;lvaro Herrera)
4365      </para>
4366
4367      <para>
4368       9.3 requires multixact tuple labels to be frozen before
4369       they grow too old, in the same fashion as plain transaction ID labels
4370       have been frozen for some time.  Previously, the transaction ID
4371       freezing parameters were used for multixact IDs too; but since
4372       the consumption rates of transaction IDs and multixact IDs can be
4373       quite different, this did not work very well.  Introduce new settings
4374       <xref linkend="guc-vacuum-multixact-freeze-min-age">,
4375       <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
4376       <xref linkend="guc-autovacuum-multixact-freeze-max-age">
4377       to control when to freeze multixacts.
4378      </para>
4379     </listitem>
4380
4381 <!--
4382 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4383 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
4384 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
4385 -->
4386
4387     <listitem>
4388      <para>
4389       Account for remote row locks propagated by local updates
4390       (&Aacute;lvaro Herrera)
4391      </para>
4392
4393      <para>
4394       If a row was locked by transaction A, and transaction B updated it,
4395       the new version of the row created by B would be locked by A, yet
4396       visible only to B.  If transaction B then again updated the row, A's
4397       lock wouldn't get checked, thus possibly allowing B to complete when
4398       it shouldn't.  This case is new in 9.3 since prior versions did not
4399       have any types of row locking that would permit another transaction
4400       to update the row at all.
4401      </para>
4402
4403      <para>
4404       This oversight could allow referential integrity checks to give false
4405       positives (for instance, allow deletes that should have been rejected).
4406       Applications using the new commands <literal>SELECT FOR KEY SHARE</>
4407       and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
4408       locking failures of this kind.
4409      </para>
4410     </listitem>
4411
4412 <!--
4413 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4414 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
4415 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
4416 -->
4417
4418     <listitem>
4419      <para>
4420       Prevent <quote>forgetting</> valid row locks when one of several
4421       holders of a row lock aborts (&Aacute;lvaro Herrera)
4422      </para>
4423
4424      <para>
4425       This was yet another mechanism by which a shared row lock could be
4426       lost, thus possibly allowing updates that should have been prevented
4427       by foreign-key constraints.
4428      </para>
4429     </listitem>
4430
4431 <!--
4432 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4433 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
4434 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
4435 -->
4436
4437     <listitem>
4438      <para>
4439       Fix incorrect logic during update chain locking
4440       (&Aacute;lvaro Herrera)
4441      </para>
4442
4443      <para>
4444       This mistake could result in spurious <quote>could not serialize access
4445       due to concurrent update</> errors in <literal>REPEATABLE READ</>
4446       and <literal>SERIALIZABLE</> transaction isolation modes.
4447      </para>
4448     </listitem>
4449
4450 <!--
4451 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4452 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
4453 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
4454 -->
4455
4456     <listitem>
4457      <para>
4458       Handle wraparound correctly during extension or truncation
4459       of <filename>pg_multixact/members</>
4460       (Andres Freund, &Aacute;lvaro Herrera)
4461      </para>
4462     </listitem>
4463
4464 <!--
4465 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4466 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
4467 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
4468 -->
4469
4470     <listitem>
4471      <para>
4472       Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
4473       (&Aacute;lvaro Herrera)
4474      </para>
4475
4476      <para>
4477       As of 9.3, these names can be more than 4 digits, but the directory
4478       cleanup code ignored such files.
4479      </para>
4480     </listitem>
4481
4482 <!--
4483 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4484 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
4485 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
4486 -->
4487
4488     <listitem>
4489      <para>
4490       Improve performance of multixact cache code
4491       (&Aacute;lvaro Herrera)
4492      </para>
4493     </listitem>
4494
4495 <!--
4496 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4497 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
4498 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
4499 -->
4500
4501     <listitem>
4502      <para>
4503       Optimize updating a row that's already locked by the same transaction
4504       (Andres Freund, &Aacute;lvaro Herrera)
4505      </para>
4506
4507      <para>
4508       This fixes a performance regression from pre-9.3 versions when doing
4509       <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
4510      </para>
4511     </listitem>
4512
4513 <!--
4514 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4515 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
4516 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
4517 -->
4518
4519     <listitem>
4520      <para>
4521       During archive recovery, prefer highest timeline number when WAL
4522       segments with the same ID are present in both the archive
4523       and <filename>pg_xlog/</> (Kyotaro Horiguchi)
4524      </para>
4525
4526      <para>
4527       Previously, not-yet-archived segments could get ignored during
4528       recovery.  This reverts an undesirable behavioral change in 9.3.0
4529       back to the way things worked pre-9.3.
4530      </para>
4531     </listitem>
4532
4533 <!--
4534 Author: Tom Lane <tgl@sss.pgh.pa.us>
4535 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
4536 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
4537 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
4538 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
4539 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
4540 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
4541 -->
4542
4543     <listitem>
4544      <para>
4545       Fix possible mis-replay of WAL records when some segments of a
4546       relation aren't full size (Greg Stark, Tom Lane)
4547      </para>
4548
4549      <para>
4550       The WAL update could be applied to the wrong page, potentially many
4551       pages past where it should have been.  Aside from corrupting data,
4552       this error has been observed to result in significant <quote>bloat</>
4553       of standby servers compared to their masters, due to updates being
4554       applied far beyond where the end-of-file should have been.  This
4555       failure mode does not appear to be a significant risk during crash
4556       recovery, only when initially synchronizing a standby created from a
4557       base backup taken from a quickly-changing master.
4558      </para>
4559     </listitem>
4560
4561 <!--
4562 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4563 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
4564 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
4565 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
4566 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
4567 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
4568 -->
4569
4570     <listitem>
4571      <para>
4572       Fix bug in determining when recovery has reached consistency
4573       (Tomonari Katsumata, Heikki Linnakangas)
4574      </para>
4575
4576      <para>
4577       In some cases WAL replay would mistakenly conclude that the database
4578       was already consistent at the start of replay, thus possibly allowing
4579       hot-standby queries before the database was really consistent.  Other
4580       symptoms such as <quote>PANIC: WAL contains references to invalid
4581       pages</> were also possible.
4582      </para>
4583     </listitem>
4584
4585 <!--
4586 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4587 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
4588 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
4589 -->
4590
4591     <listitem>
4592      <para>
4593       Fix WAL logging of visibility map changes (Heikki Linnakangas)
4594      </para>
4595     </listitem>
4596
4597 <!--
4598 Author: Tom Lane <tgl@sss.pgh.pa.us>
4599 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
4600 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
4601 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
4602 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
4603 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
4604 -->
4605
4606     <listitem>
4607      <para>
4608       Fix improper locking of btree index pages while replaying
4609       a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
4610       Heikki Linnakangas, Tom Lane)
4611      </para>
4612
4613      <para>
4614       This error could result in <quote>PANIC: WAL contains references to
4615       invalid pages</> failures.
4616      </para>
4617     </listitem>
4618
4619 <!--
4620 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4621 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
4622 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
4623 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
4624 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
4625 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
4626 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
4627 -->
4628
4629     <listitem>
4630      <para>
4631       Ensure that insertions into non-leaf GIN index pages write a full-page
4632       WAL record when appropriate (Heikki Linnakangas)
4633      </para>
4634
4635      <para>
4636       The previous coding risked index corruption in the event of a
4637       partial-page write during a system crash.
4638      </para>
4639     </listitem>
4640
4641 <!--
4642 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4643 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
4644 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
4645 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
4646 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
4647 -->
4648
4649     <listitem>
4650      <para>
4651       When <literal>pause_at_recovery_target</>
4652       and <literal>recovery_target_inclusive</> are both set, ensure the
4653       target record is applied before pausing, not after (Heikki
4654       Linnakangas)
4655      </para>
4656     </listitem>
4657
4658 <!--
4659 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4660 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
4661 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
4662 -->
4663
4664     <listitem>
4665      <para>
4666       Ensure walreceiver sends hot-standby feedback messages on time even
4667       when there is a continuous stream of data (Andres Freund, Amit
4668       Kapila)
4669      </para>
4670     </listitem>
4671
4672 <!--
4673 Author: Tom Lane <tgl@sss.pgh.pa.us>
4674 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
4675 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
4676 -->
4677
4678     <listitem>
4679      <para>
4680       Prevent timeout interrupts from taking control away from mainline
4681       code unless <varname>ImmediateInterruptOK</> is set
4682       (Andres Freund, Tom Lane)
4683      </para>
4684
4685      <para>
4686       This is a serious issue for any application making use of statement
4687       timeouts, as it could cause all manner of strange failures after a
4688       timeout occurred.  We have seen reports of <quote>stuck</> spinlocks,
4689       ERRORs being unexpectedly promoted to PANICs, unkillable backends,
4690       and other misbehaviors.
4691      </para>
4692     </listitem>
4693
4694 <!--
4695 Author: Robert Haas <rhaas@postgresql.org>
4696 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
4697 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
4698 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
4699 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
4700 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
4701 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
4702 -->
4703
4704     <listitem>
4705      <para>
4706       Fix race conditions during server process exit (Robert Haas)
4707      </para>
4708
4709      <para>
4710       Ensure that signal handlers don't attempt to use the
4711       process's <varname>MyProc</> pointer after it's no longer valid.
4712      </para>
4713     </listitem>
4714
4715 <!--
4716 Author: Tom Lane <tgl@sss.pgh.pa.us>
4717 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
4718 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
4719 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
4720 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
4721 -->
4722
4723     <listitem>
4724      <para>
4725       Fix race conditions in walsender shutdown logic and walreceiver
4726       SIGHUP signal handler (Tom Lane)
4727      </para>
4728     </listitem>
4729
4730 <!--
4731 Author: Tom Lane <tgl@sss.pgh.pa.us>
4732 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
4733 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
4734 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
4735 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
4736 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
4737 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
4738 -->
4739
4740     <listitem>
4741      <para>
4742       Fix unsafe references to <varname>errno</> within error reporting
4743       logic (Christian Kruse)
4744      </para>
4745
4746      <para>
4747       This would typically lead to odd behaviors such as missing or
4748       inappropriate <literal>HINT</> fields.
4749      </para>
4750     </listitem>
4751
4752 <!--
4753 Author: Tom Lane <tgl@sss.pgh.pa.us>
4754 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
4755 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
4756 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
4757 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
4758 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
4759 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
4760 -->
4761
4762     <listitem>
4763      <para>
4764       Fix possible crashes from using <function>ereport()</> too early
4765       during server startup (Tom Lane)
4766      </para>
4767
4768      <para>
4769       The principal case we've seen in the field is a crash if the server
4770       is started in a directory it doesn't have permission to read.
4771      </para>
4772     </listitem>
4773
4774 <!--
4775 Author: Tom Lane <tgl@sss.pgh.pa.us>
4776 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
4777 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
4778 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
4779 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
4780 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
4781 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
4782 -->
4783
4784     <listitem>
4785      <para>
4786       Clear retry flags properly in OpenSSL socket write
4787       function (Alexander Kukushkin)
4788      </para>
4789
4790      <para>
4791       This omission could result in a server lockup after unexpected loss
4792       of an SSL-encrypted connection.
4793      </para>
4794     </listitem>
4795
4796 <!--
4797 Author: Tom Lane <tgl@sss.pgh.pa.us>
4798 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
4799 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
4800 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
4801 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
4802 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
4803 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
4804 -->
4805
4806     <listitem>
4807      <para>
4808       Fix length checking for Unicode identifiers (<literal>U&amp;"..."</>
4809       syntax) containing escapes (Tom Lane)
4810      </para>
4811
4812      <para>
4813       A spurious truncation warning would be printed for such identifiers
4814       if the escaped form of the identifier was too long, but the
4815       identifier actually didn't need truncation after de-escaping.
4816      </para>
4817     </listitem>
4818
4819 <!--
4820 Author: Tom Lane <tgl@sss.pgh.pa.us>
4821 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
4822 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
4823 -->
4824
4825     <listitem>
4826      <para>
4827       Fix parsing of Unicode literals and identifiers just before the end
4828       of a command string or function body (Tom Lane)
4829      </para>
4830     </listitem>
4831
4832 <!--
4833 Author: Stephen Frost <sfrost@snowman.net>
4834 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
4835 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
4836 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
4837 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
4838 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
4839 -->
4840
4841     <listitem>
4842      <para>
4843       Allow keywords that are type names to be used in lists of roles
4844       (Stephen Frost)
4845      </para>
4846
4847      <para>
4848       A previous patch allowed such keywords to be used without quoting
4849       in places such as role identifiers; but it missed cases where a
4850       list of role identifiers was permitted, such as <literal>DROP ROLE</>.
4851      </para>
4852     </listitem>
4853
4854 <!--
4855 Author: Tom Lane <tgl@sss.pgh.pa.us>
4856 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
4857 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
4858 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
4859 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
4860 -->
4861
4862     <listitem>
4863      <para>
4864       Fix parser crash for <literal>EXISTS(SELECT * FROM
4865       zero_column_table)</literal> (Tom Lane)
4866      </para>
4867     </listitem>
4868
4869 <!--
4870 Author: Tom Lane <tgl@sss.pgh.pa.us>
4871 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
4872 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
4873 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
4874 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
4875 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
4876 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
4877 -->
4878
4879     <listitem>
4880      <para>
4881       Fix possible crash due to invalid plan for nested sub-selects, such
4882       as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
4883       (Tom Lane)
4884      </para>
4885     </listitem>
4886
4887 <!--
4888 Author: Tom Lane <tgl@sss.pgh.pa.us>
4889 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
4890 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
4891 -->
4892
4893     <listitem>
4894      <para>
4895       Fix mishandling of <literal>WHERE</> conditions pulled up from
4896       a <literal>LATERAL</> subquery (Tom Lane)
4897      </para>
4898
4899      <para>
4900       The typical symptom of this bug was a <quote>JOIN qualification
4901       cannot refer to other relations</> error, though subtle logic
4902       errors in created plans seem possible as well.
4903      </para>
4904     </listitem>
4905
4906 <!--
4907 Author: Tom Lane <tgl@sss.pgh.pa.us>
4908 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
4909 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
4910 -->
4911
4912     <listitem>
4913      <para>
4914       Disallow <literal>LATERAL</> references to the target table of
4915       an <literal>UPDATE/DELETE</> (Tom Lane)
4916      </para>
4917
4918      <para>
4919       While this might be allowed in some future release, it was
4920       unintentional in 9.3, and didn't work quite right anyway.
4921      </para>
4922     </listitem>
4923
4924 <!--
4925 Author: Tom Lane <tgl@sss.pgh.pa.us>
4926 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
4927 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
4928 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
4929 -->
4930
4931     <listitem>
4932      <para>
4933       Fix <literal>UPDATE/DELETE</> of an inherited target table
4934       that has <literal>UNION ALL</> subqueries (Tom Lane)
4935      </para>
4936
4937      <para>
4938       Without this fix, <literal>UNION ALL</> subqueries aren't correctly
4939       inserted into the update plans for inheritance child tables after the
4940       first one, typically resulting in no update happening for those child
4941       table(s).
4942      </para>
4943     </listitem>
4944
4945 <!--
4946 Author: Tom Lane <tgl@sss.pgh.pa.us>
4947 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
4948 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
4949 -->
4950
4951     <listitem>
4952      <para>
4953       Fix <command>ANALYZE</> to not fail on a column that's a domain over
4954       a range type (Tom Lane)
4955      </para>
4956     </listitem>
4957
4958 <!--
4959 Author: Tom Lane <tgl@sss.pgh.pa.us>
4960 Branch: master [628652620] 2014-01-11 13:42:42 -0500
4961 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
4962 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
4963 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
4964 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
4965 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
4966 -->
4967
4968     <listitem>
4969      <para>
4970       Ensure that <command>ANALYZE</> creates statistics for a table column
4971       even when all the values in it are <quote>too wide</> (Tom Lane)
4972      </para>
4973
4974      <para>
4975       <command>ANALYZE</> intentionally omits very wide values from its
4976       histogram and most-common-values calculations, but it neglected to do
4977       something sane in the case that all the sampled entries are too wide.
4978      </para>
4979     </listitem>
4980
4981 <!--
4982 Author: Stephen Frost <sfrost@snowman.net>
4983 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
4984 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
4985 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
4986 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
4987 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
4988 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
4989 -->
4990
4991     <listitem>
4992      <para>
4993       In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
4994       default tablespace to be used without a permissions check
4995       (Stephen Frost)
4996      </para>
4997
4998      <para>
4999       <literal>CREATE TABLE</> has always allowed such usage,
5000       but <literal>ALTER TABLE</> didn't get the memo.
5001      </para>
5002     </listitem>
5003
5004 <!--
5005 Author: Tom Lane <tgl@sss.pgh.pa.us>
5006 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
5007 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
5008 -->
5009
5010     <listitem>
5011      <para>
5012       Fix support for extensions containing event triggers (Tom Lane)
5013      </para>
5014     </listitem>
5015
5016 <!--
5017 Author: Tom Lane <tgl@sss.pgh.pa.us>
5018 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
5019 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
5020 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
5021 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
5022 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
5023 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
5024 -->
5025
5026     <listitem>
5027      <para>
5028       Fix <quote>cannot accept a set</> error when some arms of
5029       a <literal>CASE</> return a set and others don't (Tom Lane)
5030      </para>
5031     </listitem>
5032
5033 <!--
5034 Author: Andrew Dunstan <andrew@dunslane.net>
5035 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
5036 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
5037 -->
5038
5039     <listitem>
5040      <para>
5041       Fix memory leakage in JSON functions (Craig Ringer)
5042      </para>
5043     </listitem>
5044
5045 <!--
5046 Author: Andrew Dunstan <andrew@dunslane.net>
5047 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
5048 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
5049 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
5050 -->
5051
5052     <listitem>
5053      <para>
5054       Properly distinguish numbers from non-numbers when generating JSON
5055       output (Andrew Dunstan)
5056      </para>
5057     </listitem>
5058
5059 <!--
5060 Author: Kevin Grittner <kgrittn@postgresql.org>
5061 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
5062 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
5063 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
5064 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
5065 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
5066 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
5067 -->
5068
5069     <listitem>
5070      <para>
5071       Fix checks for all-zero client addresses in pgstat functions (Kevin
5072       Grittner)
5073      </para>
5074     </listitem>
5075
5076 <!--
5077 Author: Tom Lane <tgl@sss.pgh.pa.us>
5078 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
5079 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
5080 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
5081 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
5082 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
5083 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
5084 -->
5085
5086     <listitem>
5087      <para>
5088       Fix possible misclassification of multibyte characters by the text
5089       search parser (Tom Lane)
5090      </para>
5091
5092      <para>
5093       Non-ASCII characters could be misclassified when using C locale with
5094       a multibyte encoding.  On Cygwin, non-C locales could fail as well.
5095      </para>
5096     </listitem>
5097
5098 <!--
5099 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5100 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
5101 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
5102 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
5103 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
5104 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
5105 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
5106 -->
5107
5108     <listitem>
5109      <para>
5110       Fix possible misbehavior in <function>plainto_tsquery()</>
5111       (Heikki Linnakangas)
5112      </para>
5113
5114      <para>
5115       Use <function>memmove()</> not <function>memcpy()</> for copying
5116       overlapping memory regions.  There have been no field reports of
5117       this actually causing trouble, but it's certainly risky.
5118      </para>
5119     </listitem>
5120
5121 <!--
5122 Author: Magnus Hagander <magnus@hagander.net>
5123 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
5124 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
5125 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
5126 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
5127 -->
5128
5129     <listitem>
5130      <para>
5131       Fix placement of permissions checks in <function>pg_start_backup()</>
5132       and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
5133      </para>
5134
5135      <para>
5136       The previous coding might attempt to do catalog access when it
5137       shouldn't.
5138      </para>
5139     </listitem>
5140
5141 <!--
5142 Author: Tatsuo Ishii <ishii@postgresql.org>
5143 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
5144 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
5145 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
5146 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
5147 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
5148 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
5149 -->
5150
5151     <listitem>
5152      <para>
5153       Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
5154       purposes (Tatsuo Ishii)
5155      </para>
5156     </listitem>
5157
5158 <!--
5159 Author: Tom Lane <tgl@sss.pgh.pa.us>
5160 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
5161 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
5162 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
5163 -->
5164
5165     <listitem>
5166      <para>
5167       Fix <literal>*</>-qualification of named parameters in SQL-language
5168       functions (Tom Lane)
5169      </para>
5170
5171      <para>
5172       Given a composite-type parameter
5173       named <literal>foo</>, <literal>$1.*</> worked fine,
5174       but <literal>foo.*</> not so much.
5175      </para>
5176     </listitem>
5177
5178 <!--
5179 Author: Fujii Masao <fujii@postgresql.org>
5180 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
5181 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
5182 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
5183 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
5184 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
5185 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
5186 -->
5187
5188     <listitem>
5189      <para>
5190       Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
5191      </para>
5192
5193      <para>
5194       It should return <literal>localhost</> if no host has been specified.
5195      </para>
5196     </listitem>
5197
5198 <!--
5199 Author: Tom Lane <tgl@sss.pgh.pa.us>
5200 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
5201 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
5202 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
5203 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
5204 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
5205 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
5206 -->
5207
5208     <listitem>
5209      <para>
5210       Improve error handling in <application>libpq</> and <application>psql</>
5211       for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
5212      </para>
5213
5214      <para>
5215       In particular this fixes an infinite loop that could occur in 9.2 and
5216       up if the server connection was lost during <literal>COPY FROM
5217       STDIN</>.  Variants of that scenario might be possible in older
5218       versions, or with other client applications.
5219      </para>
5220     </listitem>
5221
5222 <!--
5223 Author: Tom Lane <tgl@sss.pgh.pa.us>
5224 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
5225 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
5226 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
5227 -->
5228
5229     <listitem>
5230      <para>
5231       Fix incorrect translation handling in
5232       some <application>psql</> <literal>\d</> commands
5233       (Peter Eisentraut, Tom Lane)
5234      </para>
5235     </listitem>
5236
5237 <!--
5238 Author: Magnus Hagander <magnus@hagander.net>
5239 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
5240 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
5241 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
5242 -->
5243
5244     <listitem>
5245      <para>
5246       Ensure <application>pg_basebackup</>'s background process is killed
5247       when exiting its foreground process (Magnus Hagander)
5248      </para>
5249     </listitem>
5250
5251 <!--
5252 Author: Magnus Hagander <magnus@hagander.net>
5253 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
5254 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
5255 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
5256 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
5257 -->
5258
5259     <listitem>
5260      <para>
5261       Fix possible incorrect printing of filenames
5262       in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
5263      </para>
5264     </listitem>
5265
5266 <!--
5267 Author: Magnus Hagander <magnus@hagander.net>
5268 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
5269 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
5270 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
5271 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
5272 -->
5273
5274     <listitem>
5275      <para>
5276       Avoid including tablespaces inside PGDATA twice in base backups
5277       (Dimitri Fontaine, Magnus Hagander)
5278      </para>
5279     </listitem>
5280
5281 <!--
5282 Author: Michael Meskes <meskes@postgresql.org>
5283 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
5284 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
5285 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
5286 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
5287 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
5288 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
5289 -->
5290
5291     <listitem>
5292      <para>
5293       Fix misaligned descriptors in <application>ecpg</> (MauMau)
5294      </para>
5295     </listitem>
5296
5297 <!--
5298 Author: Michael Meskes <meskes@postgresql.org>
5299 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
5300 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
5301 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
5302 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
5303 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
5304 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
5305 -->
5306
5307     <listitem>
5308      <para>
5309       In <application>ecpg</>, handle lack of a hostname in the connection
5310       parameters properly (Michael Meskes)
5311      </para>
5312     </listitem>
5313
5314 <!--
5315 Author: Joe Conway <mail@joeconway.com>
5316 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
5317 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
5318 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
5319 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
5320 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
5321 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
5322 -->
5323
5324     <listitem>
5325      <para>
5326       Fix performance regression in <filename>contrib/dblink</> connection
5327       startup (Joe Conway)
5328      </para>
5329
5330      <para>
5331       Avoid an unnecessary round trip when client and server encodings match.
5332      </para>
5333     </listitem>
5334
5335 <!--
5336 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5337 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
5338 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
5339 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
5340 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
5341 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
5342 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
5343 -->
5344
5345     <listitem>
5346      <para>
5347       In <filename>contrib/isn</>, fix incorrect calculation of the check
5348       digit for ISMN values (Fabien Coelho)
5349      </para>
5350     </listitem>
5351
5352 <!--
5353 Author: Tatsuo Ishii <ishii@postgresql.org>
5354 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
5355 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
5356 -->
5357
5358     <listitem>
5359      <para>
5360       Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
5361       when the scale factor is large (Tatsuo Ishii)
5362      </para>
5363     </listitem>
5364
5365 <!--
5366 Author: Tom Lane <tgl@sss.pgh.pa.us>
5367 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
5368 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
5369 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
5370 -->
5371
5372     <listitem>
5373      <para>
5374       Fix <filename>contrib/pg_stat_statement</>'s handling
5375       of <literal>CURRENT_DATE</> and related constructs (Kyotaro
5376       Horiguchi)
5377      </para>
5378     </listitem>
5379
5380 <!--
5381 Author: Tom Lane <tgl@sss.pgh.pa.us>
5382 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
5383 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
5384 -->
5385
5386     <listitem>
5387      <para>
5388       Improve lost-connection error handling
5389       in <filename>contrib/postgres_fdw</> (Tom Lane)
5390      </para>
5391     </listitem>
5392
5393 <!--
5394 Author: Peter Eisentraut <peter_e@gmx.net>
5395 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
5396 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
5397 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
5398 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
5399 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
5400 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
5401 -->
5402
5403     <listitem>
5404      <para>
5405       Ensure client-code-only installation procedure works as documented
5406       (Peter Eisentraut)
5407      </para>
5408     </listitem>
5409
5410 <!--
5411 Author: Andrew Dunstan <andrew@dunslane.net>
5412 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
5413 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
5414 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
5415 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
5416 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
5417 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
5418 -->
5419
5420     <listitem>
5421      <para>
5422       In Mingw and Cygwin builds, install the <application>libpq</> DLL
5423       in the <filename>bin</> directory (Andrew Dunstan)
5424      </para>
5425
5426      <para>
5427       This duplicates what the MSVC build has long done.  It should fix
5428       problems with programs like <application>psql</> failing to start
5429       because they can't find the DLL.
5430      </para>
5431     </listitem>
5432
5433 <!--
5434 Author: Andrew Dunstan <andrew@dunslane.net>
5435 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
5436 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
5437 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
5438 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
5439 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
5440 -->
5441
5442     <listitem>
5443      <para>
5444       Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
5445       (Marco Atzeri)
5446      </para>
5447     </listitem>
5448
5449 <!--
5450 Author: Andrew Dunstan <andrew@dunslane.net>
5451 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
5452 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
5453 -->
5454
5455     <listitem>
5456      <para>
5457       Enable building with Visual Studio 2013 (Brar Piening)
5458      </para>
5459     </listitem>
5460
5461 <!--
5462 Author: Tom Lane <tgl@sss.pgh.pa.us>
5463 Branch: master [289541520] 2014-02-10 20:48:04 -0500
5464 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
5465 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
5466 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
5467 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
5468 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
5469 -->
5470
5471     <listitem>
5472      <para>
5473       Don't generate plain-text <filename>HISTORY</>
5474       and <filename>src/test/regress/README</> files anymore (Tom Lane)
5475      </para>
5476
5477      <para>
5478       These text files duplicated the main HTML and PDF documentation
5479       formats.  The trouble involved in maintaining them greatly outweighs
5480       the likely audience for plain-text format.  Distribution tarballs
5481       will still contain files by these names, but they'll just be stubs
5482       directing the reader to consult the main documentation.
5483       The plain-text <filename>INSTALL</> file will still be maintained, as
5484       there is arguably a use-case for that.
5485      </para>
5486     </listitem>
5487
5488 <!--
5489 Author: Tom Lane <tgl@sss.pgh.pa.us>
5490 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
5491 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
5492 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
5493 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
5494 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
5495 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
5496 -->
5497
5498     <listitem>
5499      <para>
5500       Update time zone data files to <application>tzdata</> release 2013i
5501       for DST law changes in Jordan and historical changes in Cuba.
5502      </para>
5503
5504      <para>
5505       In addition, the zones <literal>Asia/Riyadh87</>,
5506       <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
5507       removed, as they are no longer maintained by IANA, and never
5508       represented actual civil timekeeping practice.
5509      </para>
5510     </listitem>
5511
5512    </itemizedlist>
5513
5514   </sect2>
5515  </sect1>
5516
5517  <sect1 id="release-9-3-2">
5518   <title>Release 9.3.2</title>
5519
5520   <note>
5521   <title>Release Date</title>
5522   <simpara>2013-12-05</simpara>
5523   </note>
5524
5525   <para>
5526    This release contains a variety of fixes from 9.3.1.
5527    For information about new features in the 9.3 major release, see
5528    <xref linkend="release-9-3">.
5529   </para>
5530
5531   <sect2>
5532    <title>Migration to Version 9.3.2</title>
5533
5534    <para>
5535     A dump/restore is not required for those running 9.3.X.
5536    </para>
5537
5538    <para>
5539     However, this release corrects a number of potential data corruption
5540     issues.  See the first three changelog entries below to find out whether
5541     your installation has been affected and what steps you can take if so.
5542    </para>
5543
5544    <para>
5545     Also, if you are upgrading from a version earlier than 9.3.1,
5546     see <xref linkend="release-9-3-1">.
5547    </para>
5548
5549   </sect2>
5550
5551   <sect2>
5552    <title>Changes</title>
5553
5554    <itemizedlist>
5555
5556     <listitem>
5557      <para>
5558       Fix <command>VACUUM</>'s tests to see whether it can
5559       update <structfield>relfrozenxid</> (Andres Freund)
5560      </para>
5561
5562      <para>
5563       In some cases <command>VACUUM</> (either manual or autovacuum) could
5564       incorrectly advance a table's <structfield>relfrozenxid</> value,
5565       allowing tuples to escape freezing, causing those rows to become
5566       invisible once 2^31 transactions have elapsed.  The probability of
5567       data loss is fairly low since multiple incorrect advancements would
5568       need to happen before actual loss occurs, but it's not zero.  In 9.2.0
5569       and later, the probability of loss is higher, and it's also possible
5570       to get <quote>could not access status of transaction</> errors as a
5571       consequence of this bug.  Users upgrading from releases 9.0.4 or 8.4.8
5572       or earlier are not affected, but all later versions contain the bug.
5573      </para>
5574
5575      <para>
5576       The issue can be ameliorated by, after upgrading, vacuuming all tables
5577       in all databases while having <link
5578       linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
5579       set to zero.  This will fix any latent corruption but will not be able
5580       to fix all pre-existing data errors.  However, an installation can be
5581       presumed safe after performing this vacuuming if it has executed fewer
5582       than 2^31 update transactions in its lifetime (check this with
5583       <literal>SELECT txid_current() < 2^31</>).
5584      </para>
5585     </listitem>
5586
5587     <listitem>
5588      <para>
5589       Fix multiple bugs in MultiXactId freezing (Andres Freund,
5590       &Aacute;lvaro Herrera)
5591      </para>
5592
5593      <para>
5594       These bugs could lead to <quote>could not access status of
5595       transaction</> errors, or to duplicate or vanishing rows.
5596       Users upgrading from releases prior to 9.3.0 are not affected.
5597      </para>
5598
5599      <para>
5600       The issue can be ameliorated by, after upgrading, vacuuming all tables
5601       in all databases while having <link
5602       linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
5603       set to zero.  This will fix latent corruption but will not be able to
5604       fix all pre-existing data errors.
5605      </para>
5606
5607      <para>
5608       As a separate issue, these bugs can also cause standby servers to get
5609       out of sync with the primary, thus exhibiting data errors that are not
5610       in the primary.  Therefore, it's recommended that 9.3.0 and 9.3.1
5611       standby servers be re-cloned from the primary (e.g., with a new base
5612       backup) after upgrading.
5613      </para>
5614     </listitem>
5615
5616     <listitem>
5617      <para>
5618       Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
5619       during hot standby startup (Andres Freund, Heikki Linnakangas)
5620      </para>
5621
5622      <para>
5623       This bug can cause data loss on standby servers at the moment they
5624       start to accept hot-standby queries, by marking committed transactions
5625       as uncommitted. The likelihood of such corruption is small unless, at
5626       the time of standby startup, the primary server has executed many
5627       updating transactions since its last checkpoint.  Symptoms include
5628       missing rows, rows that should have been deleted being still visible,
5629       and obsolete versions of updated rows being still visible alongside
5630       their newer versions.
5631      </para>
5632
5633      <para>
5634       This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
5635       Standby servers that have only been running earlier releases are not
5636       at risk.  It's recommended that standby servers that have ever run any
5637       of the buggy releases be re-cloned from the primary (e.g., with a new
5638       base backup) after upgrading.
5639      </para>
5640     </listitem>
5641
5642     <listitem>
5643      <para>
5644       Fix multiple bugs in update chain traversal (Andres Freund,
5645       &Aacute;lvaro Herrera)
5646      </para>
5647
5648      <para>
5649       These bugs could result in incorrect behavior, such as locking or even
5650       updating the wrong row, in the presence of concurrent updates.
5651       Spurious <quote>unable to fetch updated version of tuple</> errors
5652       were also possible.
5653      </para>
5654     </listitem>
5655
5656     <listitem>
5657      <para>
5658       Fix dangling-pointer problem in fast-path locking (Tom Lane)
5659      </para>
5660
5661      <para>
5662       This could lead to corruption of the lock data structures in shared
5663       memory, causing <quote>lock already held</> and other odd errors.
5664      </para>
5665     </listitem>
5666
5667     <listitem>
5668      <para>
5669       Fix assorted race conditions in timeout management (Tom Lane)
5670      </para>
5671
5672      <para>
5673       These errors could result in a server process becoming unresponsive
5674       because it had blocked SIGALRM and/or SIGINT.
5675      </para>
5676     </listitem>
5677
5678     <listitem>
5679      <para>
5680       Truncate <filename>pg_multixact</> contents during WAL replay
5681       (Andres Freund)
5682      </para>
5683
5684      <para>
5685       This avoids ever-increasing disk space consumption in standby servers.
5686      </para>
5687     </listitem>
5688
5689     <listitem>
5690      <para>
5691       Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
5692       when it's only verified that no tuples need freezing (Sergey
5693       Burladyan, Jeff Janes)
5694      </para>
5695
5696      <para>
5697       This bug could result in failing to
5698       advance <structfield>relfrozenxid</>, so that the table would still be
5699       thought to need another anti-wraparound vacuum.  In the worst case the
5700       database might even shut down to prevent wraparound.
5701      </para>
5702     </listitem>
5703
5704     <listitem>
5705      <para>
5706       Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
5707      </para>
5708
5709      <para>
5710       This bug could result in large amounts of useless autovacuum activity.
5711      </para>
5712     </listitem>
5713
5714     <listitem>
5715      <para>
5716       Fix race condition in GIN index posting tree page deletion (Heikki
5717       Linnakangas)
5718      </para>
5719
5720      <para>
5721       This could lead to transient wrong answers or query failures.
5722      </para>
5723     </listitem>
5724
5725     <listitem>
5726      <para>
5727       Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
5728       index creation (Teodor Sigaev)
5729      </para>
5730     </listitem>
5731
5732     <listitem>
5733      <para>
5734       Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
5735      </para>
5736     </listitem>
5737
5738     <listitem>
5739      <para>
5740       Re-allow duplicate table aliases if they're within aliased JOINs
5741       (Tom Lane)
5742      </para>
5743
5744      <para>
5745       Historically <productname>PostgreSQL</> has accepted queries like
5746 <programlisting>
5747 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
5748 </programlisting>
5749       although a strict reading of the SQL standard would forbid the
5750       duplicate usage of table alias <literal>x</>.  A misguided change in
5751       9.3.0 caused it to reject some such cases that were formerly accepted.
5752       Restore the previous behavior.
5753      </para>
5754     </listitem>
5755
5756     <listitem>
5757      <para>
5758       Avoid flattening a subquery whose <literal>SELECT</> list contains a
5759       volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
5760      </para>
5761
5762      <para>
5763       This avoids unexpected results due to extra evaluations of the
5764       volatile function.
5765      </para>
5766     </listitem>
5767
5768     <listitem>
5769      <para>
5770       Fix planner's processing of non-simple-variable subquery outputs
5771       nested within outer joins (Tom Lane)
5772      </para>
5773
5774      <para>
5775       This error could lead to incorrect plans for queries involving
5776       multiple levels of subqueries within <literal>JOIN</> syntax.
5777      </para>
5778     </listitem>
5779
5780     <listitem>
5781      <para>
5782       Fix incorrect planning in cases where the same non-strict expression
5783       appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
5784       equality clauses (Tom Lane)
5785      </para>
5786     </listitem>
5787
5788     <listitem>
5789      <para>
5790       Fix planner crash with whole-row reference to a subquery (Tom Lane)
5791      </para>
5792     </listitem>
5793
5794     <listitem>
5795      <para>
5796       Fix incorrect generation of optimized MIN()/MAX() plans for
5797       inheritance trees (Tom Lane)
5798      </para>
5799
5800      <para>
5801       The planner could fail in cases where the MIN()/MAX() argument was an
5802       expression rather than a simple variable.
5803      </para>
5804     </listitem>
5805
5806     <listitem>
5807      <para>
5808       Fix premature deletion of temporary files (Andres Freund)
5809      </para>
5810     </listitem>
5811
5812     <listitem>
5813      <para>
5814       Prevent intra-transaction memory leak when printing range values
5815       (Tom Lane)
5816      </para>
5817
5818      <para>
5819       This fix actually cures transient memory leaks in any datatype output
5820       function, but range types are the only ones known to have had a
5821       significant problem.
5822      </para>
5823     </listitem>
5824
5825     <listitem>
5826      <para>
5827       Fix memory leaks when reloading configuration files (Heikki
5828       Linnakangas, Hari Babu)
5829      </para>
5830     </listitem>
5831
5832     <listitem>
5833      <para>
5834       Prevent incorrect display of dropped columns in NOT NULL and CHECK
5835       constraint violation messages (Michael Paquier and Tom Lane)
5836      </para>
5837     </listitem>
5838
5839     <listitem>
5840      <para>
5841       Allow default arguments and named-argument notation for window
5842       functions (Tom Lane)
5843      </para>
5844
5845      <para>
5846       Previously, these cases were likely to crash.
5847      </para>
5848     </listitem>
5849
5850     <listitem>
5851      <para>
5852       Suppress trailing whitespace on each line when pretty-printing rules
5853       and views (Tom Lane)
5854      </para>
5855
5856      <para>
5857       9.3.0 generated such whitespace in many more cases than previous
5858       versions did.  To reduce unexpected behavioral changes, suppress
5859       unnecessary whitespace in all cases.
5860      </para>
5861     </listitem>
5862
5863     <listitem>
5864      <para>
5865       Fix possible read past end of memory in rule printing (Peter Eisentraut)
5866      </para>
5867     </listitem>
5868
5869     <listitem>
5870      <para>
5871       Fix array slicing of <type>int2vector</> and <type>oidvector</> values
5872       (Tom Lane)
5873      </para>
5874
5875      <para>
5876       Expressions of this kind are now implicitly promoted to
5877       regular <type>int2</> or <type>oid</> arrays.
5878      </para>
5879     </listitem>
5880
5881     <listitem>
5882      <para>
5883       Return a valid JSON value when converting an empty <type>hstore</> value
5884       to <type>json</>
5885       (Oskari Saarenmaa)
5886      </para>
5887     </listitem>
5888
5889     <listitem>
5890      <para>
5891       Fix incorrect behaviors when using a SQL-standard, simple GMT offset
5892       timezone (Tom Lane)
5893      </para>
5894
5895      <para>
5896       In some cases, the system would use the simple GMT offset value when
5897       it should have used the regular timezone setting that had prevailed
5898       before the simple offset was selected.  This change also causes
5899       the <function>timeofday</> function to honor the simple GMT offset
5900       zone.
5901      </para>
5902     </listitem>
5903
5904     <listitem>
5905      <para>
5906       Prevent possible misbehavior when logging translations of Windows
5907       error codes (Tom Lane)
5908      </para>
5909     </listitem>
5910
5911     <listitem>
5912      <para>
5913       Properly quote generated command lines in <application>pg_ctl</>
5914       (Naoya Anzai and Tom Lane)
5915      </para>
5916
5917      <para>
5918       This fix applies only to Windows.
5919      </para>
5920     </listitem>
5921
5922     <listitem>
5923      <para>
5924       Fix <application>pg_dumpall</> to work when a source database
5925       sets <link
5926       linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
5927       via <command>ALTER DATABASE SET</> (Kevin Grittner)
5928      </para>
5929
5930      <para>
5931       Previously, the generated script would fail during restore.
5932      </para>
5933     </listitem>
5934
5935     <listitem>
5936      <para>
5937       Fix <application>pg_isready</> to handle its <option>-d</> option
5938       properly (Fabr&iacute;zio de Royes Mello and Fujii Masao)
5939      </para>
5940     </listitem>
5941
5942     <listitem>
5943      <para>
5944       Fix parsing of WAL file names in <application>pg_receivexlog</>
5945       (Heikki Linnakangas)
5946      </para>
5947
5948      <para>
5949       This error made <application>pg_receivexlog</> unable to restart
5950       streaming after stopping, once at least 4 GB of WAL had been written.
5951      </para>
5952     </listitem>
5953
5954     <listitem>
5955      <para>
5956       Report out-of-disk-space failures properly
5957       in <application>pg_upgrade</> (Peter Eisentraut)
5958      </para>
5959     </listitem>
5960
5961     <listitem>
5962      <para>
5963       Make <application>ecpg</> search for quoted cursor names
5964       case-sensitively (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
5965      </para>
5966     </listitem>
5967
5968     <listitem>
5969      <para>
5970       Fix <application>ecpg</>'s processing of lists of variables
5971       declared <type>varchar</> (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
5972      </para>
5973     </listitem>
5974
5975     <listitem>
5976      <para>
5977       Make <filename>contrib/lo</> defend against incorrect trigger definitions
5978       (Marc Cousin)
5979      </para>
5980     </listitem>
5981
5982     <listitem>
5983      <para>
5984       Update time zone data files to <application>tzdata</> release 2013h
5985       for DST law changes in Argentina, Brazil, Jordan, Libya,
5986       Liechtenstein, Morocco, and Palestine.  Also, new timezone
5987       abbreviations WIB, WIT, WITA for Indonesia.
5988      </para>
5989     </listitem>
5990
5991    </itemizedlist>
5992
5993   </sect2>
5994  </sect1>
5995
5996  <sect1 id="release-9-3-1">
5997   <title>Release 9.3.1</title>
5998
5999   <note>
6000   <title>Release Date</title>
6001   <simpara>2013-10-10</simpara>
6002   </note>
6003
6004   <para>
6005    This release contains a variety of fixes from 9.3.0.
6006    For information about new features in the 9.3 major release, see
6007    <xref linkend="release-9-3">.
6008   </para>
6009
6010   <sect2>
6011    <title>Migration to Version 9.3.1</title>
6012
6013    <para>
6014     A dump/restore is not required for those running 9.3.X.
6015    </para>
6016
6017    <para>
6018     However, if you use the <literal>hstore</> extension, see the
6019     first changelog entry.
6020    </para>
6021
6022   </sect2>
6023
6024   <sect2>
6025    <title>Changes</title>
6026
6027    <itemizedlist>
6028
6029     <listitem>
6030      <para>
6031       Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
6032       extension during an update (Andrew Dunstan)
6033      </para>
6034
6035      <para>
6036       Users who upgraded a pre-9.3 database containing <literal>hstore</>
6037       should execute
6038 <programlisting>
6039 ALTER EXTENSION hstore UPDATE;
6040 </programlisting>
6041       after installing 9.3.1, to add two new JSON functions and a cast.
6042       (If <literal>hstore</> is already up to date, this command does
6043       nothing.)
6044      </para>
6045     </listitem>
6046
6047     <listitem>
6048      <para>
6049       Fix memory leak when creating B-tree indexes on range columns
6050       (Heikki Linnakangas)
6051      </para>
6052     </listitem>
6053
6054     <listitem>
6055      <para>
6056       Fix memory leak caused by <function>lo_open()</function> failure
6057       (Heikki Linnakangas)
6058      </para>
6059     </listitem>
6060
6061     <listitem>
6062      <para>
6063       Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
6064      </para>
6065     </listitem>
6066
6067     <listitem>
6068      <para>
6069       Fix deadlock bug in libpq when using SSL (Stephen Frost)
6070      </para>
6071     </listitem>
6072
6073     <listitem>
6074      <para>
6075       Fix timeline handling bugs in <application>pg_receivexlog</>
6076       (Heikki Linnakangas, Andrew Gierth)
6077      </para>
6078     </listitem>
6079
6080     <listitem>
6081      <para>
6082       Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
6083       variables unless function body checking is enabled (Tom Lane)
6084      </para>
6085     </listitem>
6086
6087     <listitem>
6088      <para>
6089       Remove rare inaccurate warning during vacuum of index-less tables
6090       (Heikki Linnakangas)
6091      </para>
6092     </listitem>
6093
6094    </itemizedlist>
6095
6096   </sect2>
6097  </sect1>
6098
6099  <sect1 id="release-9-3">
6100   <title>Release 9.3</title>
6101
6102   <note>
6103    <title>Release Date</title>
6104    <simpara>2013-09-09</simpara>
6105   </note>
6106
6107   <sect2>
6108    <title>Overview</title>
6109
6110    <para>
6111     Major enhancements in <productname>PostgreSQL</> 9.3 include:
6112    </para>
6113
6114    <!-- This list duplicates items below, but without authors or details-->
6115
6116    <itemizedlist>
6117
6118     <listitem>
6119      <para>
6120       Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
6121       views</link>
6122      </para>
6123     </listitem>
6124
6125     <listitem>
6126      <para>
6127       Make simple views <link
6128       linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
6129      </para>
6130     </listitem>
6131
6132     <listitem>
6133      <para>
6134       Add many features for the <type>JSON</> data type,
6135       including <link linkend="functions-json">operators and functions</link>
6136       to extract elements from <type>JSON</> values
6137      </para>
6138     </listitem>
6139
6140     <listitem>
6141      <para>
6142       Implement <acronym>SQL</>-standard <link
6143       linkend="queries-lateral"><literal>LATERAL</></link> option for
6144       <literal>FROM</>-clause subqueries and function calls
6145      </para>
6146     </listitem>
6147
6148     <listitem>
6149      <para>
6150       Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
6151       wrappers</link> to support writes (inserts/updates/deletes) on foreign
6152       tables
6153      </para>
6154     </listitem>
6155
6156     <listitem>
6157      <para>
6158       Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
6159       data wrapper</link> to allow access to
6160       other <productname>Postgres</> servers
6161      </para>
6162     </listitem>
6163
6164     <listitem>
6165      <para>
6166       Add support for <link linkend="event-triggers">event triggers</link>
6167      </para>
6168     </listitem>
6169
6170     <listitem>
6171      <para>
6172       Add optional ability to <link
6173       linkend="app-initdb-data-checksums">checksum</link> data pages and
6174       report corruption
6175      </para>
6176     </listitem>
6177
6178     <listitem>
6179      <para>
6180       Prevent non-key-field row updates from blocking foreign key checks
6181      </para>
6182     </listitem>
6183
6184     <listitem>
6185      <para>
6186       Greatly reduce System V <link linkend="sysvipc">shared
6187       memory</link> requirements
6188      </para>
6189     </listitem>
6190
6191    </itemizedlist>
6192
6193    <para>
6194     The above items are explained in more detail in the sections below.
6195    </para>
6196
6197   </sect2>
6198
6199   <sect2>
6200
6201   <title>Migration to Version 9.3</title>
6202
6203    <para>
6204     A dump/restore using <link
6205     linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
6206     of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
6207     required for those wishing to migrate data from any previous release.
6208    </para>
6209
6210    <para>
6211     Version 9.3 contains a number of changes that may affect compatibility
6212     with previous releases.  Observe the following incompatibilities:
6213    </para>
6214
6215    <sect3>
6216     <title>Server Settings</title>
6217
6218      <itemizedlist>
6219
6220       <listitem>
6221        <para>
6222         Rename <varname>replication_timeout</> to <link
6223         linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
6224         (Amit Kapila)
6225        </para>
6226
6227        <para>
6228         This setting controls the <link
6229         linkend="wal"><acronym>WAL</></link> sender timeout.
6230        </para>
6231       </listitem>
6232
6233       <listitem>
6234        <para>
6235         Require superuser privileges to set <link
6236         linkend="guc-commit-delay"><varname>commit_delay</></link>
6237         because it can now potentially delay other sessions (Simon Riggs)
6238        </para>
6239       </listitem>
6240
6241       <listitem>
6242        <para>
6243         Allow in-memory sorts to use their full memory allocation (Jeff Janes)
6244        </para>
6245
6246        <para>
6247         Users who have set <link
6248         linkend="guc-work-mem"><varname>work_mem</></link> based on the
6249         previous behavior may need to revisit that setting.
6250        </para>
6251       </listitem>
6252
6253      </itemizedlist>
6254
6255    </sect3>
6256
6257    <sect3>
6258     <title>Other</title>
6259
6260      <itemizedlist>
6261
6262       <listitem>
6263        <para>
6264         Throw an error if a tuple to be updated or deleted has already been
6265         updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
6266        </para>
6267
6268        <para>
6269         Formerly, the originally-intended update was silently skipped,
6270         resulting in logical inconsistency since the trigger might have
6271         propagated data to other places based on the intended update.
6272         Now an error is thrown to prevent the inconsistent results from being
6273         committed.  If this change affects your application, the best solution
6274         is usually to move the data-propagation actions to
6275         an <literal>AFTER</> trigger.
6276        </para>
6277
6278        <para>
6279         This error will also be thrown if a query invokes a volatile function
6280         that modifies rows that are later modified by the query itself.
6281         Such cases likewise previously resulted in silently skipping updates.
6282        </para>
6283       </listitem>
6284
6285       <listitem>
6286        <para>
6287         Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
6288         SET NULL/SET DEFAULT</></link> foreign key actions to affect
6289         all columns of the constraint, not just those changed in the
6290         <command>UPDATE</> (Tom Lane)
6291        </para>
6292
6293        <para>
6294         Previously, we would set only those referencing columns that
6295         correspond to referenced columns that were changed by
6296         the <command>UPDATE</>.  This was what was required by SQL-92,
6297         but more recent editions of the SQL standard specify the new behavior.
6298        </para>
6299       </listitem>
6300
6301       <listitem>
6302        <para>
6303         Force cached plans to be replanned if the <link
6304         linkend="guc-search-path"><varname>search_path</></link> changes
6305         (Tom Lane)
6306        </para>
6307
6308        <para>
6309         Previously, cached plans already generated in the current session were
6310         not redone if the query was re-executed with a
6311         new <varname>search_path</> setting, resulting in surprising behavior.
6312        </para>
6313       </listitem>
6314
6315       <listitem>
6316        <para>
6317         Fix <link
6318         linkend="functions-formatting-table"><function>to_number()</></link>
6319         to properly handle a period used as a thousands separator (Tom Lane)
6320        </para>
6321
6322        <para>
6323         Previously, a period was considered to be a decimal point even when
6324         the locale says it isn't and the <literal>D</> format code is used to
6325         specify use of the locale-specific decimal point.  This resulted in
6326         wrong answers if <literal>FM</> format was also used.
6327        </para>
6328       </listitem>
6329
6330       <listitem>
6331        <para>
6332         Fix <literal>STRICT</> non-set-returning functions that have
6333         set-returning functions in their arguments to properly return null
6334         rows (Tom Lane)
6335        </para>
6336
6337        <para>
6338         A null value passed to the strict function should result in a null
6339         output, but instead, that output row was suppressed entirely.
6340        </para>
6341       </listitem>
6342
6343       <listitem>
6344        <para>
6345         Store <link linkend="wal"><acronym>WAL</></link> in a continuous
6346         stream, rather than skipping the last 16MB segment every 4GB
6347         (Heikki Linnakangas)
6348        </para>
6349
6350        <para>
6351         Previously, <acronym>WAL</> files with names ending in <literal>FF</>
6352         were not used because of this skipping.  If you have <acronym>WAL</>
6353         backup or restore scripts that took this behavior into account, they
6354         will need to be adjusted.
6355        </para>
6356       </listitem>
6357
6358       <listitem>
6359        <para>
6360         In <link
6361         linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
6362         store the default foreign key match type (non-<literal>FULL</>,
6363         non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
6364         (Tom Lane)
6365        </para>
6366
6367        <para>
6368         Previously this case was represented by <literal>u</>
6369         for <quote>unspecified</>.
6370        </para>
6371       </listitem>
6372
6373      </itemizedlist>
6374
6375    </sect3>
6376
6377   </sect2>
6378
6379   <sect2>
6380    <title>Changes</title>
6381
6382    <para>
6383     Below you will find a detailed account of the changes between
6384     <productname>PostgreSQL</productname> 9.3 and the previous major
6385     release.
6386    </para>
6387
6388    <sect3>
6389     <title>Server</title>
6390
6391     <sect4>
6392      <title>Locking</title>
6393
6394      <itemizedlist>
6395
6396       <listitem>
6397        <para>
6398         Prevent non-key-field row updates from blocking foreign key checks
6399         (&Aacute;lvaro Herrera, Noah Misch, Andres Freund, Alexander
6400         Shulgin, Marti Raudsepp, Alexander Shulgin)
6401        </para>
6402
6403        <para>
6404         This change improves concurrency and reduces the probability of
6405         deadlocks when updating tables involved in a foreign-key constraint.
6406         <command>UPDATE</>s that do not change any columns referenced in a
6407         foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
6408         the row, while foreign key checks use the new <literal>KEY SHARE</>
6409         lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
6410         So there is no blocking unless a foreign-key column is changed.
6411        </para>
6412       </listitem>
6413
6414       <listitem>
6415        <para>
6416         Add configuration variable <link
6417         linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
6418         allow limiting how long a session will wait to acquire any one lock
6419         (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
6420        </para>
6421       </listitem>
6422
6423      </itemizedlist>
6424
6425     </sect4>
6426
6427     <sect4>
6428      <title>Indexes</title>
6429
6430      <itemizedlist>
6431
6432       <listitem>
6433        <para>
6434         Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
6435         support for range data types (Alexander Korotkov)
6436        </para>
6437       </listitem>
6438
6439       <listitem>
6440        <para>
6441         Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
6442         unlogged (Jeevan Chalke)
6443        </para>
6444       </listitem>
6445
6446       <listitem>
6447        <para>
6448         Improve performance of <acronym>GiST</> index insertion by randomizing
6449         the choice of which page to descend to when there are multiple equally
6450         good alternatives (Heikki Linnakangas)
6451        </para>
6452       </listitem>
6453
6454       <listitem>
6455        <para>
6456         Improve concurrency of hash index operations (Robert Haas)
6457        </para>
6458       </listitem>
6459
6460      </itemizedlist>
6461
6462     </sect4>
6463
6464     <sect4>
6465      <title>Optimizer</title>
6466
6467      <itemizedlist>
6468
6469       <listitem>
6470        <para>
6471         Collect and use histograms of upper and lower bounds, as well as range
6472         lengths, for <link linkend="rangetypes">range types</link>
6473         (Alexander Korotkov)
6474        </para>
6475       </listitem>
6476
6477       <listitem>
6478        <para>
6479         Improve optimizer's cost estimation for index access (Tom Lane)
6480        </para>
6481       </listitem>
6482
6483       <listitem>
6484        <para>
6485         Improve optimizer's hash table size estimate for
6486         doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
6487        </para>
6488       </listitem>
6489
6490       <listitem>
6491        <para>
6492         Suppress no-op Result and Limit plan nodes
6493         (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
6494        </para>
6495       </listitem>
6496
6497       <listitem>
6498        <para>
6499         Reduce optimizer overhead by not keeping plans on the basis of cheap
6500         startup cost when the optimizer only cares about total cost overall
6501         (Tom Lane)
6502        </para>
6503       </listitem>
6504
6505      </itemizedlist>
6506
6507     </sect4>
6508
6509     <sect4>
6510      <title>General Performance</title>
6511
6512      <itemizedlist>
6513
6514       <listitem>
6515        <para>
6516         Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
6517         option to avoid the overhead of marking tuples as frozen later
6518         (Simon Riggs, Jeff Davis)
6519        </para>
6520       </listitem>
6521
6522       <listitem>
6523        <para>
6524         Improve performance of <link
6525         linkend="datatype-numeric"><type>NUMERIC</></link> calculations
6526         (Kyotaro Horiguchi)
6527        </para>
6528       </listitem>
6529
6530       <listitem>
6531        <para>
6532         Improve synchronization of sessions waiting for <link
6533         linkend="guc-commit-delay"><varname>commit_delay</></link>
6534         (Peter Geoghegan)
6535        </para>
6536
6537        <para>
6538         This greatly improves the usefulness of <varname>commit_delay</>.
6539        </para>
6540       </listitem>
6541
6542       <listitem>
6543        <para>
6544         Improve performance of the <link
6545         linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
6546         COMMIT DELETE ROWS</></link> option by not truncating such temporary
6547         tables in transactions that haven't touched any temporary tables
6548         (Heikki Linnakangas)
6549        </para>
6550       </listitem>
6551
6552       <listitem>
6553        <para>
6554         Make vacuum recheck visibility after it has removed expired tuples
6555         (Pavan Deolasee)
6556        </para>
6557
6558        <para>
6559         This increases the chance of a page being marked as all-visible.
6560        </para>
6561       </listitem>
6562
6563       <listitem>
6564        <para>
6565         Add per-resource-owner lock caches (Jeff Janes)
6566        </para>
6567
6568        <para>
6569         This speeds up lock bookkeeping at statement completion in
6570         multi-statement transactions that hold many locks; it is particularly
6571         useful for <application>pg_dump</>.
6572        </para>
6573       </listitem>
6574
6575       <listitem>
6576        <para>
6577         Avoid scanning the entire relation cache at commit of a transaction
6578         that creates a new relation (Jeff Janes)
6579        </para>
6580
6581        <para>
6582         This speeds up sessions that create many tables in successive
6583         small transactions, such as a <application>pg_restore</> run.
6584        </para>
6585       </listitem>
6586
6587       <listitem>
6588        <para>
6589         Improve performance of transactions that drop many relations
6590         (Tomas Vondra)
6591        </para>
6592       </listitem>
6593
6594      </itemizedlist>
6595
6596     </sect4>
6597
6598     <sect4>
6599      <title>Monitoring</title>
6600
6601      <itemizedlist>
6602
6603       <listitem>
6604        <para>
6605         Add optional ability to <link
6606         linkend="app-initdb-data-checksums">checksum</link> data pages and
6607         report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
6608        </para>
6609
6610        <para>
6611         The checksum option can be set during <link
6612         linkend="APP-INITDB">initdb</link>.
6613        </para>
6614       </listitem>
6615
6616       <listitem>
6617        <para>
6618         Split the <link linkend="monitoring-stats">statistics collector's</link>
6619         data file into separate global and per-database files (Tomas Vondra)
6620        </para>
6621
6622        <para>
6623         This reduces the I/O required for statistics tracking.
6624        </para>
6625       </listitem>
6626
6627       <listitem>
6628        <para>
6629         Fix the statistics collector to operate properly in cases where the
6630         system clock goes backwards (Tom Lane)
6631        </para>
6632
6633        <para>
6634         Previously, statistics collection would stop until the time again
6635         reached the latest time previously recorded.
6636        </para>
6637       </listitem>
6638
6639       <listitem>
6640        <para>
6641         Emit an informative message to postmaster standard error when we
6642         are about to stop logging there
6643         (Tom Lane)
6644        </para>
6645
6646        <para>
6647         This should help reduce user confusion about where to look for log
6648         output in common configurations that log to standard error only during
6649         postmaster startup.
6650        </para>
6651       </listitem>
6652
6653      </itemizedlist>
6654
6655     </sect4>
6656
6657     <sect4>
6658      <title>Authentication</title>
6659
6660      <itemizedlist>
6661
6662       <listitem>
6663        <para>
6664         When an authentication failure occurs, log the relevant
6665         <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
6666         line, to ease debugging of unintended failures
6667         (Magnus Hagander)
6668        </para>
6669       </listitem>
6670
6671       <listitem>
6672        <para>
6673         Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
6674         reporting and documentation (Peter Eisentraut)
6675        </para>
6676       </listitem>
6677
6678       <listitem>
6679        <para>
6680         Add support for specifying <acronym>LDAP</> authentication parameters
6681         in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
6682        </para>
6683       </listitem>
6684
6685       <listitem>
6686        <para>
6687         Change the <link
6688         linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
6689         to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
6690         then remove insecure ciphers (Magnus Hagander)
6691        </para>
6692
6693        <para>
6694         This should yield a more appropriate SSL cipher set.
6695        </para>
6696       </listitem>
6697
6698       <listitem>
6699        <para>
6700         Parse and load <link
6701         linkend="auth-username-maps"><filename>pg_ident.conf</></link>
6702         once, not during each connection (Amit Kapila)
6703        </para>
6704
6705        <para>
6706         This is similar to how <filename>pg_hba.conf</> is processed.
6707        </para>
6708       </listitem>
6709
6710      </itemizedlist>
6711
6712     </sect4>
6713
6714     <sect4>
6715      <title>Server Settings</title>
6716
6717      <itemizedlist>
6718
6719       <listitem>
6720        <para>
6721         Greatly reduce System V <link linkend="sysvipc">shared
6722         memory</link> requirements (Robert Haas)
6723        </para>
6724
6725        <para>
6726         On Unix-like systems, <function>mmap()</> is now used for most
6727         of <productname>PostgreSQL</>'s shared memory.  For most users, this
6728         will eliminate any need to adjust kernel parameters for shared memory.
6729        </para>
6730       </listitem>
6731
6732       <listitem>
6733        <para>
6734         Allow the postmaster to listen on multiple Unix-domain sockets
6735         (Honza Hor&aacute;k)
6736        </para>
6737
6738        <para>
6739         The configuration parameter
6740         <varname>unix_socket_directory</> is replaced by <link
6741         linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
6742         which accepts a list of directories.
6743        </para>
6744       </listitem>
6745
6746       <listitem>
6747        <para>
6748         Allow a directory of configuration files to be processed (Magnus
6749         Hagander, Greg Smith, Selena Deckelmann)
6750        </para>
6751
6752        <para>
6753         Such a directory is specified with <link
6754         linkend="config-includes"><varname>include_dir</></link> in the server
6755         configuration file.
6756        </para>
6757       </listitem>
6758
6759       <listitem>
6760        <para>
6761         Increase the maximum <link
6762         linkend="APP-INITDB">initdb</link>-configured value for <link
6763         linkend="guc-shared-buffers"><varname>shared_buffers</></link>
6764         to 128MB (Robert Haas)
6765        </para>
6766
6767        <para>
6768         This is the maximum value that initdb will attempt to set in <link
6769         linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
6770         the previous maximum was 32MB.
6771        </para>
6772       </listitem>
6773
6774       <listitem>
6775        <para>
6776         Remove the <link linkend="guc-external-pid-file">external
6777         <acronym>PID</> file</link>, if any, on postmaster exit
6778         (Peter Eisentraut)
6779        </para>
6780       </listitem>
6781
6782      </itemizedlist>
6783
6784     </sect4>
6785
6786    </sect3>
6787
6788    <sect3>
6789     <title>Replication and Recovery</title>
6790
6791      <itemizedlist>
6792
6793       <listitem>
6794        <para>
6795         Allow a streaming replication standby to <link
6796         linkend="protocol-replication">follow a timeline switch</link>
6797         (Heikki Linnakangas)
6798        </para>
6799
6800        <para>
6801         This allows streaming standby servers to receive WAL data from a slave
6802         newly promoted to master status.  Previously, other standbys would
6803         require a resync to begin following the new master.
6804        </para>
6805       </listitem>
6806
6807       <listitem>
6808        <para>
6809         Add <acronym>SQL</> functions <link
6810         linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
6811         and <link
6812         linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
6813         (Gilles Darold)
6814        </para>
6815
6816        <para>
6817         These functions report the status of base backups.
6818        </para>
6819       </listitem>
6820
6821       <listitem>
6822        <para>
6823         Improve performance of streaming log shipping with <link
6824         linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
6825         disabled (Andres Freund)
6826        </para>
6827       </listitem>
6828
6829       <listitem>
6830        <para>
6831         Allow much faster promotion of a streaming standby to primary (Simon
6832         Riggs, Kyotaro Horiguchi)
6833        </para>
6834       </listitem>
6835
6836       <listitem>
6837        <para>
6838         Add the last checkpoint's redo location to <link
6839         linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
6840         output (Fujii Masao)
6841        </para>
6842
6843        <para>
6844         This information is useful for determining which <acronym>WAL</>
6845         files are needed for restore.
6846        </para>
6847       </listitem>
6848
6849       <listitem>
6850        <para>
6851         Allow tools like <link
6852         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
6853         to run on computers with different architectures (Heikki
6854         Linnakangas)
6855        </para>
6856
6857        <para>
6858         WAL files can still only be replayed on servers with the same
6859         architecture as the primary; but they can now be transmitted to and
6860         stored on machines of any architecture, since the
6861         streaming replication protocol is now machine-independent.
6862        </para>
6863       </listitem>
6864
6865       <listitem>
6866        <para>
6867         Make <link
6868         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
6869         <option>--write-recovery-conf</> output a
6870         minimal <filename>recovery.conf</> file (Zolt&aacute;n
6871         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
6872        </para>
6873
6874        <para>
6875         This simplifies setting up a standby server.
6876        </para>
6877       </listitem>
6878
6879       <listitem>
6880        <para>
6881         Allow <link
6882         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
6883         and <link
6884         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
6885         <option>--xlog-method</> to handle streaming timeline switches
6886         (Heikki Linnakangas)
6887        </para>
6888       </listitem>
6889
6890       <listitem>
6891        <para>
6892         Add <link
6893         linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
6894         parameter to control the <acronym>WAL</> receiver's timeout
6895         (Amit Kapila)
6896        </para>
6897
6898        <para>
6899         This allows more rapid detection of connection failure.
6900        </para>
6901       </listitem>
6902
6903       <listitem>
6904        <para>
6905         Change the <link linkend="wal"><acronym>WAL</></link> record format to
6906         allow splitting the record header across pages (Heikki Linnakangas)
6907        </para>
6908
6909        <para>
6910         The new format is slightly more compact, and is more efficient to
6911         write.
6912        </para>
6913       </listitem>
6914
6915      </itemizedlist>
6916
6917    </sect3>
6918
6919    <sect3>
6920     <title>Queries</title>
6921
6922      <itemizedlist>
6923
6924       <listitem>
6925        <para>
6926         Implement <acronym>SQL</>-standard <link
6927         linkend="queries-lateral"><literal>LATERAL</></link> option for
6928         <literal>FROM</>-clause subqueries and function calls (Tom Lane)
6929        </para>
6930
6931        <para>
6932         This feature allows subqueries and functions in <literal>FROM</> to
6933         reference columns from other tables in the <literal>FROM</>
6934         clause. The <literal>LATERAL</> keyword is optional for functions.
6935        </para>
6936       </listitem>
6937
6938       <listitem>
6939        <para>
6940         Add support for piping <link
6941         linkend="SQL-COPY"><command>COPY</></link> and <link
6942         linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
6943         data to/from an external program (Etsuro Fujita)
6944        </para>
6945       </listitem>
6946
6947       <listitem>
6948        <para>
6949         Allow a multirow <link
6950         linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
6951         to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
6952        </para>
6953       </listitem>
6954
6955      </itemizedlist>
6956
6957    </sect3>
6958
6959    <sect3>
6960     <title>Object Manipulation</title>
6961
6962      <itemizedlist>
6963
6964       <listitem>
6965        <para>
6966         Add support for <link linkend="event-triggers">event triggers</link>
6967         (Dimitri Fontaine, Robert Haas, &Aacute;lvaro Herrera)
6968        </para>
6969
6970        <para>
6971         This allows server-side functions written in event-enabled
6972         languages to be called when DDL commands are run.
6973        </para>
6974       </listitem>
6975
6976       <listitem>
6977        <para>
6978         Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
6979         wrappers</link> to support writes (inserts/updates/deletes) on foreign
6980         tables (KaiGai Kohei)
6981        </para>
6982       </listitem>
6983
6984       <listitem>
6985        <para>
6986         Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
6987         NOT EXISTS</></link> clause (Fabr&iacute;zio de Royes Mello)
6988        </para>
6989       </listitem>
6990
6991       <listitem>
6992        <para>
6993         Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
6994         OWNED</></link> also change ownership of shared objects
6995         (&Aacute;lvaro Herrera)
6996        </para>
6997       </listitem>
6998
6999       <listitem>
7000        <para>
7001         Make <link linkend="sql-createaggregate"><command>CREATE
7002         AGGREGATE</></link> complain if the given initial value string is not
7003         valid input for the transition datatype (Tom Lane)
7004        </para>
7005       </listitem>
7006
7007       <listitem>
7008        <para>
7009         Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
7010         TABLE</></link>'s messages about implicit index and sequence creation
7011         (Robert Haas)
7012        </para>
7013
7014        <para>
7015         These messages now appear at <literal>DEBUG1</> verbosity, so that
7016         they will not be shown by default.
7017        </para>
7018       </listitem>
7019
7020       <listitem>
7021        <para>
7022         Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
7023         EXISTS</></link> to succeed when a non-existent schema is specified
7024         in the table name (Bruce Momjian)
7025        </para>
7026
7027        <para>
7028          Previously, it threw an error if the schema did not exist.
7029        </para>
7030       </listitem>
7031
7032       <listitem>
7033        <para>
7034         Provide clients with <link
7035         linkend="libpq-pqresulterrorfield">constraint violation details</link>
7036         as separate fields (Pavel Stehule)
7037        </para>
7038
7039        <para>
7040         This allows clients to retrieve table, column, data type, or
7041         constraint name error details.  Previously such information had to be
7042         extracted from error strings.  Client library support is required to
7043         access these fields.
7044        </para>
7045       </listitem>
7046
7047      </itemizedlist>
7048
7049     <sect4>
7050      <title><command>ALTER</></title>
7051
7052      <itemizedlist>
7053
7054       <listitem>
7055        <para>
7056         Support <literal>IF NOT EXISTS</> option in <link
7057         linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
7058         (Andrew Dunstan)
7059        </para>
7060
7061        <para>
7062         This is useful for conditionally adding values to enumerated types.
7063        </para>
7064       </listitem>
7065
7066       <listitem>
7067        <para>
7068         Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
7069         SET</></link> to establish settings for all users (Peter Eisentraut)
7070        </para>
7071
7072        <para>
7073         This allows settings to apply to all users in all databases. <link
7074         linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
7075         already allowed addition of settings for all users in a single
7076         database.  <filename>postgresql.conf</> has a similar effect.
7077        </para>
7078       </listitem>
7079
7080       <listitem>
7081        <para>
7082         Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
7083         ... RENAME</></link> (Ali Dar)
7084        </para>
7085       </listitem>
7086
7087      </itemizedlist>
7088
7089     </sect4>
7090
7091     <sect4>
7092      <title><link linkend="rules-views"><command>VIEWs</></link></title>
7093
7094      <itemizedlist>
7095
7096       <listitem>
7097        <para>
7098         Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
7099         views</link> (Kevin Grittner)
7100        </para>
7101
7102        <para>
7103         Unlike ordinary views, where the base tables are read on every access,
7104         materialized views create physical tables at creation or refresh time.
7105         Access to the materialized view then reads from its physical
7106         table. There is not yet any facility for incrementally refreshing
7107         materialized views or auto-accessing them via base table access.
7108        </para>
7109       </listitem>
7110
7111       <listitem>
7112        <para>
7113         Make simple views <link
7114         linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
7115         (Dean Rasheed)
7116        </para>
7117
7118        <para>
7119         Simple views that reference some or all columns from a
7120         single base table are now updatable by default. More
7121         complex views can be made updatable using <link
7122         linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
7123         or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
7124        </para>
7125       </listitem>
7126
7127       <listitem>
7128        <para>
7129         Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
7130         VIEW</></link> syntax (Peter Eisentraut)
7131        </para>
7132
7133        <para>
7134         Internally this is translated into <command>CREATE VIEW ... WITH
7135         RECURSIVE ...</>.
7136        </para>
7137       </listitem>
7138
7139       <listitem>
7140        <para>
7141         Improve view/rule printing code to handle cases where referenced
7142         tables are renamed, or columns are renamed, added, or dropped
7143         (Tom Lane)
7144        </para>
7145
7146        <para>
7147         Table and column renamings can produce cases where, if we merely
7148         substitute the new name into the original text of a rule or view, the
7149         result is ambiguous.  This change fixes the rule-dumping code to insert
7150         manufactured table and column aliases when needed to preserve the
7151         original semantics.
7152        </para>
7153       </listitem>
7154
7155      </itemizedlist>
7156
7157     </sect4>
7158
7159    </sect3>
7160
7161    <sect3>
7162     <title>Data Types</title>
7163
7164     <itemizedlist>
7165
7166       <listitem>
7167        <para>
7168         Increase the maximum size of <link linkend="largeObjects">large
7169         objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
7170        </para>
7171
7172        <para>
7173         This change includes adding 64-bit-capable large object access
7174         functions, both in the server and in libpq.
7175        </para>
7176       </listitem>
7177
7178       <listitem>
7179        <para>
7180         Allow text <link linkend="datatype-timezones">timezone
7181         designations</link>, e.g. <quote>America/Chicago</>, in the
7182         <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
7183         input (Bruce Momjian)
7184        </para>
7185       </listitem>
7186
7187     </itemizedlist>
7188
7189    <sect4>
7190     <title><link linkend="datatype-json"><type>JSON</></link></title>
7191
7192     <itemizedlist>
7193
7194       <listitem>
7195        <para>
7196         Add <link linkend="functions-json">operators and functions</link>
7197         to extract elements from <type>JSON</> values (Andrew Dunstan)
7198        </para>
7199       </listitem>
7200
7201       <listitem>
7202        <para>
7203         Allow <type>JSON</> values to be <link
7204         linkend="functions-json">converted into records</link>
7205         (Andrew Dunstan)
7206        </para>
7207       </listitem>
7208
7209       <listitem>
7210        <para>
7211         Add <link linkend="functions-json">functions</link> to convert
7212         scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
7213         Dunstan)
7214        </para>
7215       </listitem>
7216
7217     </itemizedlist>
7218
7219    </sect4>
7220
7221    </sect3>
7222
7223
7224    <sect3>
7225     <title>Functions</title>
7226
7227      <itemizedlist>
7228
7229       <listitem>
7230        <para>
7231         Add <link
7232         linkend="array-functions-table"><function>array_remove()</></link>
7233         and <link
7234         linkend="array-functions-table"><function>array_replace()</></link>
7235         functions (Marco Nenciarini, Gabriele Bartolini)
7236        </para>
7237       </listitem>
7238
7239       <listitem>
7240        <para>
7241         Allow <link
7242         linkend="functions-string-other"><function>concat()</></link>
7243         and <link
7244         linkend="functions-string-format"><function>format()</></link>
7245         to properly expand <literal>VARIADIC</>-labeled arguments
7246         (Pavel Stehule)
7247        </para>
7248       </listitem>
7249
7250       <listitem>
7251        <para>
7252         Improve <link
7253         linkend="functions-string-format"><function>format()</></link>
7254         to provide field width and left/right alignment options (Pavel Stehule)
7255        </para>
7256       </listitem>
7257
7258       <listitem>
7259        <para>
7260         Make <link
7261         linkend="functions-formatting-table"><function>to_char()</></link>,
7262         <link
7263         linkend="functions-formatting-table"><function>to_date()</></link>,
7264         and <link
7265         linkend="functions-formatting-table"><function>to_timestamp()</></link>
7266         handle negative (BC) century values properly
7267         (Bruce Momjian)
7268        </para>
7269
7270        <para>
7271         Previously the behavior was either wrong or inconsistent
7272         with positive/<acronym>AD</> handling, e.g. with the format mask
7273         <quote>IYYY-IW-DY</>.
7274        </para>
7275       </listitem>
7276
7277       <listitem>
7278        <para>
7279         Make <link
7280         linkend="functions-formatting-table"><function>to_date()</></link>
7281         and <link
7282         linkend="functions-formatting-table"><function>to_timestamp()</></link>
7283         return proper results when mixing <acronym>ISO</> and Gregorian
7284         week/day designations (Bruce Momjian)
7285        </para>
7286       </listitem>
7287
7288       <listitem>
7289        <para>
7290         Cause <link
7291         linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
7292         to start a new line by default after each <literal>SELECT</> target
7293         list entry and <literal>FROM</> entry (Marko Tiikkaja)
7294        </para>
7295
7296        <para>
7297         This reduces line length in view printing, for instance in <link
7298         linkend="APP-PGDUMP"><application>pg_dump</></link> output.
7299        </para>
7300       </listitem>
7301
7302       <listitem>
7303        <para>
7304         Fix <function>map_sql_value_to_xml_value()</> to print values of
7305         domain types the same way their base type would be printed
7306         (Pavel Stehule)
7307        </para>
7308
7309        <para>
7310         There are special formatting rules for certain built-in types such as
7311         <type>boolean</>; these rules now also apply to domains over these
7312         types.
7313        </para>
7314       </listitem>
7315
7316      </itemizedlist>
7317
7318    </sect3>
7319
7320    <sect3>
7321     <title>Server-Side Languages</title>
7322
7323     <sect4>
7324      <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
7325
7326      <itemizedlist>
7327
7328       <listitem>
7329        <para>
7330         Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
7331         expression (Asif Rehman)
7332        </para>
7333
7334        <para>
7335         Previously, in a function returning a composite type,
7336         <literal>RETURN</> could only reference a variable of that type.
7337        </para>
7338       </listitem>
7339
7340       <listitem>
7341        <para>
7342         Allow PL/pgSQL to access <link
7343         linkend="plpgsql-exception-diagnostics">constraint violation
7344         details</link> as separate fields (Pavel Stehule)
7345        </para>
7346       </listitem>
7347
7348       <listitem>
7349        <para>
7350         Allow PL/pgSQL to access the number of rows processed by
7351         <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
7352        </para>
7353
7354        <para>
7355         A <command>COPY</> executed in a PL/pgSQL function now updates the
7356         value retrieved by <link
7357         linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
7358         x = ROW_COUNT</></link>.
7359        </para>
7360       </listitem>
7361
7362       <listitem>
7363        <para>
7364         Allow unreserved keywords to be used as identifiers everywhere in
7365         PL/pgSQL (Tom Lane)
7366        </para>
7367
7368        <para>
7369         In certain places in the PL/pgSQL grammar, keywords had to be quoted
7370         to be used as identifiers, even if they were nominally unreserved.
7371        </para>
7372       </listitem>
7373
7374     </itemizedlist>
7375
7376     </sect4>
7377
7378     <sect4>
7379      <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
7380
7381      <itemizedlist>
7382
7383       <listitem>
7384        <para>
7385         Add PL/Python result object string handler (Peter Eisentraut)
7386        </para>
7387
7388        <para>
7389         This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
7390        </para>
7391       </listitem>
7392
7393       <listitem>
7394        <para>
7395         Make PL/Python convert OID values to a proper Python numeric type
7396         (Peter Eisentraut)
7397        </para>
7398       </listitem>
7399
7400       <listitem>
7401        <para>
7402         Handle <link linkend="spi"><acronym>SPI</></link> errors raised
7403         explicitly (with PL/Python's <literal>RAISE</>) the same as
7404         internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
7405        </para>
7406       </listitem>
7407
7408      </itemizedlist>
7409
7410     </sect4>
7411
7412    </sect3>
7413
7414    <sect3>
7415     <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
7416
7417      <itemizedlist>
7418
7419       <listitem>
7420        <para>
7421         Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
7422         abort (Tom Lane)
7423        </para>
7424
7425        <para>
7426         At the end of any failed subtransaction, the core SPI code now
7427         releases any SPI tuple tables that were created during that
7428         subtransaction.  This avoids the need for SPI-using code to keep track
7429         of such tuple tables and release them manually in error-recovery code.
7430         Failure to do so caused a number of transaction-lifespan memory leakage
7431         issues in PL/pgSQL and perhaps other SPI clients.  <link
7432         linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
7433         now protects itself against multiple freeing requests, so any existing
7434         code that did take care to clean up shouldn't be broken by this change.
7435        </para>
7436       </listitem>
7437
7438       <listitem>
7439        <para>
7440         Allow <acronym>SPI</> functions to access the number of rows processed
7441         by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
7442        </para>
7443       </listitem>
7444
7445      </itemizedlist>
7446
7447    </sect3>
7448
7449    <sect3>
7450     <title>Client Applications</title>
7451
7452     <itemizedlist>
7453
7454       <listitem>
7455        <para>
7456         Add command-line utility <link
7457         linkend="app-pg-isready"><application>pg_isready</></link> to
7458         check if the server is ready to accept connections (Phil Sorber)
7459        </para>
7460       </listitem>
7461
7462       <listitem>
7463        <para>
7464         Support multiple <option>--table</> arguments for <link
7465         linkend="APP-PGRESTORE"><application>pg_restore</></link>,
7466         <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
7467         <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
7468         and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
7469         (Josh Kupershmidt)
7470        </para>
7471
7472        <para>
7473         This is similar to the way <link
7474         linkend="APP-PGDUMP"><application>pg_dump</></link>'s
7475         <option>--table</> option works.
7476        </para>
7477       </listitem>
7478
7479       <listitem>
7480        <para>
7481         Add <option>--dbname</> option to <link
7482         linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
7483         linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
7484         <link
7485         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
7486         to allow specifying a connection string (Amit Kapila)
7487        </para>
7488       </listitem>
7489
7490       <listitem>
7491        <para>
7492         Add libpq function <link
7493         linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
7494         to return connection information (Zolt&aacute;n
7495         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
7496        </para>
7497       </listitem>
7498
7499     </itemizedlist>
7500
7501     <sect4>
7502      <title><link linkend="APP-PSQL"><application>psql</></link></title>
7503
7504      <itemizedlist>
7505
7506       <listitem>
7507        <para>
7508         Adjust function cost settings so <application>psql</> tab
7509         completion and pattern searching are more efficient (Tom Lane)
7510        </para>
7511       </listitem>
7512
7513       <listitem>
7514        <para>
7515         Improve <application>psql</>'s tab completion coverage (Jeff Janes,
7516         Dean Rasheed, Peter Eisentraut, Magnus Hagander)
7517        </para>
7518       </listitem>
7519
7520       <listitem>
7521        <para>
7522         Allow the <application>psql</> <option>--single-transaction</>
7523         mode to work when reading from standard input (Fabien Coelho,
7524         Robert Haas)
7525        </para>
7526
7527        <para>
7528         Previously this option only worked when reading from a file.
7529        </para>
7530       </listitem>
7531
7532       <listitem>
7533        <para>
7534         Remove <application>psql</> warning when connecting to an older
7535         server (Peter Eisentraut)
7536        </para>
7537
7538        <para>
7539         A warning is still issued when connecting to a server of a newer major
7540         version than <application>psql</>'s.
7541        </para>
7542       </listitem>
7543
7544      </itemizedlist>
7545
7546     <sect5>
7547      <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
7548
7549      <itemizedlist>
7550
7551       <listitem>
7552        <para>
7553         Add <application>psql</> command <command>\watch</> to repeatedly
7554         execute a SQL command (Will Leinweber)
7555        </para>
7556       </listitem>
7557
7558       <listitem>
7559        <para>
7560         Add <application>psql</> command <command>\gset</> to store query
7561         results in <application>psql</> variables (Pavel Stehule)
7562        </para>
7563       </listitem>
7564
7565       <listitem>
7566        <para>
7567         Add <acronym>SSL</> information to <application>psql</>'s
7568         <command>\conninfo</> command (Alastair Turner)
7569        </para>
7570       </listitem>
7571
7572       <listitem>
7573        <para>
7574         Add <quote>Security</> column to <application>psql</>'s
7575         <command>\df+</> output (Jon Erdman)
7576        </para>
7577       </listitem>
7578
7579       <listitem>
7580        <para>
7581         Allow <application>psql</> command <command>\l</> to accept a database
7582         name pattern (Peter Eisentraut)
7583        </para>
7584       </listitem>
7585
7586       <listitem>
7587        <para>
7588         In <application>psql</>, do not allow <command>\connect</> to
7589         use defaults if there is no active connection (Bruce Momjian)
7590        </para>
7591
7592        <para>
7593         This might be the case if the server had crashed.
7594        </para>
7595       </listitem>
7596
7597       <listitem>
7598        <para>
7599         Properly reset state after failure of a SQL command executed with
7600         <application>psql</>'s <literal>\g</> <replaceable>file</>
7601         (Tom Lane)
7602        </para>
7603
7604        <para>
7605         Previously, the output from subsequent SQL commands would unexpectedly
7606         continue to go to the same file.
7607        </para>
7608       </listitem>
7609
7610      </itemizedlist>
7611
7612     </sect5>
7613
7614     <sect5>
7615      <title>Output</title>
7616
7617      <itemizedlist>
7618
7619       <listitem>
7620        <para>
7621         Add a <literal>latex-longtable</> output format to
7622         <application>psql</> (Bruce Momjian)
7623        </para>
7624
7625        <para>
7626         This format allows tables to span multiple pages.
7627        </para>
7628       </listitem>
7629
7630       <listitem>
7631        <para>
7632         Add a <literal>border=3</> output mode to the <application>psql</>
7633         <literal>latex</> format (Bruce Momjian)
7634        </para>
7635       </listitem>
7636
7637       <listitem>
7638        <para>
7639         In <application>psql</>'s tuples-only and expanded output modes, no
7640         longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
7641        </para>
7642       </listitem>
7643
7644       <listitem>
7645        <para>
7646         In <application>psql</>'s unaligned, expanded output mode, no longer
7647         print an empty line for zero rows (Peter Eisentraut)
7648        </para>
7649       </listitem>
7650
7651      </itemizedlist>
7652
7653     </sect5>
7654
7655     </sect4>
7656
7657     <sect4>
7658      <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
7659
7660      <itemizedlist>
7661
7662       <listitem>
7663        <para>
7664         Add <application>pg_dump</> <option>--jobs</> option to dump tables in
7665         parallel (Joachim Wieland)
7666        </para>
7667       </listitem>
7668
7669       <listitem>
7670        <para>
7671         Make <application>pg_dump</> output functions in a more predictable
7672         order (Joel Jacobson)
7673        </para>
7674       </listitem>
7675
7676       <listitem>
7677        <para>
7678         Fix tar files emitted by <application>pg_dump</>
7679         to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
7680        </para>
7681       </listitem>
7682
7683       <listitem>
7684        <para>
7685         Add <option>--dbname</> option to <application>pg_dump</>, for
7686         consistency with other client commands (Heikki Linnakangas)
7687        </para>
7688
7689        <para>
7690         The database name could already be supplied last without a flag.
7691        </para>
7692       </listitem>
7693
7694      </itemizedlist>
7695
7696     </sect4>
7697
7698     <sect4>
7699      <title><link linkend="APP-INITDB"><application>initdb</></link></title>
7700
7701      <itemizedlist>
7702
7703       <listitem>
7704        <para>
7705         Make initdb fsync the newly created data directory (Jeff Davis)
7706        </para>
7707
7708        <para>
7709         This insures data integrity in event of a system crash shortly after
7710         initdb.  This can be disabled by using <option>--nosync</>.
7711        </para>
7712       </listitem>
7713
7714       <listitem>
7715        <para>
7716         Add initdb <option>--sync-only</> option to sync the data directory to durable
7717         storage (Bruce Momjian)
7718        </para>
7719
7720        <para>
7721         This is used by <link
7722         linkend="pgupgrade"><application>pg_upgrade</></link>.
7723        </para>
7724       </listitem>
7725
7726       <listitem>
7727        <para>
7728         Make initdb issue a warning about placing the data directory at the
7729         top of a file system mount point (Bruce Momjian)
7730        </para>
7731       </listitem>
7732
7733      </itemizedlist>
7734
7735     </sect4>
7736
7737    </sect3>
7738
7739    <sect3>
7740     <title>Source Code</title>
7741
7742      <itemizedlist>
7743
7744       <listitem>
7745        <para>
7746         Add infrastructure to allow plug-in <link
7747         linkend="bgworker">background worker processes</link>
7748         (&Aacute;lvaro Herrera)
7749        </para>
7750       </listitem>
7751
7752       <listitem>
7753        <para>
7754         Create a centralized timeout <acronym>API</> (Zolt&aacute;n
7755         B&ouml;sz&ouml;rm&eacute;nyi)
7756        </para>
7757       </listitem>
7758
7759       <listitem>
7760        <para>
7761         Create libpgcommon and move <function>pg_malloc()</> and other
7762         functions there (&Aacute;lvaro Herrera, Andres Freund)
7763        </para>
7764
7765        <para>
7766         This allows libpgport to be used solely for portability-related code.
7767        </para>
7768       </listitem>
7769
7770       <listitem>
7771        <para>
7772         Add support for list links embedded in larger structs (Andres Freund)
7773        </para>
7774       </listitem>
7775
7776       <listitem>
7777        <para>
7778         Use <literal>SA_RESTART</> for all signals,
7779         including <literal>SIGALRM</> (Tom Lane)
7780        </para>
7781       </listitem>
7782
7783       <listitem>
7784        <para>
7785         Ensure that the correct text domain is used when
7786         translating <function>errcontext()</> messages
7787         (Heikki Linnakangas)
7788        </para>
7789       </listitem>
7790
7791       <listitem>
7792        <para>
7793         Standardize naming of client-side memory allocation functions (Tom Lane)
7794        </para>
7795       </listitem>
7796
7797       <listitem>
7798        <para>
7799         Provide support for <quote>static assertions</> that will fail at
7800         compile time if some compile-time-constant condition is not met
7801         (Andres Freund, Tom Lane)
7802        </para>
7803       </listitem>
7804
7805       <listitem>
7806        <para>
7807         Support <function>Assert()</> in client-side code (Andrew Dunstan)
7808        </para>
7809       </listitem>
7810
7811       <listitem>
7812        <para>
7813         Add decoration to inform the C compiler that some <function>ereport()</>
7814         and <function>elog()</> calls do not return (Peter Eisentraut,
7815         Andres Freund, Tom Lane, Heikki Linnakangas)
7816        </para>
7817       </listitem>
7818
7819       <listitem>
7820        <para>
7821         Allow options to be passed to the regression
7822         test output comparison utility via <link
7823         linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
7824         (Peter Eisentraut)
7825        </para>
7826       </listitem>
7827
7828       <listitem>
7829        <para>
7830         Add isolation tests for <link
7831         linkend="SQL-CREATEINDEX"><command>CREATE INDEX
7832         CONCURRENTLY</></link> (Abhijit Menon-Sen)
7833        </para>
7834       </listitem>
7835
7836       <listitem>
7837        <para>
7838         Remove typedefs for <type>int2</>/<type>int4</> as they are better
7839         represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
7840        </para>
7841       </listitem>
7842
7843       <listitem>
7844        <para>
7845         Fix <link linkend="install">install-strip</link> on Mac <productname>OS
7846         X</> (Peter Eisentraut)
7847        </para>
7848       </listitem>
7849
7850       <listitem>
7851        <para>
7852         Remove <link linkend="configure">configure</link> flag
7853         <option>--disable-shared</>, as it is no longer supported
7854         (Bruce Momjian)
7855        </para>
7856       </listitem>
7857
7858       <listitem>
7859        <para>
7860         Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
7861        </para>
7862       </listitem>
7863
7864       <listitem>
7865        <para>
7866         Provide Emacs macro to set Perl formatting to
7867         match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
7868        </para>
7869       </listitem>
7870
7871       <listitem>
7872        <para>
7873         Run tool to check the keyword list whenever the backend grammar is
7874         changed (Tom Lane)
7875        </para>
7876       </listitem>
7877
7878       <listitem>
7879        <para>
7880         Change the way <literal>UESCAPE</> is lexed, to significantly reduce
7881         the size of the lexer tables (Heikki Linnakangas)
7882        </para>
7883       </listitem>
7884
7885       <listitem>
7886        <para>
7887         Centralize <application>flex</> and <application>bison</>
7888         <application>make</> rules (Peter Eisentraut)
7889        </para>
7890
7891        <para>
7892         This is useful for <application>pgxs</> authors.
7893        </para>
7894       </listitem>
7895
7896       <listitem>
7897        <para>
7898         Change many internal backend functions to return object <type>OID</>s
7899         rather than void (Dimitri Fontaine)
7900        </para>
7901
7902        <para>
7903         This is useful for event triggers.
7904        </para>
7905       </listitem>
7906
7907       <listitem>
7908        <para>
7909         Invent pre-commit/pre-prepare/pre-subcommit events for transaction
7910         callbacks (Tom Lane)
7911        </para>
7912
7913        <para>
7914         Loadable modules that use transaction callbacks might need modification
7915         to handle these new event types.
7916        </para>
7917       </listitem>
7918
7919       <listitem>
7920        <para>
7921         Add function <link
7922         linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
7923         to produce a machine-readable description of a database object
7924         (&Aacute;lvaro Herrera)
7925        </para>
7926       </listitem>
7927
7928       <listitem>
7929        <para>
7930         Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
7931        </para>
7932       </listitem>
7933
7934       <listitem>
7935        <para>
7936         Implement a generic binary heap and use it for Merge-Append
7937         operations (Abhijit Menon-Sen)
7938        </para>
7939       </listitem>
7940
7941       <listitem>
7942        <para>
7943         Provide a tool to help detect timezone abbreviation changes when
7944         updating the <filename>src/timezone/data</> files
7945         (Tom Lane)
7946        </para>
7947       </listitem>
7948
7949       <listitem>
7950        <para>
7951         Add <application>pkg-config</> support for <application>libpq</>
7952         and <application>ecpg</> libraries (Peter Eisentraut)
7953        </para>
7954       </listitem>
7955
7956       <listitem>
7957        <para>
7958         Remove <filename>src/tool/backend</>, now that the content is on
7959         the <productname>PostgreSQL</> wiki (Bruce Momjian)
7960        </para>
7961       </listitem>
7962
7963       <listitem>
7964        <para>
7965         Split out <link linkend="wal"><acronym>WAL</></link> reading as
7966         an independent facility (Heikki Linnakangas, Andres Freund)
7967        </para>
7968       </listitem>
7969
7970       <listitem>
7971        <para>
7972         Use a 64-bit integer to represent <link
7973         linkend="wal"><acronym>WAL</></link> positions
7974         (<structname>XLogRecPtr</>) instead of two 32-bit integers
7975         (Heikki Linnakangas)
7976        </para>
7977
7978        <para>
7979         Generally, tools that need to read the <acronym>WAL</> format
7980         will need to be adjusted.
7981        </para>
7982       </listitem>
7983
7984       <listitem>
7985        <para>
7986         Allow <link linkend="plpython">PL/Python</link> to support
7987         platform-specific include directories (Peter Eisentraut)
7988        </para>
7989       </listitem>
7990
7991       <listitem>
7992        <para>
7993         Allow <link linkend="plpython">PL/Python</link> on <productname>OS
7994         X</> to build against custom versions of <application>Python</>
7995         (Peter Eisentraut)
7996        </para>
7997       </listitem>
7998
7999      </itemizedlist>
8000
8001    </sect3>
8002
8003    <sect3>
8004     <title>Additional Modules</title>
8005
8006     <itemizedlist>
8007
8008       <listitem>
8009        <para>
8010         Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
8011         data wrapper</link> contrib module to allow access to
8012         other <productname>Postgres</> servers (Shigeru Hanada)
8013        </para>
8014
8015        <para>
8016         This foreign data wrapper supports writes.
8017        </para>
8018       </listitem>
8019
8020       <listitem>
8021        <para>
8022         Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
8023         contrib program (Andres Freund)
8024        </para>
8025       </listitem>
8026
8027       <listitem>
8028        <para>
8029         Add support for indexing of regular-expression searches in
8030         <link linkend="pgtrgm"><productname>pg_trgm</></link>
8031         (Alexander Korotkov)
8032        </para>
8033       </listitem>
8034
8035       <listitem>
8036        <para>
8037         Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
8038         handling of multibyte characters (Tom Lane)
8039        </para>
8040
8041        <para>
8042         On a platform that does not have the wcstombs() or towlower() library
8043         functions, this could result in an incompatible change in the contents
8044         of <productname>pg_trgm</> indexes for non-ASCII data.  In such cases,
8045         <command>REINDEX</> those indexes to ensure correct search results.
8046        </para>
8047       </listitem>
8048
8049       <listitem>
8050        <para>
8051         Add a <link linkend="pgstattuple">pgstattuple</link> function to report
8052         the size of the pending-insertions list of a <acronym>GIN</> index
8053         (Fujii Masao)
8054        </para>
8055       </listitem>
8056
8057       <listitem>
8058        <para>
8059         Make <link linkend="oid2name"><application>oid2name</></link>,
8060         <link linkend="pgbench"><application>pgbench</></link>, and
8061         <link linkend="vacuumlo"><application>vacuumlo</></link> set
8062         <varname>fallback_application_name</> (Amit Kapila)
8063        </para>
8064       </listitem>
8065
8066       <listitem>
8067        <para>
8068         Improve output of <link
8069         linkend="pgtesttiming"><application>pg_test_timing</></link>
8070         (Bruce Momjian)
8071        </para>
8072       </listitem>
8073
8074       <listitem>
8075        <para>
8076         Improve output of <link
8077         linkend="pgtestfsync"><application>pg_test_fsync</></link>
8078         (Peter Geoghegan)
8079        </para>
8080       </listitem>
8081
8082       <listitem>
8083        <para>
8084         Create a dedicated foreign data wrapper, with its own option validator
8085         function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
8086        </para>
8087
8088        <para>
8089         When using this FDW to define the target of a <application>dblink</>
8090         connection, instead of using a hard-wired list of connection options,
8091         the underlying <application>libpq</> library is consulted to see what
8092         connection options it supports.
8093        </para>
8094       </listitem>
8095
8096     </itemizedlist>
8097
8098     <sect4>
8099      <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
8100
8101      <itemizedlist>
8102
8103       <listitem>
8104        <para>
8105         Allow <application>pg_upgrade</> to do dumps and restores in
8106         parallel (Bruce Momjian, Andrew Dunstan)
8107        </para>
8108
8109        <para>
8110         This allows parallel schema dump/restore of databases, as well as
8111         parallel copy/link of data files per tablespace.  Use the
8112         <option>--jobs</> option to specify the level of parallelism.
8113        </para>
8114       </listitem>
8115
8116       <listitem>
8117        <para>
8118         Make <application>pg_upgrade</> create Unix-domain sockets in
8119         the current directory (Bruce Momjian, Tom Lane)
8120        </para>
8121
8122        <para>
8123         This reduces the possibility that someone will accidentally connect
8124         during the upgrade.
8125        </para>
8126       </listitem>
8127
8128       <listitem>
8129        <para>
8130         Make <application>pg_upgrade</> <option>--check</> mode properly
8131         detect the location of non-default socket directories (Bruce
8132         Momjian, Tom Lane)
8133        </para>
8134       </listitem>
8135
8136       <listitem>
8137        <para>
8138         Improve performance of <application>pg_upgrade</> for databases
8139         with many tables (Bruce Momjian)
8140        </para>
8141       </listitem>
8142
8143       <listitem>
8144        <para>
8145         Improve <application>pg_upgrade</>'s logs by showing
8146         executed commands (&Aacute;lvaro Herrera)
8147        </para>
8148       </listitem>
8149
8150       <listitem>
8151        <para>
8152         Improve <application>pg_upgrade</>'s status display during
8153         copy/link (Bruce Momjian)
8154        </para>
8155       </listitem>
8156
8157      </itemizedlist>
8158
8159     </sect4>
8160
8161     <sect4>
8162      <title><link linkend="pgbench"><application>pgbench</></link></title>
8163
8164      <itemizedlist>
8165
8166       <listitem>
8167        <para>
8168         Add <option>--foreign-keys</> option to <application>pgbench</>
8169         (Jeff Janes)
8170        </para>
8171
8172        <para>
8173         This adds foreign key constraints to the standard tables created by
8174         <application>pgbench</>, for use in foreign key performance testing.
8175        </para>
8176       </listitem>
8177
8178       <listitem>
8179        <para>
8180         Allow <application>pgbench</> to aggregate performance statistics
8181         and produce output every <option>--aggregate-interval</>
8182         seconds (Tomas Vondra)
8183        </para>
8184       </listitem>
8185
8186       <listitem>
8187        <para>
8188         Add <application>pgbench</> <option>--sampling-rate</> option
8189         to control the percentage of transactions logged (Tomas Vondra)
8190        </para>
8191       </listitem>
8192
8193       <listitem>
8194        <para>
8195         Reduce and improve the status message output of
8196         <application>pgbench</>'s initialization mode (Robert Haas,
8197         Peter Eisentraut)
8198        </para>
8199       </listitem>
8200
8201       <listitem>
8202        <para>
8203         Add <application>pgbench</> <option>-q</> mode to print one output
8204         line every five seconds (Tomas Vondra)
8205        </para>
8206       </listitem>
8207
8208       <listitem>
8209        <para>
8210         Output <application>pgbench</> elapsed and estimated remaining
8211         time during initialization (Tomas Vondra)
8212        </para>
8213       </listitem>
8214
8215       <listitem>
8216        <para>
8217         Allow <application>pgbench</> to use much larger scale factors,
8218         by changing relevant columns from <type>integer</> to <type>bigint</>
8219         when the requested scale factor exceeds 20000
8220         (Greg Smith)
8221        </para>
8222       </listitem>
8223
8224     </itemizedlist>
8225
8226     </sect4>
8227
8228    </sect3>
8229
8230    <sect3>
8231     <title>Documentation</title>
8232
8233     <itemizedlist>
8234
8235       <listitem>
8236        <para>
8237         Allow <productname>EPUB</>-format documentation to be created
8238         (Peter Eisentraut)
8239        </para>
8240       </listitem>
8241
8242       <listitem>
8243        <para>
8244         Update <productname>FreeBSD</> kernel configuration documentation
8245         (Brad Davis)
8246        </para>
8247       </listitem>
8248
8249       <listitem>
8250        <para>
8251         Improve <link linkend="tutorial-window"><literal>WINDOW</>
8252         function</link> documentation (Bruce Momjian, Florian Pflug)
8253        </para>
8254       </listitem>
8255
8256       <listitem>
8257        <para>
8258         Add <link linkend="docguide-toolsets">instructions</link> for setting
8259         up the documentation tool chain on Mac <productname>OS X</>
8260         (Peter Eisentraut)
8261        </para>
8262       </listitem>
8263
8264       <listitem>
8265        <para>
8266         Improve <link
8267         linkend="guc-commit-delay"><varname>commit_delay</></link>
8268         documentation (Peter Geoghegan)
8269        </para>
8270       </listitem>
8271
8272     </itemizedlist>
8273
8274    </sect3>
8275
8276   </sect2>
8277  </sect1>