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