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