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