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