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