]> granicus.if.org Git - postgresql/blob - doc/src/sgml/release-9.4.sgml
Release notes for 9.6.3, 9.5.7, 9.4.12, 9.3.17, 9.2.21.
[postgresql] / doc / src / sgml / release-9.4.sgml
1 <!-- doc/src/sgml/release-9.4.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
3
4  <sect1 id="release-9-4-12">
5   <title>Release 9.4.12</title>
6
7   <note>
8   <title>Release Date</title>
9   <simpara>2017-05-11</simpara>
10   </note>
11
12   <para>
13    This release contains a variety of fixes from 9.4.11.
14    For information about new features in the 9.4 major release, see
15    <xref linkend="release-9-4">.
16   </para>
17
18   <sect2>
19    <title>Migration to Version 9.4.12</title>
20
21    <para>
22     A dump/restore is not required for those running 9.4.X.
23    </para>
24
25    <para>
26     However, if you are using third-party replication tools that depend
27     on <quote>logical decoding</>, see the first changelog entry below.
28    </para>
29
30    <para>
31     Also, if you are upgrading from a version earlier than 9.4.11,
32     see <xref linkend="release-9-4-11">.
33    </para>
34   </sect2>
35
36   <sect2>
37    <title>Changes</title>
38
39    <itemizedlist>
40
41     <listitem>
42      <para>
43       Fix possibly-invalid initial snapshot during logical decoding
44       (Petr Jelinek, Andres Freund)
45      </para>
46
47      <para>
48       The initial snapshot created for a logical decoding replication slot
49       was potentially incorrect.  This could cause third-party tools that
50       use logical decoding to copy incomplete/inconsistent initial data.
51       This was more likely to happen if the source server was busy at the
52       time of slot creation, or if another logical slot already existed.
53      </para>
54
55      <para>
56       If you are using a replication tool that depends on logical decoding,
57       and it should have copied a nonempty data set at the start of
58       replication, it is advisable to recreate the replica after
59       installing this update, or to verify its contents against the source
60       server.
61      </para>
62     </listitem>
63
64     <listitem>
65      <para>
66       Fix possible corruption of <quote>init forks</> of unlogged indexes
67       (Robert Haas, Michael Paquier)
68      </para>
69
70      <para>
71       This could result in an unlogged index being set to an invalid state
72       after a crash and restart.  Such a problem would persist until the
73       index was dropped and rebuilt.
74      </para>
75     </listitem>
76
77     <listitem>
78      <para>
79       Fix incorrect reconstruction of <structname>pg_subtrans</> entries
80       when a standby server replays a prepared but uncommitted two-phase
81       transaction (Tom Lane)
82      </para>
83
84      <para>
85       In most cases this turned out to have no visible ill effects, but in
86       corner cases it could result in circular references
87       in <structname>pg_subtrans</>, potentially causing infinite loops
88       in queries that examine rows modified by the two-phase transaction.
89      </para>
90     </listitem>
91
92     <listitem>
93      <para>
94       Avoid possible crash in <application>walsender</> due to failure
95       to initialize a string buffer (Stas Kelvich, Fujii Masao)
96      </para>
97     </listitem>
98
99     <listitem>
100      <para>
101       Fix postmaster's handling of <function>fork()</> failure for a
102       background worker process (Tom Lane)
103      </para>
104
105      <para>
106       Previously, the postmaster updated portions of its state as though
107       the process had been launched successfully, resulting in subsequent
108       confusion.
109      </para>
110     </listitem>
111
112     <listitem>
113      <para>
114       Ensure parsing of queries in extension scripts sees the results of
115       immediately-preceding DDL (Julien Rouhaud, Tom Lane)
116      </para>
117
118      <para>
119       Due to lack of a cache flush step between commands in an extension
120       script file, non-utility queries might not see the effects of an
121       immediately preceding catalog change, such as <command>ALTER TABLE
122       ... RENAME</>.
123      </para>
124     </listitem>
125
126     <listitem>
127      <para>
128       Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
129       COLUMN TYPE</> rebuilds an existing index (Noah Misch)
130      </para>
131
132      <para>
133       The command failed if the calling user did not currently have
134       <literal>CREATE</> privilege for the tablespace containing the index.
135       That behavior seems unhelpful, so skip the check, allowing the
136       index to be rebuilt where it is.
137      </para>
138     </listitem>
139
140     <listitem>
141      <para>
142       Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</> to not recurse
143       to child tables when the constraint is marked <literal>NO INHERIT</>
144       (Amit Langote)
145      </para>
146
147      <para>
148       This fix prevents unwanted <quote>constraint does not exist</> failures
149       when no matching constraint is present in the child tables.
150      </para>
151     </listitem>
152
153     <listitem>
154      <para>
155       Fix <command>VACUUM</> to account properly for pages that could not
156       be scanned due to conflicting page pins (Andrew Gierth)
157      </para>
158
159      <para>
160       This tended to lead to underestimation of the number of tuples in
161       the table.  In the worst case of a small heavily-contended
162       table, <command>VACUUM</> could incorrectly report that the table
163       contained no tuples, leading to very bad planning choices.
164      </para>
165     </listitem>
166
167     <listitem>
168      <para>
169       Ensure that bulk-tuple-transfer loops within a hash join are
170       interruptible by query cancel requests (Tom Lane, Thomas Munro)
171      </para>
172     </listitem>
173
174     <listitem>
175      <para>
176       Fix integer-overflow problems in <type>interval</> comparison (Kyotaro
177       Horiguchi, Tom Lane)
178      </para>
179
180      <para>
181       The comparison operators for type <type>interval</> could yield wrong
182       answers for intervals larger than about 296000 years.  Indexes on
183       columns containing such large values should be reindexed, since they
184       may be corrupt.
185      </para>
186     </listitem>
187
188     <listitem>
189      <para>
190       Fix <function>cursor_to_xml()</> to produce valid output
191       with <replaceable>tableforest</> = false
192       (Thomas Munro, Peter Eisentraut)
193      </para>
194
195      <para>
196       Previously it failed to produce a wrapping <literal>&lt;table&gt;</>
197       element.
198      </para>
199     </listitem>
200
201     <listitem>
202      <para>
203       Fix roundoff problems in <function>float8_timestamptz()</>
204       and <function>make_interval()</> (Tom Lane)
205      </para>
206
207      <para>
208       These functions truncated, rather than rounded, when converting a
209       floating-point value to integer microseconds; that could cause
210       unexpectedly off-by-one results.
211      </para>
212     </listitem>
213
214     <listitem>
215      <para>
216       Improve performance of <structname>pg_timezone_names</> view
217       (Tom Lane, David Rowley)
218      </para>
219     </listitem>
220
221     <listitem>
222      <para>
223       Reduce memory management overhead for contexts containing many large
224       blocks (Tom Lane)
225      </para>
226     </listitem>
227
228     <listitem>
229      <para>
230       Fix sloppy handling of corner-case errors from <function>lseek()</>
231       and <function>close()</> (Tom Lane)
232      </para>
233
234      <para>
235       Neither of these system calls are likely to fail in typical situations,
236       but if they did, <filename>fd.c</> could get quite confused.
237      </para>
238     </listitem>
239
240     <listitem>
241      <para>
242       Fix incorrect check for whether postmaster is running as a Windows
243       service (Michael Paquier)
244      </para>
245
246      <para>
247       This could result in attempting to write to the event log when that
248       isn't accessible, so that no logging happens at all.
249      </para>
250     </listitem>
251
252     <listitem>
253      <para>
254       Fix <application>ecpg</> to support <command>COMMIT PREPARED</>
255       and <command>ROLLBACK PREPARED</> (Masahiko Sawada)
256      </para>
257     </listitem>
258
259     <listitem>
260      <para>
261       Fix a double-free error when processing dollar-quoted string literals
262       in <application>ecpg</> (Michael Meskes)
263      </para>
264     </listitem>
265
266     <listitem>
267      <para>
268       In <application>pg_dump</>, fix incorrect schema and owner marking for
269       comments and security labels of some types of database objects
270       (Giuseppe Broccolo, Tom Lane)
271      </para>
272
273      <para>
274       In simple cases this caused no ill effects; but for example, a
275       schema-selective restore might omit comments it should include, because
276       they were not marked as belonging to the schema of their associated
277       object.
278      </para>
279     </listitem>
280
281     <listitem>
282      <para>
283       Avoid emitting an invalid list file in <literal>pg_restore -l</>
284       when SQL object names contain newlines (Tom Lane)
285      </para>
286
287      <para>
288       Replace newlines by spaces, which is sufficient to make the output
289       valid for <literal>pg_restore -L</>'s purposes.
290      </para>
291     </listitem>
292
293     <listitem>
294      <para>
295       Fix <application>pg_upgrade</> to transfer comments and security labels
296       attached to <quote>large objects</> (blobs) (Stephen Frost)
297      </para>
298
299      <para>
300       Previously, blobs were correctly transferred to the new database, but
301       any comments or security labels attached to them were lost.
302      </para>
303     </listitem>
304
305     <listitem>
306      <para>
307       Improve error handling
308       in <filename>contrib/adminpack</>'s <function>pg_file_write()</>
309       function (Noah Misch)
310      </para>
311
312      <para>
313       Notably, it failed to detect errors reported
314       by <function>fclose()</>.
315      </para>
316     </listitem>
317
318     <listitem>
319      <para>
320       In <filename>contrib/dblink</>, avoid leaking the previous unnamed
321       connection when establishing a new unnamed connection (Joe Conway)
322      </para>
323     </listitem>
324
325     <listitem>
326      <para>
327       Fix <filename>contrib/pg_trgm</>'s extraction of trigrams from regular
328       expressions (Tom Lane)
329      </para>
330
331      <para>
332       In some cases it would produce a broken data structure that could never
333       match anything, leading to GIN or GiST indexscans that use a trigram
334       index not finding any matches to the regular expression.
335      </para>
336     </listitem>
337
338     <listitem>
339      <para>
340       In <filename>contrib/postgres_fdw</>,
341       transmit query cancellation requests to the remote server
342       (Michael Paquier, Etsuro Fujita)
343      </para>
344
345      <para>
346       Previously, a local query cancellation request did not cause an
347       already-sent remote query to terminate early.  This is a back-patch
348       of work originally done for 9.6.
349      </para>
350     </listitem>
351
352     <listitem>
353 <!--
354 Author: Tom Lane <tgl@sss.pgh.pa.us>
355 Branch: REL9_4_STABLE [bb132cddf] 2017-04-15 20:16:03 -0400
356 Branch: REL9_3_STABLE [fbfeceb25] 2017-04-17 12:51:40 -0400
357 Branch: REL9_2_STABLE [58384149b] 2017-04-17 12:51:40 -0400
358 Branch: REL9_3_STABLE [4e91330da] 2017-04-17 13:52:42 -0400
359 Branch: REL9_2_STABLE [fb50c38e9] 2017-04-17 13:52:42 -0400
360 -->
361      <para>
362       Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane)
363      </para>
364
365      <para>
366       This is a back-patch of work previously done in newer branches;
367       it's needed since many platforms are adopting newer OpenSSL versions.
368      </para>
369     </listitem>
370
371     <listitem>
372      <para>
373       Support Tcl 8.6 in MSVC builds (&Aacute;lvaro Herrera)
374      </para>
375     </listitem>
376
377     <listitem>
378      <para>
379       Sync our copy of the timezone library with IANA release tzcode2017b
380       (Tom Lane)
381      </para>
382
383      <para>
384       This fixes a bug affecting some DST transitions in January 2038.
385      </para>
386     </listitem>
387
388     <listitem>
389      <para>
390       Update time zone data files to <application>tzdata</> release 2017b
391       for DST law changes in Chile, Haiti, and Mongolia, plus historical
392       corrections for Ecuador, Kazakhstan, Liberia, and Spain.
393       Switch to numeric abbreviations for numerous time zones in South
394       America, the Pacific and Indian oceans, and some Asian and Middle
395       Eastern countries.
396      </para>
397
398      <para>
399       The IANA time zone database previously provided textual abbreviations
400       for all time zones, sometimes making up abbreviations that have little
401       or no currency among the local population.  They are in process of
402       reversing that policy in favor of using numeric UTC offsets in zones
403       where there is no evidence of real-world use of an English
404       abbreviation.  At least for the time being, <productname>PostgreSQL</>
405       will continue to accept such removed abbreviations for timestamp input.
406       But they will not be shown in the <structname>pg_timezone_names</>
407       view nor used for output.
408      </para>
409     </listitem>
410
411     <listitem>
412      <para>
413       Use correct daylight-savings rules for POSIX-style time zone names
414       in MSVC builds (David Rowley)
415      </para>
416
417      <para>
418       The Microsoft MSVC build scripts neglected to install
419       the <filename>posixrules</> file in the timezone directory tree.
420       This resulted in the timezone code falling back to its built-in
421       rule about what DST behavior to assume for a POSIX-style time zone
422       name.  For historical reasons that still corresponds to the DST rules
423       the USA was using before 2007 (i.e., change on first Sunday in April
424       and last Sunday in October).  With this fix, a POSIX-style zone name
425       will use the current and historical DST transition dates of
426       the <literal>US/Eastern</> zone.  If you don't want that, remove
427       the <filename>posixrules</> file, or replace it with a copy of some
428       other zone file (see <xref linkend="datatype-timezones">).  Note that
429       due to caching, you may need to restart the server to get such changes
430       to take effect.
431      </para>
432     </listitem>
433
434    </itemizedlist>
435
436   </sect2>
437  </sect1>
438
439  <sect1 id="release-9-4-11">
440   <title>Release 9.4.11</title>
441
442   <note>
443   <title>Release Date</title>
444   <simpara>2017-02-09</simpara>
445   </note>
446
447   <para>
448    This release contains a variety of fixes from 9.4.10.
449    For information about new features in the 9.4 major release, see
450    <xref linkend="release-9-4">.
451   </para>
452
453   <sect2>
454    <title>Migration to Version 9.4.11</title>
455
456    <para>
457     A dump/restore is not required for those running 9.4.X.
458    </para>
459
460    <para>
461     However, if your installation has been affected by the bug described in
462     the first changelog entry below, then after updating you may need
463     to take action to repair corrupted indexes.
464    </para>
465
466    <para>
467     Also, if you are upgrading from a version earlier than 9.4.10,
468     see <xref linkend="release-9-4-10">.
469    </para>
470   </sect2>
471
472   <sect2>
473    <title>Changes</title>
474
475    <itemizedlist>
476
477     <listitem>
478      <para>
479       Fix a race condition that could cause indexes built
480       with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
481       (Pavan Deolasee, Tom Lane)
482      </para>
483
484      <para>
485       If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
486       that depends on a column not previously indexed, then rows
487       updated by transactions that ran concurrently with
488       the <command>CREATE INDEX</> command could have received incorrect
489       index entries.  If you suspect this may have happened, the most
490       reliable solution is to rebuild affected indexes after installing
491       this update.
492      </para>
493     </listitem>
494
495     <listitem>
496      <para>
497       Ensure that the special snapshot used for catalog scans is not
498       invalidated by premature data pruning (Tom Lane)
499      </para>
500
501      <para>
502       Backends failed to account for this snapshot when advertising their
503       oldest xmin, potentially allowing concurrent vacuuming operations to
504       remove data that was still needed.  This led to transient failures
505       along the lines of <quote>cache lookup failed for relation 1255</>.
506      </para>
507     </listitem>
508
509     <listitem>
510      <para>
511       Unconditionally WAL-log creation of the <quote>init fork</> for an
512       unlogged table (Michael Paquier)
513      </para>
514
515      <para>
516       Previously, this was skipped when <xref linkend="guc-wal-level">
517       = <literal>minimal</>, but actually it's necessary even in that case
518       to ensure that the unlogged table is properly reset to empty after a
519       crash.
520      </para>
521     </listitem>
522
523     <listitem>
524      <para>
525       Reduce interlocking on standby servers during the replay of btree
526       index vacuuming operations (Simon Riggs)
527      </para>
528
529      <para>
530       This change avoids substantial replication delays that sometimes
531       occurred while replaying such operations.
532      </para>
533     </listitem>
534
535     <listitem>
536      <para>
537       If the stats collector dies during hot standby, restart it (Takayuki
538       Tsunakawa)
539      </para>
540     </listitem>
541
542     <listitem>
543      <para>
544       Ensure that hot standby feedback works correctly when it's enabled at
545       standby server start (Ants Aasma, Craig Ringer)
546      </para>
547     </listitem>
548
549     <listitem>
550      <para>
551       Check for interrupts while hot standby is waiting for a conflicting
552       query (Simon Riggs)
553      </para>
554     </listitem>
555
556     <listitem>
557      <para>
558       Avoid constantly respawning the autovacuum launcher in a corner case
559       (Amit Khandekar)
560      </para>
561
562      <para>
563       This fix avoids problems when autovacuum is nominally off and there
564       are some tables that require freezing, but all such tables are
565       already being processed by autovacuum workers.
566      </para>
567     </listitem>
568
569     <listitem>
570      <para>
571       Fix check for when an extension member object can be dropped (Tom Lane)
572      </para>
573
574      <para>
575       Extension upgrade scripts should be able to drop member objects,
576       but this was disallowed for serial-column sequences, and possibly
577       other cases.
578      </para>
579     </listitem>
580
581     <listitem>
582      <para>
583       Make sure <command>ALTER TABLE</> preserves index tablespace
584       assignments when rebuilding indexes (Tom Lane, Michael Paquier)
585      </para>
586
587      <para>
588       Previously, non-default settings
589       of <xref linkend="guc-default-tablespace"> could result in broken
590       indexes.
591      </para>
592     </listitem>
593
594     <listitem>
595      <para>
596       Fix incorrect updating of trigger function properties when changing a
597       foreign-key constraint's deferrability properties with <command>ALTER
598       TABLE ... ALTER CONSTRAINT</> (Tom Lane)
599      </para>
600
601      <para>
602       This led to odd failures during subsequent exercise of the foreign
603       key, as the triggers were fired at the wrong times.
604      </para>
605     </listitem>
606
607     <listitem>
608      <para>
609       Prevent dropping a foreign-key constraint if there are pending
610       trigger events for the referenced relation (Tom Lane)
611      </para>
612
613      <para>
614       This avoids <quote>could not find trigger <replaceable>NNN</></quote>
615       or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
616      </para>
617     </listitem>
618
619     <listitem>
620      <para>
621       Fix processing of OID column when a table with OIDs is associated to
622       a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
623       Langote)
624      </para>
625
626      <para>
627       The OID column should be treated the same as regular user columns in
628       this case, but it wasn't, leading to odd behavior in later
629       inheritance changes.
630      </para>
631     </listitem>
632
633     <listitem>
634      <para>
635       Fix <command>CREATE OR REPLACE VIEW</> to update the view query
636       before attempting to apply the new view options (Dean Rasheed)
637      </para>
638
639      <para>
640       Previously the command would fail if the new options were
641       inconsistent with the old view definition.
642      </para>
643     </listitem>
644
645     <listitem>
646      <para>
647       Report correct object identity during <command>ALTER TEXT SEARCH
648       CONFIGURATION</> (Artur Zakirov)
649      </para>
650
651      <para>
652       The wrong catalog OID was reported to extensions such as logical
653       decoding.
654      </para>
655     </listitem>
656
657     <listitem>
658      <para>
659       Check for serializability conflicts before reporting
660       constraint-violation failures (Thomas Munro)
661      </para>
662
663      <para>
664       When using serializable transaction isolation, it is desirable
665       that any error due to concurrent transactions should manifest
666       as a serialization failure, thereby cueing the application that
667       a retry might succeed.  Unfortunately, this does not reliably
668       happen for duplicate-key failures caused by concurrent insertions.
669       This change ensures that such an error will be reported as a
670       serialization error if the application explicitly checked for
671       the presence of a conflicting key (and did not find it) earlier
672       in the transaction.
673      </para>
674     </listitem>
675
676     <listitem>
677      <para>
678       Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
679       an <command>UPDATE</> source expression (Tom Lane)
680      </para>
681
682      <para>
683       This led to <quote>UPDATE target count mismatch --- internal
684       error</>.  Now the syntax is understood as a whole-row variable,
685       as it would be in other contexts.
686      </para>
687     </listitem>
688
689     <listitem>
690      <para>
691       Ensure that column typmods are determined accurately for
692       multi-row <literal>VALUES</> constructs (Tom Lane)
693      </para>
694
695      <para>
696       This fixes problems occurring when the first value in a column has a
697       determinable typmod (e.g., length for a <type>varchar</> value) but
698       later values don't share the same limit.
699      </para>
700     </listitem>
701
702     <listitem>
703      <para>
704       Throw error for an unfinished Unicode surrogate pair at the end of a
705       Unicode string (Tom Lane)
706      </para>
707
708      <para>
709       Normally, a Unicode surrogate leading character must be followed by a
710       Unicode surrogate trailing character, but the check for this was
711       missed if the leading character was the last character in a Unicode
712       string literal (<literal>U&amp;'...'</>) or Unicode identifier
713       (<literal>U&amp;"..."</>).
714      </para>
715     </listitem>
716
717     <listitem>
718      <para>
719       Ensure that a purely negative text search query, such
720       as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
721      </para>
722
723      <para>
724       Such matches were found by GIN index searches, but not by sequential
725       scans or GiST index searches.
726      </para>
727     </listitem>
728
729     <listitem>
730      <para>
731       Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
732       subtree with an empty query (Artur Zakirov)
733      </para>
734     </listitem>
735
736     <listitem>
737      <para>
738       Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
739      </para>
740     </listitem>
741
742     <listitem>
743      <para>
744       Fix <function>ts_rewrite()</>'s handling of nested NOT operators
745       (Tom Lane)
746      </para>
747     </listitem>
748
749     <listitem>
750      <para>
751       Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
752      </para>
753     </listitem>
754
755     <listitem>
756      <para>
757       Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
758       (Heikki Linnakangas)
759      </para>
760
761      <para>
762       The overrun occurred only if the input consisted entirely of single
763       quotes and/or backslashes.
764      </para>
765     </listitem>
766
767     <listitem>
768      <para>
769       Prevent multiple calls of <function>pg_start_backup()</>
770       and <function>pg_stop_backup()</> from running concurrently (Michael
771       Paquier)
772      </para>
773
774      <para>
775       This avoids an assertion failure, and possibly worse things, if
776       someone tries to run these functions in parallel.
777      </para>
778     </listitem>
779
780     <listitem>
781      <para>
782       Avoid discarding <type>interval</>-to-<type>interval</> casts
783       that aren't really no-ops (Tom Lane)
784      </para>
785
786      <para>
787       In some cases, a cast that should result in zeroing out
788       low-order <type>interval</> fields was mistakenly deemed to be a
789       no-op and discarded.  An example is that casting from <type>INTERVAL
790       MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
791      </para>
792     </listitem>
793
794     <listitem>
795      <para>
796       Ensure that cached plans are invalidated by changes in foreign-table
797       options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
798      </para>
799     </listitem>
800
801     <listitem>
802      <para>
803       Fix <application>pg_dump</> to dump user-defined casts and transforms
804       that use built-in functions (Stephen Frost)
805      </para>
806     </listitem>
807
808     <listitem>
809      <para>
810       Fix <application>pg_restore</> with <option>--create --if-exists</>
811       to behave more sanely if an archive contains
812       unrecognized <command>DROP</> commands (Tom Lane)
813      </para>
814
815      <para>
816       This doesn't fix any live bug, but it may improve the behavior in
817       future if <application>pg_restore</> is used with an archive
818       generated by a later <application>pg_dump</> version.
819      </para>
820     </listitem>
821
822     <listitem>
823      <para>
824       Fix <application>pg_basebackup</>'s rate limiting in the presence of
825       slow I/O (Antonin Houska)
826      </para>
827
828      <para>
829       If disk I/O was transiently much slower than the specified rate
830       limit, the calculation overflowed, effectively disabling the rate
831       limit for the rest of the run.
832      </para>
833     </listitem>
834
835     <listitem>
836      <para>
837       Fix <application>pg_basebackup</>'s handling of
838       symlinked <filename>pg_stat_tmp</> and <filename>pg_replslot</>
839       subdirectories (Magnus Hagander, Michael Paquier)
840      </para>
841     </listitem>
842
843     <listitem>
844      <para>
845       Fix possible <application>pg_basebackup</> failure on standby
846       server when including WAL files (Amit Kapila, Robert Haas)
847      </para>
848     </listitem>
849
850     <listitem>
851      <para>
852       Ensure that the Python exception objects we create for PL/Python are
853       properly reference-counted (Rafa de la Torre, Tom Lane)
854      </para>
855
856      <para>
857       This avoids failures if the objects are used after a Python garbage
858       collection cycle has occurred.
859      </para>
860     </listitem>
861
862     <listitem>
863      <para>
864       Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
865       as a column name (Tom Lane)
866      </para>
867
868      <para>
869       This matches the (previously undocumented) behavior of
870       PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
871       namely that a magic <literal>.tupno</> column is inserted only if
872       there isn't a real column named that.
873      </para>
874     </listitem>
875
876     <listitem>
877      <para>
878       Allow DOS-style line endings in <filename>~/.pgpass</> files,
879       even on Unix (Vik Fearing)
880      </para>
881
882      <para>
883       This change simplifies use of the same password file across Unix and
884       Windows machines.
885      </para>
886     </listitem>
887
888     <listitem>
889      <para>
890       Fix one-byte buffer overrun if <application>ecpg</> is given a file
891       name that ends with a dot (Takayuki Tsunakawa)
892      </para>
893     </listitem>
894
895     <listitem>
896      <para>
897       Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
898       PRIVILEGES</> (Gilles Darold, Stephen Frost)
899      </para>
900     </listitem>
901
902     <listitem>
903      <para>
904       In <application>psql</>, treat an empty or all-blank setting of
905       the <envar>PAGER</> environment variable as meaning <quote>no
906       pager</> (Tom Lane)
907      </para>
908
909      <para>
910       Previously, such a setting caused output intended for the pager to
911       vanish entirely.
912      </para>
913     </listitem>
914
915     <listitem>
916      <para>
917       Improve <filename>contrib/dblink</>'s reporting of
918       low-level <application>libpq</> errors, such as out-of-memory
919       (Joe Conway)
920      </para>
921     </listitem>
922
923     <listitem>
924      <para>
925       Teach <filename>contrib/dblink</> to ignore irrelevant server options
926       when it uses a <filename>contrib/postgres_fdw</> foreign server as
927       the source of connection options (Corey Huinker)
928      </para>
929
930      <para>
931       Previously, if the foreign server object had options that were not
932       also <application>libpq</> connection options, an error occurred.
933      </para>
934     </listitem>
935
936     <listitem>
937      <para>
938       On Windows, ensure that environment variable changes are propagated
939       to DLLs built with debug options (Christian Ullrich)
940      </para>
941     </listitem>
942
943     <listitem>
944      <para>
945       Sync our copy of the timezone library with IANA release tzcode2016j
946       (Tom Lane)
947      </para>
948
949      <para>
950       This fixes various issues, most notably that timezone data
951       installation failed if the target directory didn't support hard
952       links.
953      </para>
954     </listitem>
955
956     <listitem>
957      <para>
958       Update time zone data files to <application>tzdata</> release 2016j
959       for DST law changes in northern Cyprus (adding a new zone
960       Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
961       and Antarctica/Casey.
962       Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
963       Switch to preferring numeric zone abbreviations for Tonga.
964      </para>
965     </listitem>
966
967    </itemizedlist>
968
969   </sect2>
970  </sect1>
971
972  <sect1 id="release-9-4-10">
973   <title>Release 9.4.10</title>
974
975   <note>
976   <title>Release Date</title>
977   <simpara>2016-10-27</simpara>
978   </note>
979
980   <para>
981    This release contains a variety of fixes from 9.4.9.
982    For information about new features in the 9.4 major release, see
983    <xref linkend="release-9-4">.
984   </para>
985
986   <sect2>
987    <title>Migration to Version 9.4.10</title>
988
989    <para>
990     A dump/restore is not required for those running 9.4.X.
991    </para>
992
993    <para>
994     However, if your installation has been affected by the bug described in
995     the first changelog entry below, then after updating you may need
996     to take action to repair corrupted free space maps.
997    </para>
998
999    <para>
1000     Also, if you are upgrading from a version earlier than 9.4.6,
1001     see <xref linkend="release-9-4-6">.
1002    </para>
1003   </sect2>
1004
1005   <sect2>
1006    <title>Changes</title>
1007
1008    <itemizedlist>
1009
1010     <listitem>
1011      <para>
1012       Fix WAL-logging of truncation of relation free space maps and
1013       visibility maps (Pavan Deolasee, Heikki Linnakangas)
1014      </para>
1015
1016      <para>
1017       It was possible for these files to not be correctly restored during
1018       crash recovery, or to be written incorrectly on a standby server.
1019       Bogus entries in a free space map could lead to attempts to access
1020       pages that have been truncated away from the relation itself, typically
1021       producing errors like <quote>could not read block <replaceable>XXX</>:
1022       read only 0 of 8192 bytes</quote>.  Checksum failures in the
1023       visibility map are also possible, if checksumming is enabled.
1024      </para>
1025
1026      <para>
1027       Procedures for determining whether there is a problem and repairing it
1028       if so are discussed at
1029       <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
1030      </para>
1031     </listitem>
1032
1033     <listitem>
1034      <para>
1035       Fix incorrect creation of GIN index WAL records on big-endian machines
1036       (Tom Lane)
1037      </para>
1038
1039      <para>
1040       The typical symptom was <quote>unexpected GIN leaf action</> errors
1041       during WAL replay.
1042      </para>
1043     </listitem>
1044
1045     <listitem>
1046      <para>
1047       Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
1048       have been updated by a subsequently-aborted transaction
1049       (&Aacute;lvaro Herrera)
1050      </para>
1051
1052      <para>
1053       In 9.5 and later, the <command>SELECT</> would sometimes fail to
1054       return such tuples at all.  A failure has not been proven to occur in
1055       earlier releases, but might be possible with concurrent updates.
1056      </para>
1057     </listitem>
1058
1059     <listitem>
1060      <para>
1061       Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
1062      </para>
1063
1064      <para>
1065       The recheck would always see the CTE as returning no rows, typically
1066       leading to failure to update rows that were recently updated.
1067      </para>
1068     </listitem>
1069
1070     <listitem>
1071      <para>
1072       Fix improper repetition of previous results from hashed aggregation in
1073       a subquery (Andrew Gierth)
1074      </para>
1075
1076      <para>
1077       The test to see if we can reuse a previously-computed hash table of
1078       the aggregate state values neglected the possibility of an outer query
1079       reference appearing in an aggregate argument expression.  A change in
1080       the value of such a reference should lead to recalculating the hash
1081       table, but did not.
1082      </para>
1083     </listitem>
1084
1085     <listitem>
1086      <para>
1087       Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table
1088       with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index
1089       (Tom Lane)
1090      </para>
1091     </listitem>
1092
1093     <listitem>
1094      <para>
1095       Fix <command>EXPLAIN</> to emit valid XML when
1096       <xref linkend="guc-track-io-timing"> is on (Markus Winand)
1097      </para>
1098
1099      <para>
1100       Previously the XML output-format option produced syntactically invalid
1101       tags such as <literal>&lt;I/O-Read-Time&gt;</>.  That is now
1102       rendered as <literal>&lt;I-O-Read-Time&gt;</>.
1103      </para>
1104     </listitem>
1105
1106     <listitem>
1107      <para>
1108       Suppress printing of zeroes for unmeasured times
1109       in <command>EXPLAIN</> (Maksim Milyutin)
1110      </para>
1111
1112      <para>
1113       Certain option combinations resulted in printing zero values for times
1114       that actually aren't ever measured in that combination.  Our general
1115       policy in <command>EXPLAIN</> is not to print such fields at all, so
1116       do that consistently in all cases.
1117      </para>
1118     </listitem>
1119
1120     <listitem>
1121      <para>
1122       Fix timeout length when <command>VACUUM</> is waiting for exclusive
1123       table lock so that it can truncate the table (Simon Riggs)
1124      </para>
1125
1126      <para>
1127       The timeout was meant to be 50 milliseconds, but it was actually only
1128       50 microseconds, causing <command>VACUUM</> to give up on truncation
1129       much more easily than intended.  Set it to the intended value.
1130      </para>
1131     </listitem>
1132
1133     <listitem>
1134      <para>
1135       Fix bugs in merging inherited <literal>CHECK</> constraints while
1136       creating or altering a table (Tom Lane, Amit Langote)
1137      </para>
1138
1139      <para>
1140       Allow identical <literal>CHECK</> constraints to be added to a parent
1141       and child table in either order.  Prevent merging of a valid
1142       constraint from the parent table with a <literal>NOT VALID</>
1143       constraint on the child.  Likewise, prevent merging of a <literal>NO
1144       INHERIT</> child constraint with an inherited constraint.
1145      </para>
1146     </listitem>
1147
1148     <listitem>
1149      <para>
1150       Remove artificial restrictions on the values accepted
1151       by <function>numeric_in()</> and <function>numeric_recv()</>
1152       (Tom Lane)
1153      </para>
1154
1155      <para>
1156       We allow numeric values up to the limit of the storage format (more
1157       than <literal>1e100000</>), so it seems fairly pointless
1158       that <function>numeric_in()</> rejected scientific-notation exponents
1159       above 1000.  Likewise, it was silly for <function>numeric_recv()</> to
1160       reject more than 1000 digits in an input value.
1161      </para>
1162     </listitem>
1163
1164     <listitem>
1165      <para>
1166       Avoid very-low-probability data corruption due to testing tuple
1167       visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
1168       Tom Lane)
1169      </para>
1170     </listitem>
1171
1172     <listitem>
1173      <para>
1174       Fix logical WAL decoding to work properly when a subtransaction's WAL
1175       output is large enough to spill to disk (Andres Freund)
1176      </para>
1177     </listitem>
1178
1179     <listitem>
1180 <!--
1181 Author: Tom Lane <tgl@sss.pgh.pa.us>
1182 Branch: REL9_4_STABLE [10ad15f48] 2016-09-01 11:45:16 -0400
1183 -->
1184      <para>
1185       Fix buffer overread in logical WAL decoding (Tom Lane)
1186      </para>
1187
1188      <para>
1189       Logical decoding of a tuple update record read 23 bytes too many,
1190       which was usually harmless but with very bad luck could result in a
1191       crash.
1192      </para>
1193     </listitem>
1194
1195     <listitem>
1196      <para>
1197       Fix file descriptor leakage when truncating a temporary relation of
1198       more than 1GB (Andres Freund)
1199      </para>
1200     </listitem>
1201
1202     <listitem>
1203      <para>
1204       Disallow starting a standalone backend with <literal>standby_mode</>
1205       turned on (Michael Paquier)
1206      </para>
1207
1208      <para>
1209       This can't do anything useful, since there will be no WAL receiver
1210       process to fetch more WAL data; and it could result in misbehavior
1211       in code that wasn't designed with this situation in mind.
1212      </para>
1213     </listitem>
1214
1215     <listitem>
1216      <para>
1217       Properly initialize replication slot state when recycling a
1218       previously-used slot (Michael Paquier)
1219      </para>
1220
1221      <para>
1222       This failure to reset all of the fields of the slot could
1223       prevent <command>VACUUM</> from removing dead tuples.
1224      </para>
1225     </listitem>
1226
1227     <listitem>
1228      <para>
1229       Round shared-memory allocation request to a multiple of the actual
1230       huge page size when attempting to use huge pages on Linux (Tom Lane)
1231      </para>
1232
1233      <para>
1234       This avoids possible failures during <function>munmap()</> on systems
1235       with atypical default huge page sizes.  Except in crash-recovery
1236       cases, there were no ill effects other than a log message.
1237      </para>
1238     </listitem>
1239
1240     <listitem>
1241      <para>
1242       Use a more random value for the dynamic shared memory control
1243       segment's ID (Robert Haas, Tom Lane)
1244      </para>
1245
1246      <para>
1247       Previously, the same value would be chosen every time, because it was
1248       derived from <function>random()</> but <function>srandom()</> had not
1249       yet been called.  While relatively harmless, this was not the intended
1250       behavior.
1251      </para>
1252     </listitem>
1253
1254     <listitem>
1255      <para>
1256       On Windows, retry creation of the dynamic shared memory control
1257       segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
1258      </para>
1259
1260      <para>
1261       Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather
1262       than <literal>ERROR_ALREADY_EXISTS</> when there is an existing
1263       segment.  This led to postmaster startup failure due to believing that
1264       the former was an unrecoverable error.
1265      </para>
1266     </listitem>
1267
1268     <listitem>
1269      <para>
1270       Don't try to share SSL contexts across multiple connections
1271       in <application>libpq</> (Heikki Linnakangas)
1272      </para>
1273
1274      <para>
1275       This led to assorted corner-case bugs, particularly when trying to use
1276       different SSL parameters for different connections.
1277      </para>
1278     </listitem>
1279
1280     <listitem>
1281      <para>
1282       Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
1283      </para>
1284
1285      <para>
1286       The reported problem involved leaking an error report
1287       during <function>PQreset()</>, but there might be related cases.
1288      </para>
1289     </listitem>
1290
1291     <listitem>
1292      <para>
1293       Make <application>ecpg</>'s <option>--help</> and <option>--version</>
1294       options work consistently with our other executables (Haribabu Kommi)
1295      </para>
1296     </listitem>
1297
1298     <listitem>
1299      <para>
1300       Fix <application>pgbench</>'s calculation of average latency
1301       (Fabien Coelho)
1302      </para>
1303
1304      <para>
1305       The calculation was incorrect when there were <literal>\sleep</>
1306       commands in the script, or when the test duration was specified in
1307       number of transactions rather than total time.
1308      </para>
1309     </listitem>
1310
1311     <listitem>
1312      <para>
1313       In <application>pg_dump</>, never dump range constructor functions
1314       (Tom Lane)
1315      </para>
1316
1317      <para>
1318       This oversight led to <application>pg_upgrade</> failures with
1319       extensions containing range types, due to duplicate creation of the
1320       constructor functions.
1321      </para>
1322     </listitem>
1323
1324     <listitem>
1325      <para>
1326       In <application>pg_xlogdump</>, retry opening new WAL segments when
1327       using <option>--follow</> option (Magnus Hagander)
1328      </para>
1329
1330      <para>
1331       This allows for a possible delay in the server's creation of the next
1332       segment.
1333      </para>
1334     </listitem>
1335
1336     <listitem>
1337      <para>
1338       Fix <application>pg_xlogdump</> to cope with a WAL file that begins
1339       with a continuation record spanning more than one page (Pavan
1340       Deolasee)
1341      </para>
1342     </listitem>
1343
1344     <listitem>
1345      <para>
1346       Fix <filename>contrib/pg_buffercache</> to work
1347       when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei)
1348      </para>
1349     </listitem>
1350
1351     <listitem>
1352      <para>
1353       Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
1354       of the <command>EXPLAIN</> it does when given the <option>-e</> option
1355       (Daniel Gustafsson)
1356      </para>
1357     </listitem>
1358
1359     <listitem>
1360      <para>
1361       Install TAP test infrastructure so that it's available for extension
1362       testing (Craig Ringer)
1363      </para>
1364
1365      <para>
1366       When <productname>PostgreSQL</> has been configured
1367       with <option>--enable-tap-tests</>, <quote>make install</> will now
1368       install the Perl support files for TAP testing where PGXS can find
1369       them.  This allows non-core extensions to
1370       use <literal>$(prove_check)</> without extra tests.
1371      </para>
1372     </listitem>
1373
1374     <listitem>
1375      <para>
1376       In MSVC builds, include <application>pg_recvlogical</> in a
1377       client-only installation (MauMau)
1378      </para>
1379     </listitem>
1380
1381     <listitem>
1382      <para>
1383       Update Windows time zone mapping to recognize some time zone names
1384       added in recent Windows versions (Michael Paquier)
1385      </para>
1386     </listitem>
1387
1388     <listitem>
1389      <para>
1390       Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
1391      </para>
1392
1393      <para>
1394       If a dynamic time zone abbreviation does not match any entry in the
1395       referenced time zone, treat it as equivalent to the time zone name.
1396       This avoids unexpected failures when IANA removes abbreviations from
1397       their time zone database, as they did in <application>tzdata</>
1398       release 2016f and seem likely to do again in the future.  The
1399       consequences were not limited to not recognizing the individual
1400       abbreviation; any mismatch caused
1401       the <structname>pg_timezone_abbrevs</> view to fail altogether.
1402      </para>
1403     </listitem>
1404
1405     <listitem>
1406      <para>
1407       Update time zone data files to <application>tzdata</> release 2016h
1408       for DST law changes in Palestine and Turkey, plus historical
1409       corrections for Turkey and some regions of Russia.
1410       Switch to numeric abbreviations for some time zones in Antarctica,
1411       the former Soviet Union, and Sri Lanka.
1412      </para>
1413
1414      <para>
1415       The IANA time zone database previously provided textual abbreviations
1416       for all time zones, sometimes making up abbreviations that have little
1417       or no currency among the local population.  They are in process of
1418       reversing that policy in favor of using numeric UTC offsets in zones
1419       where there is no evidence of real-world use of an English
1420       abbreviation.  At least for the time being, <productname>PostgreSQL</>
1421       will continue to accept such removed abbreviations for timestamp input.
1422       But they will not be shown in the <structname>pg_timezone_names</>
1423       view nor used for output.
1424      </para>
1425
1426      <para>
1427       In this update, <literal>AMT</> is no longer shown as being in use to
1428       mean Armenia Time.  Therefore, we have changed the <literal>Default</>
1429       abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
1430      </para>
1431     </listitem>
1432
1433    </itemizedlist>
1434
1435   </sect2>
1436  </sect1>
1437
1438  <sect1 id="release-9-4-9">
1439   <title>Release 9.4.9</title>
1440
1441   <note>
1442   <title>Release Date</title>
1443   <simpara>2016-08-11</simpara>
1444   </note>
1445
1446   <para>
1447    This release contains a variety of fixes from 9.4.8.
1448    For information about new features in the 9.4 major release, see
1449    <xref linkend="release-9-4">.
1450   </para>
1451
1452   <sect2>
1453    <title>Migration to Version 9.4.9</title>
1454
1455    <para>
1456     A dump/restore is not required for those running 9.4.X.
1457    </para>
1458
1459    <para>
1460     However, if you are upgrading from a version earlier than 9.4.6,
1461     see <xref linkend="release-9-4-6">.
1462    </para>
1463   </sect2>
1464
1465   <sect2>
1466    <title>Changes</title>
1467
1468    <itemizedlist>
1469
1470     <listitem>
1471      <para>
1472       Fix possible mis-evaluation of
1473       nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki
1474       Linnakangas, Michael Paquier, Tom Lane)
1475      </para>
1476
1477      <para>
1478       A <literal>CASE</> expression appearing within the test value
1479       subexpression of another <literal>CASE</> could become confused about
1480       whether its own test value was null or not.  Also, inlining of a SQL
1481       function implementing the equality operator used by
1482       a <literal>CASE</> expression could result in passing the wrong test
1483       value to functions called within a <literal>CASE</> expression in the
1484       SQL function's body.  If the test values were of different data
1485       types, a crash might result; moreover such situations could be abused
1486       to allow disclosure of portions of server memory.  (CVE-2016-5423)
1487      </para>
1488     </listitem>
1489
1490     <listitem>
1491      <para>
1492       Fix client programs' handling of special characters in database and
1493       role names (Noah Misch, Nathan Bossart, Michael Paquier)
1494      </para>
1495
1496      <para>
1497       Numerous places in <application>vacuumdb</> and other client programs
1498       could become confused by database and role names containing double
1499       quotes or backslashes.  Tighten up quoting rules to make that safe.
1500       Also, ensure that when a conninfo string is used as a database name
1501       parameter to these programs, it is correctly treated as such throughout.
1502      </para>
1503
1504      <para>
1505       Fix handling of paired double quotes
1506       in <application>psql</>'s <command>\connect</>
1507       and <command>\password</> commands to match the documentation.
1508      </para>
1509
1510      <para>
1511       Introduce a new <option>-reuse-previous</> option
1512       in <application>psql</>'s <command>\connect</> command to allow
1513       explicit control of whether to re-use connection parameters from a
1514       previous connection.  (Without this, the choice is based on whether
1515       the database name looks like a conninfo string, as before.)  This
1516       allows secure handling of database names containing special
1517       characters in <application>pg_dumpall</> scripts.
1518      </para>
1519
1520      <para>
1521       <application>pg_dumpall</> now refuses to deal with database and role
1522       names containing carriage returns or newlines, as it seems impractical
1523       to quote those characters safely on Windows.  In future we may reject
1524       such names on the server side, but that step has not been taken yet.
1525      </para>
1526
1527      <para>
1528       These are considered security fixes because crafted object names
1529       containing special characters could have been used to execute
1530       commands with superuser privileges the next time a superuser
1531       executes <application>pg_dumpall</> or other routine maintenance
1532       operations.  (CVE-2016-5424)
1533      </para>
1534     </listitem>
1535
1536     <listitem>
1537      <para>
1538       Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
1539       NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
1540      </para>
1541
1542      <para>
1543       The SQL standard specifies that <literal>IS NULL</> should return
1544       TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
1545       NULL</> yields TRUE), but this is not meant to apply recursively
1546       (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
1547       The core executor got this right, but certain planner optimizations
1548       treated the test as recursive (thus producing TRUE in both cases),
1549       and <filename>contrib/postgres_fdw</> could produce remote queries
1550       that misbehaved similarly.
1551      </para>
1552     </listitem>
1553
1554     <listitem>
1555      <para>
1556       Make the <type>inet</> and <type>cidr</> data types properly reject
1557       IPv6 addresses with too many colon-separated fields (Tom Lane)
1558      </para>
1559     </listitem>
1560
1561     <listitem>
1562      <para>
1563       Prevent crash in <function>close_ps()</>
1564       (the <type>point</> <literal>##</> <type>lseg</> operator)
1565       for NaN input coordinates (Tom Lane)
1566      </para>
1567
1568      <para>
1569       Make it return NULL instead of crashing.
1570      </para>
1571     </listitem>
1572
1573     <listitem>
1574      <para>
1575       Avoid possible crash in <function>pg_get_expr()</> when inconsistent
1576       values are passed to it (Michael Paquier, Thomas Munro)
1577      </para>
1578     </listitem>
1579
1580     <listitem>
1581      <para>
1582       Fix several one-byte buffer over-reads in <function>to_number()</>
1583       (Peter Eisentraut)
1584      </para>
1585
1586      <para>
1587       In several cases the <function>to_number()</> function would read one
1588       more character than it should from the input string.  There is a
1589       small chance of a crash, if the input happens to be adjacent to the
1590       end of memory.
1591      </para>
1592     </listitem>
1593
1594     <listitem>
1595      <para>
1596       Do not run the planner on the query contained in <literal>CREATE
1597       MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
1598       when <literal>WITH NO DATA</> is specified (Michael Paquier,
1599       Tom Lane)
1600      </para>
1601
1602      <para>
1603       This avoids some unnecessary failure conditions, for example if a
1604       stable function invoked by the materialized view depends on a table
1605       that doesn't exist yet.
1606      </para>
1607     </listitem>
1608
1609     <listitem>
1610      <para>
1611       Avoid unsafe intermediate state during expensive paths
1612       through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
1613      </para>
1614
1615      <para>
1616       Previously, these cases locked the target tuple (by setting its XMAX)
1617       but did not WAL-log that action, thus risking data integrity problems
1618       if the page were spilled to disk and then a database crash occurred
1619       before the tuple update could be completed.
1620      </para>
1621     </listitem>
1622
1623     <listitem>
1624      <para>
1625       Fix hint bit update during WAL replay of row locking operations
1626       (Andres Freund)
1627      </para>
1628
1629      <para>
1630       The only known consequence of this problem is that row locks held by
1631       a prepared, but uncommitted, transaction might fail to be enforced
1632       after a crash and restart.
1633      </para>
1634     </listitem>
1635
1636     <listitem>
1637      <para>
1638       Avoid unnecessary <quote>could not serialize access</> errors when
1639       acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
1640       (&Aacute;lvaro Herrera)
1641      </para>
1642     </listitem>
1643
1644     <listitem>
1645      <para>
1646       Avoid crash in <literal>postgres -C</> when the specified variable
1647       has a null string value (Michael Paquier)
1648      </para>
1649     </listitem>
1650
1651     <listitem>
1652      <para>
1653       Fix possible loss of large subtransactions in logical decoding
1654       (Petru-Florin Mihancea)
1655      </para>
1656     </listitem>
1657
1658     <listitem>
1659      <para>
1660       Fix failure of logical decoding when a subtransaction contains no
1661       actual changes (Marko Tiikkaja, Andrew Gierth)
1662      </para>
1663     </listitem>
1664
1665     <listitem>
1666      <para>
1667       Ensure that backends see up-to-date statistics for shared catalogs
1668       (Tom Lane)
1669      </para>
1670
1671      <para>
1672       The statistics collector failed to update the statistics file for
1673       shared catalogs after a request from a regular backend.  This problem
1674       was partially masked because the autovacuum launcher regularly makes
1675       requests that did cause such updates; however, it became obvious with
1676       autovacuum disabled.
1677      </para>
1678     </listitem>
1679
1680     <listitem>
1681      <para>
1682       Avoid redundant writes of the statistics files when multiple
1683       backends request updates close together (Tom Lane, Tomas Vondra)
1684      </para>
1685     </listitem>
1686
1687     <listitem>
1688      <para>
1689       Avoid consuming a transaction ID during <command>VACUUM</>
1690       (Alexander Korotkov)
1691      </para>
1692
1693      <para>
1694       Some cases in <command>VACUUM</> unnecessarily caused an XID to be
1695       assigned to the current transaction.  Normally this is negligible,
1696       but if one is up against the XID wraparound limit, consuming more
1697       XIDs during anti-wraparound vacuums is a very bad thing.
1698      </para>
1699     </listitem>
1700
1701     <listitem>
1702 <!--
1703 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1704 Branch: REL9_4_STABLE [7a0f09da7] 2016-05-25 19:39:49 -0400
1705 Branch: REL9_3_STABLE [6537a48c5] 2016-05-25 19:39:49 -0400
1706 Branch: REL9_2_STABLE [294509ea9] 2016-05-25 19:39:49 -0400
1707 Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400
1708 -->
1709      <para>
1710       Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
1711       (Simon Riggs, &Aacute;lvaro Herrera)
1712      </para>
1713
1714      <para>
1715       <command>VACUUM FREEZE</> on an otherwise-idle master server could
1716       result in unnecessary cancellations of queries on its standby
1717       servers.
1718      </para>
1719     </listitem>
1720
1721     <listitem>
1722      <para>
1723       Prevent possible failure when vacuuming multixact IDs in an
1724       installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
1725       &Aacute;lvaro Herrera)
1726      </para>
1727
1728      <para>
1729       The usual symptom of this bug is errors
1730       like <quote>MultiXactId <replaceable>NNN</> has not been created
1731       yet -- apparent wraparound</quote>.
1732      </para>
1733     </listitem>
1734
1735     <listitem>
1736      <para>
1737       When a manual <command>ANALYZE</> specifies a column list, don't
1738       reset the table's <literal>changes_since_analyze</> counter
1739       (Tom Lane)
1740      </para>
1741
1742      <para>
1743       If we're only analyzing some columns, we should not prevent routine
1744       auto-analyze from happening for the other columns.
1745      </para>
1746     </listitem>
1747
1748     <listitem>
1749      <para>
1750       Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
1751       for a unique or nearly-unique column with many null entries (Tom
1752       Lane)
1753      </para>
1754
1755      <para>
1756       The nulls could get counted as though they were themselves distinct
1757       values, leading to serious planner misestimates in some types of
1758       queries.
1759      </para>
1760     </listitem>
1761
1762     <listitem>
1763      <para>
1764       Prevent autovacuum from starting multiple workers for the same shared
1765       catalog (&Aacute;lvaro Herrera)
1766      </para>
1767
1768      <para>
1769       Normally this isn't much of a problem because the vacuum doesn't take
1770       long anyway; but in the case of a severely bloated catalog, it could
1771       result in all but one worker uselessly waiting instead of doing
1772       useful work on other tables.
1773      </para>
1774     </listitem>
1775
1776     <listitem>
1777      <para>
1778       Avoid duplicate buffer lock release when abandoning a b-tree index
1779       page deletion attempt (Tom Lane)
1780      </para>
1781
1782      <para>
1783       This mistake prevented <command>VACUUM</> from completing in some
1784       cases involving corrupt b-tree indexes.
1785      </para>
1786     </listitem>
1787
1788     <listitem>
1789      <para>
1790       Prevent infinite loop in GiST index build for geometric columns
1791       containing NaN component values (Tom Lane)
1792      </para>
1793     </listitem>
1794
1795     <listitem>
1796      <para>
1797       Fix <filename>contrib/btree_gin</> to handle the smallest
1798       possible <type>bigint</> value correctly (Peter Eisentraut)
1799      </para>
1800     </listitem>
1801
1802     <listitem>
1803      <para>
1804       Teach libpq to correctly decode server version from future servers
1805       (Peter Eisentraut)
1806      </para>
1807
1808      <para>
1809       It's planned to switch to two-part instead of three-part server
1810       version numbers for releases after 9.6.  Make sure
1811       that <function>PQserverVersion()</> returns the correct value for
1812       such cases.
1813      </para>
1814     </listitem>
1815
1816     <listitem>
1817      <para>
1818       Fix <application>ecpg</>'s code for <literal>unsigned long long</>
1819       array elements (Michael Meskes)
1820      </para>
1821     </listitem>
1822
1823     <listitem>
1824      <para>
1825       In <application>pg_dump</> with both <option>-c</> and <option>-C</>
1826       options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
1827       command (David Johnston, Tom Lane)
1828      </para>
1829     </listitem>
1830
1831     <listitem>
1832      <para>
1833       Improve handling of <systemitem>SIGTERM</>/control-C in
1834       parallel <application>pg_dump</> and <application>pg_restore</> (Tom
1835       Lane)
1836      </para>
1837
1838      <para>
1839       Make sure that the worker processes will exit promptly, and also arrange
1840       to send query-cancel requests to the connected backends, in case they
1841       are doing something long-running such as a <command>CREATE INDEX</>.
1842      </para>
1843     </listitem>
1844
1845     <listitem>
1846      <para>
1847       Fix error reporting in parallel <application>pg_dump</>
1848       and <application>pg_restore</> (Tom Lane)
1849      </para>
1850
1851      <para>
1852       Previously, errors reported by <application>pg_dump</>
1853       or <application>pg_restore</> worker processes might never make it to
1854       the user's console, because the messages went through the master
1855       process, and there were various deadlock scenarios that would prevent
1856       the master process from passing on the messages.  Instead, just print
1857       everything to <literal>stderr</>.  In some cases this will result in
1858       duplicate messages (for instance, if all the workers report a server
1859       shutdown), but that seems better than no message.
1860      </para>
1861     </listitem>
1862
1863     <listitem>
1864      <para>
1865       Ensure that parallel <application>pg_dump</>
1866       or <application>pg_restore</> on Windows will shut down properly
1867       after an error (Kyotaro Horiguchi)
1868      </para>
1869
1870      <para>
1871       Previously, it would report the error, but then just sit until
1872       manually stopped by the user.
1873      </para>
1874     </listitem>
1875
1876     <listitem>
1877      <para>
1878       Make <application>pg_dump</> behave better when built without zlib
1879       support (Kyotaro Horiguchi)
1880      </para>
1881
1882      <para>
1883       It didn't work right for parallel dumps, and emitted some rather
1884       pointless warnings in other cases.
1885      </para>
1886     </listitem>
1887
1888     <listitem>
1889      <para>
1890       Make <application>pg_basebackup</> accept <literal>-Z 0</> as
1891       specifying no compression (Fujii Masao)
1892      </para>
1893     </listitem>
1894
1895     <listitem>
1896      <para>
1897       Fix makefiles' rule for building AIX shared libraries to be safe for
1898       parallel make (Noah Misch)
1899      </para>
1900     </listitem>
1901
1902     <listitem>
1903      <para>
1904       Fix TAP tests and MSVC scripts to work when build directory's path
1905       name contains spaces (Michael Paquier, Kyotaro Horiguchi)
1906      </para>
1907     </listitem>
1908
1909     <listitem>
1910      <para>
1911       Be more predictable about reporting <quote>statement timeout</>
1912       versus <quote>lock timeout</> (Tom Lane)
1913      </para>
1914
1915      <para>
1916       On heavily loaded machines, the regression tests sometimes failed due
1917       to reporting <quote>lock timeout</> even though the statement timeout
1918       should have occurred first.
1919      </para>
1920     </listitem>
1921
1922     <listitem>
1923      <para>
1924       Make regression tests safe for Danish and Welsh locales (Jeff Janes,
1925       Tom Lane)
1926      </para>
1927
1928      <para>
1929       Change some test data that triggered the unusual sorting rules of
1930       these locales.
1931      </para>
1932     </listitem>
1933
1934     <listitem>
1935      <para>
1936       Update our copy of the timezone code to match
1937       IANA's <application>tzcode</> release 2016c (Tom Lane)
1938      </para>
1939
1940      <para>
1941       This is needed to cope with anticipated future changes in the time
1942       zone data files.  It also fixes some corner-case bugs in coping with
1943       unusual time zones.
1944      </para>
1945     </listitem>
1946
1947     <listitem>
1948      <para>
1949       Update time zone data files to <application>tzdata</> release 2016f
1950       for DST law changes in Kemerovo and Novosibirsk, plus historical
1951       corrections for Azerbaijan, Belarus, and Morocco.
1952      </para>
1953     </listitem>
1954
1955    </itemizedlist>
1956
1957   </sect2>
1958  </sect1>
1959
1960  <sect1 id="release-9-4-8">
1961   <title>Release 9.4.8</title>
1962
1963   <note>
1964   <title>Release Date</title>
1965   <simpara>2016-05-12</simpara>
1966   </note>
1967
1968   <para>
1969    This release contains a variety of fixes from 9.4.7.
1970    For information about new features in the 9.4 major release, see
1971    <xref linkend="release-9-4">.
1972   </para>
1973
1974   <sect2>
1975    <title>Migration to Version 9.4.8</title>
1976
1977    <para>
1978     A dump/restore is not required for those running 9.4.X.
1979    </para>
1980
1981    <para>
1982     However, if you are upgrading from a version earlier than 9.4.6,
1983     see <xref linkend="release-9-4-6">.
1984    </para>
1985   </sect2>
1986
1987   <sect2>
1988    <title>Changes</title>
1989
1990    <itemizedlist>
1991
1992     <listitem>
1993      <para>
1994       Clear the OpenSSL error queue before OpenSSL calls, rather than
1995       assuming it's clear already; and make sure we leave it clear
1996       afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
1997      </para>
1998
1999      <para>
2000       This change prevents problems when there are multiple connections
2001       using OpenSSL within a single process and not all the code involved
2002       follows the same rules for when to clear the error queue.
2003       Failures have been reported specifically when a client application
2004       uses SSL connections in <application>libpq</> concurrently with
2005       SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
2006       It's possible for similar problems to arise within the server as well,
2007       if an extension module establishes an outgoing SSL connection.
2008      </para>
2009     </listitem>
2010
2011     <listitem>
2012      <para>
2013       Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
2014       planner error with a full join enclosed in the right-hand side of a
2015       left join (Tom Lane)
2016      </para>
2017     </listitem>
2018
2019     <listitem>
2020      <para>
2021       Fix incorrect handling of equivalence-class tests in multilevel
2022       nestloop plans (Tom Lane)
2023      </para>
2024
2025      <para>
2026       Given a three-or-more-way equivalence class of variables, such
2027       as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
2028       some of the tests needed to enforce that all the variables are actually
2029       equal, leading to join rows being output that didn't satisfy
2030       the <literal>WHERE</> clauses.  For various reasons, erroneous plans
2031       were seldom selected in practice, so that this bug has gone undetected
2032       for a long time.
2033      </para>
2034     </listitem>
2035
2036     <listitem>
2037      <para>
2038       Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud)
2039      </para>
2040     </listitem>
2041
2042     <listitem>
2043      <para>
2044       Fix query-lifespan memory leak and potential index corruption hazard in
2045       GIN index insertion (Tom Lane)
2046      </para>
2047
2048      <para>
2049       The memory leak would typically not amount to much in simple queries,
2050       but it could be very substantial during a large GIN index build with
2051       high <varname>maintenance_work_mem</>.
2052      </para>
2053     </listitem>
2054
2055     <listitem>
2056      <para>
2057       Fix possible misbehavior of <literal>TH</>, <literal>th</>,
2058       and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
2059       (Tom Lane)
2060      </para>
2061
2062      <para>
2063       These could advance off the end of the input string, causing subsequent
2064       format codes to read garbage.
2065      </para>
2066     </listitem>
2067
2068     <listitem>
2069      <para>
2070       Fix dumping of rules and views in which the <replaceable>array</>
2071       argument of a <literal><replaceable>value</> <replaceable>operator</>
2072       ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
2073       (Tom Lane)
2074      </para>
2075     </listitem>
2076
2077     <listitem>
2078      <para>
2079       Disallow newlines in <command>ALTER SYSTEM</> parameter values
2080       (Tom Lane)
2081      </para>
2082
2083      <para>
2084       The configuration-file parser doesn't support embedded newlines in
2085       string literals, so we mustn't allow them in values to be inserted
2086       by <command>ALTER SYSTEM</>.
2087      </para>
2088     </listitem>
2089
2090     <listitem>
2091      <para>
2092       Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</> to
2093       work properly if an index on OID is selected (David Rowley)
2094      </para>
2095     </listitem>
2096
2097     <listitem>
2098      <para>
2099       Fix crash in logical decoding on alignment-picky platforms (Tom Lane,
2100       Andres Freund)
2101      </para>
2102
2103      <para>
2104       The failure occurred only with a transaction large enough to spill to
2105       disk and a primary-key change within that transaction.
2106      </para>
2107     </listitem>
2108
2109     <listitem>
2110      <para>
2111       Avoid repeated requests for feedback from receiver while shutting down
2112       walsender (Nick Cleaton)
2113      </para>
2114     </listitem>
2115
2116     <listitem>
2117      <para>
2118       Make <application>pg_regress</> use a startup timeout from the
2119       <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
2120      </para>
2121
2122      <para>
2123       This is for consistency with a behavior recently added
2124       to <application>pg_ctl</>; it eases automated testing on slow machines.
2125      </para>
2126     </listitem>
2127
2128     <listitem>
2129      <para>
2130       Fix <application>pg_upgrade</> to correctly restore extension
2131       membership for operator families containing only one operator class
2132       (Tom Lane)
2133      </para>
2134
2135      <para>
2136       In such a case, the operator family was restored into the new database,
2137       but it was no longer marked as part of the extension.  This had no
2138       immediate ill effects, but would cause later <application>pg_dump</>
2139       runs to emit output that would cause (harmless) errors on restore.
2140      </para>
2141     </listitem>
2142
2143     <listitem>
2144      <para>
2145       Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
2146       differ from old (Tom Lane)
2147      </para>
2148
2149      <para>
2150       <application>pg_upgrade</> had special-case code to handle the
2151       situation where the new <productname>PostgreSQL</> version thinks that
2152       a table should have a TOAST table while the old version did not.  That
2153       code was broken, so remove it, and instead do nothing in such cases;
2154       there seems no reason to believe that we can't get along fine without
2155       a TOAST table if that was okay according to the old version's rules.
2156      </para>
2157     </listitem>
2158
2159     <listitem>
2160      <para>
2161       Reduce the number of SysV semaphores used by a build configured with
2162       <option>--disable-spinlocks</> (Tom Lane)
2163      </para>
2164     </listitem>
2165
2166     <listitem>
2167      <para>
2168       Rename internal function <function>strtoi()</>
2169       to <function>strtoint()</> to avoid conflict with a NetBSD library
2170       function (Thomas Munro)
2171      </para>
2172     </listitem>
2173
2174     <listitem>
2175      <para>
2176       Fix reporting of errors from <function>bind()</>
2177       and <function>listen()</> system calls on Windows (Tom Lane)
2178      </para>
2179     </listitem>
2180
2181     <listitem>
2182      <para>
2183       Reduce verbosity of compiler output when building with Microsoft Visual
2184       Studio (Christian Ullrich)
2185      </para>
2186     </listitem>
2187
2188     <listitem>
2189      <para>
2190       Fix <function>putenv()</> to work properly with Visual Studio 2013
2191       (Michael Paquier)
2192      </para>
2193     </listitem>
2194
2195     <listitem>
2196      <para>
2197       Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
2198       function (Christian Ullrich)
2199      </para>
2200
2201      <para>
2202       Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
2203       appropriate.  No live bug is known to exist here, but it seems like a
2204       good idea to be careful.
2205      </para>
2206     </listitem>
2207
2208     <listitem>
2209      <para>
2210       Update time zone data files to <application>tzdata</> release 2016d
2211       for DST law changes in Russia and Venezuela.  There are new zone
2212       names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
2213       the fact that these regions now have different time zone histories from
2214       adjacent regions.
2215      </para>
2216     </listitem>
2217
2218    </itemizedlist>
2219
2220   </sect2>
2221  </sect1>
2222
2223  <sect1 id="release-9-4-7">
2224   <title>Release 9.4.7</title>
2225
2226   <note>
2227   <title>Release Date</title>
2228   <simpara>2016-03-31</simpara>
2229   </note>
2230
2231   <para>
2232    This release contains a variety of fixes from 9.4.6.
2233    For information about new features in the 9.4 major release, see
2234    <xref linkend="release-9-4">.
2235   </para>
2236
2237   <sect2>
2238    <title>Migration to Version 9.4.7</title>
2239
2240    <para>
2241     A dump/restore is not required for those running 9.4.X.
2242    </para>
2243
2244    <para>
2245     However, if you are upgrading from a version earlier than 9.4.6,
2246     see <xref linkend="release-9-4-6">.
2247    </para>
2248   </sect2>
2249
2250   <sect2>
2251    <title>Changes</title>
2252
2253    <itemizedlist>
2254
2255     <listitem>
2256      <para>
2257       Fix incorrect handling of NULL index entries in
2258       indexed <literal>ROW()</> comparisons (Tom Lane)
2259      </para>
2260
2261      <para>
2262       An index search using a row comparison such as <literal>ROW(a, b) &gt;
2263       ROW('x', 'y')</> would stop upon reaching a NULL entry in
2264       the <structfield>b</> column, ignoring the fact that there might be
2265       non-NULL <structfield>b</> values associated with later values
2266       of <structfield>a</>.
2267      </para>
2268     </listitem>
2269
2270     <listitem>
2271      <para>
2272       Avoid unlikely data-loss scenarios due to renaming files without
2273       adequate <function>fsync()</> calls before and after (Michael Paquier,
2274       Tomas Vondra, Andres Freund)
2275      </para>
2276     </listitem>
2277
2278     <listitem>
2279      <para>
2280       Fix bug in <function>json_to_record()</> when a field of its input
2281       object contains a sub-object with a field name matching one of the
2282       requested output column names (Tom Lane)
2283      </para>
2284     </listitem>
2285
2286     <listitem>
2287      <para>
2288       Fix misformatting of negative time zone offsets
2289       by <function>to_char()</>'s <literal>OF</> format code
2290       (Thomas Munro, Tom Lane)
2291      </para>
2292     </listitem>
2293
2294     <listitem>
2295      <para>
2296       Ignore <xref linkend="recovery-min-apply-delay"> parameter until
2297       recovery has reached a consistent state (Michael Paquier)
2298      </para>
2299
2300      <para>
2301       Previously, standby servers would delay application of WAL records in
2302       response to <varname>recovery_min_apply_delay</> even while replaying
2303       the initial portion of WAL needed to make their database state valid.
2304       Since the standby is useless until it's reached a consistent database
2305       state, this was deemed unhelpful.
2306      </para>
2307     </listitem>
2308
2309     <listitem>
2310      <para>
2311       Correctly handle cases where <literal>pg_subtrans</> is close to XID
2312       wraparound during server startup (Jeff Janes)
2313      </para>
2314     </listitem>
2315
2316     <listitem>
2317      <para>
2318       Fix assorted bugs in logical decoding (Andres Freund)
2319      </para>
2320
2321      <para>
2322       Trouble cases included tuples larger than one page when replica
2323       identity is <literal>FULL</>, <command>UPDATE</>s that change a
2324       primary key within a transaction large enough to be spooled to disk,
2325       incorrect reports of <quote>subxact logged without previous toplevel
2326       record</>, and incorrect reporting of a transaction's commit time.
2327      </para>
2328     </listitem>
2329
2330     <listitem>
2331      <para>
2332       Fix planner error with nested security barrier views when the outer
2333       view has a <literal>WHERE</> clause containing a correlated subquery
2334       (Dean Rasheed)
2335      </para>
2336     </listitem>
2337
2338     <listitem>
2339      <para>
2340       Fix corner-case crash due to trying to free <function>localeconv()</>
2341       output strings more than once (Tom Lane)
2342      </para>
2343     </listitem>
2344
2345     <listitem>
2346      <para>
2347       Fix parsing of affix files for <literal>ispell</> dictionaries
2348       (Tom Lane)
2349      </para>
2350
2351      <para>
2352       The code could go wrong if the affix file contained any characters
2353       whose byte length changes during case-folding, for
2354       example <literal>I</> in Turkish UTF8 locales.
2355      </para>
2356     </listitem>
2357
2358     <listitem>
2359      <para>
2360       Avoid use of <function>sscanf()</> to parse <literal>ispell</>
2361       dictionary files (Artur Zakirov)
2362      </para>
2363
2364      <para>
2365       This dodges a portability problem on FreeBSD-derived platforms
2366       (including macOS).
2367      </para>
2368     </listitem>
2369
2370     <listitem>
2371      <para>
2372       Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
2373       AVX2-capable CPU and a Postgres build done with Visual Studio 2013
2374       (Christian Ullrich)
2375      </para>
2376
2377      <para>
2378       This is a workaround for a bug in Visual Studio 2013's runtime
2379       library, which Microsoft have stated they will not fix in that
2380       version.
2381      </para>
2382     </listitem>
2383
2384     <listitem>
2385      <para>
2386       Fix <application>psql</>'s tab completion logic to handle multibyte
2387       characters properly (Kyotaro Horiguchi, Robert Haas)
2388      </para>
2389     </listitem>
2390
2391     <listitem>
2392      <para>
2393       Fix <application>psql</>'s tab completion for
2394       <literal>SECURITY LABEL</> (Tom Lane)
2395      </para>
2396
2397      <para>
2398       Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
2399       or offering of inappropriate keywords.
2400      </para>
2401     </listitem>
2402
2403     <listitem>
2404      <para>
2405       Make <application>pg_ctl</> accept a wait timeout from the
2406       <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
2407       the command line (Noah Misch)
2408      </para>
2409
2410      <para>
2411       This eases testing of slower buildfarm members by allowing them
2412       to globally specify a longer-than-normal timeout for postmaster
2413       startup and shutdown.
2414      </para>
2415     </listitem>
2416
2417     <listitem>
2418      <para>
2419       Fix incorrect test for Windows service status
2420       in <application>pg_ctl</> (Manuel Mathar)
2421      </para>
2422
2423      <para>
2424       The previous set of minor releases attempted to
2425       fix <application>pg_ctl</> to properly determine whether to send log
2426       messages to Window's Event Log, but got the test backwards.
2427      </para>
2428     </listitem>
2429
2430     <listitem>
2431      <para>
2432       Fix <application>pgbench</> to correctly handle the combination
2433       of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
2434      </para>
2435     </listitem>
2436
2437     <listitem>
2438      <para>
2439       In <application>pg_upgrade</>, skip creating a deletion script when
2440       the new data directory is inside the old data directory (Bruce
2441       Momjian)
2442      </para>
2443
2444      <para>
2445       Blind application of the script in such cases would result in loss of
2446       the new data directory.
2447      </para>
2448     </listitem>
2449
2450     <listitem>
2451      <para>
2452       In PL/Perl, properly translate empty Postgres arrays into empty Perl
2453       arrays (Alex Hunsaker)
2454      </para>
2455     </listitem>
2456
2457     <listitem>
2458      <para>
2459       Make PL/Python cope with function names that aren't valid Python
2460       identifiers (Jim Nasby)
2461      </para>
2462     </listitem>
2463
2464     <listitem>
2465      <para>
2466       Fix multiple mistakes in the statistics returned
2467       by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
2468       function (Tom Lane)
2469      </para>
2470     </listitem>
2471
2472     <listitem>
2473      <para>
2474       Remove dependency on <literal>psed</> in MSVC builds, since it's no
2475       longer provided by core Perl (Michael Paquier, Andrew Dunstan)
2476      </para>
2477     </listitem>
2478
2479     <listitem>
2480      <para>
2481       Update time zone data files to <application>tzdata</> release 2016c
2482       for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
2483       (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
2484       historical corrections for Lithuania, Moldova, and Russia
2485       (Kaliningrad, Samara, Volgograd).
2486      </para>
2487     </listitem>
2488
2489    </itemizedlist>
2490
2491   </sect2>
2492  </sect1>
2493
2494  <sect1 id="release-9-4-6">
2495   <title>Release 9.4.6</title>
2496
2497   <note>
2498   <title>Release Date</title>
2499   <simpara>2016-02-11</simpara>
2500   </note>
2501
2502   <para>
2503    This release contains a variety of fixes from 9.4.5.
2504    For information about new features in the 9.4 major release, see
2505    <xref linkend="release-9-4">.
2506   </para>
2507
2508   <sect2>
2509    <title>Migration to Version 9.4.6</title>
2510
2511    <para>
2512     A dump/restore is not required for those running 9.4.X.
2513    </para>
2514
2515    <para>
2516     However, if you are upgrading an installation that contains any GIN
2517     indexes that use the (non-default) <literal>jsonb_path_ops</> operator
2518     class, see the first changelog entry below.
2519    </para>
2520
2521    <para>
2522     Also, if you are upgrading from a version earlier than 9.4.4,
2523     see <xref linkend="release-9-4-4">.
2524    </para>
2525   </sect2>
2526
2527   <sect2>
2528    <title>Changes</title>
2529
2530    <itemizedlist>
2531
2532 <!--
2533 Author: Tom Lane <tgl@sss.pgh.pa.us>
2534 Branch: master [b23af4587] 2015-11-05 18:15:48 -0500
2535 Branch: REL9_5_STABLE Release: REL9_5_0 [4d867458f] 2015-11-05 18:15:48 -0500
2536 Branch: REL9_4_STABLE [788e35ac0] 2015-11-05 18:15:48 -0500
2537 -->
2538
2539     <listitem>
2540      <para>
2541       Fix inconsistent hash calculations in <literal>jsonb_path_ops</> GIN
2542       indexes (Tom Lane)
2543      </para>
2544
2545      <para>
2546       When processing <type>jsonb</> values that contain both scalars and
2547       sub-objects at the same nesting level, for example an array containing
2548       both scalars and sub-arrays, key hash values could be calculated
2549       differently than they would be for the same key in a different context.
2550       This could result in queries not finding entries that they should find.
2551       Fixing this means that existing indexes may now be inconsistent with the
2552       new hash calculation code.  Users
2553       should <command>REINDEX</> <literal>jsonb_path_ops</> GIN indexes after
2554       installing this update to make sure that all searches work as expected.
2555      </para>
2556     </listitem>
2557
2558     <listitem>
2559      <para>
2560       Fix infinite loops and buffer-overrun problems in regular expressions
2561       (Tom Lane)
2562      </para>
2563
2564      <para>
2565       Very large character ranges in bracket expressions could cause
2566       infinite loops in some cases, and memory overwrites in other cases.
2567       (CVE-2016-0773)
2568      </para>
2569     </listitem>
2570
2571 <!--
2572 Author: Tom Lane <tgl@sss.pgh.pa.us>
2573 Branch: master [7e2a18a91] 2015-10-06 17:15:52 -0400
2574 Branch: REL9_5_STABLE Release: REL9_5_0 [02580df6c] 2015-10-06 17:15:27 -0400
2575 Branch: REL9_4_STABLE [3d701277f] 2015-10-06 17:15:27 -0400
2576 Branch: REL9_3_STABLE [31bc563b9] 2015-10-06 17:15:27 -0400
2577 Branch: REL9_2_STABLE [3d10f3970] 2015-10-06 17:15:27 -0400
2578 Branch: REL9_1_STABLE [dea6da132] 2015-10-06 17:15:27 -0400
2579 -->
2580
2581     <listitem>
2582      <para>
2583       Perform an immediate shutdown if the <filename>postmaster.pid</> file
2584       is removed (Tom Lane)
2585      </para>
2586
2587      <para>
2588       The postmaster now checks every minute or so
2589       that <filename>postmaster.pid</> is still there and still contains its
2590       own PID.  If not, it performs an immediate shutdown, as though it had
2591       received <systemitem>SIGQUIT</>.  The main motivation for this change
2592       is to ensure that failed buildfarm runs will get cleaned up without
2593       manual intervention; but it also serves to limit the bad effects if a
2594       DBA forcibly removes <filename>postmaster.pid</> and then starts a new
2595       postmaster.
2596      </para>
2597     </listitem>
2598
2599 <!--
2600 Author: Kevin Grittner <kgrittn@postgresql.org>
2601 Branch: master [585e2a3b1] 2015-10-31 14:43:34 -0500
2602 Branch: REL9_5_STABLE Release: REL9_5_0 [50ca917d9] 2015-10-31 14:42:46 -0500
2603 Branch: REL9_4_STABLE [1d95617f7] 2015-10-31 14:45:15 -0500
2604 Branch: REL9_3_STABLE [18479293c] 2015-10-31 14:46:57 -0500
2605 Branch: REL9_2_STABLE [caff7fc3f] 2015-10-31 14:36:37 -0500
2606 Branch: REL9_1_STABLE [08322daed] 2015-10-31 14:36:58 -0500
2607 -->
2608
2609     <listitem>
2610      <para>
2611       In <literal>SERIALIZABLE</> transaction isolation mode, serialization
2612       anomalies could be missed due to race conditions during insertions
2613       (Kevin Grittner, Thomas Munro)
2614      </para>
2615     </listitem>
2616
2617 <!--
2618 Author: Andres Freund <andres@anarazel.de>
2619 Branch: master [f54d0629e] 2015-12-12 14:17:39 +0100
2620 Branch: REL9_5_STABLE Release: REL9_5_0 [ada9c09ae] 2015-12-12 14:19:19 +0100
2621 Branch: REL9_4_STABLE [d638aeef6] 2015-12-12 14:19:23 +0100
2622 Branch: REL9_3_STABLE [9037bdc88] 2015-12-12 14:19:25 +0100
2623 Branch: REL9_2_STABLE [a15ad6708] 2015-12-12 14:19:51 +0100
2624 Branch: REL9_1_STABLE [5f9a86b35] 2015-12-12 14:19:29 +0100
2625 -->
2626
2627     <listitem>
2628      <para>
2629       Fix failure to emit appropriate WAL records when doing <literal>ALTER
2630       TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
2631       Andres Freund)
2632      </para>
2633
2634      <para>
2635       Even though the relation's data is unlogged, the move must be logged or
2636       the relation will be inaccessible after a standby is promoted to master.
2637      </para>
2638     </listitem>
2639
2640 <!--
2641 Author: Andres Freund <andres@anarazel.de>
2642 Branch: master [e3f4cfc7a] 2015-12-10 16:29:26 +0100
2643 Branch: REL9_5_STABLE Release: REL9_5_0 [5b51805fe] 2015-12-10 16:39:25 +0100
2644 Branch: REL9_4_STABLE [c6a67bbc7] 2015-12-10 16:29:26 +0100
2645 Branch: REL9_3_STABLE [b19405a44] 2015-12-10 16:29:27 +0100
2646 Branch: REL9_2_STABLE [2de281da2] 2015-12-10 16:29:27 +0100
2647 Branch: REL9_1_STABLE [3199c13fc] 2015-12-10 16:29:27 +0100
2648 -->
2649
2650     <listitem>
2651      <para>
2652       Fix possible misinitialization of unlogged relations at the end of
2653       crash recovery (Andres Freund, Michael Paquier)
2654      </para>
2655     </listitem>
2656
2657 <!--
2658 Author: Magnus Hagander <magnus@hagander.net>
2659 Branch: master [263c19572] 2015-12-13 16:46:56 +0100
2660 Branch: REL9_5_STABLE Release: REL9_5_0 [a9c56ff0e] 2015-12-13 16:43:35 +0100
2661 Branch: REL9_4_STABLE [61c7bee21] 2015-12-13 16:43:52 +0100
2662 Branch: REL9_3_STABLE [a1fb84990] 2015-12-13 16:44:04 +0100
2663 -->
2664
2665     <listitem>
2666      <para>
2667       Ensure walsender slots are fully re-initialized when being re-used
2668       (Magnus Hagander)
2669      </para>
2670     </listitem>
2671
2672 <!--
2673 Author: Tom Lane <tgl@sss.pgh.pa.us>
2674 Branch: master [074c5cfbf] 2015-11-20 14:55:47 -0500
2675 Branch: REL9_5_STABLE Release: REL9_5_0 [a35c5b7c1] 2015-11-20 14:55:28 -0500
2676 Branch: REL9_4_STABLE [47ea4614e] 2015-11-20 14:55:28 -0500
2677 Branch: REL9_3_STABLE [64349f1d2] 2015-11-20 14:55:29 -0500
2678 Branch: REL9_2_STABLE [c49279dfd] 2015-11-20 14:55:29 -0500
2679 Branch: REL9_1_STABLE [60ba32cb5] 2015-11-20 14:55:29 -0500
2680 -->
2681
2682     <listitem>
2683      <para>
2684       Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
2685       constraints properly (Tom Lane)
2686      </para>
2687     </listitem>
2688
2689 <!--
2690 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2691 Branch: REL9_4_STABLE [d07afa42d] 2015-12-21 19:49:15 -0300
2692 Branch: REL9_3_STABLE [bc72c3b3f] 2015-12-21 19:49:15 -0300
2693 Branch: REL9_2_STABLE [f9643d0d6] 2015-12-21 19:49:15 -0300
2694 Branch: REL9_1_STABLE [7e29e7f55] 2015-12-21 19:49:15 -0300
2695 -->
2696
2697     <listitem>
2698      <para>
2699       Fix <command>REASSIGN OWNED</> to change ownership of composite types
2700       properly (&Aacute;lvaro Herrera)
2701      </para>
2702     </listitem>
2703
2704 <!--
2705 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2706 Branch: REL9_4_STABLE [2c8ae6442] 2015-12-21 19:16:15 -0300
2707 Branch: REL9_3_STABLE [62e6eba8d] 2015-12-21 19:16:15 -0300
2708 Branch: REL9_2_STABLE [7af3dd540] 2015-12-21 19:16:15 -0300
2709 Branch: REL9_1_STABLE [ab14c1383] 2015-12-21 19:16:15 -0300
2710 -->
2711
2712     <listitem>
2713      <para>
2714       Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
2715       update granted-permissions lists when changing owners of data types,
2716       foreign data wrappers, or foreign servers (Bruce Momjian,
2717       &Aacute;lvaro Herrera)
2718      </para>
2719     </listitem>
2720
2721 <!--
2722 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2723 Branch: master [8c1615531] 2015-12-11 18:39:09 -0300
2724 Branch: REL9_5_STABLE Release: REL9_5_0 [31f88a12a] 2015-12-11 18:39:09 -0300
2725 Branch: REL9_4_STABLE [1f8757ad8] 2015-12-11 18:39:09 -0300
2726 Branch: REL9_3_STABLE [4626245bc] 2015-12-11 18:39:09 -0300
2727 Branch: REL9_2_STABLE [629842a8e] 2015-12-11 18:39:09 -0300
2728 Branch: REL9_1_STABLE [f44c5203b] 2015-12-11 18:39:09 -0300
2729 -->
2730
2731     <listitem>
2732      <para>
2733       Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
2734       rather than fail (&Aacute;lvaro Herrera)
2735      </para>
2736     </listitem>
2737
2738 <!--
2739 Author: Stephen Frost <sfrost@snowman.net>
2740 Branch: master [6f8cb1e23] 2015-12-21 10:34:14 -0500
2741 Branch: REL9_5_STABLE Release: REL9_5_0 [496943ec2] 2015-12-21 10:34:20 -0500
2742 Branch: REL9_4_STABLE [f02137da8] 2015-12-21 10:34:23 -0500
2743 Branch: REL9_3_STABLE [4271ed386] 2015-12-21 10:34:28 -0500
2744 -->
2745
2746     <listitem>
2747      <para>
2748       Fix possible crash after doing query rewrite for an updatable view
2749       (Stephen Frost)
2750      </para>
2751     </listitem>
2752
2753 <!--
2754 Author: Tom Lane <tgl@sss.pgh.pa.us>
2755 Branch: master [acfcd45ca] 2015-12-11 14:22:20 -0500
2756 Branch: REL9_5_STABLE Release: REL9_5_0 [564c19e86] 2015-12-11 14:22:20 -0500
2757 Branch: REL9_4_STABLE [7ad696066] 2015-12-11 14:22:20 -0500
2758 Branch: REL9_3_STABLE [260590e6b] 2015-12-11 14:22:20 -0500
2759 Branch: master [7e19db0c0] 2015-12-07 17:42:11 -0500
2760 Branch: REL9_5_STABLE Release: REL9_5_0 [25517ee14] 2015-12-07 17:41:45 -0500
2761 Branch: REL9_4_STABLE [0901d68ba] 2015-12-07 17:41:45 -0500
2762 Branch: REL9_3_STABLE [0a34ff7e9] 2015-12-07 17:41:45 -0500
2763 -->
2764
2765     <listitem>
2766      <para>
2767       Fix planner's handling of <literal>LATERAL</> references (Tom
2768       Lane)
2769      </para>
2770
2771      <para>
2772       This fixes some corner cases that led to <quote>failed to build any
2773       N-way joins</> or <quote>could not devise a query plan</> planner
2774       failures.
2775      </para>
2776     </listitem>
2777
2778 <!--
2779 Author: Tom Lane <tgl@sss.pgh.pa.us>
2780 Branch: master [3c93a60f6] 2016-01-01 13:42:21 -0500
2781 Branch: REL9_5_STABLE Release: REL9_5_0 [d932391fd] 2016-01-01 13:42:30 -0500
2782 Branch: REL9_4_STABLE [76eccf07b] 2016-01-01 13:42:35 -0500
2783 Branch: REL9_3_STABLE [94114469f] 2016-01-01 13:42:39 -0500
2784 Branch: REL9_2_STABLE [8e79b24c5] 2016-01-01 13:42:43 -0500
2785 Branch: REL9_1_STABLE [60f8cc91d] 2016-01-01 13:42:48 -0500
2786 -->
2787
2788     <listitem>
2789      <para>
2790       Add more defenses against bad planner cost estimates for GIN index
2791       scans when the index's internal statistics are very out-of-date
2792       (Tom Lane)
2793      </para>
2794     </listitem>
2795
2796 <!--
2797 Author: Tom Lane <tgl@sss.pgh.pa.us>
2798 Branch: master [7fb008c5e] 2015-12-01 16:24:34 -0500
2799 Branch: REL9_5_STABLE Release: REL9_5_0 [e9986a811] 2015-12-01 16:24:34 -0500
2800 Branch: REL9_4_STABLE [ab14e0e4c] 2015-12-01 16:24:34 -0500
2801 Branch: REL9_3_STABLE [52774e52d] 2015-12-01 16:24:34 -0500
2802 Branch: REL9_2_STABLE [3d4bdd2f9] 2015-12-01 16:24:35 -0500
2803 Branch: REL9_1_STABLE [7882143dc] 2015-12-01 16:24:35 -0500
2804 -->
2805
2806     <listitem>
2807      <para>
2808       Make planner cope with hypothetical GIN indexes suggested by an index
2809       advisor plug-in (Julien Rouhaud)
2810      </para>
2811     </listitem>
2812
2813 <!--
2814 Author: Tom Lane <tgl@sss.pgh.pa.us>
2815 Branch: master [8004953b5] 2015-11-16 13:45:17 -0500
2816 Branch: REL9_5_STABLE Release: REL9_5_0 [34d4f49bb] 2015-11-16 13:45:17 -0500
2817 Branch: REL9_4_STABLE [a6c4c07fc] 2015-11-16 13:45:17 -0500
2818 Branch: REL9_3_STABLE [faf18a905] 2015-11-16 13:45:17 -0500
2819 -->
2820
2821     <listitem>
2822      <para>
2823       Speed up generation of unique table aliases in <command>EXPLAIN</> and
2824       rule dumping, and ensure that generated aliases do not
2825       exceed <literal>NAMEDATALEN</> (Tom Lane)
2826      </para>
2827     </listitem>
2828
2829 <!--
2830 Author: Tom Lane <tgl@sss.pgh.pa.us>
2831 Branch: master [7745bc352] 2015-11-15 14:41:09 -0500
2832 Branch: REL9_5_STABLE Release: REL9_5_0 [0489a048d] 2015-11-15 14:41:09 -0500
2833 Branch: REL9_4_STABLE [d33ab56b0] 2015-11-15 14:41:09 -0500
2834 Branch: REL9_3_STABLE [7d0e87208] 2015-11-15 14:41:09 -0500
2835 Branch: REL9_2_STABLE [ed824cf80] 2015-11-15 14:41:09 -0500
2836 Branch: REL9_1_STABLE [7b21d1bca] 2015-11-15 14:41:09 -0500
2837 -->
2838
2839     <listitem>
2840      <para>
2841       Fix dumping of whole-row Vars in <literal>ROW()</>
2842       and <literal>VALUES()</> lists (Tom Lane)
2843      </para>
2844     </listitem>
2845
2846 <!--
2847 Author: Tom Lane <tgl@sss.pgh.pa.us>
2848 Branch: master [d43554258] 2015-10-20 11:07:04 -0700
2849 Branch: REL9_5_STABLE Release: REL9_5_0 [5fb20a5ba] 2015-10-20 11:07:05 -0700
2850 Branch: REL9_4_STABLE [4f33572ee] 2015-10-20 11:06:24 -0700
2851 -->
2852
2853     <listitem>
2854      <para>
2855       Translation of minus-infinity dates and timestamps to <type>json</>
2856       or <type>jsonb</> incorrectly rendered them as plus-infinity (Tom Lane)
2857      </para>
2858     </listitem>
2859
2860 <!--
2861 Author: Tom Lane <tgl@sss.pgh.pa.us>
2862 Branch: master [5f10b7a60] 2015-11-17 15:46:47 -0500
2863 Branch: REL9_5_STABLE Release: REL9_5_0 [80be41979] 2015-11-17 15:46:54 -0500
2864 Branch: REL9_4_STABLE [cc95595e0] 2015-11-17 15:46:59 -0500
2865 Branch: REL9_3_STABLE [7df6dc405] 2015-11-17 15:47:03 -0500
2866 Branch: REL9_2_STABLE [c47bdb372] 2015-11-17 15:47:08 -0500
2867 Branch: REL9_1_STABLE [728a2ac21] 2015-11-17 15:47:12 -0500
2868 -->
2869
2870     <listitem>
2871      <para>
2872       Fix possible internal overflow in <type>numeric</> division
2873       (Dean Rasheed)
2874      </para>
2875     </listitem>
2876
2877 <!--
2878 Author: Tom Lane <tgl@sss.pgh.pa.us>
2879 Branch: master [a43b4ab11] 2015-11-07 12:43:24 -0500
2880 Branch: REL9_5_STABLE Release: REL9_5_0 [44fc25153] 2015-11-07 12:43:24 -0500
2881 Branch: REL9_4_STABLE [f69c01f2c] 2015-11-07 12:43:24 -0500
2882 Branch: REL9_3_STABLE [8db652359] 2015-11-07 12:43:24 -0500
2883 Branch: REL9_2_STABLE [bfb10db81] 2015-11-07 12:43:24 -0500
2884 Branch: REL9_1_STABLE [03ee6591d] 2015-11-07 12:43:24 -0500
2885 -->
2886
2887     <listitem>
2888      <para>
2889       Fix enforcement of restrictions inside parentheses within regular
2890       expression lookahead constraints (Tom Lane)
2891      </para>
2892
2893      <para>
2894       Lookahead constraints aren't allowed to contain backrefs, and
2895       parentheses within them are always considered non-capturing, according
2896       to the manual.  However, the code failed to handle these cases properly
2897       inside a parenthesized subexpression, and would give unexpected
2898       results.
2899      </para>
2900     </listitem>
2901
2902 <!--
2903 Author: Tom Lane <tgl@sss.pgh.pa.us>
2904 Branch: master [9f1e642d5] 2015-10-19 13:54:53 -0700
2905 Branch: REL9_5_STABLE Release: REL9_5_0 [43e36f8dd] 2015-10-19 13:54:53 -0700
2906 Branch: REL9_4_STABLE [52f21c588] 2015-10-19 13:54:53 -0700
2907 Branch: REL9_3_STABLE [e69d4756e] 2015-10-19 13:54:54 -0700
2908 Branch: REL9_2_STABLE [05e62ff59] 2015-10-19 13:54:54 -0700
2909 Branch: REL9_1_STABLE [0ce829caf] 2015-10-19 13:54:54 -0700
2910 -->
2911
2912     <listitem>
2913      <para>
2914       Conversion of regular expressions to indexscan bounds could produce
2915       incorrect bounds from regexps containing lookahead constraints
2916       (Tom Lane)
2917      </para>
2918     </listitem>
2919
2920 <!--
2921 Author: Tom Lane <tgl@sss.pgh.pa.us>
2922 Branch: master [48789c5d2] 2015-10-16 15:55:58 -0400
2923 Branch: REL9_5_STABLE Release: REL9_5_0 [0889e1857] 2015-10-16 15:56:00 -0400
2924 Branch: REL9_4_STABLE [b6eb5fc40] 2015-10-16 14:14:41 -0400
2925 Branch: REL9_3_STABLE [6e4dda796] 2015-10-16 14:14:41 -0400
2926 Branch: REL9_2_STABLE [83c34825e] 2015-10-16 14:14:41 -0400
2927 Branch: REL9_1_STABLE [d394f12c0] 2015-10-16 14:14:41 -0400
2928 -->
2929
2930     <listitem>
2931      <para>
2932       Fix regular-expression compiler to handle loops of constraint arcs
2933       (Tom Lane)
2934      </para>
2935
2936      <para>
2937       The code added for CVE-2007-4772 was both incomplete, in that it didn't
2938       handle loops involving more than one state, and incorrect, in that it
2939       could cause assertion failures (though there seem to be no bad
2940       consequences of that in a non-assert build).  Multi-state loops would
2941       cause the compiler to run until the query was canceled or it reached
2942       the too-many-states error condition.
2943      </para>
2944     </listitem>
2945
2946 <!--
2947 Author: Tom Lane <tgl@sss.pgh.pa.us>
2948 Branch: master [538b3b8b3] 2015-10-16 15:55:59 -0400
2949 Branch: REL9_5_STABLE Release: REL9_5_0 [e91cfdead] 2015-10-16 15:56:00 -0400
2950 Branch: REL9_4_STABLE [0ecf4a9e5] 2015-10-16 15:36:17 -0400
2951 Branch: REL9_3_STABLE [ad5e5a62a] 2015-10-16 15:36:17 -0400
2952 Branch: REL9_2_STABLE [4e4610a8a] 2015-10-16 15:36:17 -0400
2953 Branch: REL9_1_STABLE [b94c2b6a6] 2015-10-16 15:36:17 -0400
2954 -->
2955
2956     <listitem>
2957      <para>
2958       Improve memory-usage accounting in regular-expression compiler
2959       (Tom Lane)
2960      </para>
2961
2962      <para>
2963       This causes the code to emit <quote>regular expression is too
2964       complex</> errors in some cases that previously used unreasonable
2965       amounts of time and memory.
2966      </para>
2967     </listitem>
2968
2969 <!--
2970 Author: Tom Lane <tgl@sss.pgh.pa.us>
2971 Branch: master [6a7153661] 2015-10-16 15:55:59 -0400
2972 Branch: REL9_5_STABLE Release: REL9_5_0 [1bb0fbca3] 2015-10-16 15:56:00 -0400
2973 Branch: REL9_4_STABLE [9774fda86] 2015-10-16 15:11:49 -0400
2974 Branch: REL9_3_STABLE [2a8d6e4d0] 2015-10-16 15:11:49 -0400
2975 Branch: REL9_2_STABLE [a257b808a] 2015-10-16 15:11:49 -0400
2976 Branch: REL9_1_STABLE [067f96fe3] 2015-10-16 15:11:49 -0400
2977 Branch: master [f5b7d103b] 2015-10-16 15:55:59 -0400
2978 Branch: REL9_5_STABLE Release: REL9_5_0 [e9cf3dc30] 2015-10-16 15:56:00 -0400
2979 Branch: REL9_4_STABLE [8cf4eed0b] 2015-10-16 14:58:11 -0400
2980 Branch: REL9_3_STABLE [677e64cb8] 2015-10-16 14:58:11 -0400
2981 Branch: REL9_2_STABLE [18b032f8f] 2015-10-16 14:58:11 -0400
2982 Branch: REL9_1_STABLE [5503e6e0f] 2015-10-16 14:58:11 -0400
2983 Branch: master [579840ca0] 2015-10-16 15:55:59 -0400
2984 Branch: REL9_5_STABLE Release: REL9_5_0 [cff9e0659] 2015-10-16 15:56:00 -0400
2985 Branch: REL9_4_STABLE [bdde29e1c] 2015-10-16 14:43:18 -0400
2986 Branch: REL9_3_STABLE [296241635] 2015-10-16 14:43:18 -0400
2987 Branch: REL9_2_STABLE [a2ad467ae] 2015-10-16 14:43:18 -0400
2988 Branch: REL9_1_STABLE [b00c79b5b] 2015-10-16 14:43:18 -0400
2989 -->
2990
2991     <listitem>
2992      <para>
2993       Improve performance of regular-expression compiler (Tom Lane)
2994      </para>
2995     </listitem>
2996
2997     <listitem>
2998      <para>
2999       Make <literal>%h</> and <literal>%r</> escapes
3000       in <varname>log_line_prefix</> work for messages emitted due
3001       to <varname>log_connections</> (Tom Lane)
3002      </para>
3003
3004      <para>
3005       Previously, <literal>%h</>/<literal>%r</> started to work just after a
3006       new session had emitted the <quote>connection received</> log message;
3007       now they work for that message too.
3008      </para>
3009     </listitem>
3010
3011 <!--
3012 Author: Tom Lane <tgl@sss.pgh.pa.us>
3013 Branch: master [869f693a3] 2015-10-13 11:21:33 -0400
3014 Branch: REL9_5_STABLE Release: REL9_5_0 [39ac29394] 2015-10-13 11:21:33 -0400
3015 Branch: REL9_4_STABLE [44a6e24fb] 2015-10-13 11:21:33 -0400
3016 Branch: REL9_3_STABLE [bc6b03bb8] 2015-10-13 11:21:33 -0400
3017 Branch: REL9_2_STABLE [39cd1bdb8] 2015-10-13 11:21:33 -0400
3018 Branch: REL9_1_STABLE [b0d858359] 2015-10-13 11:21:33 -0400
3019 -->
3020
3021     <listitem>
3022      <para>
3023       On Windows, ensure the shared-memory mapping handle gets closed in
3024       child processes that don't need it (Tom Lane, Amit Kapila)
3025      </para>
3026
3027      <para>
3028       This oversight resulted in failure to recover from crashes
3029       whenever <varname>logging_collector</> is turned on.
3030      </para>
3031     </listitem>
3032
3033 <!--
3034 Author: Tom Lane <tgl@sss.pgh.pa.us>
3035 Branch: REL9_4_STABLE [add6d821b] 2016-01-04 17:41:33 -0500
3036 Branch: REL9_3_STABLE [0f527f73b] 2016-01-04 17:41:33 -0500
3037 Branch: REL9_2_STABLE [9b2eacba7] 2016-01-04 17:41:33 -0500
3038 Branch: REL9_1_STABLE [d05103b77] 2016-01-04 17:41:33 -0500
3039 -->
3040
3041     <listitem>
3042      <para>
3043       Fix possible failure to detect socket EOF in non-blocking mode on
3044       Windows (Tom Lane)
3045      </para>
3046
3047      <para>
3048       It's not entirely clear whether this problem can happen in pre-9.5
3049       branches, but if it did, the symptom would be that a walsender process
3050       would wait indefinitely rather than noticing a loss of connection.
3051      </para>
3052     </listitem>
3053
3054     <listitem>
3055      <para>
3056       Avoid leaking a token handle during SSPI authentication
3057       (Christian Ullrich)
3058      </para>
3059     </listitem>
3060
3061 <!--
3062 Author: Tom Lane <tgl@sss.pgh.pa.us>
3063 Branch: master [2ec477dc8] 2015-12-16 16:59:35 -0500
3064 Branch: REL9_5_STABLE Release: REL9_5_0 [f1c152866] 2015-12-16 16:58:55 -0500
3065 Branch: REL9_4_STABLE [e168dfef6] 2015-12-16 16:58:55 -0500
3066 Branch: REL9_3_STABLE [9afe392dc] 2015-12-16 16:58:56 -0500
3067 Branch: REL9_2_STABLE [bcce4a5e3] 2015-12-16 16:58:56 -0500
3068 Branch: REL9_1_STABLE [03b138e90] 2015-12-16 16:58:56 -0500
3069 Branch: master [aee7705be] 2015-12-17 16:55:23 -0500
3070 Branch: REL9_5_STABLE Release: REL9_5_0 [5ec0aad01] 2015-12-17 16:55:33 -0500
3071 Branch: REL9_4_STABLE [acb6c64f4] 2015-12-17 16:55:39 -0500
3072 Branch: REL9_3_STABLE [09b7abc27] 2015-12-17 16:55:43 -0500
3073 Branch: REL9_2_STABLE [b41777988] 2015-12-17 16:55:47 -0500
3074 Branch: REL9_1_STABLE [db462a44e] 2015-12-17 16:55:51 -0500
3075 -->
3076
3077     <listitem>
3078      <para>
3079       In <application>psql</>, ensure that <application>libreadline</>'s idea
3080       of the screen size is updated when the terminal window size changes
3081       (Merlin Moncure)
3082      </para>
3083
3084      <para>
3085       Previously, <application>libreadline</> did not notice if the window
3086       was resized during query output, leading to strange behavior during
3087       later input of multiline queries.
3088      </para>
3089     </listitem>
3090
3091     <listitem>
3092      <para>
3093       Fix <application>psql</>'s <literal>\det</> command to interpret its
3094       pattern argument the same way as other <literal>\d</> commands with
3095       potentially schema-qualified patterns do (Reece Hart)
3096      </para>
3097     </listitem>
3098
3099 <!--
3100 Author: Tom Lane <tgl@sss.pgh.pa.us>
3101 Branch: master [c5ef8ce53] 2015-11-25 17:31:53 -0500
3102 Branch: REL9_5_STABLE Release: REL9_5_0 [55a2cc844] 2015-11-25 17:31:53 -0500
3103 Branch: REL9_4_STABLE [3d357b48f] 2015-11-25 17:31:53 -0500
3104 Branch: REL9_3_STABLE [64b7079e5] 2015-11-25 17:31:53 -0500
3105 Branch: REL9_2_STABLE [d44b4deaa] 2015-11-25 17:31:54 -0500
3106 Branch: REL9_1_STABLE [6430a11fa] 2015-11-25 17:31:54 -0500
3107 -->
3108
3109     <listitem>
3110      <para>
3111       Avoid possible crash in <application>psql</>'s <literal>\c</> command
3112       when previous connection was via Unix socket and command specifies a
3113       new hostname and same username (Tom Lane)
3114      </para>
3115     </listitem>
3116
3117 <!--
3118 Author: Tom Lane <tgl@sss.pgh.pa.us>
3119 Branch: master [6bcce2580] 2015-10-12 18:30:36 -0400
3120 Branch: REL9_5_STABLE Release: REL9_5_0 [a151a5c38] 2015-10-12 18:30:36 -0400
3121 Branch: REL9_4_STABLE [57f54b5e4] 2015-10-12 18:30:36 -0400
3122 Branch: REL9_3_STABLE [dfe572de0] 2015-10-12 18:30:37 -0400
3123 Branch: REL9_2_STABLE [250108b6f] 2015-10-12 18:30:37 -0400
3124 Branch: REL9_1_STABLE [c869a7d5b] 2015-10-12 18:30:37 -0400
3125 -->
3126
3127     <listitem>
3128      <para>
3129       In <literal>pg_ctl start -w</>, test child process status directly
3130       rather than relying on heuristics (Tom Lane, Michael Paquier)
3131      </para>
3132
3133      <para>
3134       Previously, <application>pg_ctl</> relied on an assumption that the new
3135       postmaster would always create <filename>postmaster.pid</> within five
3136       seconds.  But that can fail on heavily-loaded systems,
3137       causing <application>pg_ctl</> to report incorrectly that the
3138       postmaster failed to start.
3139      </para>
3140
3141      <para>
3142       Except on Windows, this change also means that a <literal>pg_ctl start
3143       -w</> done immediately after another such command will now reliably
3144       fail, whereas previously it would report success if done within two
3145       seconds of the first command.
3146      </para>
3147     </listitem>
3148
3149 <!--
3150 Author: Noah Misch <noah@leadboat.com>
3151 Branch: master [fed19f312] 2015-11-08 17:28:53 -0500
3152 Branch: REL9_5_STABLE Release: REL9_5_0 [bdb42bac3] 2015-11-08 17:29:47 -0500
3153 Branch: REL9_4_STABLE [24379a45c] 2015-11-08 17:31:21 -0500
3154 Branch: REL9_3_STABLE [34725292d] 2015-11-08 17:31:22 -0500
3155 Branch: REL9_2_STABLE [99027350e] 2015-11-08 17:31:23 -0500
3156 Branch: REL9_1_STABLE [87deb55a4] 2015-11-08 17:31:24 -0500
3157 -->
3158
3159     <listitem>
3160      <para>
3161       In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
3162       address to connect to the postmaster (Kondo Yuta)
3163      </para>
3164
3165      <para>
3166       On Windows, <application>pg_ctl</> would fail to detect postmaster
3167       startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
3168       or <literal>::</>, because it would try to use that value verbatim as
3169       the address to connect to, which doesn't work.  Instead assume
3170       that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
3171       right thing to use.
3172      </para>
3173     </listitem>
3174
3175     <listitem>
3176      <para>
3177       In <application>pg_ctl</> on Windows, check service status to decide
3178       where to send output, rather than checking if standard output is a
3179       terminal (Michael Paquier)
3180      </para>
3181     </listitem>
3182
3183 <!--
3184 Author: Tom Lane <tgl@sss.pgh.pa.us>
3185 Branch: master [00cdd8352] 2015-11-21 20:21:31 -0500
3186 Branch: REL9_5_STABLE Release: REL9_5_0 [5f5e68b08] 2015-11-21 20:21:32 -0500
3187 Branch: REL9_4_STABLE [7acad9546] 2015-11-21 20:22:39 -0500
3188 Branch: REL9_3_STABLE [0e6185283] 2015-11-21 20:21:32 -0500
3189 Branch: REL9_2_STABLE [b054ca031] 2015-11-21 20:21:32 -0500
3190 Branch: REL9_1_STABLE [8f1559aa5] 2015-11-21 20:21:32 -0500
3191 Branch: REL9_2_STABLE [05c9bc063] 2015-11-23 00:32:01 -0500
3192 Branch: REL9_1_STABLE [6df62ef43] 2015-11-23 00:32:01 -0500
3193 -->
3194
3195     <listitem>
3196      <para>
3197       In <application>pg_dump</> and <application>pg_basebackup</>, adopt
3198       the GNU convention for handling tar-archive members exceeding 8GB
3199       (Tom Lane)
3200      </para>
3201
3202      <para>
3203       The POSIX standard for <literal>tar</> file format does not allow
3204       archive member files to exceed 8GB, but most modern implementations
3205       of <application>tar</> support an extension that fixes that.  Adopt
3206       this extension so that <application>pg_dump</> with <option>-Ft</> no
3207       longer fails on tables with more than 8GB of data, and so
3208       that <application>pg_basebackup</> can handle files larger than 8GB.
3209       In addition, fix some portability issues that could cause failures for
3210       members between 4GB and 8GB on some platforms.  Potentially these
3211       problems could cause unrecoverable data loss due to unreadable backup
3212       files.
3213      </para>
3214     </listitem>
3215
3216     <listitem>
3217      <para>
3218       Fix assorted corner-case bugs in <application>pg_dump</>'s processing
3219       of extension member objects (Tom Lane)
3220      </para>
3221     </listitem>
3222
3223     <listitem>
3224      <para>
3225       Make <application>pg_dump</> mark a view's triggers as needing to be
3226       processed after its rule, to prevent possible failure during
3227       parallel <application>pg_restore</> (Tom Lane)
3228      </para>
3229     </listitem>
3230
3231 <!--
3232 Author: Tom Lane <tgl@sss.pgh.pa.us>
3233 Branch: master [c7e27becd] 2016-01-01 15:27:53 -0500
3234 Branch: REL9_5_STABLE Release: REL9_5_0 [404c45bac] 2016-01-01 15:27:53 -0500
3235 Branch: REL9_4_STABLE [f9b3b3fec] 2016-01-01 15:27:53 -0500
3236 Branch: REL9_3_STABLE [babf38e88] 2016-01-01 15:27:53 -0500
3237 Branch: REL9_2_STABLE [69cfe15b5] 2016-01-01 15:27:53 -0500
3238 Branch: REL9_1_STABLE [85dbc46bd] 2016-01-01 15:27:53 -0500
3239 Branch: master [b416c0bb6] 2016-01-02 19:04:45 -0500
3240 Branch: REL9_5_STABLE Release: REL9_5_0 [b01828e97] 2016-01-02 19:04:45 -0500
3241 Branch: REL9_4_STABLE [aab4b73bd] 2016-01-02 19:04:45 -0500
3242 Branch: REL9_3_STABLE [6a0d63d35] 2016-01-02 19:04:45 -0500
3243 Branch: REL9_2_STABLE [1eb515ad7] 2016-01-02 19:04:45 -0500
3244 Branch: REL9_1_STABLE [e4959fb5c] 2016-01-02 19:04:45 -0500
3245 -->
3246
3247     <listitem>
3248      <para>
3249       Ensure that relation option values are properly quoted
3250       in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
3251      </para>
3252
3253      <para>
3254       A reloption value that isn't a simple identifier or number could lead
3255       to dump/reload failures due to syntax errors in CREATE statements
3256       issued by <application>pg_dump</>.  This is not an issue with any
3257       reloption currently supported by core <productname>PostgreSQL</>, but
3258       extensions could allow reloptions that cause the problem.
3259      </para>
3260     </listitem>
3261
3262 <!--
3263 Author: Tom Lane <tgl@sss.pgh.pa.us>
3264 Branch: master [1aa41e3ea] 2015-12-23 14:25:53 -0500
3265 Branch: REL9_5_STABLE Release: REL9_5_0 [a21994c1b] 2015-12-23 14:25:31 -0500
3266 Branch: REL9_4_STABLE [f56802a2d] 2015-12-23 14:25:31 -0500
3267 Branch: REL9_3_STABLE [534a4159c] 2015-12-23 14:25:31 -0500
3268 -->
3269
3270     <listitem>
3271      <para>
3272       Avoid repeated password prompts during parallel <application>pg_dump</>
3273       (Zeus Kronion)
3274      </para>
3275     </listitem>
3276
3277 <!--
3278 Author: Bruce Momjian <bruce@momjian.us>
3279 Branch: master [025106e31] 2015-11-14 11:47:12 -0500
3280 Branch: REL9_5_STABLE Release: REL9_5_0 [fae58d5be] 2015-11-14 11:47:11 -0500
3281 Branch: REL9_4_STABLE [87cdfeb18] 2015-11-14 11:47:11 -0500
3282 Branch: REL9_3_STABLE [a75efb483] 2015-11-14 11:47:11 -0500
3283 Branch: REL9_2_STABLE [b4c4220ed] 2015-11-14 11:47:11 -0500
3284 Branch: REL9_1_STABLE [bdcbc2b47] 2015-11-14 11:47:11 -0500
3285 Branch: master [13b30c16f] 2015-11-24 17:18:28 -0500
3286 Branch: REL9_5_STABLE Release: REL9_5_0 [b17dbf262] 2015-11-24 17:18:28 -0500
3287 Branch: REL9_4_STABLE [f91c4e326] 2015-11-24 17:18:28 -0500
3288 Branch: REL9_3_STABLE [6638c9aaf] 2015-11-24 17:18:27 -0500
3289 Branch: REL9_2_STABLE [0ca3c51e5] 2015-11-24 17:18:27 -0500
3290 Branch: REL9_1_STABLE [c36064e43] 2015-11-24 17:18:27 -0500
3291 -->
3292
3293     <listitem>
3294      <para>
3295       Fix <application>pg_upgrade</>'s file-copying code to handle errors
3296       properly on Windows (Bruce Momjian)
3297      </para>
3298     </listitem>
3299
3300     <listitem>
3301      <para>
3302       Install guards in <application>pgbench</> against corner-case overflow
3303       conditions during evaluation of script-specified division or modulo
3304       operators (Fabien Coelho, Michael Paquier)
3305      </para>
3306     </listitem>
3307
3308 <!--
3309 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3310 Branch: master [fc995bfdb] 2015-12-28 10:50:35 -0300
3311 Branch: REL9_5_STABLE Release: REL9_5_0 [c3e068b26] 2015-12-28 10:50:35 -0300
3312 Branch: REL9_4_STABLE [f98bc20dd] 2015-12-28 10:50:35 -0300
3313 Branch: REL9_3_STABLE [7533d5d35] 2015-12-28 10:50:35 -0300
3314 Branch: REL9_2_STABLE [4fb9e6109] 2015-12-28 10:50:35 -0300
3315 -->
3316
3317     <listitem>
3318      <para>
3319       Fix failure to localize messages emitted
3320       by <application>pg_receivexlog</> and <application>pg_recvlogical</>
3321       (Ioseph Kim)
3322      </para>
3323     </listitem>
3324
3325     <listitem>
3326      <para>
3327       Avoid dump/reload problems when using both <application>plpython2</>
3328       and <application>plpython3</> (Tom Lane)
3329      </para>
3330
3331      <para>
3332       In principle, both versions of <application>PL/Python</> can be used in
3333       the same database, though not in the same session (because the two
3334       versions of <application>libpython</> cannot safely be used concurrently).
3335       However, <application>pg_restore</> and <application>pg_upgrade</> both
3336       do things that can fall foul of the same-session restriction.  Work
3337       around that by changing the timing of the check.
3338      </para>
3339     </listitem>
3340
3341     <listitem>
3342      <para>
3343       Fix <application>PL/Python</> regression tests to pass with Python 3.5
3344       (Peter Eisentraut)
3345      </para>
3346     </listitem>
3347
3348 <!--
3349 Author: Tom Lane <tgl@sss.pgh.pa.us>
3350 Branch: master [c40591885] 2015-11-12 13:03:52 -0500
3351 Branch: REL9_5_STABLE Release: REL9_5_0 [747854f01] 2015-11-12 13:03:52 -0500
3352 Branch: REL9_4_STABLE [40879a92b] 2015-11-12 13:03:52 -0500
3353 Branch: REL9_3_STABLE [db6e8e162] 2015-11-12 13:03:53 -0500
3354 -->
3355
3356     <listitem>
3357      <para>
3358       Fix premature clearing of <application>libpq</>'s input buffer when
3359       socket EOF is seen (Tom Lane)
3360      </para>
3361
3362      <para>
3363       This mistake caused <application>libpq</> to sometimes not report the
3364       backend's final error message before reporting <quote>server closed the
3365       connection unexpectedly</>.
3366      </para>
3367     </listitem>
3368
3369     <listitem>
3370      <para>
3371       Prevent certain <application>PL/Java</> parameters from being set by
3372       non-superusers (Noah Misch)
3373      </para>
3374
3375      <para>
3376       This change mitigates a <application>PL/Java</> security bug
3377       (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
3378       these parameters as superuser-only.  To fix the security hazard for
3379       sites that update <productname>PostgreSQL</> more frequently
3380       than <application>PL/Java</>, make the core code aware of them also.
3381      </para>
3382     </listitem>
3383
3384 <!--
3385 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3386 Branch: master [7b96bf445] 2015-12-14 18:19:10 +0200
3387 Branch: REL9_5_STABLE Release: REL9_5_0 [34d136f92] 2015-12-14 18:24:58 +0200
3388 Branch: REL9_4_STABLE [affae5e98] 2015-12-14 18:40:51 +0200
3389 Branch: REL9_3_STABLE [dee1ed54f] 2015-12-14 18:52:29 +0200
3390 Branch: REL9_2_STABLE [1e23caae3] 2015-12-14 18:41:11 +0200
3391 Branch: REL9_1_STABLE [4b58ded74] 2015-12-14 18:48:49 +0200
3392 -->
3393
3394     <listitem>
3395      <para>
3396       Improve <application>libpq</>'s handling of out-of-memory situations
3397       (Michael Paquier, Amit Kapila, Heikki Linnakangas)
3398      </para>
3399     </listitem>
3400
3401 <!--
3402 Author: Michael Meskes <meskes@postgresql.org>
3403 Branch: REL9_5_STABLE Release: REL9_5_0 [937261454] 2015-10-18 10:15:18 +0200
3404 Branch: REL9_4_STABLE [a850d7136] 2015-10-18 10:16:36 +0200
3405 Branch: REL9_3_STABLE [defd2ecf4] 2015-10-18 10:16:49 +0200
3406 Branch: REL9_2_STABLE [8f67643be] 2015-10-18 10:17:01 +0200
3407 Branch: REL9_1_STABLE [a9bcd8370] 2015-10-18 10:17:12 +0200
3408 -->
3409
3410     <listitem>
3411      <para>
3412       Fix order of arguments
3413       in <application>ecpg</>-generated <literal>typedef</> statements
3414       (Michael Meskes)
3415      </para>
3416     </listitem>
3417
3418 <!--
3419 Author: Tom Lane <tgl@sss.pgh.pa.us>
3420 Branch: master [db4a5cfc7] 2015-12-01 11:42:25 -0500
3421 Branch: REL9_5_STABLE Release: REL9_5_0 [c79bdc990] 2015-12-01 11:42:35 -0500
3422 Branch: REL9_4_STABLE [346cc2f01] 2015-12-01 11:42:39 -0500
3423 Branch: REL9_3_STABLE [3e6e98c5a] 2015-12-01 11:42:43 -0500
3424 Branch: REL9_2_STABLE [74cf6defa] 2015-12-01 11:42:47 -0500
3425 Branch: REL9_1_STABLE [84387496f] 2015-12-01 11:42:52 -0500
3426 -->
3427
3428     <listitem>
3429      <para>
3430       Use <literal>%g</> not <literal>%f</> format
3431       in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
3432       (Tom Lane)
3433      </para>
3434     </listitem>
3435
3436     <listitem>
3437      <para>
3438       Fix <application>ecpg</>-supplied header files to not contain comments
3439       continued from a preprocessor directive line onto the next line
3440       (Michael Meskes)
3441      </para>
3442
3443      <para>
3444       Such a comment is rejected by <application>ecpg</>.  It's not yet clear
3445       whether <application>ecpg</> itself should be changed.
3446      </para>
3447     </listitem>
3448
3449     <listitem>
3450      <para>
3451       Fix <function>hstore_to_json_loose()</>'s test for whether
3452       an <type>hstore</> value can be converted to a JSON number (Tom Lane)
3453      </para>
3454
3455      <para>
3456       Previously this function could be fooled by non-alphanumeric trailing
3457       characters, leading to emitting syntactically-invalid JSON.
3458      </para>
3459     </listitem>
3460
3461 <!--
3462 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3463 Branch: master [743229a67] 2015-12-27 13:03:19 -0300
3464 Branch: REL9_5_STABLE Release: REL9_5_0 [c886c30cc] 2015-12-27 13:03:19 -0300
3465 Branch: REL9_4_STABLE [0a29cf693] 2015-12-27 13:03:19 -0300
3466 Branch: REL9_3_STABLE [0244677cf] 2015-12-27 13:03:19 -0300
3467 Branch: REL9_2_STABLE [51dd54ba7] 2015-12-27 13:03:19 -0300
3468 Branch: REL9_1_STABLE [1b6102eb7] 2015-12-27 13:03:19 -0300
3469 -->
3470
3471     <listitem>
3472      <para>
3473       Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
3474       function can be interrupted by query cancel (Andreas Karlsson)
3475      </para>
3476     </listitem>
3477
3478     <listitem>
3479      <para>
3480       In <filename>contrib/postgres_fdw</>, fix bugs triggered by use
3481       of <literal>tableoid</> in data-modifying commands (Etsuro Fujita,
3482       Robert Haas)
3483      </para>
3484     </listitem>
3485
3486 <!--
3487 Author: Tom Lane <tgl@sss.pgh.pa.us>
3488 Branch: master [32f15d05c] 2015-11-18 17:45:05 -0500
3489 Branch: REL9_5_STABLE Release: REL9_5_0 [659d47292] 2015-11-18 17:45:05 -0500
3490 Branch: REL9_4_STABLE [d5bb7c6f6] 2015-11-18 17:45:05 -0500
3491 Branch: REL9_3_STABLE [ae81d4fb1] 2015-11-18 17:45:05 -0500
3492 Branch: REL9_2_STABLE [6e1d26f1f] 2015-11-18 17:45:06 -0500
3493 Branch: REL9_1_STABLE [b4afc39f7] 2015-11-18 17:45:06 -0500
3494 Branch: master [9c779c49e] 2015-12-10 10:19:13 -0500
3495 Branch: REL9_5_STABLE Release: REL9_5_0 [2355faae0] 2015-12-10 10:19:18 -0500
3496 Branch: REL9_4_STABLE [ee0df4d77] 2015-12-10 10:19:22 -0500
3497 Branch: REL9_3_STABLE [b3e377a00] 2015-12-10 10:19:27 -0500
3498 Branch: REL9_2_STABLE [7f94a5c10] 2015-12-10 10:19:31 -0500
3499 -->
3500
3501     <listitem>
3502      <para>
3503       Accept <application>flex</> versions later than 2.5.x
3504       (Tom Lane, Michael Paquier)
3505      </para>
3506
3507      <para>
3508       Now that flex 2.6.0 has been released, the version checks in our build
3509       scripts needed to be adjusted.
3510      </para>
3511     </listitem>
3512
3513     <listitem>
3514      <para>
3515       Improve reproducibility of build output by ensuring filenames are given
3516       to the linker in a fixed order (Christoph Berg)
3517      </para>
3518
3519      <para>
3520       This avoids possible bitwise differences in the produced executable
3521       files from one build to the next.
3522      </para>
3523     </listitem>
3524
3525 <!--
3526 Author: Tom Lane <tgl@sss.pgh.pa.us>
3527 Branch: master [dccf8e9e6] 2015-12-11 16:15:05 -0500
3528 Branch: REL9_5_STABLE Release: REL9_5_0 [6061aa8ed] 2015-12-11 16:15:06 -0500
3529 Branch: REL9_4_STABLE [423697e3d] 2015-12-11 16:14:36 -0500
3530 Branch: REL9_3_STABLE [1ebe75a2c] 2015-12-11 16:14:40 -0500
3531 Branch: REL9_2_STABLE [98467b35d] 2015-12-11 16:14:44 -0500
3532 Branch: REL9_1_STABLE [2a37a103b] 2015-12-11 16:14:48 -0500
3533 -->
3534
3535     <listitem>
3536      <para>
3537       Install our <filename>missing</> script where PGXS builds can find it
3538       (Jim Nasby)
3539      </para>
3540
3541      <para>
3542       This allows sane behavior in a PGXS build done on a machine where build
3543       tools such as <application>bison</> are missing.
3544      </para>
3545     </listitem>
3546
3547     <listitem>
3548      <para>
3549       Ensure that <filename>dynloader.h</> is included in the installed
3550       header files in MSVC builds (Bruce Momjian, Michael Paquier)
3551      </para>
3552     </listitem>
3553
3554 <!--
3555 Author: Tom Lane <tgl@sss.pgh.pa.us>
3556 Branch: master [085423e3e] 2015-12-11 19:09:04 -0500
3557 Branch: REL9_5_STABLE Release: REL9_5_0 [ea7f7d8b3] 2015-12-11 19:08:40 -0500
3558 Branch: REL9_4_STABLE [09824cd99] 2015-12-11 19:08:40 -0500
3559 Branch: REL9_3_STABLE [fee485815] 2015-12-11 19:08:40 -0500
3560 Branch: REL9_2_STABLE [f5eebea8d] 2015-12-11 19:08:40 -0500
3561 Branch: REL9_1_STABLE [386dcd539] 2015-12-11 19:08:40 -0500
3562 -->
3563
3564     <listitem>
3565      <para>
3566       Add variant regression test expected-output file to match behavior of
3567       current <application>libxml2</> (Tom Lane)
3568      </para>
3569
3570      <para>
3571       The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
3572       output error context reports in some cases where it used to do so.
3573       This seems to be a bug, but we'll probably have to live with it for
3574       some time, so work around it.
3575      </para>
3576     </listitem>
3577
3578     <listitem>
3579      <para>
3580       Update time zone data files to <application>tzdata</> release 2016a for
3581       DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
3582       Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
3583      </para>
3584     </listitem>
3585
3586    </itemizedlist>
3587
3588   </sect2>
3589  </sect1>
3590
3591  <sect1 id="release-9-4-5">
3592   <title>Release 9.4.5</title>
3593
3594   <note>
3595   <title>Release Date</title>
3596   <simpara>2015-10-08</simpara>
3597   </note>
3598
3599   <para>
3600    This release contains a variety of fixes from 9.4.4.
3601    For information about new features in the 9.4 major release, see
3602    <xref linkend="release-9-4">.
3603   </para>
3604
3605   <sect2>
3606    <title>Migration to Version 9.4.5</title>
3607
3608    <para>
3609     A dump/restore is not required for those running 9.4.X.
3610    </para>
3611
3612    <para>
3613     However, if you are upgrading from a version earlier than 9.4.4,
3614     see <xref linkend="release-9-4-4">.
3615    </para>
3616   </sect2>
3617
3618   <sect2>
3619    <title>Changes</title>
3620
3621    <itemizedlist>
3622
3623 <!--
3624 Author: Noah Misch <noah@leadboat.com>
3625 Branch: master [08fa47c48] 2015-10-05 10:06:29 -0400
3626 Branch: REL9_5_STABLE [98f30d2e5] 2015-10-05 10:06:33 -0400
3627 Branch: REL9_4_STABLE [16d58b5b5] 2015-10-05 10:06:34 -0400
3628 Branch: REL9_3_STABLE [f8862172e] 2015-10-05 10:06:34 -0400
3629 -->
3630
3631     <listitem>
3632      <para>
3633       Guard against stack overflows in <type>json</> parsing
3634       (Oskari Saarenmaa)
3635      </para>
3636
3637      <para>
3638       If an application constructs PostgreSQL <type>json</>
3639       or <type>jsonb</> values from arbitrary user input, the application's
3640       users can reliably crash the PostgreSQL server, causing momentary
3641       denial of service.  (CVE-2015-5289)
3642      </para>
3643     </listitem>
3644
3645 <!--
3646 Author: Noah Misch <noah@leadboat.com>
3647 Branch: master [1d812c8b0] 2015-10-05 10:06:29 -0400
3648 Branch: REL9_5_STABLE [4d6752277] 2015-10-05 10:06:33 -0400
3649 Branch: REL9_4_STABLE [4d95419e8] 2015-10-05 10:06:34 -0400
3650 Branch: REL9_3_STABLE [cc1210f0a] 2015-10-05 10:06:34 -0400
3651 Branch: REL9_2_STABLE [56232f987] 2015-10-05 10:06:35 -0400
3652 Branch: REL9_1_STABLE [48f6310bc] 2015-10-05 10:06:35 -0400
3653 Branch: REL9_0_STABLE [188e081ef] 2015-10-05 10:06:36 -0400
3654 -->
3655
3656     <listitem>
3657      <para>
3658       Fix <filename>contrib/pgcrypto</> to detect and report
3659       too-short <function>crypt()</> salts (Josh Kupershmidt)
3660      </para>
3661
3662      <para>
3663       Certain invalid salt arguments crashed the server or disclosed a few
3664       bytes of server memory.  We have not ruled out the viability of
3665       attacks that arrange for presence of confidential information in the
3666       disclosed bytes, but they seem unlikely.  (CVE-2015-5288)
3667      </para>
3668     </listitem>
3669
3670 <!--
3671 Author: Tom Lane <tgl@sss.pgh.pa.us>
3672 Branch: master [c5454f99c] 2015-09-04 13:37:14 -0400
3673 Branch: REL9_5_STABLE [a2538da89] 2015-09-04 13:37:16 -0400
3674 Branch: REL9_4_STABLE [37d10c524] 2015-09-04 13:37:17 -0400
3675 Branch: REL9_3_STABLE [9e9b310d8] 2015-09-04 13:36:50 -0400
3676 Branch: REL9_2_STABLE [39ebb6466] 2015-09-04 13:36:50 -0400
3677 Branch: REL9_1_STABLE [dae1c9480] 2015-09-04 13:36:50 -0400
3678 Branch: REL9_0_STABLE [81ee435c4] 2015-09-04 13:36:50 -0400
3679 -->
3680
3681     <listitem>
3682      <para>
3683       Fix subtransaction cleanup after a portal (cursor) belonging to an
3684       outer subtransaction fails (Tom Lane, Michael Paquier)
3685      </para>
3686
3687      <para>
3688       A function executed in an outer-subtransaction cursor could cause an
3689       assertion failure or crash by referencing a relation created within an
3690       inner subtransaction.
3691      </para>
3692     </listitem>
3693
3694 <!--
3695 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3696 Branch: master [358cde320] 2015-08-02 20:08:10 +0300
3697 Branch: REL9_5_STABLE [54f23a45f] 2015-08-02 20:08:50 +0300
3698 Branch: REL9_4_STABLE [bab959906] 2015-08-02 20:09:05 +0300
3699 -->
3700
3701     <listitem>
3702      <para>
3703       Fix possible deadlock during WAL insertion
3704       when <varname>commit_delay</> is set (Heikki Linnakangas)
3705      </para>
3706     </listitem>
3707
3708 <!--
3709 Author: Stephen Frost <sfrost@snowman.net>
3710 Branch: master [c3e0ddd40] 2015-09-08 17:02:49 -0400
3711 Branch: REL9_5_STABLE [9801bae21] 2015-09-08 17:02:53 -0400
3712 Branch: REL9_4_STABLE [83d004904] 2015-09-08 17:02:56 -0400
3713 Branch: REL9_3_STABLE [cb1b9b959] 2015-09-08 17:02:59 -0400
3714 -->
3715
3716     <listitem>
3717      <para>
3718       Ensure all relations referred to by an updatable view are properly
3719       locked during an update statement (Dean Rasheed)
3720      </para>
3721     </listitem>
3722
3723 <!--
3724 Author: Tom Lane <tgl@sss.pgh.pa.us>
3725 Branch: master Release: REL9_5_BR [5d1ff6bd5] 2015-06-25 14:39:05 -0400
3726 Branch: REL9_4_STABLE [e118555cf] 2015-06-25 14:39:05 -0400
3727 Branch: REL9_3_STABLE [834aa56ea] 2015-06-25 14:39:05 -0400
3728 Branch: REL9_2_STABLE [88fab18a4] 2015-06-25 14:39:05 -0400
3729 Branch: REL9_1_STABLE [a9b7bf82f] 2015-06-25 14:39:06 -0400
3730 Branch: REL9_0_STABLE [45c69178b] 2015-06-25 14:39:06 -0400
3731 -->
3732
3733     <listitem>
3734      <para>
3735       Fix insertion of relations into the relation cache <quote>init file</>
3736       (Tom Lane)
3737      </para>
3738
3739      <para>
3740       An oversight in a patch in the most recent minor releases
3741       caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
3742       from the init file.  Subsequent sessions detected this, then deemed the
3743       init file to be broken and silently ignored it, resulting in a
3744       significant degradation in session startup time.  In addition to fixing
3745       the bug, install some guards so that any similar future mistake will be
3746       more obvious.
3747      </para>
3748     </listitem>
3749
3750 <!--
3751 Author: Tom Lane <tgl@sss.pgh.pa.us>
3752 Branch: master [6e5d9f278] 2015-08-21 20:32:11 -0400
3753 Branch: REL9_5_STABLE [68a14ca74] 2015-08-21 20:32:17 -0400
3754 Branch: REL9_4_STABLE [fe939d950] 2015-08-21 20:32:26 -0400
3755 Branch: REL9_3_STABLE [ea9892444] 2015-08-21 20:32:29 -0400
3756 Branch: REL9_2_STABLE [d951d6065] 2015-08-21 20:32:33 -0400
3757 Branch: REL9_1_STABLE [87b8c9e12] 2015-08-21 20:32:37 -0400
3758 Branch: REL9_0_STABLE [7c57449fc] 2015-08-21 20:32:41 -0400
3759 -->
3760
3761     <listitem>
3762      <para>
3763       Avoid O(N^2) behavior when inserting many tuples into a SPI query
3764       result (Neil Conway)
3765      </para>
3766     </listitem>
3767
3768 <!--
3769 Author: Tom Lane <tgl@sss.pgh.pa.us>
3770 Branch: master [07e4d03fb] 2015-09-30 23:32:43 -0400
3771 Branch: REL9_5_STABLE [8c8a834b1] 2015-09-30 23:32:23 -0400
3772 Branch: REL9_4_STABLE [03f9b63e2] 2015-09-30 23:32:23 -0400
3773 Branch: REL9_3_STABLE [aad86c518] 2015-09-30 23:32:23 -0400
3774 Branch: REL9_2_STABLE [e4c00750a] 2015-09-30 23:32:23 -0400
3775 Branch: REL9_1_STABLE [2bbe8a684] 2015-09-30 23:32:23 -0400
3776 Branch: REL9_0_STABLE [2d4336cf8] 2015-09-30 23:32:23 -0400
3777 -->
3778
3779     <listitem>
3780      <para>
3781       Improve <command>LISTEN</> startup time when there are many unread
3782       notifications (Matt Newell)
3783      </para>
3784     </listitem>
3785
3786 <!--
3787 Author: Tom Lane <tgl@sss.pgh.pa.us>
3788 Branch: master [2abfd9d5e] 2015-09-25 13:16:30 -0400
3789 Branch: REL9_5_STABLE [c9645f757] 2015-09-25 13:16:30 -0400
3790 Branch: REL9_4_STABLE [67d0f7a37] 2015-09-25 13:16:30 -0400
3791 Branch: REL9_3_STABLE [1bcc9e60a] 2015-09-25 13:16:31 -0400
3792 -->
3793
3794     <listitem>
3795      <para>
3796       Fix performance problem when a session alters large numbers of foreign
3797       key constraints (Jan Wieck, Tom Lane)
3798      </para>
3799
3800      <para>
3801       This was seen primarily when restoring <application>pg_dump</> output
3802       for databases with many thousands of tables.
3803      </para>
3804     </listitem>
3805
3806 <!--
3807 Author: Andres Freund <andres@anarazel.de>
3808 Branch: REL9_4_STABLE [ab6084782] 2015-07-28 22:06:31 +0200
3809 Branch: REL9_3_STABLE [48d23c72d] 2015-07-28 22:06:31 +0200
3810 Branch: REL9_2_STABLE [2f91e7bb5] 2015-07-28 22:06:31 +0200
3811 Branch: REL9_1_STABLE [624a3c9be] 2015-07-28 22:06:32 +0200
3812 Branch: REL9_0_STABLE [444b2ebee] 2015-07-28 22:06:32 +0200
3813 -->
3814
3815     <listitem>
3816      <para>
3817       Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
3818      </para>
3819
3820      <para>
3821       While use of SSL renegotiation is a good idea in theory, we have seen
3822       too many bugs in practice, both in the underlying OpenSSL library and
3823       in our usage of it.  Renegotiation will be removed entirely in 9.5 and
3824       later.  In the older branches, just change the default value
3825       of <varname>ssl_renegotiation_limit</> to zero (disabled).
3826      </para>
3827     </listitem>
3828
3829 <!--
3830 Author: Andres Freund <andres@anarazel.de>
3831 Branch: master [020235a57] 2015-09-24 14:53:32 +0200
3832 Branch: REL9_5_STABLE [ef4fccd2b] 2015-09-24 14:53:33 +0200
3833 Branch: REL9_4_STABLE [4ff753c91] 2015-09-24 14:53:33 +0200
3834 Branch: REL9_3_STABLE [fee2275ae] 2015-09-24 14:53:33 +0200
3835 Branch: REL9_2_STABLE [f12932dd4] 2015-09-24 14:53:33 +0200
3836 Branch: REL9_1_STABLE [ff090bbb7] 2015-09-24 14:53:33 +0200
3837 Branch: REL9_0_STABLE [078d471a9] 2015-09-24 14:53:33 +0200
3838 Branch: master [2596d705b] 2015-10-05 11:53:43 +0200
3839 Branch: REL9_5_STABLE [0577821b5] 2015-10-05 11:56:58 +0200
3840 Branch: REL9_4_STABLE [13ac4c035] 2015-10-05 11:57:07 +0200
3841 Branch: REL9_3_STABLE [393341714] 2015-10-05 11:57:11 +0200
3842 Branch: REL9_2_STABLE [e07cfef34] 2015-10-05 11:57:15 +0200
3843 Branch: REL9_1_STABLE [7116a3e98] 2015-10-05 11:57:20 +0200
3844 Branch: REL9_0_STABLE [eeb0b7830] 2015-10-05 11:57:25 +0200
3845 -->
3846
3847     <listitem>
3848      <para>
3849       Lower the minimum values of the <literal>*_freeze_max_age</> parameters
3850       (Andres Freund)
3851      </para>
3852
3853      <para>
3854       This is mainly to make tests of related behavior less time-consuming,
3855       but it may also be of value for installations with limited disk space.
3856      </para>
3857     </listitem>
3858
3859 <!--
3860 Author: Robert Haas <rhaas@postgresql.org>
3861 Branch: master [369342cf7] 2015-08-04 12:58:54 -0400
3862 Branch: REL9_5_STABLE [cd52e4a2b] 2015-08-04 13:05:43 -0400
3863 Branch: REL9_4_STABLE [3a35ca5ad] 2015-08-04 13:05:48 -0400
3864 Branch: REL9_3_STABLE [11ed4bab5] 2015-08-04 13:05:52 -0400
3865 Branch: REL9_2_STABLE [5ef8e1114] 2015-08-04 13:05:58 -0400
3866 Branch: REL9_1_STABLE [4e51ea8fd] 2015-08-04 13:06:03 -0400
3867 Branch: REL9_0_STABLE [b09446ed7] 2015-08-04 13:12:03 -0400
3868 -->
3869
3870     <listitem>
3871      <para>
3872       Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
3873       server crashes (Josh Berkus)
3874      </para>
3875     </listitem>
3876
3877 <!--
3878 Author: Tom Lane <tgl@sss.pgh.pa.us>
3879 Branch: REL9_4_STABLE [1afc1fe9c] 2015-06-28 18:38:06 -0400
3880 Branch: REL9_3_STABLE [5a56c2545] 2015-06-28 18:38:06 -0400
3881 -->
3882
3883     <listitem>
3884      <para>
3885       Avoid logging complaints when a parameter that can only be set at
3886       server start appears multiple times in <filename>postgresql.conf</>,
3887       and fix counting of line numbers after an <literal>include_dir</>
3888       directive (Tom Lane)
3889      </para>
3890     </listitem>
3891
3892 <!--
3893 Author: Tom Lane <tgl@sss.pgh.pa.us>
3894 Branch: master [246693e5a] 2015-09-21 12:11:32 -0400
3895 Branch: REL9_5_STABLE [3dfffac70] 2015-09-21 12:11:45 -0400
3896 Branch: REL9_4_STABLE [fa9fc3a1b] 2015-09-21 12:11:49 -0400
3897 Branch: REL9_3_STABLE [8b75e489a] 2015-09-21 12:11:58 -0400
3898 Branch: REL9_2_STABLE [844486216] 2015-09-21 12:12:04 -0400
3899 Branch: REL9_1_STABLE [5f79730ec] 2015-09-21 12:12:10 -0400
3900 Branch: REL9_0_STABLE [a89781e34] 2015-09-21 12:12:16 -0400
3901 -->
3902
3903     <listitem>
3904      <para>
3905       Fix rare internal overflow in multiplication of <type>numeric</> values
3906       (Dean Rasheed)
3907      </para>
3908     </listitem>
3909
3910 <!--
3911 Author: Noah Misch <noah@leadboat.com>
3912 Branch: master [30cb12881] 2015-10-05 10:06:29 -0400
3913 Branch: REL9_5_STABLE [acf0da1e6] 2015-10-05 10:06:33 -0400
3914 Branch: REL9_4_STABLE [a0c02ed5b] 2015-10-05 10:06:34 -0400
3915 Branch: REL9_3_STABLE [9286ff78f] 2015-10-05 10:06:34 -0400
3916 Branch: REL9_2_STABLE [5e43130b5] 2015-10-05 10:06:35 -0400
3917 Branch: REL9_1_STABLE [9581e2699] 2015-10-05 10:06:35 -0400
3918 Branch: REL9_0_STABLE [0398e071a] 2015-10-05 10:06:36 -0400
3919 Branch: master [5976097c0] 2015-10-05 10:06:30 -0400
3920 Branch: REL9_5_STABLE [7bed97d48] 2015-10-05 10:06:33 -0400
3921 Branch: REL9_4_STABLE [bed3f6d03] 2015-10-05 10:06:34 -0400
3922 Branch: REL9_3_STABLE [28dea9485] 2015-10-05 10:06:34 -0400
3923 Branch: REL9_2_STABLE [ea68c221f] 2015-10-05 10:06:35 -0400
3924 Branch: REL9_1_STABLE [879877b00] 2015-10-05 10:06:35 -0400
3925 Branch: REL9_0_STABLE [682a25d41] 2015-10-05 10:06:36 -0400
3926 Branch: REL9_2_STABLE [8dacb29ca] 2015-10-05 10:06:35 -0400
3927 -->
3928
3929     <listitem>
3930      <para>
3931       Guard against hard-to-reach stack overflows involving record types,
3932       range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
3933       <type>ltxtquery</> and <type>query_int</> (Noah Misch)
3934      </para>
3935     </listitem>
3936
3937 <!--
3938 Author: Greg Stark <stark@mit.edu>
3939 Branch: master [258ee1b63] 2015-09-06 03:35:56 +0100
3940 Branch: REL9_5_STABLE [c11100d0f] 2015-09-06 04:05:46 +0100
3941 Branch: REL9_4_STABLE [b17ce6208] 2015-09-06 03:56:59 +0100
3942 Branch: REL9_3_STABLE [dd04d43bf] 2015-09-06 03:58:27 +0100
3943 Branch: REL9_2_STABLE [f4afbe065] 2015-09-06 03:58:32 +0100
3944 Branch: REL9_1_STABLE [07cef3eb8] 2015-09-06 04:02:57 +0100
3945 Branch: REL9_0_STABLE [530d0c504] 2015-09-06 04:05:20 +0100
3946 Branch: master [37239ef8c] 2015-09-07 20:41:29 +0100
3947 Branch: REL9_5_STABLE [a12424028] 2015-09-07 20:47:41 +0100
3948 Branch: REL9_4_STABLE [0198a8d82] 2015-09-07 20:47:37 +0100
3949 Branch: REL9_3_STABLE [fde40e53f] 2015-09-07 20:47:33 +0100
3950 Branch: REL9_2_STABLE [af9d9e59c] 2015-09-07 20:47:29 +0100
3951 Branch: REL9_1_STABLE [0252d7777] 2015-09-07 20:47:19 +0100
3952 Branch: REL9_0_STABLE [92d956f51] 2015-09-07 20:47:06 +0100
3953 -->
3954
3955     <listitem>
3956      <para>
3957       Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
3958       (Greg Stark)
3959      </para>
3960
3961      <para>
3962       These tokens aren't meant to be used in datetime values, but previously
3963       they resulted in opaque internal error messages rather
3964       than <quote>invalid input syntax</>.
3965      </para>
3966     </listitem>
3967
3968 <!--
3969 Author: Tom Lane <tgl@sss.pgh.pa.us>
3970 Branch: master [9fe8fe9c9] 2015-10-02 13:45:39 -0400
3971 Branch: REL9_5_STABLE [bb704a781] 2015-10-02 13:45:39 -0400
3972 Branch: REL9_4_STABLE [109def032] 2015-10-02 13:45:39 -0400
3973 Branch: REL9_3_STABLE [384ce1b75] 2015-10-02 13:45:39 -0400
3974 Branch: REL9_2_STABLE [2d51f55ff] 2015-10-02 13:45:39 -0400
3975 Branch: REL9_1_STABLE [da8ff2920] 2015-10-02 13:45:39 -0400
3976 Branch: REL9_0_STABLE [d4f6488ec] 2015-10-02 13:45:39 -0400
3977 -->
3978
3979     <listitem>
3980      <para>
3981       Add more query-cancel checks to regular expression matching (Tom Lane)
3982      </para>
3983     </listitem>
3984
3985 <!--
3986 Author: Tom Lane <tgl@sss.pgh.pa.us>
3987 Branch: master [b63fc2877] 2015-10-02 14:51:58 -0400
3988 Branch: REL9_5_STABLE [20c627707] 2015-10-02 14:51:58 -0400
3989 Branch: REL9_4_STABLE [c5e38b93c] 2015-10-02 14:51:58 -0400
3990 Branch: REL9_3_STABLE [9ed207ae9] 2015-10-02 14:51:58 -0400
3991 Branch: REL9_2_STABLE [a0c089f33] 2015-10-02 14:51:58 -0400
3992 Branch: REL9_1_STABLE [e7de1bc09] 2015-10-02 14:51:59 -0400
3993 Branch: REL9_0_STABLE [54b116d83] 2015-10-02 14:51:59 -0400
3994 Branch: master [2e8cfcf4e] 2015-10-02 15:00:51 -0400
3995 Branch: REL9_5_STABLE [bdc5d95b6] 2015-10-02 15:00:52 -0400
3996 Branch: REL9_4_STABLE [bb1d97961] 2015-10-02 15:00:52 -0400
3997 Branch: REL9_3_STABLE [4175cc604] 2015-10-02 15:00:52 -0400
3998 Branch: REL9_2_STABLE [57bf7b548] 2015-10-02 15:00:52 -0400
3999 Branch: REL9_1_STABLE [f80af0117] 2015-10-02 15:00:52 -0400
4000 Branch: REL9_0_STABLE [b875ca09f] 2015-10-02 15:00:52 -0400
4001 -->
4002
4003     <listitem>
4004      <para>
4005       Add recursion depth protections to regular expression, <literal>SIMILAR
4006       TO</>, and <literal>LIKE</> matching (Tom Lane)
4007      </para>
4008
4009      <para>
4010       Suitable search patterns and a low stack depth limit could lead to
4011       stack-overrun crashes.
4012      </para>
4013     </listitem>
4014
4015 <!--
4016 Author: Tom Lane <tgl@sss.pgh.pa.us>
4017 Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
4018 Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
4019 Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
4020 Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
4021 Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
4022 Branch: REL9_1_STABLE [630154955] 2015-10-02 14:26:36 -0400
4023 Branch: REL9_0_STABLE [2a8878289] 2015-10-02 14:26:36 -0400
4024 -->
4025
4026     <listitem>
4027      <para>
4028       Fix potential infinite loop in regular expression execution (Tom Lane)
4029      </para>
4030
4031      <para>
4032       A search pattern that can apparently match a zero-length string, but
4033       actually doesn't match because of a back reference, could lead to an
4034       infinite loop.
4035      </para>
4036     </listitem>
4037
4038 <!--
4039 Author: Tom Lane <tgl@sss.pgh.pa.us>
4040 Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
4041 Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
4042 Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
4043 Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
4044 Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
4045 -->
4046
4047     <listitem>
4048      <para>
4049       In regular expression execution, correctly record match data for
4050       capturing parentheses within a quantifier even when the match is
4051       zero-length (Tom Lane)
4052      </para>
4053     </listitem>
4054
4055 <!--
4056 Author: Tom Lane <tgl@sss.pgh.pa.us>
4057 Branch: master [8a0258c31] 2015-08-12 00:48:11 -0400
4058 Branch: REL9_5_STABLE [c5bfcc18a] 2015-08-12 00:48:28 -0400
4059 Branch: REL9_4_STABLE [a35a527f2] 2015-08-12 00:48:34 -0400
4060 Branch: REL9_3_STABLE [a54875602] 2015-08-12 00:48:39 -0400
4061 Branch: REL9_2_STABLE [234205a2e] 2015-08-12 00:48:44 -0400
4062 Branch: REL9_1_STABLE [7a801ba8c] 2015-08-12 00:48:48 -0400
4063 Branch: REL9_0_STABLE [7e23b63bd] 2015-08-12 00:48:54 -0400
4064 -->
4065
4066     <listitem>
4067      <para>
4068       Fix low-memory failures in regular expression compilation
4069       (Andreas Seltenreich)
4070      </para>
4071     </listitem>
4072
4073 <!--
4074 Author: Tom Lane <tgl@sss.pgh.pa.us>
4075 Branch: master [d9c0c728a] 2015-09-18 13:55:17 -0400
4076 Branch: REL9_5_STABLE [a39331fa5] 2015-09-18 13:55:17 -0400
4077 Branch: REL9_4_STABLE [f7d896ab9] 2015-09-18 13:55:17 -0400
4078 Branch: REL9_3_STABLE [b84310808] 2015-09-18 13:55:17 -0400
4079 Branch: REL9_2_STABLE [dc4e8c101] 2015-09-18 13:55:17 -0400
4080 Branch: REL9_1_STABLE [28c396134] 2015-09-18 13:55:17 -0400
4081 Branch: REL9_0_STABLE [ba9eb293f] 2015-09-18 13:55:17 -0400
4082 -->
4083
4084     <listitem>
4085      <para>
4086       Fix low-probability memory leak during regular expression execution
4087       (Tom Lane)
4088      </para>
4089     </listitem>
4090
4091 <!--
4092 Author: Tom Lane <tgl@sss.pgh.pa.us>
4093 Branch: master [ba51774d8] 2015-09-20 16:48:44 -0400
4094 Branch: REL9_5_STABLE [3d3bc2905] 2015-09-20 16:48:44 -0400
4095 Branch: REL9_4_STABLE [e32c5f118] 2015-09-20 16:48:44 -0400
4096 Branch: REL9_3_STABLE [7e6e3bdd3] 2015-09-20 16:48:44 -0400
4097 Branch: REL9_2_STABLE [ac0c71228] 2015-09-20 16:48:44 -0400
4098 Branch: REL9_1_STABLE [553ce7e9a] 2015-09-20 16:48:44 -0400
4099 Branch: REL9_0_STABLE [eed5bbc48] 2015-09-20 16:48:44 -0400
4100 -->
4101
4102     <listitem>
4103      <para>
4104       Fix rare low-memory failure in lock cleanup during transaction abort
4105       (Tom Lane)
4106      </para>
4107     </listitem>
4108
4109 <!--
4110 Author: Tom Lane <tgl@sss.pgh.pa.us>
4111 Branch: master [8ea3e7a75] 2015-08-04 18:18:46 -0400
4112 Branch: REL9_5_STABLE [e2035dc9a] 2015-08-04 18:18:46 -0400
4113 Branch: REL9_4_STABLE [118c9bb8d] 2015-08-04 18:18:46 -0400
4114 Branch: REL9_3_STABLE [8bd45a394] 2015-08-04 18:18:46 -0400
4115 Branch: REL9_2_STABLE [b6659a3b9] 2015-08-04 18:18:46 -0400
4116 Branch: REL9_1_STABLE [9965aff1c] 2015-08-04 18:18:47 -0400
4117 Branch: REL9_0_STABLE [bd327627f] 2015-08-04 18:18:47 -0400
4118 -->
4119
4120     <listitem>
4121      <para>
4122       Fix <quote>unexpected out-of-memory situation during sort</> errors
4123       when using tuplestores with small <varname>work_mem</> settings (Tom
4124       Lane)
4125      </para>
4126     </listitem>
4127
4128 <!--
4129 Author: Tom Lane <tgl@sss.pgh.pa.us>
4130 Branch: master [9d6077abf] 2015-07-16 22:57:46 -0400
4131 Branch: REL9_5_STABLE [fd415ffc9] 2015-07-16 22:57:46 -0400
4132 Branch: REL9_4_STABLE [b8f368276] 2015-07-16 22:57:46 -0400
4133 Branch: REL9_3_STABLE [730089d87] 2015-07-16 22:57:46 -0400
4134 Branch: REL9_2_STABLE [15ca2b6cd] 2015-07-16 22:57:46 -0400
4135 Branch: REL9_1_STABLE [faef3dc28] 2015-07-16 22:57:46 -0400
4136 Branch: REL9_0_STABLE [36522d627] 2015-07-16 22:57:46 -0400
4137 -->
4138
4139     <listitem>
4140      <para>
4141       Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
4142      </para>
4143     </listitem>
4144
4145 <!--
4146 Author: Tom Lane <tgl@sss.pgh.pa.us>
4147 Branch: REL9_4_STABLE [ff4cbc1ff] 2015-10-04 14:16:59 -0400
4148 Branch: REL9_3_STABLE [45dd7cdba] 2015-10-04 14:17:14 -0400
4149 Branch: REL9_2_STABLE [fd3e3cf50] 2015-10-04 14:17:20 -0400
4150 Branch: REL9_1_STABLE [a8168fbcb] 2015-10-04 14:17:24 -0400
4151 Branch: REL9_0_STABLE [2647b245d] 2015-10-04 14:17:28 -0400
4152 Branch: master [f2fc98fb8] 2015-10-04 15:55:07 -0400
4153 Branch: REL9_5_STABLE [e5c94c7bb] 2015-10-04 15:55:07 -0400
4154 Branch: REL9_4_STABLE [4075fc4b9] 2015-10-04 15:55:07 -0400
4155 Branch: REL9_3_STABLE [0867e0ad5] 2015-10-04 15:55:07 -0400
4156 Branch: REL9_2_STABLE [ebc7d928a] 2015-10-04 15:55:07 -0400
4157 Branch: REL9_1_STABLE [d84cc40e4] 2015-10-04 15:55:07 -0400
4158 Branch: REL9_0_STABLE [d637a899c] 2015-10-04 15:55:07 -0400
4159 -->
4160
4161     <listitem>
4162      <para>
4163       Fix <quote>invalid memory alloc request size</> failure in hash joins
4164       with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
4165      </para>
4166     </listitem>
4167
4168 <!--
4169 Author: Tom Lane <tgl@sss.pgh.pa.us>
4170 Branch: master [8693ebe37] 2015-07-30 12:11:23 -0400
4171 Branch: REL9_5_STABLE [e91a1643a] 2015-07-30 12:11:23 -0400
4172 Branch: REL9_4_STABLE [3b4a9dbfa] 2015-07-30 12:11:23 -0400
4173 Branch: REL9_3_STABLE [caae9f764] 2015-07-30 12:11:23 -0400
4174 Branch: REL9_2_STABLE [c7d171251] 2015-07-30 12:11:23 -0400
4175 Branch: REL9_1_STABLE [ea6e28649] 2015-07-30 12:11:23 -0400
4176 Branch: REL9_0_STABLE [54833c5e7] 2015-07-30 12:11:23 -0400
4177 Branch: master [a6492ff89] 2015-07-31 19:26:33 -0400
4178 Branch: REL9_5_STABLE [edf26ed03] 2015-07-31 19:26:33 -0400
4179 Branch: REL9_4_STABLE [216977a7d] 2015-07-31 19:26:33 -0400
4180 Branch: REL9_3_STABLE [a4df781c9] 2015-07-31 19:26:33 -0400
4181 Branch: master [f69b4b949] 2015-08-01 20:57:41 -0400
4182 Branch: REL9_5_STABLE [7968238eb] 2015-08-01 20:57:41 -0400
4183 Branch: REL9_4_STABLE [e39a3b2ef] 2015-08-01 20:57:41 -0400
4184 Branch: REL9_3_STABLE [1044541dc] 2015-08-01 20:57:41 -0400
4185 Branch: REL9_2_STABLE [44618f92b] 2015-08-01 20:57:41 -0400
4186 Branch: REL9_1_STABLE [b9dfa07e8] 2015-08-01 20:57:41 -0400
4187 Branch: REL9_0_STABLE [44679965f] 2015-08-01 20:57:41 -0400
4188 Branch: master [85e5e222b] 2015-08-04 14:55:50 -0400
4189 Branch: REL9_5_STABLE [a6f43986b] 2015-08-04 14:55:52 -0400
4190 Branch: REL9_4_STABLE [b58e8caf0] 2015-08-04 14:55:53 -0400
4191 Branch: REL9_3_STABLE [33afbdd02] 2015-08-04 14:55:54 -0400
4192 Branch: REL9_2_STABLE [359016d2e] 2015-08-04 14:55:55 -0400
4193 Branch: master [6af9ee4c8] 2015-08-05 14:39:29 -0400
4194 Branch: REL9_5_STABLE [06663971b] 2015-08-05 14:39:07 -0400
4195 Branch: REL9_4_STABLE [4d94b5f1f] 2015-08-05 14:39:07 -0400
4196 Branch: REL9_3_STABLE [9bc4d5927] 2015-08-05 14:39:07 -0400
4197 Branch: REL9_2_STABLE [08dee567e] 2015-08-05 14:39:07 -0400
4198 Branch: REL9_1_STABLE [48d4f1e39] 2015-08-05 14:39:07 -0400
4199 Branch: REL9_0_STABLE [c084f613e] 2015-08-05 14:39:07 -0400
4200 Branch: master [8703059c6] 2015-08-06 15:35:46 -0400
4201 Branch: REL9_5_STABLE [df3b0f47b] 2015-08-06 15:35:47 -0400
4202 Branch: REL9_4_STABLE [7ef507ad7] 2015-08-06 15:35:48 -0400
4203 Branch: REL9_3_STABLE [3e79144a8] 2015-08-06 15:35:27 -0400
4204 Branch: REL9_2_STABLE [754ece936] 2015-08-06 15:35:27 -0400
4205 Branch: REL9_1_STABLE [656b1e8cf] 2015-08-06 15:35:27 -0400
4206 Branch: REL9_0_STABLE [d860ba43f] 2015-08-06 15:35:28 -0400
4207 Branch: master [cde35cf4a] 2015-08-06 20:14:53 -0400
4208 Branch: REL9_5_STABLE [a8725c2ba] 2015-08-06 20:14:54 -0400
4209 Branch: REL9_4_STABLE [d31e79415] 2015-08-06 20:14:37 -0400
4210 Branch: REL9_3_STABLE [0d4913509] 2015-08-06 20:14:37 -0400
4211 Branch: master [bab163e12] 2015-08-06 22:14:27 -0400
4212 Branch: REL9_5_STABLE [de0227d8a] 2015-08-06 22:14:28 -0400
4213 Branch: REL9_4_STABLE [8c7bb0240] 2015-08-06 22:14:07 -0400
4214 Branch: REL9_3_STABLE [de5edc660] 2015-08-06 22:14:07 -0400
4215 Branch: master [89db83922] 2015-08-07 14:13:50 -0400
4216 Branch: REL9_5_STABLE [085338822] 2015-08-07 14:13:51 -0400
4217 Branch: REL9_4_STABLE [30b4ccdab] 2015-08-07 14:13:52 -0400
4218 Branch: REL9_3_STABLE [868bfd1f3] 2015-08-07 14:13:39 -0400
4219 Branch: master [4200a9286] 2015-08-10 17:18:17 -0400
4220 Branch: REL9_5_STABLE [fda25b220] 2015-08-10 17:18:17 -0400
4221 Branch: REL9_4_STABLE [7371ab74f] 2015-08-10 17:18:17 -0400
4222 Branch: REL9_3_STABLE [f6d7a79f4] 2015-08-10 17:18:17 -0400
4223 Branch: REL9_2_STABLE [54cea765c] 2015-08-10 17:18:17 -0400
4224 Branch: master [cfe30a72f] 2015-08-12 21:19:03 -0400
4225 Branch: REL9_5_STABLE [ec94bc147] 2015-08-12 21:19:04 -0400
4226 Branch: REL9_4_STABLE [8cd3a7ada] 2015-08-12 21:19:05 -0400
4227 Branch: REL9_3_STABLE [7950657a9] 2015-08-12 21:19:06 -0400
4228 Branch: REL9_2_STABLE [866197d82] 2015-08-12 21:19:07 -0400
4229 Branch: REL9_1_STABLE [4390ba7bf] 2015-08-12 21:19:09 -0400
4230 Branch: REL9_0_STABLE [7b4b57fc4] 2015-08-12 21:19:10 -0400
4231 -->
4232
4233     <listitem>
4234      <para>
4235       Fix assorted planner bugs (Tom Lane)
4236      </para>
4237
4238      <para>
4239       These mistakes could lead to incorrect query plans that would give wrong
4240       answers, or to assertion failures in assert-enabled builds, or to odd
4241       planner errors such as <quote>could not devise a query plan for the
4242       given query</>, <quote>could not find pathkey item to
4243       sort</>, <quote>plan should not reference subplan's variable</>,
4244       or <quote>failed to assign all NestLoopParams to plan nodes</>.
4245       Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
4246       testing that exposed these problems.
4247      </para>
4248     </listitem>
4249
4250 <!--
4251 Author: Tom Lane <tgl@sss.pgh.pa.us>
4252 Branch: master Release: REL9_5_BR [2cb9ec1bc] 2015-06-22 18:53:27 -0400
4253 Branch: REL9_4_STABLE [d8f9ab776] 2015-06-22 18:53:27 -0400
4254 Branch: REL9_3_STABLE [673068588] 2015-06-22 18:53:27 -0400
4255 Branch: REL9_2_STABLE [e538e510e] 2015-06-22 18:53:27 -0400
4256 -->
4257
4258     <listitem>
4259      <para>
4260       Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
4261       on large inheritance sets (Tom Lane, Dean Rasheed)
4262      </para>
4263     </listitem>
4264
4265 <!--
4266 Author: Fujii Masao <fujii@postgresql.org>
4267 Branch: master [96f6a0cb4] 2015-09-09 22:51:44 +0900
4268 Branch: REL9_5_STABLE [65f37b3e9] 2015-09-09 22:52:28 +0900
4269 Branch: REL9_4_STABLE [2244c0652] 2015-09-09 22:52:35 +0900
4270 Branch: REL9_3_STABLE [47387732b] 2015-09-09 22:52:40 +0900
4271 Branch: REL9_2_STABLE [67518a141] 2015-09-09 23:01:10 +0900
4272 Branch: REL9_1_STABLE [60fe73b79] 2015-09-09 23:03:17 +0900
4273 -->
4274
4275     <listitem>
4276      <para>
4277       Ensure standby promotion trigger files are removed at postmaster
4278       startup (Michael Paquier, Fujii Masao)
4279      </para>
4280
4281      <para>
4282       This prevents unwanted promotion from occurring if these files appear
4283       in a database backup that is used to initialize a new standby server.
4284      </para>
4285     </listitem>
4286
4287 <!--
4288 Author: Tom Lane <tgl@sss.pgh.pa.us>
4289 Branch: master [d73d14c27] 2015-08-02 14:55:03 -0400
4290 Branch: REL9_5_STABLE [72697d2ba] 2015-08-02 14:55:04 -0400
4291 Branch: REL9_4_STABLE [c6d901292] 2015-08-02 14:55:05 -0400
4292 Branch: REL9_3_STABLE [fad824a88] 2015-08-02 14:54:44 -0400
4293 Branch: REL9_2_STABLE [20d1878b6] 2015-08-02 14:54:44 -0400
4294 Branch: REL9_1_STABLE [f1e84d3eb] 2015-08-02 14:54:44 -0400
4295 Branch: REL9_0_STABLE [8b53c087d] 2015-08-02 14:54:44 -0400
4296 -->
4297
4298     <listitem>
4299      <para>
4300       During postmaster shutdown, ensure that per-socket lock files are
4301       removed and listen sockets are closed before we remove
4302       the <filename>postmaster.pid</> file (Tom Lane)
4303      </para>
4304
4305      <para>
4306       This avoids race-condition failures if an external script attempts to
4307       start a new postmaster as soon as <literal>pg_ctl stop</> returns.
4308      </para>
4309     </listitem>
4310
4311 <!--
4312 Author: Tom Lane <tgl@sss.pgh.pa.us>
4313 Branch: master Release: REL9_5_BR [48913db88] 2015-06-19 14:23:39 -0400
4314 Branch: REL9_4_STABLE [29722d79b] 2015-06-19 14:23:39 -0400
4315 -->
4316
4317     <listitem>
4318      <para>
4319       Ensure that the postmaster does not exit until all its child processes
4320       are gone, even in an immediate shutdown (Tom Lane)
4321      </para>
4322
4323      <para>
4324       Like the previous item, this avoids possible race conditions against a
4325       subsequently-started postmaster.
4326      </para>
4327     </listitem>
4328
4329 <!--
4330 Author: Tom Lane <tgl@sss.pgh.pa.us>
4331 Branch: master [45811be94] 2015-07-09 13:22:22 -0400
4332 Branch: REL9_5_STABLE [193e02707] 2015-07-09 13:22:23 -0400
4333 Branch: REL9_4_STABLE [0d01c5b93] 2015-07-09 13:22:23 -0400
4334 Branch: REL9_3_STABLE [9c39d7ae0] 2015-07-09 13:22:23 -0400
4335 Branch: REL9_2_STABLE [97122b8a8] 2015-07-09 13:22:23 -0400
4336 Branch: REL9_1_STABLE [da1e7eb72] 2015-07-09 13:22:23 -0400
4337 Branch: REL9_0_STABLE [6718f07a0] 2015-07-09 13:22:23 -0400
4338 -->
4339
4340     <listitem>
4341      <para>
4342       Fix postmaster's handling of a startup-process crash during crash
4343       recovery (Tom Lane)
4344      </para>
4345
4346      <para>
4347       If, during a crash recovery cycle, the startup process crashes without
4348       having restored database consistency, we'd try to launch a new startup
4349       process, which typically would just crash again, leading to an infinite
4350       loop.
4351      </para>
4352     </listitem>
4353
4354 <!--
4355 Author: Andres Freund <andres@anarazel.de>
4356 Branch: master Release: REL9_5_BR [667912aee] 2015-06-21 18:57:28 +0200
4357 Branch: REL9_4_STABLE [ec1408155] 2015-06-21 19:00:30 +0200
4358 Branch: REL9_3_STABLE [203193144] 2015-06-21 19:00:40 +0200
4359 -->
4360
4361     <listitem>
4362      <para>
4363       Make emergency autovacuuming for multixact wraparound more robust
4364       (Andres Freund)
4365      </para>
4366     </listitem>
4367
4368 <!--
4369 Author: Tom Lane <tgl@sss.pgh.pa.us>
4370 Branch: master [d8f15c95b] 2015-07-28 17:34:23 -0400
4371 Branch: REL9_5_STABLE [116be6c17] 2015-07-28 17:34:00 -0400
4372 Branch: REL9_4_STABLE [082d4283b] 2015-07-28 17:34:00 -0400
4373 Branch: REL9_3_STABLE [47ee27521] 2015-07-28 17:34:00 -0400
4374 Branch: REL9_2_STABLE [1a2f95630] 2015-07-28 17:34:00 -0400
4375 Branch: REL9_1_STABLE [3f12041e7] 2015-07-28 17:34:00 -0400
4376 Branch: REL9_0_STABLE [f527c0a2a] 2015-07-28 17:34:00 -0400
4377 -->
4378
4379     <listitem>
4380      <para>
4381       Do not print a <literal>WARNING</> when an autovacuum worker is already
4382       gone when we attempt to signal it, and reduce log verbosity for such
4383       signals (Tom Lane)
4384      </para>
4385     </listitem>
4386
4387 <!--
4388 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4389 Branch: master Release: REL9_5_BR [da1a9d0f5] 2015-06-19 12:44:36 -0300
4390 Branch: REL9_4_STABLE [cf733760e] 2015-06-19 12:44:35 -0300
4391 Branch: REL9_3_STABLE [5ac77a276] 2015-06-19 12:44:34 -0300
4392 Branch: REL9_2_STABLE [41acde2df] 2015-06-19 12:44:34 -0300
4393 Branch: REL9_1_STABLE [2fed5731a] 2015-06-19 12:44:33 -0300
4394 Branch: REL9_0_STABLE [d68df5e40] 2015-06-19 12:44:33 -0300
4395 -->
4396
4397     <listitem>
4398      <para>
4399       Prevent autovacuum launcher from sleeping unduly long if the server
4400       clock is moved backwards a large amount (&Aacute;lvaro Herrera)
4401      </para>
4402     </listitem>
4403
4404 <!--
4405 Author: Teodor Sigaev <teodor@sigaev.ru>
4406 Branch: master [e26692248] 2015-09-07 17:16:29 +0300
4407 Branch: REL9_5_STABLE [d592a8745] 2015-09-07 17:17:15 +0300
4408 Branch: REL9_4_STABLE [b6e367373] 2015-09-07 17:17:42 +0300
4409 Branch: REL9_3_STABLE [cd6f4248f] 2015-09-07 17:18:10 +0300
4410 Branch: REL9_2_STABLE [3ffbc4994] 2015-09-07 17:18:26 +0300
4411 Branch: REL9_1_STABLE [364c02357] 2015-09-07 17:18:45 +0300
4412 Branch: REL9_0_STABLE [a7496aee6] 2015-09-07 17:20:44 +0300
4413 -->
4414
4415     <listitem>
4416      <para>
4417       Ensure that cleanup of a GIN index's pending-insertions list is
4418       interruptable by cancel requests (Jeff Janes)
4419      </para>
4420     </listitem>
4421
4422 <!--
4423 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4424 Branch: master [334445179] 2015-07-27 12:30:26 +0300
4425 Branch: REL9_5_STABLE [202aea62a] 2015-07-27 12:31:05 +0300
4426 Branch: REL9_4_STABLE [746e7f1c1] 2015-07-27 12:32:08 +0300
4427 Branch: REL9_3_STABLE [bafe3b007] 2015-07-27 12:32:30 +0300
4428 Branch: REL9_2_STABLE [7658368cf] 2015-07-27 12:32:48 +0300
4429 Branch: REL9_1_STABLE [a471700e3] 2015-07-27 12:33:13 +0300
4430 Branch: REL9_0_STABLE [f87bf8480] 2015-07-27 12:33:18 +0300
4431 -->
4432
4433     <listitem>
4434      <para>
4435       Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
4436      </para>
4437
4438      <para>
4439       Such a page might be left behind after a crash.
4440      </para>
4441     </listitem>
4442
4443 <!--
4444 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4445 Branch: master [023430abf] 2015-07-27 12:28:21 +0300
4446 Branch: REL9_5_STABLE [2fa8ba348] 2015-07-27 12:31:05 +0300
4447 Branch: REL9_4_STABLE [579b9f97c] 2015-07-27 12:32:08 +0300
4448 Branch: REL9_3_STABLE [863af3a37] 2015-07-27 12:32:30 +0300
4449 Branch: REL9_2_STABLE [f4297f8c5] 2015-07-27 12:32:48 +0300
4450 -->
4451
4452     <listitem>
4453      <para>
4454       Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
4455       Linnakangas)
4456      </para>
4457
4458      <para>
4459       <command>VACUUM</> attempted to recycle such pages, but did so in a
4460       way that wasn't crash-safe.
4461      </para>
4462     </listitem>
4463
4464 <!--
4465 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4466 Branch: master [766dcfb16] 2015-07-23 01:29:59 +0300
4467 Branch: REL9_5_STABLE [a9b3a22aa] 2015-07-23 01:30:07 +0300
4468 Branch: REL9_4_STABLE [b7551339d] 2015-07-23 01:30:09 +0300
4469 Branch: REL9_3_STABLE [6ae9a0218] 2015-07-23 01:30:11 +0300
4470 Branch: REL9_2_STABLE [84330d0c1] 2015-07-23 01:30:15 +0300
4471 Branch: REL9_1_STABLE [e54e17aca] 2015-07-23 01:30:17 +0300
4472 Branch: REL9_0_STABLE [40ad78220] 2015-07-23 01:30:19 +0300
4473 -->
4474
4475     <listitem>
4476      <para>
4477       Fix off-by-one error that led to otherwise-harmless warnings
4478       about <quote>apparent wraparound</> in subtrans/multixact truncation
4479       (Thomas Munro)
4480      </para>
4481     </listitem>
4482
4483 <!--
4484 Author: Tom Lane <tgl@sss.pgh.pa.us>
4485 Branch: master [2edb94911] 2015-08-18 19:22:37 -0400
4486 Branch: REL9_5_STABLE [4c3754ffe] 2015-08-18 19:22:37 -0400
4487 Branch: REL9_4_STABLE [928d0226e] 2015-08-18 19:22:38 -0400
4488 Branch: REL9_3_STABLE [8992e1acd] 2015-08-18 19:22:38 -0400
4489 Branch: REL9_2_STABLE [fb41bf4b5] 2015-08-18 19:22:38 -0400
4490 Branch: REL9_1_STABLE [17aa3c2d1] 2015-08-18 19:22:38 -0400
4491 Branch: REL9_0_STABLE [e41718fa1] 2015-08-18 19:22:38 -0400
4492 -->
4493
4494     <listitem>
4495      <para>
4496       Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
4497       types in <application>PL/pgSQL</>'s error context messages
4498       (Pavel Stehule, Tom Lane)
4499      </para>
4500     </listitem>
4501
4502 <!--
4503 Author: Tom Lane <tgl@sss.pgh.pa.us>
4504 Branch: master [b631a46ed] 2015-09-29 10:52:22 -0400
4505 Branch: REL9_5_STABLE [a16b9b193] 2015-09-29 10:52:22 -0400
4506 Branch: REL9_4_STABLE [b62c870ff] 2015-09-29 10:52:22 -0400
4507 Branch: REL9_3_STABLE [f60b2e2d4] 2015-09-29 10:52:22 -0400
4508 Branch: REL9_2_STABLE [aae40cf13] 2015-09-29 10:52:22 -0400
4509 Branch: REL9_1_STABLE [ca6c2f863] 2015-09-29 10:52:22 -0400
4510 -->
4511
4512     <listitem>
4513      <para>
4514       Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
4515       message texts correctly (Alex Hunsaker)
4516      </para>
4517     </listitem>
4518
4519 <!--
4520 Author: Tom Lane <tgl@sss.pgh.pa.us>
4521 Branch: master [09b3d2725] 2015-08-21 11:19:33 -0400
4522 Branch: REL9_5_STABLE [20bef3fe2] 2015-08-21 11:19:40 -0400
4523 Branch: REL9_4_STABLE [f7ed465e0] 2015-08-21 11:19:44 -0400
4524 Branch: REL9_3_STABLE [461235bda] 2015-08-21 11:19:49 -0400
4525 Branch: REL9_2_STABLE [2f1d558bc] 2015-08-21 11:19:54 -0400
4526 Branch: REL9_1_STABLE [f2ae044ba] 2015-08-21 11:19:58 -0400
4527 Branch: master [f469f634a] 2015-08-21 12:21:37 -0400
4528 Branch: REL9_5_STABLE [19446280f] 2015-08-21 12:21:37 -0400
4529 Branch: REL9_4_STABLE [22b9ce798] 2015-08-21 12:21:37 -0400
4530 Branch: REL9_3_STABLE [59592efcf] 2015-08-21 12:21:37 -0400
4531 Branch: REL9_2_STABLE [dadef8af2] 2015-08-21 12:21:37 -0400
4532 Branch: REL9_1_STABLE [1d190d095] 2015-08-21 12:21:37 -0400
4533 -->
4534
4535     <listitem>
4536      <para>
4537       Fix <application>PL/Python</> crash when returning the string
4538       representation of a <type>record</> result (Tom Lane)
4539      </para>
4540     </listitem>
4541
4542 <!--
4543 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4544 Branch: master [f8d67ca8d] 2015-07-20 14:10:07 +0200
4545 Branch: REL9_5_STABLE [b0b6f8d71] 2015-07-20 14:18:08 +0200
4546 Branch: REL9_4_STABLE [49c300040] 2015-07-20 14:18:08 +0200
4547 Branch: REL9_3_STABLE [b2efbb71d] 2015-07-20 14:18:08 +0200
4548 Branch: REL9_2_STABLE [3cb6ef998] 2015-07-20 14:18:08 +0200
4549 Branch: REL9_1_STABLE [14ade020f] 2015-07-20 14:18:08 +0200
4550 Branch: REL9_0_STABLE [4c11967e7] 2015-07-20 14:18:08 +0200
4551 -->
4552
4553     <listitem>
4554      <para>
4555       Fix some places in <application>PL/Tcl</> that neglected to check for
4556       failure of <function>malloc()</> calls (Michael Paquier, &Aacute;lvaro
4557       Herrera)
4558      </para>
4559     </listitem>
4560
4561 <!--
4562 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4563 Branch: master [cb3384a0c] 2015-08-02 22:12:33 +0300
4564 Branch: REL9_5_STABLE [ea8385df6] 2015-08-02 22:12:38 +0300
4565 Branch: REL9_4_STABLE [d7d4bd2c3] 2015-08-02 22:12:41 +0300
4566 Branch: REL9_3_STABLE [9d04a9824] 2015-08-02 22:12:45 +0300
4567 Branch: REL9_2_STABLE [56187c6fb] 2015-08-02 22:12:48 +0300
4568 Branch: REL9_1_STABLE [2d19a0e97] 2015-08-02 22:12:51 +0300
4569 -->
4570
4571     <listitem>
4572      <para>
4573       In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
4574       with 979 (Fabien Coelho)
4575      </para>
4576
4577      <para>
4578       EANs beginning with 979 (but not 9790) are considered ISBNs, but they
4579       must be printed in the new 13-digit format, not the 10-digit format.
4580      </para>
4581     </listitem>
4582
4583 <!--
4584 Author: Tom Lane <tgl@sss.pgh.pa.us>
4585 Branch: master [8bbe4cbd9] 2015-10-04 17:58:42 -0400
4586 Branch: REL9_5_STABLE [39a716d93] 2015-10-04 17:58:30 -0400
4587 Branch: REL9_4_STABLE [93840f96c] 2015-10-04 17:58:30 -0400
4588 -->
4589
4590     <listitem>
4591      <para>
4592       Improve <filename>contrib/pg_stat_statements</>' handling of
4593       query-text garbage collection (Peter Geoghegan)
4594      </para>
4595
4596      <para>
4597       The external file containing query texts could bloat to very large
4598       sizes; once it got past 1GB attempts to trim it would fail, soon
4599       leading to situations where the file could not be read at all.
4600      </para>
4601     </listitem>
4602
4603 <!--
4604 Author: Tom Lane <tgl@sss.pgh.pa.us>
4605 Branch: master [76f965ff1] 2015-09-24 12:47:29 -0400
4606 Branch: REL9_5_STABLE [59d765b65] 2015-09-24 12:47:30 -0400
4607 Branch: REL9_4_STABLE [0da864c53] 2015-09-24 12:47:30 -0400
4608 Branch: REL9_3_STABLE [b7dcb2dd4] 2015-09-24 12:47:30 -0400
4609 -->
4610
4611     <listitem>
4612      <para>
4613       Improve <filename>contrib/postgres_fdw</>'s handling of
4614       collation-related decisions (Tom Lane)
4615      </para>
4616
4617      <para>
4618       The main user-visible effect is expected to be that comparisons
4619       involving <type>varchar</> columns will be sent to the remote server
4620       for execution in more cases than before.
4621      </para>
4622     </listitem>
4623
4624 <!--
4625 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4626 Branch: master [414bef30b] 2015-07-07 18:44:59 +0300
4627 Branch: REL9_5_STABLE [28c38396e] 2015-07-07 18:47:25 +0300
4628 Branch: REL9_4_STABLE [992c6f0d2] 2015-07-07 18:45:17 +0300
4629 Branch: REL9_3_STABLE [fcdac5614] 2015-07-07 18:45:22 +0300
4630 Branch: REL9_2_STABLE [6d88c1fc5] 2015-07-07 18:45:24 +0300
4631 Branch: REL9_1_STABLE [dcbaf4b37] 2015-07-07 18:45:28 +0300
4632 Branch: REL9_0_STABLE [2b189c7ec] 2015-07-07 18:45:31 +0300
4633 -->
4634
4635     <listitem>
4636      <para>
4637       Improve <application>libpq</>'s handling of out-of-memory conditions
4638       (Michael Paquier, Heikki Linnakangas)
4639      </para>
4640     </listitem>
4641
4642 <!--
4643 Author: Michael Meskes <meskes@postgresql.org>
4644 Branch: master Release: REL9_5_BR [82be1bf50] 2015-06-12 14:50:47 +0200
4645 Branch: REL9_4_STABLE [70767ac26] 2015-06-13 11:05:06 +0200
4646 Branch: REL9_3_STABLE [d65e5f832] 2015-06-13 11:08:16 +0200
4647 Branch: REL9_2_STABLE [1ea539ae3] 2015-06-13 11:13:59 +0200
4648 Branch: REL9_1_STABLE [866e7f591] 2015-06-13 11:15:09 +0200
4649 Branch: REL9_0_STABLE [4678be617] 2015-06-13 11:18:31 +0200
4650 Branch: master Release: REL9_5_BR [96ad72d1c] 2015-06-12 14:52:55 +0200
4651 Branch: REL9_4_STABLE [4f60d6658] 2015-06-13 11:04:58 +0200
4652 Branch: REL9_3_STABLE [31c06d4b6] 2015-06-13 11:13:16 +0200
4653 Branch: REL9_2_STABLE [ec311b1d8] 2015-06-13 11:14:07 +0200
4654 Branch: REL9_1_STABLE [a5238ced6] 2015-06-13 11:17:42 +0200
4655 Branch: REL9_0_STABLE [235bd4ccb] 2015-06-13 11:20:31 +0200
4656 Branch: master Release: REL9_5_BR [af0b49fc9] 2015-06-15 14:20:09 +0200
4657 Branch: REL9_4_STABLE [853222ce0] 2015-06-15 14:22:18 +0200
4658 Branch: REL9_3_STABLE [3e2a17eec] 2015-06-15 14:22:50 +0200
4659 Branch: REL9_2_STABLE [fd1ff4a13] 2015-06-15 14:23:04 +0200
4660 Branch: REL9_1_STABLE [a38f08bb9] 2015-06-15 14:23:17 +0200
4661 Branch: REL9_0_STABLE [abf92840a] 2015-06-15 14:23:30 +0200
4662 Branch: master Release: REL9_5_BR [94a484222] 2015-06-15 14:21:03 +0200
4663 Branch: REL9_4_STABLE [2a781b5bb] 2015-06-15 14:22:24 +0200
4664 Branch: REL9_3_STABLE [4130b2c1f] 2015-06-15 14:22:54 +0200
4665 Branch: REL9_2_STABLE [711cbaadd] 2015-06-15 14:23:07 +0200
4666 Branch: REL9_1_STABLE [6ab1a53dd] 2015-06-15 14:23:21 +0200
4667 Branch: REL9_0_STABLE [d278ff3b2] 2015-06-15 14:27:39 +0200
4668 -->
4669
4670     <listitem>
4671      <para>
4672       Fix memory leaks and missing out-of-memory checks
4673       in <application>ecpg</> (Michael Paquier)
4674      </para>
4675     </listitem>
4676
4677 <!--
4678 Author: Tom Lane <tgl@sss.pgh.pa.us>
4679 Branch: master [4778a0bda] 2015-09-24 23:01:04 -0400
4680 Branch: REL9_5_STABLE [f1ee153dc] 2015-09-24 23:01:04 -0400
4681 Branch: REL9_4_STABLE [348dd2847] 2015-09-24 23:01:04 -0400
4682 Branch: REL9_3_STABLE [7e327ecd2] 2015-09-24 23:01:04 -0400
4683 Branch: REL9_2_STABLE [596c9e9ef] 2015-09-24 23:01:04 -0400
4684 Branch: REL9_1_STABLE [7ddadacec] 2015-09-24 23:01:04 -0400
4685 Branch: REL9_0_STABLE [c2d6ef14e] 2015-09-24 23:01:04 -0400
4686 Branch: master [6325527d8] 2015-09-25 00:00:33 -0400
4687 Branch: REL9_5_STABLE [da4af91ce] 2015-09-25 00:00:43 -0400
4688 Branch: REL9_4_STABLE [49917edad] 2015-09-25 00:00:51 -0400
4689 Branch: REL9_3_STABLE [9c547c939] 2015-09-25 00:00:58 -0400
4690 Branch: REL9_2_STABLE [60617d7d6] 2015-09-25 00:01:08 -0400
4691 Branch: REL9_1_STABLE [c48623d8d] 2015-09-25 00:01:14 -0400
4692 Branch: REL9_0_STABLE [71763ecff] 2015-09-25 00:01:20 -0400
4693 Branch: master [77130fc14] 2015-09-25 12:20:45 -0400
4694 Branch: REL9_5_STABLE [5eb702437] 2015-09-25 12:20:45 -0400
4695 Branch: REL9_4_STABLE [c961f401b] 2015-09-25 12:20:45 -0400
4696 Branch: REL9_3_STABLE [b7d17eca5] 2015-09-25 12:20:46 -0400
4697 Branch: REL9_2_STABLE [80fa54210] 2015-09-25 12:20:46 -0400
4698 Branch: REL9_1_STABLE [f88643476] 2015-09-25 12:20:46 -0400
4699 Branch: REL9_0_STABLE [98d8c75f9] 2015-09-25 12:20:46 -0400
4700 -->
4701
4702     <listitem>
4703      <para>
4704       Fix <application>psql</>'s code for locale-aware formatting of numeric
4705       output (Tom Lane)
4706      </para>
4707
4708      <para>
4709       The formatting code invoked by <literal>\pset numericlocale on</>
4710       did the wrong thing for some uncommon cases such as numbers with an
4711       exponent but no decimal point.  It could also mangle already-localized
4712       output from the <type>money</> data type.
4713      </para>
4714     </listitem>
4715
4716 <!--
4717 Author: Noah Misch <noah@leadboat.com>
4718 Branch: master [e135c3d99] 2015-07-08 20:44:21 -0400
4719 Branch: REL9_5_STABLE [fb990ce6c] 2015-07-08 20:44:25 -0400
4720 Branch: REL9_4_STABLE [eb1525e89] 2015-07-08 20:44:26 -0400
4721 Branch: REL9_3_STABLE [49008d645] 2015-07-08 20:44:26 -0400
4722 Branch: REL9_2_STABLE [458ccbf2b] 2015-07-08 20:44:27 -0400
4723 Branch: REL9_1_STABLE [5f173a9f2] 2015-07-08 20:44:27 -0400
4724 Branch: REL9_0_STABLE [6087bf1a1] 2015-07-08 20:44:27 -0400
4725 -->
4726
4727     <listitem>
4728      <para>
4729       Prevent crash in <application>psql</>'s <command>\c</> command when
4730       there is no current connection (Noah Misch)
4731      </para>
4732     </listitem>
4733
4734 <!--
4735 Author: Tom Lane <tgl@sss.pgh.pa.us>
4736 Branch: master [8ab4a6bd3] 2015-10-01 16:20:13 -0400
4737 Branch: REL9_5_STABLE [5ea47e8f2] 2015-10-01 16:20:15 -0400
4738 Branch: REL9_4_STABLE [35435af38] 2015-10-01 16:19:49 -0400
4739 Branch: REL9_3_STABLE [7e1e1c9d1] 2015-10-01 16:19:49 -0400
4740 Branch: REL9_2_STABLE [3756c65a0] 2015-10-01 16:19:49 -0400
4741 -->
4742
4743     <listitem>
4744      <para>
4745       Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
4746       check constraints correctly (Tom Lane)
4747      </para>
4748     </listitem>
4749
4750 <!--
4751 Author: Andrew Dunstan <andrew@dunslane.net>
4752 Branch: master [caef94d59] 2015-07-25 17:14:36 -0400
4753 Branch: REL9_5_STABLE [08012455c] 2015-07-25 17:15:32 -0400
4754 Branch: REL9_4_STABLE [41ed5bb9a] 2015-07-25 17:15:48 -0400
4755 Branch: REL9_3_STABLE [84bf6ece1] 2015-07-25 17:16:03 -0400
4756 Branch: REL9_2_STABLE [aa1266d5f] 2015-07-25 17:16:14 -0400
4757 Branch: REL9_1_STABLE [af225551e] 2015-07-25 17:16:39 -0400
4758 -->
4759
4760     <listitem>
4761      <para>
4762       Fix selection of default <application>zlib</> compression level
4763       in <application>pg_dump</>'s directory output format (Andrew Dunstan)
4764      </para>
4765     </listitem>
4766
4767 <!--
4768 Author: Noah Misch <noah@leadboat.com>
4769 Branch: master [8346218c0] 2015-09-20 20:42:27 -0400
4770 Branch: REL9_5_STABLE [1be9d65e1] 2015-09-20 20:42:44 -0400
4771 Branch: REL9_4_STABLE [7496aba80] 2015-09-20 20:42:50 -0400
4772 Branch: REL9_3_STABLE [ea218a2ba] 2015-09-20 20:42:55 -0400
4773 Branch: REL9_2_STABLE [c94b65f67] 2015-09-20 20:43:47 -0400
4774 Branch: REL9_1_STABLE [5dc49efe9] 2015-09-20 20:44:23 -0400
4775 Branch: REL9_0_STABLE [24aed2124] 2015-09-20 20:44:34 -0400
4776 -->
4777
4778     <listitem>
4779      <para>
4780       Ensure that temporary files created during a <application>pg_dump</>
4781       run with <acronym>tar</>-format output are not world-readable (Michael
4782       Paquier)
4783      </para>
4784     </listitem>
4785
4786 <!--
4787 Author: Bruce Momjian <bruce@momjian.us>
4788 Branch: master [7f8d090b8] 2015-09-11 15:51:11 -0400
4789 Branch: REL9_5_STABLE [3243fce88] 2015-09-11 15:51:11 -0400
4790 Branch: REL9_4_STABLE [35d2fc1f2] 2015-09-11 15:51:11 -0400
4791 Branch: REL9_3_STABLE [ca445043e] 2015-09-11 15:51:10 -0400
4792 Branch: REL9_2_STABLE [befc63e84] 2015-09-11 15:51:10 -0400
4793 Branch: REL9_1_STABLE [c5391e933] 2015-09-11 15:51:10 -0400
4794 Branch: REL9_0_STABLE [52b07779d] 2015-09-11 15:51:10 -0400
4795 -->
4796
4797     <listitem>
4798      <para>
4799       Fix <application>pg_dump</> and <application>pg_upgrade</> to support
4800       cases where the <literal>postgres</> or <literal>template1</> database
4801       is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
4802      </para>
4803     </listitem>
4804
4805 <!--
4806 Author: Tom Lane <tgl@sss.pgh.pa.us>
4807 Branch: master [b861678f5] 2015-08-10 20:10:15 -0400
4808 Branch: REL9_5_STABLE [1cd468516] 2015-08-10 20:10:15 -0400
4809 Branch: REL9_4_STABLE [3352c23a6] 2015-08-10 20:10:16 -0400
4810 Branch: REL9_3_STABLE [75d02d787] 2015-08-10 20:10:16 -0400
4811 Branch: REL9_2_STABLE [be9ef396c] 2015-08-10 20:10:16 -0400
4812 Branch: REL9_1_STABLE [34f1a85e5] 2015-08-10 20:10:16 -0400
4813 Branch: REL9_0_STABLE [298d1f808] 2015-08-10 20:10:16 -0400
4814 -->
4815
4816     <listitem>
4817      <para>
4818       Fix <application>pg_dump</> to handle object privileges sanely when
4819       dumping from a server too old to have a particular privilege type
4820       (Tom Lane)
4821      </para>
4822
4823      <para>
4824       When dumping data types from pre-9.2 servers, and when dumping
4825       functions or procedural languages from pre-7.3
4826       servers, <application>pg_dump</> would
4827       produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
4828       owner's grantable privileges and instead granted all privileges
4829       to <literal>PUBLIC</>.  Since the privileges involved are
4830       just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
4831       problem, but it's certainly a surprising representation of the older
4832       systems' behavior.  Fix it to leave the default privilege state alone
4833       in these cases.
4834      </para>
4835     </listitem>
4836
4837 <!--
4838 Author: Tom Lane <tgl@sss.pgh.pa.us>
4839 Branch: master [3bdd7f90f] 2015-08-04 19:34:12 -0400
4840 Branch: REL9_5_STABLE [1f507c7e9] 2015-08-04 19:34:12 -0400
4841 Branch: REL9_4_STABLE [fa6e785fd] 2015-08-04 19:34:12 -0400
4842 Branch: REL9_3_STABLE [5da713f31] 2015-08-04 19:34:12 -0400
4843 Branch: REL9_2_STABLE [dae6e4601] 2015-08-04 19:34:12 -0400
4844 Branch: REL9_1_STABLE [270a877cc] 2015-08-04 19:34:12 -0400
4845 Branch: REL9_0_STABLE [5d175be17] 2015-08-04 19:34:12 -0400
4846 -->
4847
4848     <listitem>
4849      <para>
4850       Fix <application>pg_dump</> to dump shell types (Tom Lane)
4851      </para>
4852
4853      <para>
4854       Shell types (that is, not-yet-fully-defined types) aren't useful for
4855       much, but nonetheless <application>pg_dump</> should dump them.
4856      </para>
4857     </listitem>
4858
4859 <!--
4860 Author: Tom Lane <tgl@sss.pgh.pa.us>
4861 Branch: master [bcc87b6b0] 2015-07-12 16:26:08 -0400
4862 Branch: REL9_5_STABLE [0e78a610f] 2015-07-12 16:26:18 -0400
4863 Branch: REL9_4_STABLE [1ed549387] 2015-07-12 16:25:51 -0400
4864 Branch: REL9_3_STABLE [faf686b54] 2015-07-12 16:25:52 -0400
4865 Branch: REL9_2_STABLE [a24ceea4b] 2015-07-12 16:25:52 -0400
4866 Branch: REL9_1_STABLE [e9a859b54] 2015-07-12 16:25:52 -0400
4867 -->
4868
4869     <listitem>
4870      <para>
4871       Fix assorted minor memory leaks in <application>pg_dump</> and other
4872       client-side programs (Michael Paquier)
4873      </para>
4874     </listitem>
4875
4876 <!--
4877 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4878 Branch: master [9031ff91a] 2015-07-03 11:12:34 +0300
4879 Branch: REL9_5_STABLE [5174ca17a] 2015-07-03 11:15:55 +0300
4880 Branch: REL9_4_STABLE [9d6352aaa] 2015-07-03 11:15:27 +0300
4881 -->
4882
4883     <listitem>
4884      <para>
4885       Fix <application>pgbench</>'s progress-report behavior when a query,
4886       or <application>pgbench</> itself, gets stuck (Fabien Coelho)
4887      </para>
4888     </listitem>
4889
4890 <!--
4891 Author: Tom Lane <tgl@sss.pgh.pa.us>
4892 Branch: REL9_4_STABLE [747ca6697] 2015-08-29 16:34:30 -0400
4893 -->
4894
4895     <listitem>
4896      <para>
4897       Fix spinlock assembly code for Alpha hardware (Tom Lane)
4898      </para>
4899     </listitem>
4900
4901 <!--
4902 Author: Tom Lane <tgl@sss.pgh.pa.us>
4903 Branch: master [c41a1215f] 2015-08-29 16:09:25 -0400
4904 Branch: REL9_5_STABLE [ffbc387bf] 2015-08-29 16:09:25 -0400
4905 Branch: REL9_4_STABLE [3da9c060f] 2015-08-29 16:09:25 -0400
4906 Branch: REL9_3_STABLE [c355df54e] 2015-08-29 16:09:25 -0400
4907 Branch: REL9_2_STABLE [472680c57] 2015-08-29 16:09:25 -0400
4908 Branch: REL9_1_STABLE [14b497cfb] 2015-08-29 16:09:25 -0400
4909 Branch: REL9_0_STABLE [b5a22d8bb] 2015-08-29 16:09:25 -0400
4910 -->
4911
4912     <listitem>
4913      <para>
4914       Fix spinlock assembly code for PPC hardware to be compatible
4915       with <acronym>AIX</>'s native assembler (Tom Lane)
4916      </para>
4917
4918      <para>
4919       Building with <application>gcc</> didn't work if <application>gcc</>
4920       had been configured to use the native assembler, which is becoming more
4921       common.
4922      </para>
4923     </listitem>
4924
4925 <!--
4926 Author: Noah Misch <noah@leadboat.com>
4927 Branch: master [43d89a23d] 2015-07-17 03:01:14 -0400
4928 Branch: REL9_5_STABLE [eb3b93b53] 2015-07-17 03:01:29 -0400
4929 Branch: REL9_4_STABLE [f3f037e18] 2015-07-17 03:01:35 -0400
4930 Branch: REL9_3_STABLE [7319c0524] 2015-07-17 03:02:03 -0400
4931 Branch: REL9_2_STABLE [12073b9aa] 2015-07-17 03:02:18 -0400
4932 Branch: REL9_1_STABLE [76fa354c5] 2015-07-17 03:02:23 -0400
4933 Branch: REL9_0_STABLE [cdf596b1c] 2015-07-17 03:02:46 -0400
4934 -->
4935
4936     <listitem>
4937      <para>
4938       On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
4939       rather than just assuming it's safe to use (Noah Misch)
4940      </para>
4941     </listitem>
4942
4943 <!--
4944 Author: Noah Misch <noah@leadboat.com>
4945 Branch: master [bcd7c4120] 2015-07-15 21:00:26 -0400
4946 Branch: REL9_5_STABLE [c2b824e34] 2015-07-15 21:00:30 -0400
4947 Branch: REL9_4_STABLE [2405107b4] 2015-07-15 21:00:30 -0400
4948 Branch: REL9_3_STABLE [dc5075fed] 2015-07-15 21:00:30 -0400
4949 Branch: REL9_2_STABLE [690bec26c] 2015-07-15 21:00:31 -0400
4950 Branch: REL9_1_STABLE [1dd2b6b68] 2015-07-15 21:00:31 -0400
4951 Branch: REL9_0_STABLE [7803d5720] 2015-07-15 21:00:31 -0400
4952 -->
4953
4954     <listitem>
4955      <para>
4956       On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
4957       symbols to be resolved at runtime (Noah Misch)
4958      </para>
4959
4960      <para>
4961       Perl relies on this ability in 5.8.0 and later.
4962      </para>
4963     </listitem>
4964
4965 <!--
4966 Author: Noah Misch <noah@leadboat.com>
4967 Branch: master [c53f73879] 2015-07-29 22:49:48 -0400
4968 Branch: REL9_5_STABLE [a664d4790] 2015-07-29 22:52:43 -0400
4969 Branch: REL9_4_STABLE [76cf5f195] 2015-07-29 22:53:09 -0400
4970 Branch: REL9_3_STABLE [23e7ee962] 2015-07-29 22:53:40 -0400
4971 Branch: REL9_2_STABLE [0a89f3bc6] 2015-07-29 22:53:58 -0400
4972 Branch: REL9_1_STABLE [d20327a4f] 2015-07-29 22:54:03 -0400
4973 Branch: REL9_0_STABLE [2d8c136e7] 2015-07-29 22:54:08 -0400
4974 -->
4975
4976     <listitem>
4977      <para>
4978       Avoid use of inline functions when compiling with
4979       32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
4980      </para>
4981     </listitem>
4982
4983 <!--
4984 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4985 Branch: master Release: REL9_5_BR [ab93f90cd] 2015-06-30 14:20:38 -0300
4986 Branch: REL9_4_STABLE [ef704ec06] 2015-06-30 14:20:38 -0300
4987 Branch: REL9_3_STABLE [c085e072f] 2015-06-30 14:20:38 -0300
4988 Branch: REL9_2_STABLE [c538d7363] 2015-06-30 14:20:38 -0300
4989 Branch: REL9_1_STABLE [a9f886f41] 2015-06-30 14:20:38 -0300
4990 Branch: REL9_0_STABLE [b185c42c1] 2015-06-30 14:20:37 -0300
4991 -->
4992
4993     <listitem>
4994      <para>
4995       Use <filename>librt</> for <function>sched_yield()</> when necessary,
4996       which it is on some Solaris versions (Oskari Saarenmaa)
4997      </para>
4998     </listitem>
4999
5000 <!--
5001 Author: Noah Misch <noah@leadboat.com>
5002 Branch: master [ec79978dd] 2015-08-14 20:23:13 -0400
5003 Branch: REL9_5_STABLE [f19ad6fbe] 2015-08-14 20:23:35 -0400
5004 Branch: REL9_4_STABLE [a0104e080] 2015-08-14 20:23:42 -0400
5005 -->
5006
5007     <listitem>
5008      <para>
5009       Translate encoding <literal>UHC</> as Windows code page 949
5010       (Noah Misch)
5011      </para>
5012
5013      <para>
5014       This fixes presentation of non-ASCII log messages from processes that
5015       are not attached to any particular database, such as the postmaster.
5016      </para>
5017     </listitem>
5018
5019 <!--
5020 Author: Noah Misch <noah@leadboat.com>
5021 Branch: master [43adc7a71] 2015-08-14 20:23:09 -0400
5022 Branch: REL9_5_STABLE [92516bf19] 2015-08-14 20:23:34 -0400
5023 Branch: REL9_4_STABLE [f988da953] 2015-08-14 20:23:41 -0400
5024 -->
5025
5026     <listitem>
5027      <para>
5028       On Windows, avoid failure when doing encoding conversion to UTF16
5029       outside a transaction, such as for log messages (Noah Misch)
5030      </para>
5031     </listitem>
5032
5033 <!--
5034 Author: Noah Misch <noah@leadboat.com>
5035 Branch: master Release: REL9_5_BR [f0a264a36] 2015-06-20 12:09:29 -0400
5036 Branch: REL9_4_STABLE [b2ed1682d] 2015-06-20 12:10:56 -0400
5037 -->
5038
5039     <listitem>
5040      <para>
5041       Fix postmaster startup failure due to not
5042       copying <function>setlocale()</>'s return value (Noah Misch)
5043      </para>
5044
5045      <para>
5046       This has been reported on Windows systems with the ANSI code page set
5047       to CP936 (<quote>Chinese (Simplified, PRC)</>), and may occur with
5048       other multibyte code pages.
5049      </para>
5050     </listitem>
5051
5052 <!--
5053 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5054 Branch: master [6c534fd68] 2015-07-06 22:18:26 +0300
5055 Branch: REL9_5_STABLE [e5460aa02] 2015-07-07 16:33:10 +0300
5056 Branch: REL9_4_STABLE [4dac5651b] 2015-07-07 16:31:52 +0300
5057 Branch: REL9_3_STABLE [880365a3c] 2015-07-07 16:37:16 +0300
5058 Branch: REL9_2_STABLE [a5273ef37] 2015-07-07 16:37:34 +0300
5059 Branch: REL9_1_STABLE [3b7cf4367] 2015-07-07 16:38:24 +0300
5060 Branch: REL9_0_STABLE [341b877d3] 2015-07-07 16:39:25 +0300
5061 -->
5062
5063     <listitem>
5064      <para>
5065       Fix Windows <filename>install.bat</> script to handle target directory
5066       names that contain spaces (Heikki Linnakangas)
5067      </para>
5068     </listitem>
5069
5070 <!--
5071 Author: Tom Lane <tgl@sss.pgh.pa.us>
5072 Branch: master [a5d489ccb] 2015-07-02 17:24:36 -0400
5073 Branch: REL9_5_STABLE [d1fec374f] 2015-07-05 12:01:01 -0400
5074 Branch: REL9_4_STABLE [60c38e62c] 2015-07-05 12:01:01 -0400
5075 Branch: REL9_3_STABLE [544e75814] 2015-07-05 12:01:01 -0400
5076 Branch: REL9_2_STABLE [89b8cf47b] 2015-07-05 12:01:01 -0400
5077 Branch: REL9_1_STABLE [9b00885d0] 2015-07-05 12:01:01 -0400
5078 Branch: REL9_0_STABLE [29ff43adf] 2015-07-05 12:01:02 -0400
5079 -->
5080
5081     <listitem>
5082      <para>
5083       Make the numeric form of the <productname>PostgreSQL</> version number
5084       (e.g., <literal>90405</>) readily available to extension Makefiles,
5085       as a variable named <varname>VERSION_NUM</> (Michael Paquier)
5086      </para>
5087     </listitem>
5088
5089 <!--
5090 Author: Tom Lane <tgl@sss.pgh.pa.us>
5091 Branch: master [241e6844a] 2015-10-02 19:15:39 -0400
5092 Branch: REL9_5_STABLE [19b06cc66] 2015-10-02 19:15:49 -0400
5093 Branch: REL9_4_STABLE [8e45497a2] 2015-10-02 19:15:57 -0400
5094 Branch: REL9_3_STABLE [0f6a046b6] 2015-10-02 19:16:06 -0400
5095 Branch: REL9_2_STABLE [fd519c170] 2015-10-02 19:16:18 -0400
5096 Branch: REL9_1_STABLE [3a68e0a10] 2015-10-02 19:16:29 -0400
5097 Branch: REL9_0_STABLE [47ac95f37] 2015-10-02 19:16:37 -0400
5098 -->
5099
5100     <listitem>
5101      <para>
5102       Update time zone data files to <application>tzdata</> release 2015g for
5103       DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
5104       Island, North Korea, Turkey, and Uruguay.  There is a new zone name
5105       <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
5106      </para>
5107     </listitem>
5108
5109    </itemizedlist>
5110
5111   </sect2>
5112  </sect1>
5113
5114  <sect1 id="release-9-4-4">
5115   <title>Release 9.4.4</title>
5116
5117   <note>
5118   <title>Release Date</title>
5119   <simpara>2015-06-12</simpara>
5120   </note>
5121
5122   <para>
5123    This release contains a small number of fixes from 9.4.3.
5124    For information about new features in the 9.4 major release, see
5125    <xref linkend="release-9-4">.
5126   </para>
5127
5128   <sect2>
5129    <title>Migration to Version 9.4.4</title>
5130
5131    <para>
5132     A dump/restore is not required for those running 9.4.X.
5133    </para>
5134
5135    <para>
5136     However, if you are upgrading an installation that was previously
5137     upgraded using a <application>pg_upgrade</> version between 9.3.0 and
5138     9.3.4 inclusive, see the first changelog entry below.
5139    </para>
5140
5141    <para>
5142     Also, if you are upgrading from a version earlier than 9.4.2,
5143     see <xref linkend="release-9-4-2">.
5144    </para>
5145   </sect2>
5146
5147   <sect2>
5148    <title>Changes</title>
5149
5150    <itemizedlist>
5151
5152 <!--
5153 Author: Robert Haas <rhaas@postgresql.org>
5154 Branch: master [068cfadf9] 2015-06-05 09:31:57 -0400
5155 Branch: REL9_4_STABLE [b6a3444fa] 2015-06-05 09:33:52 -0400
5156 Branch: REL9_3_STABLE [2a9b01928] 2015-06-05 09:34:15 -0400
5157 -->
5158
5159     <listitem>
5160      <para>
5161       Fix possible failure to recover from an inconsistent database state
5162       (Robert Haas)
5163      </para>
5164
5165      <para>
5166       Recent <productname>PostgreSQL</> releases introduced mechanisms to
5167       protect against multixact wraparound, but some of that code did not
5168       account for the possibility that it would need to run during crash
5169       recovery, when the database may not be in a consistent state.  This
5170       could result in failure to restart after a crash, or failure to start
5171       up a secondary server.  The lingering effects of a previously-fixed
5172       bug in <application>pg_upgrade</> could also cause such a failure, in
5173       installations that had used <application>pg_upgrade</> versions
5174       between 9.3.0 and 9.3.4.
5175      </para>
5176
5177      <para>
5178       The <application>pg_upgrade</> bug in question was that it would
5179       set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
5180       if the true value should be higher.  With the fixes introduced in
5181       this release, such a situation will result in immediate emergency
5182       autovacuuming until a correct <literal>oldestMultiXid</> value can
5183       be determined.  If that would pose a hardship, users can avoid it by
5184       doing manual vacuuming <emphasis>before</> upgrading to this release.
5185       In detail:
5186
5187       <orderedlist>
5188        <listitem>
5189         <para>
5190          Check whether <application>pg_controldata</> reports <quote>Latest
5191          checkpoint's oldestMultiXid</> to be 1.  If not, there's nothing
5192          to do.
5193         </para>
5194        </listitem>
5195        <listitem>
5196         <para>
5197          Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
5198          file named <filename>0000</>.  If there is, there's nothing to do.
5199         </para>
5200        </listitem>
5201        <listitem>
5202         <para>
5203          Otherwise, for each table that has
5204          <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
5205          <command>VACUUM</> that table with
5206          both <xref linkend="guc-vacuum-multixact-freeze-min-age">
5207          and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
5208          zero.  (You can use the vacuum cost delay parameters described
5209          in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
5210          the performance consequences for concurrent sessions.)
5211         </para>
5212        </listitem>
5213       </orderedlist>
5214      </para>
5215     </listitem>
5216
5217 <!--
5218 Author: Tom Lane <tgl@sss.pgh.pa.us>
5219 Branch: master [f3b5565dd] 2015-06-07 15:32:09 -0400
5220 Branch: REL9_4_STABLE [be25a08a9] 2015-06-07 15:32:09 -0400
5221 Branch: REL9_3_STABLE [4f2458dd7] 2015-06-07 15:32:09 -0400
5222 Branch: REL9_2_STABLE [3e69a73b9] 2015-06-07 15:32:09 -0400
5223 Branch: REL9_1_STABLE [e06e56212] 2015-06-07 15:32:09 -0400
5224 Branch: REL9_0_STABLE [2fe1939b0] 2015-06-07 15:32:09 -0400
5225 -->
5226
5227     <listitem>
5228      <para>
5229       Fix rare failure to invalidate relation cache init file (Tom Lane)
5230      </para>
5231
5232      <para>
5233       With just the wrong timing of concurrent activity, a <command>VACUUM
5234       FULL</> on a system catalog might fail to update the <quote>init file</>
5235       that's used to avoid cache-loading work for new sessions.  This would
5236       result in later sessions being unable to access that catalog at all.
5237       This is a very ancient bug, but it's so hard to trigger that no
5238       reproducible case had been seen until recently.
5239      </para>
5240     </listitem>
5241
5242 <!--
5243 Author: Tom Lane <tgl@sss.pgh.pa.us>
5244 Branch: master [ac23b711d] 2015-06-05 13:22:27 -0400
5245 Branch: REL9_4_STABLE [247263dc3] 2015-06-05 13:22:27 -0400
5246 Branch: REL9_3_STABLE [ac86eda63] 2015-06-05 13:22:27 -0400
5247 Branch: REL9_2_STABLE [04358dab2] 2015-06-05 13:22:27 -0400
5248 Branch: REL9_1_STABLE [002e7d144] 2015-06-05 13:22:27 -0400
5249 Branch: REL9_0_STABLE [dbd99c7f0] 2015-06-05 13:22:27 -0400
5250 -->
5251
5252     <listitem>
5253      <para>
5254       Avoid deadlock between incoming sessions and <literal>CREATE/DROP
5255       DATABASE</> (Tom Lane)
5256      </para>
5257
5258      <para>
5259       A new session starting in a database that is the target of
5260       a <command>DROP DATABASE</> command, or is the template for
5261       a <command>CREATE DATABASE</> command, could cause the command to wait
5262       for five seconds and then fail, even if the new session would have
5263       exited before that.
5264      </para>
5265     </listitem>
5266
5267 <!--
5268 Author: Tom Lane <tgl@sss.pgh.pa.us>
5269 Branch: master [3f59be836] 2015-06-03 11:59:10 -0400
5270 Branch: REL9_4_STABLE [f0a8515c4] 2015-06-03 11:58:47 -0400
5271 Branch: REL9_3_STABLE [d3fdec6ae] 2015-06-03 11:58:47 -0400
5272 -->
5273
5274     <listitem>
5275      <para>
5276       Improve planner's cost estimates for semi-joins and anti-joins with
5277       inner indexscans (Tom Lane, Tomas Vondra)
5278      </para>
5279
5280      <para>
5281       This type of plan is quite cheap when all the join clauses are used
5282       as index scan conditions, even if the inner scan would nominally
5283       fetch many rows, because the executor will stop after obtaining one
5284       row.  The planner only partially accounted for that effect, and would
5285       therefore overestimate the cost, leading it to possibly choose some
5286       other much less efficient plan type.
5287      </para>
5288     </listitem>
5289
5290    </itemizedlist>
5291
5292   </sect2>
5293  </sect1>
5294
5295  <sect1 id="release-9-4-3">
5296   <title>Release 9.4.3</title>
5297
5298   <note>
5299   <title>Release Date</title>
5300   <simpara>2015-06-04</simpara>
5301   </note>
5302
5303   <para>
5304    This release contains a small number of fixes from 9.4.2.
5305    For information about new features in the 9.4 major release, see
5306    <xref linkend="release-9-4">.
5307   </para>
5308
5309   <sect2>
5310    <title>Migration to Version 9.4.3</title>
5311
5312    <para>
5313     A dump/restore is not required for those running 9.4.X.
5314    </para>
5315
5316    <para>
5317     However, if you are upgrading from a version earlier than 9.4.2,
5318     see <xref linkend="release-9-4-2">.
5319    </para>
5320   </sect2>
5321
5322   <sect2>
5323    <title>Changes</title>
5324
5325    <itemizedlist>
5326
5327 <!--
5328 Author: Tom Lane <tgl@sss.pgh.pa.us>
5329 Branch: master [d8179b001] 2015-05-28 17:33:03 -0400
5330 Branch: REL9_4_STABLE [a3ae3db43] 2015-05-28 17:33:03 -0400
5331 Branch: REL9_3_STABLE [81f3d3b7c] 2015-05-28 17:33:03 -0400
5332 Branch: REL9_2_STABLE [aa8377e64] 2015-05-28 17:33:03 -0400
5333 Branch: REL9_1_STABLE [cb867853a] 2015-05-28 17:33:03 -0400
5334 Branch: REL9_0_STABLE [e4a04e5a4] 2015-05-28 17:33:03 -0400
5335 Author: Tom Lane <tgl@sss.pgh.pa.us>
5336 Branch: master [c07d8c963] 2015-05-29 13:05:16 -0400
5337 Branch: REL9_4_STABLE [dbde225b1] 2015-05-29 13:05:16 -0400
5338 Branch: REL9_3_STABLE [52fc94844] 2015-05-29 13:05:16 -0400
5339 Author: Tom Lane <tgl@sss.pgh.pa.us>
5340 Branch: master [57e1138bc] 2015-05-29 15:11:36 -0400
5341 Branch: REL9_4_STABLE [70a4519b8] 2015-05-29 15:11:36 -0400
5342 Branch: REL9_3_STABLE [35dd1b51f] 2015-05-29 15:11:36 -0400
5343 Branch: REL9_2_STABLE [77642a819] 2015-05-29 15:11:36 -0400
5344 Branch: REL9_1_STABLE [9e79ca326] 2015-05-29 15:11:36 -0400
5345 Branch: REL9_0_STABLE [bf2f20c08] 2015-05-29 15:11:36 -0400
5346 Author: Tom Lane <tgl@sss.pgh.pa.us>
5347 Branch: master [1943c000b] 2015-05-29 17:02:58 -0400
5348 Branch: REL9_4_STABLE [99f50dd72] 2015-05-29 17:02:58 -0400
5349 Branch: REL9_3_STABLE [c2b68b1f7] 2015-05-29 17:02:58 -0400
5350 -->
5351
5352     <listitem>
5353      <para>
5354       Avoid failures while <function>fsync</>'ing data directory during
5355       crash restart (Abhijit Menon-Sen, Tom Lane)
5356      </para>
5357
5358      <para>
5359       In the previous minor releases we added a patch to <function>fsync</>
5360       everything in the data directory after a crash.  Unfortunately its
5361       response to any error condition was to fail, thereby preventing the
5362       server from starting up, even when the problem was quite harmless.
5363       An example is that an unwritable file in the data directory would
5364       prevent restart on some platforms; but it is common to make SSL
5365       certificate files unwritable by the server.  Revise this behavior so
5366       that permissions failures are ignored altogether, and other types of
5367       failures are logged but do not prevent continuing.
5368      </para>
5369
5370      <para>
5371       Also apply the same rules in <literal>initdb --sync-only</>.
5372       This case is less critical but it should act similarly.
5373      </para>
5374     </listitem>
5375
5376 <!--
5377 Author: Tom Lane <tgl@sss.pgh.pa.us>
5378 Branch: master [f46edf479] 2015-05-28 11:24:37 -0400
5379 Branch: REL9_4_STABLE [d4a9f5519] 2015-05-28 11:24:37 -0400
5380 Branch: REL9_3_STABLE [27bae8d96] 2015-05-28 11:24:37 -0400
5381 Branch: REL9_2_STABLE [f3c67aad4] 2015-05-28 11:24:37 -0400
5382 -->
5383
5384     <listitem>
5385      <para>
5386       Fix <function>pg_get_functiondef()</> to show
5387       functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
5388      </para>
5389     </listitem>
5390
5391 <!--
5392 Author: Andrew Dunstan <andrew@dunslane.net>
5393 Branch: master [5302760a5] 2015-05-22 10:21:41 -0400
5394 Branch: REL9_4_STABLE [9b74f32cd] 2015-05-22 10:31:29 -0400
5395 -->
5396
5397     <listitem>
5398      <para>
5399       Fix <function>pushJsonbValue()</> to unpack <type>jbvBinary</>
5400       objects (Andrew Dunstan)
5401      </para>
5402
5403      <para>
5404       This change does not affect any behavior in the core code as of 9.4,
5405       but it avoids a corner case for possible third-party callers.
5406      </para>
5407     </listitem>
5408
5409 <!--
5410 Author: Tom Lane <tgl@sss.pgh.pa.us>
5411 Branch: master [86832eb89] 2015-05-26 22:14:59 -0400
5412 Branch: REL9_4_STABLE [79f0f7cab] 2015-05-26 22:14:59 -0400
5413 Branch: REL9_3_STABLE [9e980e7d0] 2015-05-26 22:14:59 -0400
5414 Branch: REL9_2_STABLE [1b1457120] 2015-05-26 22:14:59 -0400
5415 Branch: REL9_1_STABLE [5585cc707] 2015-05-26 22:14:59 -0400
5416 Branch: REL9_0_STABLE [b06649b7f] 2015-05-26 22:15:00 -0400
5417 -->
5418
5419     <listitem>
5420      <para>
5421       Remove <application>configure</>'s check prohibiting linking to a
5422       threaded <application>libpython</>
5423       on <systemitem class="osname">OpenBSD</> (Tom Lane)
5424      </para>
5425
5426      <para>
5427       The failure this restriction was meant to prevent seems to not be a
5428       problem anymore on current <systemitem class="osname">OpenBSD</>
5429       versions.
5430      </para>
5431     </listitem>
5432
5433    </itemizedlist>
5434
5435   </sect2>
5436  </sect1>
5437
5438  <sect1 id="release-9-4-2">
5439   <title>Release 9.4.2</title>
5440
5441   <note>
5442   <title>Release Date</title>
5443   <simpara>2015-05-22</simpara>
5444   </note>
5445
5446   <para>
5447    This release contains a variety of fixes from 9.4.1.
5448    For information about new features in the 9.4 major release, see
5449    <xref linkend="release-9-4">.
5450   </para>
5451
5452   <sect2>
5453    <title>Migration to Version 9.4.2</title>
5454
5455    <para>
5456     A dump/restore is not required for those running 9.4.X.
5457    </para>
5458
5459    <para>
5460     However, if you use <filename>contrib/citext</>'s
5461     <function>regexp_matches()</> functions, see the changelog entry below
5462     about that.
5463    </para>
5464
5465    <para>
5466     Also, if you are upgrading from a version earlier than 9.4.1,
5467     see <xref linkend="release-9-4-1">.
5468    </para>
5469   </sect2>
5470
5471   <sect2>
5472    <title>Changes</title>
5473
5474    <itemizedlist>
5475
5476 <!--
5477 Author: Noah Misch <noah@leadboat.com>
5478 Branch: master [b0ce38503] 2015-05-18 10:02:31 -0400
5479 Branch: REL9_4_STABLE [7a0d48ac7] 2015-05-18 10:02:35 -0400
5480 Branch: REL9_3_STABLE [f4c12b415] 2015-05-18 10:02:36 -0400
5481 Branch: REL9_2_STABLE [439ff9b6b] 2015-05-18 10:02:37 -0400
5482 Branch: REL9_1_STABLE [6675ab595] 2015-05-18 10:02:38 -0400
5483 Branch: REL9_0_STABLE [648e41a6e] 2015-05-18 10:02:38 -0400
5484 -->
5485
5486     <listitem>
5487      <para>
5488       Avoid possible crash when client disconnects just before the
5489       authentication timeout expires (Benkocs Norbert Attila)
5490      </para>
5491
5492      <para>
5493       If the timeout interrupt fired partway through the session shutdown
5494       sequence, SSL-related state would be freed twice, typically causing a
5495       crash and hence denial of service to other sessions.  Experimentation
5496       shows that an unauthenticated remote attacker could trigger the bug
5497       somewhat consistently, hence treat as security issue.
5498       (CVE-2015-3165)
5499      </para>
5500     </listitem>
5501
5502 <!--
5503 Author: Noah Misch <noah@leadboat.com>
5504 Branch: master [cac18a76b] 2015-05-18 10:02:31 -0400
5505 Branch: REL9_4_STABLE [f7c4fe7d9] 2015-05-18 10:02:35 -0400
5506 Branch: REL9_3_STABLE [d5abbd114] 2015-05-18 10:02:36 -0400
5507 Branch: REL9_2_STABLE [1e6652aea] 2015-05-18 10:02:37 -0400
5508 Branch: REL9_1_STABLE [b544dcdad] 2015-05-18 10:02:38 -0400
5509 Branch: REL9_0_STABLE [19f7adc01] 2015-05-18 10:02:38 -0400
5510 Author: Noah Misch <noah@leadboat.com>
5511 Branch: master [16304a013] 2015-05-18 10:02:31 -0400
5512 Branch: REL9_4_STABLE [2e3bd0665] 2015-05-18 10:02:35 -0400
5513 Branch: REL9_3_STABLE [34d21e770] 2015-05-18 10:02:36 -0400
5514 Branch: REL9_2_STABLE [82b7393eb] 2015-05-18 10:02:37 -0400
5515 Branch: REL9_1_STABLE [e58f042d9] 2015-05-18 10:02:38 -0400
5516 Branch: REL9_0_STABLE [b08c7aff7] 2015-05-18 10:02:38 -0400
5517 Author: Noah Misch <noah@leadboat.com>
5518 Branch: master [fd97bd411] 2015-05-18 10:02:31 -0400
5519 Branch: REL9_4_STABLE [ca325941d] 2015-05-18 10:02:35 -0400
5520 Branch: REL9_3_STABLE [c669915fd] 2015-05-18 10:02:37 -0400
5521 Branch: REL9_2_STABLE [01272d95a] 2015-05-18 10:02:37 -0400
5522 Branch: REL9_1_STABLE [2cb9f2cab] 2015-05-18 10:02:38 -0400
5523 Branch: REL9_0_STABLE [9b5e831e3] 2015-05-18 10:02:38 -0400
5524 Author: Tom Lane <tgl@sss.pgh.pa.us>
5525 Branch: master [0c071936e] 2015-05-19 18:19:38 -0400
5526 Branch: REL9_4_STABLE [2eb2fcd56] 2015-05-19 18:16:19 -0400
5527 Branch: REL9_3_STABLE [13341276e] 2015-05-19 18:16:58 -0400
5528 Branch: REL9_2_STABLE [221f7a949] 2015-05-19 18:17:42 -0400
5529 Branch: REL9_1_STABLE [0510cff6e] 2015-05-19 18:18:16 -0400
5530 Branch: REL9_0_STABLE [cf893530a] 2015-05-19 18:18:56 -0400
5531 -->
5532
5533     <listitem>
5534      <para>
5535       Improve detection of system-call failures (Noah Misch)
5536      </para>
5537
5538      <para>
5539       Our replacement implementation of <function>snprintf()</> failed to
5540       check for errors reported by the underlying system library calls;
5541       the main case that might be missed is out-of-memory situations.
5542       In the worst case this might lead to information exposure, due to our
5543       code assuming that a buffer had been overwritten when it hadn't been.
5544       Also, there were a few places in which security-relevant calls of other
5545       system library functions did not check for failure.
5546      </para>
5547
5548      <para>
5549       It remains possible that some calls of the <function>*printf()</>
5550       family of functions are vulnerable to information disclosure if an
5551       out-of-memory error occurs at just the wrong time.  We judge the risk
5552       to not be large, but will continue analysis in this area.
5553       (CVE-2015-3166)
5554      </para>
5555     </listitem>
5556
5557 <!--
5558 Author: Noah Misch <noah@leadboat.com>
5559 Branch: master [85270ac7a] 2015-05-18 10:02:31 -0400
5560 Branch: REL9_4_STABLE [fba1fb4ef] 2015-05-18 10:02:35 -0400
5561 Branch: REL9_3_STABLE [7b758b7d6] 2015-05-18 10:02:37 -0400
5562 Branch: REL9_2_STABLE [0ba200431] 2015-05-18 10:02:37 -0400
5563 Branch: REL9_1_STABLE [e5981aebd] 2015-05-18 10:02:38 -0400
5564 Branch: REL9_0_STABLE [b84e5c017] 2015-05-18 10:02:39 -0400
5565 -->
5566
5567     <listitem>
5568      <para>
5569       In <filename>contrib/pgcrypto</>, uniformly report decryption failures
5570       as <quote>Wrong key or corrupt data</> (Noah Misch)
5571      </para>
5572
5573      <para>
5574       Previously, some cases of decryption with an incorrect key could report
5575       other error message texts.  It has been shown that such variance in
5576       error reports can aid attackers in recovering keys from other systems.
5577       While it's unknown whether <filename>pgcrypto</>'s specific behaviors
5578       are likewise exploitable, it seems better to avoid the risk by using a
5579       one-size-fits-all message.
5580       (CVE-2015-3167)
5581      </para>
5582     </listitem>
5583
5584 <!--
5585 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5586 Branch: master [b69bf30b9] 2015-04-28 11:32:53 -0300
5587 Branch: REL9_4_STABLE [942542cbb] 2015-04-28 11:32:53 -0300
5588 Branch: REL9_3_STABLE [e2eda4b11] 2015-04-28 11:32:53 -0300
5589 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5590 Branch: master [669c7d20e] 2015-04-30 13:55:06 -0300
5591 Branch: REL9_4_STABLE [7140e11d8] 2015-04-30 13:55:06 -0300
5592 Branch: REL9_3_STABLE [e60581fdf] 2015-04-30 13:55:06 -0300
5593 Author: Robert Haas <rhaas@postgresql.org>
5594 Branch: master [7be47c56a] 2015-05-07 11:19:31 -0400
5595 Branch: REL9_4_STABLE [32c50af4c] 2015-05-07 11:13:55 -0400
5596 Branch: REL9_3_STABLE [83fbd9b59] 2015-05-07 11:16:41 -0400
5597 Author: Robert Haas <rhaas@postgresql.org>
5598 Branch: master [312747c22] 2015-05-10 21:34:26 -0400
5599 Branch: REL9_4_STABLE [7b3f0f8b8] 2015-05-10 21:47:28 -0400
5600 Branch: REL9_3_STABLE [24aa77ec9] 2015-05-10 21:47:41 -0400
5601 Author: Robert Haas <rhaas@postgresql.org>
5602 Branch: master [f6a6c46d7] 2015-05-10 22:21:20 -0400
5603 Branch: REL9_4_STABLE [ded891916] 2015-05-10 22:45:27 -0400
5604 Branch: REL9_3_STABLE [5bbac7ec1] 2015-05-10 22:45:42 -0400
5605 Author: Robert Haas <rhaas@postgresql.org>
5606 Branch: master [53bb309d2] 2015-05-08 12:53:00 -0400
5607 Branch: REL9_4_STABLE [3ecab37d9] 2015-05-08 12:53:30 -0400
5608 Branch: REL9_3_STABLE [596fb5aa7] 2015-05-08 12:55:14 -0400
5609 Author: Robert Haas <rhaas@postgresql.org>
5610 Branch: master [04e6d3b87] 2015-05-11 10:51:14 -0400
5611 Branch: REL9_4_STABLE [8ec1a3a54] 2015-05-11 10:56:19 -0400
5612 Branch: REL9_3_STABLE [543fbecee] 2015-05-11 10:56:32 -0400
5613 Author: Robert Haas <rhaas@postgresql.org>
5614 Branch: master [b4d4ce1d5] 2015-05-11 12:15:50 -0400
5615 Branch: REL9_4_STABLE [ea70595a3] 2015-05-11 12:16:35 -0400
5616 Branch: REL9_3_STABLE [ddebd2119] 2015-05-11 12:16:51 -0400
5617 -->
5618
5619     <listitem>
5620      <para>
5621       Protect against wraparound of multixact member IDs
5622       (&Aacute;lvaro Herrera, Robert Haas, Thomas Munro)
5623      </para>
5624
5625      <para>
5626       Under certain usage patterns, the existing defenses against this might
5627       be insufficient, allowing <filename>pg_multixact/members</> files to be
5628       removed too early, resulting in data loss.
5629       The fix for this includes modifying the server to fail transactions
5630       that would result in overwriting old multixact member ID data, and
5631       improving autovacuum to ensure it will act proactively to prevent
5632       multixact member ID wraparound, as it does for transaction ID
5633       wraparound.
5634      </para>
5635     </listitem>
5636
5637 <!--
5638 Author: Tom Lane <tgl@sss.pgh.pa.us>
5639 Branch: master [b22527f29] 2015-05-05 15:51:22 -0400
5640 Branch: REL9_4_STABLE [b1ec45994] 2015-05-05 15:50:53 -0400
5641 Branch: REL9_3_STABLE [ffac9f65d] 2015-05-05 15:50:53 -0400
5642 Branch: REL9_2_STABLE [d4070d10c] 2015-05-05 15:50:53 -0400
5643 Branch: REL9_1_STABLE [801e250a8] 2015-05-05 15:50:53 -0400
5644 -->
5645
5646     <listitem>
5647      <para>
5648       Fix incorrect declaration of <filename>contrib/citext</>'s
5649       <function>regexp_matches()</> functions (Tom Lane)
5650      </para>
5651
5652      <para>
5653       These functions should return <type>setof text[]</>, like the core
5654       functions they are wrappers for; but they were incorrectly declared as
5655       returning just <type>text[]</>.  This mistake had two results: first,
5656       if there was no match you got a scalar null result, whereas what you
5657       should get is an empty set (zero rows).  Second, the <literal>g</> flag
5658       was effectively ignored, since you would get only one result array even
5659       if there were multiple matches.
5660      </para>
5661
5662      <para>
5663       While the latter behavior is clearly a bug, there might be applications
5664       depending on the former behavior; therefore the function declarations
5665       will not be changed by default until <productname>PostgreSQL</> 9.5.
5666       In pre-9.5 branches, the old behavior exists in version 1.0 of
5667       the <literal>citext</> extension, while we have provided corrected
5668       declarations in version 1.1 (which is <emphasis>not</> installed by
5669       default).  To adopt the fix in pre-9.5 branches, execute
5670       <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
5671       which <literal>citext</> is installed.  (You can also <quote>update</>
5672       back to 1.0 if you need to undo that.)  Be aware that either update
5673       direction will require dropping and recreating any views or rules that
5674       use <filename>citext</>'s <function>regexp_matches()</> functions.
5675      </para>
5676     </listitem>
5677
5678 <!--
5679 Author: Andrew Dunstan <andrew@dunslane.net>
5680 Branch: master [bda76c1c8] 2015-02-26 12:25:21 -0500
5681 Branch: REL9_4_STABLE [79afe6e66] 2015-02-26 12:34:43 -0500
5682 -->
5683
5684     <listitem>
5685      <para>
5686       Render infinite dates and timestamps as <literal>infinity</> when
5687       converting to <type>json</>, rather than throwing an error
5688       (Andrew Dunstan)
5689      </para>
5690     </listitem>
5691
5692 <!--
5693 Author: Andrew Dunstan <andrew@dunslane.net>
5694 Branch: master [3c000fd9a] 2015-05-04 12:38:58 -0400
5695 Branch: REL9_4_STABLE [997066f44] 2015-05-04 12:43:16 -0400
5696 -->
5697
5698     <listitem>
5699      <para>
5700       Fix <type>json</>/<type>jsonb</>'s <function>populate_record()</>
5701       and <function>to_record()</> functions to handle empty input properly
5702       (Andrew Dunstan)
5703      </para>
5704     </listitem>
5705
5706 <!--
5707 Author: Tom Lane <tgl@sss.pgh.pa.us>
5708 Branch: master [20781765f] 2015-05-11 12:25:43 -0400
5709 Branch: REL9_4_STABLE [4d3d9719d] 2015-05-11 12:25:44 -0400
5710 Branch: REL9_3_STABLE [7d09fdf82] 2015-05-11 12:25:45 -0400
5711 Branch: REL9_2_STABLE [46f9acd3e] 2015-05-11 12:25:28 -0400
5712 Branch: REL9_1_STABLE [dd75518d5] 2015-05-11 12:25:28 -0400
5713 Branch: REL9_0_STABLE [b93c8eaf8] 2015-05-11 12:25:28 -0400
5714 -->
5715
5716     <listitem>
5717      <para>
5718       Fix incorrect checking of deferred exclusion constraints after a HOT
5719       update (Tom Lane)
5720      </para>
5721
5722      <para>
5723       If a new row that potentially violates a deferred exclusion constraint
5724       is HOT-updated (that is, no indexed columns change and the row can be
5725       stored back onto the same table page) later in the same transaction,
5726       the exclusion constraint would be reported as violated when the check
5727       finally occurred, even if the row(s) the new row originally conflicted
5728       with had been deleted.
5729      </para>
5730     </listitem>
5731
5732 <!--
5733 Author: Tom Lane <tgl@sss.pgh.pa.us>
5734 Branch: master [a4820434c] 2015-05-03 11:30:24 -0400
5735 Branch: REL9_4_STABLE [79edb2981] 2015-05-03 11:30:24 -0400
5736 -->
5737
5738     <listitem>
5739      <para>
5740       Fix behavior when changing foreign key constraint deferrability status
5741       with <literal>ALTER TABLE ... ALTER CONSTRAINT</> (Tom Lane)
5742      </para>
5743
5744      <para>
5745       Operations later in the same session or concurrent sessions might not
5746       honor the status change promptly.
5747      </para>
5748     </listitem>
5749
5750 <!--
5751 Author: Tom Lane <tgl@sss.pgh.pa.us>
5752 Branch: master [b514a7460] 2015-02-28 12:43:04 -0500
5753 Branch: REL9_4_STABLE [fdacbf9e8] 2015-02-28 12:43:04 -0500
5754 Branch: REL9_3_STABLE [1b558782b] 2015-02-28 12:43:04 -0500
5755 Branch: REL9_2_STABLE [6f419958a] 2015-02-28 12:43:04 -0500
5756 -->
5757
5758     <listitem>
5759      <para>
5760       Fix planning of star-schema-style queries (Tom Lane)
5761      </para>
5762
5763      <para>
5764       Sometimes, efficient scanning of a large table requires that index
5765       parameters be provided from more than one other table (commonly,
5766       dimension tables whose keys are needed to index a large fact table).
5767       The planner should be able to find such plans, but an overly
5768       restrictive search heuristic prevented it.
5769      </para>
5770     </listitem>
5771
5772 <!--
5773 Author: Tom Lane <tgl@sss.pgh.pa.us>
5774 Branch: master [3cf868601] 2015-04-25 16:44:27 -0400
5775 Branch: REL9_4_STABLE [5f3d1909c] 2015-04-25 16:44:27 -0400
5776 Branch: REL9_3_STABLE [3e47d0b2a] 2015-04-25 16:44:27 -0400
5777 Branch: REL9_2_STABLE [950f80dd5] 2015-04-25 16:44:27 -0400
5778 Branch: REL9_1_STABLE [2e38198f6] 2015-04-25 16:44:27 -0400
5779 Branch: REL9_0_STABLE [985da346e] 2015-04-25 16:44:27 -0400
5780 -->
5781
5782     <listitem>
5783      <para>
5784       Prevent improper reordering of antijoins (NOT EXISTS joins) versus
5785       other outer joins (Tom Lane)
5786      </para>
5787
5788      <para>
5789       This oversight in the planner has been observed to cause <quote>could
5790       not find RelOptInfo for given relids</> errors, but it seems possible
5791       that sometimes an incorrect query plan might get past that consistency
5792       check and result in silently-wrong query output.
5793      </para>
5794     </listitem>
5795
5796 <!--
5797 Author: Tom Lane <tgl@sss.pgh.pa.us>
5798 Branch: master [ca6805338] 2015-04-04 19:55:15 -0400
5799 Branch: REL9_4_STABLE [1d71d36ff] 2015-04-04 19:55:15 -0400
5800 Branch: REL9_3_STABLE [e105df208] 2015-04-04 19:55:15 -0400
5801 Branch: REL9_2_STABLE [b7d493bf7] 2015-04-04 19:55:15 -0400
5802 Branch: REL9_1_STABLE [3b5d67102] 2015-04-04 19:55:15 -0400
5803 Branch: REL9_0_STABLE [da8819194] 2015-04-04 19:55:15 -0400
5804 -->
5805
5806     <listitem>
5807      <para>
5808       Fix incorrect matching of subexpressions in outer-join plan nodes
5809       (Tom Lane)
5810      </para>
5811
5812      <para>
5813       Previously, if textually identical non-strict subexpressions were used
5814       both above and below an outer join, the planner might try to re-use
5815       the value computed below the join, which would be incorrect because the
5816       executor would force the value to NULL in case of an unmatched outer row.
5817      </para>
5818     </listitem>
5819
5820 <!--
5821 Author: Tom Lane <tgl@sss.pgh.pa.us>
5822 Branch: master [1a179f36f] 2015-02-10 20:37:19 -0500
5823 Branch: REL9_4_STABLE [433c79d2c] 2015-02-10 20:37:22 -0500
5824 Branch: REL9_3_STABLE [672abc402] 2015-02-10 20:37:24 -0500
5825 Branch: REL9_2_STABLE [0d083103f] 2015-02-10 20:37:26 -0500
5826 Branch: REL9_1_STABLE [52579d507] 2015-02-10 20:37:29 -0500
5827 Branch: REL9_0_STABLE [72bbca27e] 2015-02-10 20:37:31 -0500
5828 -->
5829
5830     <listitem>
5831      <para>
5832       Fix GEQO planner to cope with failure of its join order heuristic
5833       (Tom Lane)
5834      </para>
5835
5836      <para>
5837       This oversight has been seen to lead to <quote>failed to join all
5838       relations together</> errors in queries involving <literal>LATERAL</>,
5839       and that might happen in other cases as well.
5840      </para>
5841     </listitem>
5842
5843 <!--
5844 Author: Stephen Frost <sfrost@snowman.net>
5845 Branch: master [6f9bd50ea] 2015-02-25 21:36:29 -0500
5846 Branch: REL9_4_STABLE [f16270ade] 2015-02-25 21:36:40 -0500
5847 -->
5848
5849     <listitem>
5850      <para>
5851       Ensure that row locking occurs properly when the target of
5852       an <command>UPDATE</> or <command>DELETE</> is a security-barrier view
5853       (Stephen Frost)
5854      </para>
5855     </listitem>
5856
5857 <!--
5858 Author: Andres Freund <andres@anarazel.de>
5859 Branch: master [dfbaed459] 2015-04-28 00:17:43 +0200
5860 Branch: REL9_4_STABLE [fd3dfc236] 2015-04-28 00:18:04 +0200
5861 -->
5862
5863     <listitem>
5864      <para>
5865       Use a file opened for read/write when syncing replication slot data
5866       during database startup (Andres Freund)
5867      </para>
5868
5869      <para>
5870       On some platforms, the previous coding could result in errors like
5871       <quote>could not fsync file "pg_replslot/...": Bad file descriptor</>.
5872      </para>
5873     </listitem>
5874
5875 <!--
5876 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5877 Branch: master [2c47fe16a] 2015-04-23 21:39:35 +0300
5878 Branch: REL9_4_STABLE [438a062d5] 2015-04-23 21:35:10 +0300
5879 Branch: REL9_3_STABLE [f73ebd766] 2015-04-23 21:36:24 +0300
5880 Branch: REL9_2_STABLE [d3f5d2892] 2015-04-23 21:36:50 +0300
5881 Branch: REL9_1_STABLE [e8528a8f5] 2015-04-23 21:36:59 +0300
5882 Branch: REL9_0_STABLE [223a94680] 2015-04-23 21:37:09 +0300
5883 -->
5884
5885     <listitem>
5886      <para>
5887       Fix possible deadlock at startup
5888       when <literal>max_prepared_transactions</> is too small
5889       (Heikki Linnakangas)
5890      </para>
5891     </listitem>
5892
5893 <!--
5894 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5895 Branch: master [b2a5545bd] 2015-04-13 16:53:49 +0300
5896 Branch: REL9_4_STABLE [d72792d02] 2015-04-13 17:22:21 +0300
5897 Branch: REL9_3_STABLE [a800267e4] 2015-04-13 17:22:35 +0300
5898 Branch: REL9_2_STABLE [cc2939f44] 2015-04-13 17:26:59 +0300
5899 Branch: REL9_1_STABLE [ad2925e20] 2015-04-13 17:26:49 +0300
5900 Branch: REL9_0_STABLE [5b6938186] 2015-04-13 17:26:35 +0300
5901 -->
5902
5903     <listitem>
5904      <para>
5905       Don't archive useless preallocated WAL files after a timeline switch
5906       (Heikki Linnakangas)
5907      </para>
5908     </listitem>
5909
5910 <!--
5911 Author: Robert Haas <rhaas@postgresql.org>
5912 Branch: master [2ce439f33] 2015-05-04 14:13:53 -0400
5913 Branch: REL9_4_STABLE [d8ac77ab1] 2015-05-04 14:19:32 -0400
5914 Branch: REL9_3_STABLE [14de825de] 2015-05-04 12:27:55 -0400
5915 Branch: REL9_2_STABLE [2bc339716] 2015-05-04 12:41:53 -0400
5916 Branch: REL9_1_STABLE [4b71d28d5] 2015-05-04 12:47:11 -0400
5917 Branch: REL9_0_STABLE [30ba0d0c2] 2015-05-04 14:04:53 -0400
5918 Author: Robert Haas <rhaas@postgresql.org>
5919 Branch: master [456ff0863] 2015-05-05 09:29:49 -0400
5920 Branch: REL9_4_STABLE [603fe0181] 2015-05-05 09:16:39 -0400
5921 Branch: REL9_3_STABLE [6fd666954] 2015-05-05 09:19:39 -0400
5922 Branch: REL9_2_STABLE [53e1498c6] 2015-05-05 09:22:51 -0400
5923 Branch: REL9_1_STABLE [6ee1a7738] 2015-05-05 09:25:51 -0400
5924 Branch: REL9_0_STABLE [262fbcb9d] 2015-05-05 09:30:07 -0400
5925 -->
5926
5927     <listitem>
5928      <para>
5929       Recursively <function>fsync()</> the data directory after a crash
5930       (Abhijit Menon-Sen, Robert Haas)
5931      </para>
5932
5933      <para>
5934       This ensures consistency if another crash occurs shortly later.  (The
5935       second crash would have to be a system-level crash, not just a database
5936       crash, for there to be a problem.)
5937      </para>
5938     </listitem>
5939
5940 <!--
5941 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5942 Branch: master [5df64f298] 2015-04-08 13:19:49 -0300
5943 Branch: REL9_4_STABLE [ec01c1c0a] 2015-04-08 13:19:49 -0300
5944 Branch: REL9_3_STABLE [0d6c9e061] 2015-04-08 13:19:49 -0300
5945 Branch: REL9_2_STABLE [37dc228e8] 2015-04-08 13:19:49 -0300
5946 Branch: REL9_1_STABLE [cf5d3f274] 2015-04-08 13:19:49 -0300
5947 Branch: REL9_0_STABLE [595bc97b5] 2015-04-08 13:19:49 -0300
5948 -->
5949
5950     <listitem>
5951      <para>
5952       Fix autovacuum launcher's possible failure to shut down, if an error
5953       occurs after it receives SIGTERM (&Aacute;lvaro Herrera)
5954      </para>
5955     </listitem>
5956
5957 <!--
5958 Author: Tom Lane <tgl@sss.pgh.pa.us>
5959 Branch: master [bc49d9324] 2015-04-03 00:07:29 -0400
5960 Branch: REL9_4_STABLE [ee0d06c0b] 2015-04-03 00:07:29 -0400
5961 -->
5962
5963     <listitem>
5964      <para>
5965       Fix failure to handle invalidation messages for system catalogs
5966       early in session startup (Tom Lane)
5967      </para>
5968
5969      <para>
5970       This oversight could result in failures in sessions that start
5971       concurrently with a <command>VACUUM FULL</> on a system catalog.
5972      </para>
5973     </listitem>
5974
5975 <!--
5976 Author: Tom Lane <tgl@sss.pgh.pa.us>
5977 Branch: master [701dcc983] 2015-03-30 13:05:27 -0400
5978 Branch: REL9_4_STABLE [2897e069c] 2015-03-30 13:05:35 -0400
5979 -->
5980
5981     <listitem>
5982      <para>
5983       Fix crash in <function>BackendIdGetTransactionIds()</> when trying
5984       to get status for a backend process that just exited (Tom Lane)
5985      </para>
5986     </listitem>
5987
5988 <!--
5989 Author: Andres Freund <andres@anarazel.de>
5990 Branch: master [bc208a5a2] 2015-02-23 16:14:14 +0100
5991 Branch: REL9_4_STABLE [89629f289] 2015-02-23 16:14:14 +0100
5992 Branch: REL9_3_STABLE [a6ddff812] 2015-02-23 16:14:15 +0100
5993 Branch: REL9_2_STABLE [c76e6dd7a] 2015-02-23 16:14:15 +0100
5994 Branch: REL9_1_STABLE [25576bee2] 2015-02-23 16:14:15 +0100
5995 Branch: REL9_0_STABLE [87b7fcc87] 2015-02-23 16:14:16 +0100
5996 -->
5997
5998     <listitem>
5999      <para>
6000       Cope with unexpected signals in <function>LockBufferForCleanup()</>
6001       (Andres Freund)
6002      </para>
6003
6004      <para>
6005       This oversight could result in spurious errors about <quote>multiple
6006       backends attempting to wait for pincount 1</>.
6007      </para>
6008     </listitem>
6009
6010 <!--
6011 Author: Tom Lane <tgl@sss.pgh.pa.us>
6012 Branch: master [08361cea2] 2015-02-15 23:26:45 -0500
6013 Branch: REL9_4_STABLE [1bf32972e] 2015-02-15 23:26:45 -0500
6014 Branch: REL9_3_STABLE [4662ba5a2] 2015-02-15 23:26:46 -0500
6015 Branch: REL9_2_STABLE [effcaa4c2] 2015-02-15 23:26:46 -0500
6016 -->
6017
6018     <listitem>
6019      <para>
6020       Fix crash when doing <literal>COPY IN</> to a table with check
6021       constraints that contain whole-row references (Tom Lane)
6022      </para>
6023
6024      <para>
6025       The known failure case only crashes in 9.4 and up, but there is very
6026       similar code in 9.3 and 9.2, so back-patch those branches as well.
6027      </para>
6028     </listitem>
6029
6030 <!--
6031 Author: Andres Freund <andres@anarazel.de>
6032 Branch: master [fd6a3f3ad] 2015-02-26 12:50:07 +0100
6033 Branch: REL9_4_STABLE [d72115112] 2015-02-26 12:50:07 +0100
6034 Branch: REL9_3_STABLE [abce8dc7d] 2015-02-26 12:50:07 +0100
6035 Branch: REL9_2_STABLE [d67076529] 2015-02-26 12:50:07 +0100
6036 Branch: REL9_1_STABLE [5c8dabecd] 2015-02-26 12:50:08 +0100
6037 Branch: REL9_0_STABLE [82e0d6eb5] 2015-02-26 12:50:08 +0100
6038 -->
6039
6040     <listitem>
6041      <para>
6042       Avoid waiting for WAL flush or synchronous replication during commit of
6043       a transaction that was read-only so far as the user is concerned
6044       (Andres Freund)
6045      </para>
6046
6047      <para>
6048       Previously, a delay could occur at commit in transactions that had
6049       written WAL due to HOT page pruning, leading to undesirable effects
6050       such as sessions getting stuck at startup if all synchronous replicas
6051       are down.  Sessions have also been observed to get stuck in catchup
6052       interrupt processing when using synchronous replication; this will fix
6053       that problem as well.
6054      </para>
6055     </listitem>
6056
6057 <!--
6058 Author: Andres Freund <andres@anarazel.de>
6059 Branch: master [87cec51d3] 2015-03-23 16:51:11 +0100
6060 Branch: REL9_4_STABLE [16be9737c] 2015-03-23 16:52:17 +0100
6061 -->
6062
6063     <listitem>
6064      <para>
6065       Avoid busy-waiting with short <literal>recovery_min_apply_delay</>
6066       values (Andres Freund)
6067      </para>
6068     </listitem>
6069
6070 <!--
6071 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6072 Branch: REL9_4_STABLE [462a2f1f0] 2015-05-13 09:53:50 +0300
6073 Branch: REL9_3_STABLE [96b676cc6] 2015-05-13 09:54:06 +0300
6074 Branch: REL9_2_STABLE [1a99d392c] 2015-05-13 10:06:52 +0300
6075 Branch: REL9_1_STABLE [f6c4a8690] 2015-05-13 10:06:47 +0300
6076 Branch: REL9_0_STABLE [bd1cfde70] 2015-05-13 10:06:38 +0300
6077 -->
6078
6079     <listitem>
6080      <para>
6081       Fix crash when manipulating hash indexes on temporary tables
6082       (Heikki Linnakangas)
6083      </para>
6084     </listitem>
6085
6086 <!--
6087 Author: Tom Lane <tgl@sss.pgh.pa.us>
6088 Branch: master [ed9cc2b5d] 2015-03-30 16:40:05 -0400
6089 Branch: REL9_4_STABLE [a6a8bf5cd] 2015-03-30 16:40:05 -0400
6090 Branch: REL9_3_STABLE [246bbf65c] 2015-03-30 16:40:05 -0400
6091 Branch: REL9_2_STABLE [f155466fe] 2015-03-30 16:40:05 -0400
6092 Branch: REL9_1_STABLE [46bfe44e8] 2015-03-30 16:40:05 -0400
6093 Branch: REL9_0_STABLE [8f3c57721] 2015-03-30 16:40:05 -0400
6094 -->
6095
6096     <listitem>
6097      <para>
6098       Fix possible failure during hash index bucket split, if other processes
6099       are modifying the index concurrently (Tom Lane)
6100      </para>
6101     </listitem>
6102
6103 <!--
6104 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6105 Branch: master [26d2c5dc8] 2015-03-12 15:34:32 +0100
6106 Branch: REL9_4_STABLE [d81072026] 2015-03-12 15:40:07 +0100
6107 -->
6108
6109     <listitem>
6110      <para>
6111       Fix memory leaks in GIN index vacuum (Heikki Linnakangas)
6112      </para>
6113     </listitem>
6114
6115 <!--
6116 Author: Tom Lane <tgl@sss.pgh.pa.us>
6117 Branch: master [e4cbfd673] 2015-03-29 15:04:09 -0400
6118 Branch: REL9_4_STABLE [f444de5e3] 2015-03-29 15:04:18 -0400
6119 Branch: REL9_3_STABLE [995a664c8] 2015-03-29 15:04:24 -0400
6120 Branch: REL9_2_STABLE [d12afe114] 2015-03-29 15:04:28 -0400
6121 Branch: REL9_1_STABLE [ab02d35e0] 2015-03-29 15:04:33 -0400
6122 Branch: REL9_0_STABLE [152c94632] 2015-03-29 15:04:38 -0400
6123 -->
6124
6125     <listitem>
6126      <para>
6127       Check for interrupts while analyzing index expressions (Jeff Janes)
6128      </para>
6129
6130      <para>
6131       <command>ANALYZE</> executes index expressions many times; if there are
6132       slow functions in such an expression, it's desirable to be able to
6133       cancel the <command>ANALYZE</> before that loop finishes.
6134      </para>
6135     </listitem>
6136
6137 <!--
6138 Author: Tom Lane <tgl@sss.pgh.pa.us>
6139 Branch: master [443fd0540] 2015-03-12 13:39:09 -0400
6140 Branch: REL9_4_STABLE [32269be59] 2015-03-12 13:39:10 -0400
6141 Branch: REL9_3_STABLE [5bdf3cf5a] 2015-03-12 13:38:49 -0400
6142 Branch: REL9_2_STABLE [590fc5d96] 2015-03-12 13:38:49 -0400
6143 Branch: REL9_1_STABLE [4a4fd2b0c] 2015-03-12 13:38:49 -0400
6144 -->
6145
6146     <listitem>
6147      <para>
6148       Ensure <structfield>tableoid</> of a foreign table is reported
6149       correctly when a <literal>READ COMMITTED</> recheck occurs after
6150       locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
6151       or <command>DELETE</> (Etsuro Fujita)
6152      </para>
6153     </listitem>
6154
6155 <!--
6156 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6157 Branch: master [cf34e373f] 2015-03-05 18:03:16 -0300
6158 Branch: REL9_4_STABLE [749977634] 2015-03-05 18:03:16 -0300
6159 Branch: REL9_3_STABLE [5cf400003] 2015-03-05 18:03:16 -0300
6160 Branch: REL9_2_STABLE [e166e6441] 2015-03-05 18:03:16 -0300
6161 Branch: REL9_1_STABLE [8167ef8e2] 2015-03-05 18:03:16 -0300
6162 Branch: REL9_0_STABLE [71b8e8e6c] 2015-03-05 18:03:16 -0300
6163 -->
6164
6165     <listitem>
6166      <para>
6167       Add the name of the target server to object description strings for
6168       foreign-server user mappings (&Aacute;lvaro Herrera)
6169      </para>
6170     </listitem>
6171
6172 <!--
6173 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6174 Branch: master [0d906798f] 2015-02-18 14:28:11 -0300
6175 Branch: REL9_4_STABLE [66463a3cf] 2015-02-18 14:28:12 -0300
6176 Branch: REL9_3_STABLE [a196e67f9] 2015-02-18 14:28:12 -0300
6177 -->
6178
6179     <listitem>
6180      <para>
6181       Include the schema name in object identity strings for conversions
6182       (&Aacute;lvaro Herrera)
6183      </para>
6184     </listitem>
6185
6186 <!--
6187 Author: Stephen Frost <sfrost@snowman.net>
6188 Branch: REL9_4_STABLE [c106f397d] 2015-05-08 19:39:52 -0400
6189 Branch: REL9_3_STABLE [3de791ee7] 2015-05-08 19:40:06 -0400
6190 Branch: REL9_2_STABLE [21cb21de2] 2015-05-08 19:40:09 -0400
6191 Branch: REL9_1_STABLE [edfef090a] 2015-05-08 19:40:11 -0400
6192 Branch: REL9_0_STABLE [c981e5999] 2015-05-08 19:40:15 -0400
6193 -->
6194
6195     <listitem>
6196      <para>
6197       Recommend setting <literal>include_realm</> to 1 when using
6198       Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
6199      </para>
6200
6201      <para>
6202       Without this, identically-named users from different realms cannot be
6203       distinguished.  For the moment this is only a documentation change, but
6204       it will become the default setting in <productname>PostgreSQL</> 9.5.
6205      </para>
6206     </listitem>
6207
6208 <!--
6209 Author: Tom Lane <tgl@sss.pgh.pa.us>
6210 Branch: master [cb66f495f] 2015-02-16 16:18:31 -0500
6211 Branch: REL9_4_STABLE [23291a796] 2015-02-16 16:17:59 -0500
6212 Branch: REL9_3_STABLE [7bc6e5954] 2015-02-16 16:18:04 -0500
6213 Branch: REL9_2_STABLE [3913b897d] 2015-02-16 16:18:08 -0500
6214 Branch: REL9_1_STABLE [2df854f84] 2015-02-16 16:18:12 -0500
6215 Branch: REL9_0_STABLE [c99ef9aff] 2015-02-16 16:18:17 -0500
6216 Author: Tom Lane <tgl@sss.pgh.pa.us>
6217 Branch: master [2e105def0] 2015-02-17 12:49:18 -0500
6218 Branch: REL9_4_STABLE [a271c9260] 2015-02-17 12:49:18 -0500
6219 Branch: REL9_3_STABLE [4ea2d2ddb] 2015-02-17 12:49:18 -0500
6220 Branch: REL9_2_STABLE [d068609b9] 2015-02-17 12:49:44 -0500
6221 Branch: REL9_1_STABLE [64e045838] 2015-02-17 12:49:46 -0500
6222 Branch: REL9_0_STABLE [e48ce4f33] 2015-02-17 12:49:18 -0500
6223 -->
6224
6225     <listitem>
6226      <para>
6227       Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
6228       IPv4-in-IPv6 addresses (Tom Lane)
6229      </para>
6230
6231      <para>
6232       This hack was added in 2003 in response to a report that some Linux
6233       kernels of the time would report IPv4 connections as having
6234       IPv4-in-IPv6 addresses.  However, the logic was accidentally broken in
6235       9.0.  The lack of any field complaints since then shows that it's not
6236       needed anymore.  Now we have reports that the broken code causes
6237       crashes on some systems, so let's just remove it rather than fix it.
6238       (Had we chosen to fix it, that would make for a subtle and potentially
6239       security-sensitive change in the effective meaning of
6240       IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
6241       thing to do in minor releases.)
6242      </para>
6243     </listitem>
6244
6245 <!--
6246 Author: Robert Haas <rhaas@postgresql.org>
6247 Branch: master [bf740ce9e] 2015-03-19 11:04:09 -0400
6248 Branch: REL9_4_STABLE [76d07a2a0] 2015-03-19 11:08:54 -0400
6249 -->
6250
6251     <listitem>
6252      <para>
6253       Fix status reporting for terminated background workers that were never
6254       actually started (Robert Haas)
6255      </para>
6256     </listitem>
6257
6258 <!--
6259 Author: Robert Haas <rhaas@postgresql.org>
6260 Branch: master [b3a5e76e1] 2015-04-02 14:38:06 -0400
6261 Branch: REL9_4_STABLE [a1f4ade01] 2015-04-02 14:39:18 -0400
6262 -->
6263
6264     <listitem>
6265      <para>
6266       After a database crash, don't restart background workers that are
6267       marked <literal>BGW_NEVER_RESTART</> (Amit Khandekar)
6268      </para>
6269     </listitem>
6270
6271 <!--
6272 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6273 Branch: master [ff16b40f8] 2015-02-06 11:26:50 +0200
6274 Branch: REL9_4_STABLE [3bc4c6942] 2015-02-06 11:27:12 +0200
6275 Branch: REL9_3_STABLE [5f0ba4abb] 2015-02-06 11:32:16 +0200
6276 Branch: REL9_2_STABLE [2af568c6b] 2015-02-06 11:32:37 +0200
6277 Branch: REL9_1_STABLE [0d36d9f2b] 2015-02-06 11:32:42 +0200
6278 -->
6279
6280     <listitem>
6281      <para>
6282       Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
6283       replication command (Heikki Linnakangas)
6284      </para>
6285
6286      <para>
6287       This avoids a possible startup failure
6288       in <application>pg_receivexlog</>.
6289      </para>
6290     </listitem>
6291
6292 <!--
6293 Author: Magnus Hagander <magnus@hagander.net>
6294 Branch: master [1a241d22a] 2015-05-07 15:04:13 +0200
6295 Branch: REL9_4_STABLE [43ed06816] 2015-05-07 15:09:21 +0200
6296 Branch: REL9_3_STABLE [ba3caee84] 2015-05-07 15:09:32 +0200
6297 Branch: REL9_2_STABLE [447e16581] 2015-05-07 15:09:42 +0200
6298 Branch: REL9_1_STABLE [b9ded1529] 2015-05-07 15:09:53 +0200
6299 Branch: REL9_0_STABLE [78ce2dc8e] 2015-05-07 15:10:01 +0200
6300 -->
6301
6302     <listitem>
6303      <para>
6304       While shutting down service on Windows, periodically send status
6305       updates to the Service Control Manager to prevent it from killing the
6306       service too soon; and ensure that <application>pg_ctl</> will wait for
6307       shutdown (Krystian Bigaj)
6308      </para>
6309     </listitem>
6310
6311 <!--
6312 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6313 Branch: master [2a3f6e368] 2015-02-23 13:34:21 +0200
6314 Branch: REL9_4_STABLE [0214a61e0] 2015-02-23 13:32:39 +0200
6315 Branch: REL9_3_STABLE [cdf813c59] 2015-02-23 13:32:42 +0200
6316 Branch: REL9_2_STABLE [22c9c8a7e] 2015-02-23 13:32:46 +0200
6317 Branch: REL9_1_STABLE [7052abbb6] 2015-02-23 13:32:50 +0200
6318 Branch: REL9_0_STABLE [8878eaaa8] 2015-02-23 13:32:53 +0200
6319 -->
6320
6321     <listitem>
6322      <para>
6323       Reduce risk of network deadlock when using <application>libpq</>'s
6324       non-blocking mode (Heikki Linnakangas)
6325      </para>
6326
6327      <para>
6328       When sending large volumes of data, it's important to drain the input
6329       buffer every so often, in case the server has sent enough response data
6330       to cause it to block on output.  (A typical scenario is that the server
6331       is sending a stream of NOTICE messages during <literal>COPY FROM
6332       STDIN</>.)  This worked properly in the normal blocking mode, but not
6333       so much in non-blocking mode.  We've modified <application>libpq</>
6334       to opportunistically drain input when it can, but a full defense
6335       against this problem requires application cooperation: the application
6336       should watch for socket read-ready as well as write-ready conditions,
6337       and be sure to call <function>PQconsumeInput()</> upon read-ready.
6338      </para>
6339     </listitem>
6340
6341 <!--
6342 Author: Tom Lane <tgl@sss.pgh.pa.us>
6343 Branch: master [b26e20814] 2015-02-21 12:59:54 -0500
6344 Branch: REL9_4_STABLE [9c15a778a] 2015-02-21 12:59:35 -0500
6345 Branch: REL9_3_STABLE [f389b6e0a] 2015-02-21 12:59:39 -0500
6346 Branch: REL9_2_STABLE [83c3115dd] 2015-02-21 12:59:43 -0500
6347 -->
6348
6349     <listitem>
6350      <para>
6351       In <application>libpq</>, fix misparsing of empty values in URI
6352       connection strings (Thomas Fanghaenel)
6353      </para>
6354     </listitem>
6355
6356 <!--
6357 Author: Michael Meskes <meskes@postgresql.org>
6358 Branch: master [1f393fc92] 2015-02-10 12:04:10 +0100
6359 Branch: REL9_4_STABLE [66c4ea8cb] 2015-02-11 10:57:02 +0100
6360 Branch: REL9_3_STABLE [1a321fea7] 2015-02-11 11:13:11 +0100
6361 Branch: REL9_2_STABLE [9be9ac425] 2015-02-11 11:14:14 +0100
6362 Branch: REL9_1_STABLE [32e633195] 2015-02-11 11:27:21 +0100
6363 Branch: REL9_0_STABLE [ce2fcc58e] 2015-02-11 11:30:11 +0100
6364 -->
6365
6366     <listitem>
6367      <para>
6368       Fix array handling in <application>ecpg</> (Michael Meskes)
6369      </para>
6370     </listitem>
6371
6372 <!--
6373 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6374 Branch: master [fcef16172] 2015-04-01 20:00:07 -0300
6375 Branch: REL9_4_STABLE [a44e54cf4] 2015-04-01 20:00:07 -0300
6376 Branch: REL9_3_STABLE [f4540cae1] 2015-04-01 20:00:07 -0300
6377 Branch: REL9_2_STABLE [d4bacdcb9] 2015-04-01 20:00:07 -0300
6378 Branch: REL9_1_STABLE [276591bc4] 2015-04-01 20:00:07 -0300
6379 Branch: REL9_0_STABLE [557fcfae3] 2015-04-01 20:00:07 -0300
6380 -->
6381
6382     <listitem>
6383      <para>
6384       Fix <application>psql</> to sanely handle URIs and conninfo strings as
6385       the first parameter to <command>\connect</>
6386       (David Fetter, Andrew Dunstan, &Aacute;lvaro Herrera)
6387      </para>
6388
6389      <para>
6390       This syntax has been accepted (but undocumented) for a long time, but
6391       previously some parameters might be taken from the old connection
6392       instead of the given string, which was agreed to be undesirable.
6393      </para>
6394     </listitem>
6395
6396 <!--
6397 Author: Tom Lane <tgl@sss.pgh.pa.us>
6398 Branch: master [df9ebf1ee] 2015-03-14 13:43:00 -0400
6399 Branch: REL9_4_STABLE [f50b5c7d0] 2015-03-14 13:43:08 -0400
6400 Branch: REL9_3_STABLE [2cb76fa6f] 2015-03-14 13:43:13 -0400
6401 Branch: REL9_2_STABLE [309ff2ad0] 2015-03-14 13:43:17 -0400
6402 Branch: REL9_1_STABLE [043fe5c5a] 2015-03-14 13:43:21 -0400
6403 Branch: REL9_0_STABLE [396ef6fd8] 2015-03-14 13:43:26 -0400
6404 -->
6405
6406     <listitem>
6407      <para>
6408       Suppress incorrect complaints from <application>psql</> on some
6409       platforms that it failed to write <filename>~/.psql_history</> at exit
6410       (Tom Lane)
6411      </para>
6412
6413      <para>
6414       This misbehavior was caused by a workaround for a bug in very old
6415       (pre-2006) versions of <application>libedit</>.  We fixed it by
6416       removing the workaround, which will cause a similar failure to appear
6417       for anyone still using such versions of <application>libedit</>.
6418       Recommendation: upgrade that library, or use <application>libreadline</>.
6419      </para>
6420     </listitem>
6421
6422 <!--
6423 Author: Tom Lane <tgl@sss.pgh.pa.us>
6424 Branch: master [9feefedf9] 2015-02-10 22:38:15 -0500
6425 Branch: REL9_4_STABLE [a592e5883] 2015-02-10 22:38:17 -0500
6426 Branch: REL9_3_STABLE [a4e871caa] 2015-02-10 22:38:20 -0500
6427 Branch: REL9_2_STABLE [2593c7039] 2015-02-10 22:38:22 -0500
6428 Branch: REL9_1_STABLE [14794f9b8] 2015-02-10 22:38:26 -0500
6429 Branch: REL9_0_STABLE [8e70f3c40] 2015-02-10 22:38:29 -0500
6430 -->
6431
6432     <listitem>
6433      <para>
6434       Fix <application>pg_dump</>'s rule for deciding which casts are
6435       system-provided casts that should not be dumped (Tom Lane)
6436      </para>
6437     </listitem>
6438
6439 <!--
6440 Author: Tom Lane <tgl@sss.pgh.pa.us>
6441 Branch: master [0e7e355f2] 2015-02-18 11:43:00 -0500
6442 Branch: REL9_4_STABLE [a75dfb73e] 2015-02-18 11:43:00 -0500
6443 Branch: REL9_3_STABLE [a7ad5cf0c] 2015-02-18 11:43:00 -0500
6444 Branch: REL9_2_STABLE [c86f8f361] 2015-02-18 11:43:00 -0500
6445 Branch: REL9_1_STABLE [b0d53b2e3] 2015-02-18 11:43:00 -0500
6446 -->
6447
6448     <listitem>
6449      <para>
6450       In <application>pg_dump</>, fix failure to honor <literal>-Z</>
6451       compression level option together with <literal>-Fd</>
6452       (Michael Paquier)
6453      </para>
6454     </listitem>
6455
6456 <!--
6457 Author: Stephen Frost <sfrost@snowman.net>
6458 Branch: master [ebd092bc2] 2015-03-02 14:12:21 -0500
6459 Branch: REL9_4_STABLE [c05fa3433] 2015-03-02 14:12:28 -0500
6460 Branch: REL9_3_STABLE [43d81f16a] 2015-03-02 14:12:33 -0500
6461 Branch: REL9_2_STABLE [d13bbfabb] 2015-03-02 14:12:38 -0500
6462 Branch: REL9_1_STABLE [dcb467b8e] 2015-03-02 14:12:43 -0500
6463 -->
6464
6465     <listitem>
6466      <para>
6467       Make <application>pg_dump</> consider foreign key relationships
6468       between extension configuration tables while choosing dump order
6469       (Gilles Darold, Michael Paquier, Stephen Frost)
6470      </para>
6471
6472      <para>
6473       This oversight could result in producing dumps that fail to reload
6474       because foreign key constraints are transiently violated.
6475      </para>
6476     </listitem>
6477
6478 <!--
6479 Author: Tom Lane <tgl@sss.pgh.pa.us>
6480 Branch: master [e3bfe6d84] 2015-03-06 13:27:46 -0500
6481 Branch: REL9_4_STABLE [629f8613f] 2015-03-06 13:27:46 -0500
6482 Branch: REL9_3_STABLE [d645273cf] 2015-03-06 13:27:46 -0500
6483 -->
6484
6485     <listitem>
6486      <para>
6487       Avoid possible <application>pg_dump</> failure when concurrent sessions
6488       are creating and dropping temporary functions (Tom Lane)
6489      </para>
6490     </listitem>
6491
6492 <!--
6493 Author: Tom Lane <tgl@sss.pgh.pa.us>
6494 Branch: master [e9f1c01b7] 2015-02-25 12:01:12 -0500
6495 Branch: REL9_4_STABLE [2164a0de2] 2015-02-25 12:01:12 -0500
6496 Branch: REL9_3_STABLE [f864fe074] 2015-02-25 12:01:12 -0500
6497 Branch: REL9_2_STABLE [be8801e9c] 2015-02-25 12:01:12 -0500
6498 Branch: REL9_1_STABLE [f7b41902a] 2015-02-25 12:01:12 -0500
6499 Branch: REL9_0_STABLE [7a501bcbf] 2015-02-25 12:01:12 -0500
6500 -->
6501
6502     <listitem>
6503      <para>
6504       Fix dumping of views that are just <literal>VALUES(...)</> but have
6505       column aliases (Tom Lane)
6506      </para>
6507     </listitem>
6508
6509 <!--
6510 Author: Bruce Momjian <bruce@momjian.us>
6511 Branch: master [b2f95c34f] 2015-05-01 13:03:23 -0400
6512 Branch: REL9_4_STABLE [70fac4844] 2015-05-01 13:03:23 -0400
6513 -->
6514
6515     <listitem>
6516      <para>
6517       Ensure that a view's replication identity is correctly set
6518       to <literal>nothing</> during dump/restore (Marko Tiikkaja)
6519      </para>
6520
6521      <para>
6522       Previously, if the view was involved in a circular dependency,
6523       it might wind up with an incorrect replication identity property.
6524      </para>
6525     </listitem>
6526
6527 <!--
6528 Author: Bruce Momjian <bruce@momjian.us>
6529 Branch: master [4c5e06004] 2015-05-16 00:40:18 -0400
6530 Branch: REL9_4_STABLE [387a3e46c] 2015-05-16 00:40:18 -0400
6531 Branch: REL9_3_STABLE [bffbeec0c] 2015-05-16 00:40:18 -0400
6532 Branch: REL9_2_STABLE [affc04d16] 2015-05-16 00:40:18 -0400
6533 Branch: REL9_1_STABLE [acd75b264] 2015-05-16 00:40:18 -0400
6534 Branch: REL9_0_STABLE [df161c94e] 2015-05-16 00:40:18 -0400
6535 Author: Bruce Momjian <bruce@momjian.us>
6536 Branch: REL9_4_STABLE [5f6539635] 2015-05-16 15:16:28 -0400
6537 Branch: REL9_3_STABLE [4e9935979] 2015-05-16 15:16:28 -0400
6538 -->
6539
6540     <listitem>
6541      <para>
6542       In <application>pg_upgrade</>, force timeline 1 in the new cluster
6543       (Bruce Momjian)
6544      </para>
6545
6546      <para>
6547       This change prevents upgrade failures caused by bogus complaints about
6548       missing WAL history files.
6549      </para>
6550     </listitem>
6551
6552 <!--
6553 Author: Bruce Momjian <bruce@momjian.us>
6554 Branch: master [fb694d959] 2015-05-16 00:10:03 -0400
6555 Branch: REL9_4_STABLE [31f5d3f35] 2015-05-16 00:10:03 -0400
6556 Branch: REL9_3_STABLE [4cfba5369] 2015-05-16 00:10:03 -0400
6557 Branch: REL9_2_STABLE [2a55e7134] 2015-05-16 00:10:03 -0400
6558 Branch: REL9_1_STABLE [321db7123] 2015-05-16 00:10:03 -0400
6559 Branch: REL9_0_STABLE [2194aa92b] 2015-05-16 00:10:03 -0400
6560 -->
6561
6562     <listitem>
6563      <para>
6564       In <application>pg_upgrade</>, check for improperly non-connectable
6565       databases before proceeding
6566       (Bruce Momjian)
6567      </para>
6568     </listitem>
6569
6570 <!--
6571 Author: Bruce Momjian <bruce@momjian.us>
6572 Branch: master [056764b10] 2015-02-11 22:06:04 -0500
6573 Branch: REL9_4_STABLE [5eef3c61e] 2015-02-11 22:06:04 -0500
6574 Branch: REL9_3_STABLE [9ecd51da7] 2015-02-11 22:06:04 -0500
6575 Branch: REL9_2_STABLE [66f5217f5] 2015-02-11 22:06:04 -0500
6576 Branch: REL9_1_STABLE [08aaae40e] 2015-02-11 22:06:04 -0500
6577 Branch: REL9_0_STABLE [4ae178f60] 2015-02-11 22:06:04 -0500
6578 -->
6579
6580     <listitem>
6581      <para>
6582       In <application>pg_upgrade</>, quote directory paths
6583       properly in the generated <literal>delete_old_cluster</> script
6584       (Bruce Momjian)
6585      </para>
6586     </listitem>
6587
6588 <!--
6589 Author: Bruce Momjian <bruce@momjian.us>
6590 Branch: master [866f3017a] 2015-02-11 21:02:44 -0500
6591 Branch: REL9_4_STABLE [c7bc5be11] 2015-02-11 21:02:36 -0500
6592 Branch: REL9_3_STABLE [e20523f8f] 2015-02-11 21:02:28 -0500
6593 Branch: REL9_2_STABLE [d99cf27b7] 2015-02-11 21:02:12 -0500
6594 Branch: REL9_1_STABLE [55179b03e] 2015-02-11 21:02:07 -0500
6595 Branch: REL9_0_STABLE [85dac37ee] 2015-02-11 21:02:06 -0500
6596 -->
6597
6598     <listitem>
6599      <para>
6600       In <application>pg_upgrade</>, preserve database-level freezing info
6601       properly
6602       (Bruce Momjian)
6603      </para>
6604
6605      <para>
6606       This oversight could cause missing-clog-file errors for tables within
6607       the <literal>postgres</> and <literal>template1</> databases.
6608      </para>
6609     </listitem>
6610
6611 <!--
6612 Author: Andrew Dunstan <andrew@dunslane.net>
6613 Branch: master [fa1e5afa8] 2015-03-30 17:07:52 -0400
6614 Branch: REL9_4_STABLE [2366761bf] 2015-03-30 17:16:57 -0400
6615 Branch: REL9_3_STABLE [0904eb3e1] 2015-03-30 17:17:17 -0400
6616 Branch: REL9_2_STABLE [948566313] 2015-03-30 17:17:39 -0400
6617 Branch: REL9_1_STABLE [22b3f5b26] 2015-03-30 17:17:54 -0400
6618 Branch: REL9_0_STABLE [bf22a8e58] 2015-03-30 17:18:10 -0400
6619 -->
6620
6621     <listitem>
6622      <para>
6623       Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
6624       restricted privileges on Windows, so that they don't fail when run by
6625       an administrator (Muhammad Asif Naeem)
6626      </para>
6627     </listitem>
6628
6629 <!--
6630 Author: Robert Haas <rhaas@postgresql.org>
6631 Branch: master [5d6c2405f] 2015-02-17 10:19:30 -0500
6632 Branch: REL9_4_STABLE [5e49c98e0] 2015-02-17 10:50:49 -0500
6633 Branch: REL9_3_STABLE [9a90ec9cf] 2015-02-17 10:54:29 -0500
6634 Author: Robert Haas <rhaas@postgresql.org>
6635 Branch: REL9_2_STABLE [319406c2a] 2015-02-17 11:02:46 -0500
6636 Branch: REL9_1_STABLE [d7d294f59] 2015-02-17 11:08:40 -0500
6637 -->
6638
6639     <listitem>
6640      <para>
6641       Improve handling of <function>readdir()</> failures when scanning
6642       directories in <application>initdb</> and <application>pg_basebackup</>
6643       (Marco Nenciarini)
6644      </para>
6645     </listitem>
6646
6647 <!--
6648 Author: Tom Lane <tgl@sss.pgh.pa.us>
6649 Branch: master [8d1f23900] 2015-03-15 23:22:03 -0400
6650 Branch: REL9_4_STABLE [904e8b627] 2015-03-15 23:22:03 -0400
6651 Branch: REL9_3_STABLE [83587a075] 2015-03-15 23:22:03 -0400
6652 Branch: REL9_2_STABLE [8582ae7aa] 2015-03-15 23:22:03 -0400
6653 Branch: REL9_1_STABLE [9288645b5] 2015-03-15 23:22:03 -0400
6654 Branch: REL9_0_STABLE [40b0c10b7] 2015-03-15 23:22:03 -0400
6655 -->
6656
6657     <listitem>
6658      <para>
6659       Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
6660      </para>
6661     </listitem>
6662
6663 <!--
6664 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6665 Branch: master [33e879c4e] 2015-02-13 23:56:25 +0200
6666 Branch: REL9_4_STABLE [56a23a83f] 2015-02-13 23:56:57 +0200
6667 Branch: REL9_3_STABLE [6ef5d894a] 2015-02-13 23:57:05 +0200
6668 Branch: REL9_2_STABLE [a0d84da1d] 2015-02-13 23:57:25 +0200
6669 Branch: REL9_1_STABLE [ebdc2e1e2] 2015-02-13 23:57:28 +0200
6670 Branch: REL9_0_STABLE [61165fae0] 2015-02-13 23:57:35 +0200
6671 -->
6672
6673     <listitem>
6674      <para>
6675       Fix compile failure on Sparc V8 machines (Rob Rowan)
6676      </para>
6677     </listitem>
6678
6679 <!--
6680 Author: Tom Lane <tgl@sss.pgh.pa.us>
6681 Branch: master [91f4a5a97] 2015-03-14 14:08:45 -0400
6682 Branch: REL9_4_STABLE [c415c13b7] 2015-03-14 14:08:45 -0400
6683 Author: Tom Lane <tgl@sss.pgh.pa.us>
6684 Branch: master [73b416b2e] 2015-04-05 13:01:59 -0400
6685 Branch: REL9_4_STABLE [8972a152c] 2015-04-05 13:01:55 -0400
6686 Branch: REL9_3_STABLE [6347bdb31] 2015-04-05 13:01:55 -0400
6687 -->
6688
6689     <listitem>
6690      <para>
6691       Silence some build warnings on macOS (Tom Lane)
6692      </para>
6693     </listitem>
6694
6695 <!--
6696 Author: Tom Lane <tgl@sss.pgh.pa.us>
6697 Branch: master [9d366c1f3] 2015-05-15 19:35:29 -0400
6698 Branch: REL9_4_STABLE [d0ddcf62e] 2015-05-15 19:35:51 -0400
6699 Branch: REL9_3_STABLE [4fd69e412] 2015-05-15 19:35:58 -0400
6700 Branch: REL9_2_STABLE [2a63434f0] 2015-05-15 19:36:06 -0400
6701 Branch: REL9_1_STABLE [436f35609] 2015-05-15 19:36:13 -0400
6702 Branch: REL9_0_STABLE [3c3749a3b] 2015-05-15 19:36:20 -0400
6703 -->
6704
6705     <listitem>
6706      <para>
6707       Update time zone data files to <application>tzdata</> release 2015d
6708       for DST law changes in Egypt, Mongolia, and Palestine, plus historical
6709       changes in Canada and Chile.  Also adopt revised zone abbreviations for
6710       the America/Adak zone (HST/HDT not HAST/HADT).
6711      </para>
6712     </listitem>
6713
6714    </itemizedlist>
6715
6716   </sect2>
6717  </sect1>
6718
6719  <sect1 id="release-9-4-1">
6720   <title>Release 9.4.1</title>
6721
6722   <note>
6723   <title>Release Date</title>
6724   <simpara>2015-02-05</simpara>
6725   </note>
6726
6727   <para>
6728    This release contains a variety of fixes from 9.4.0.
6729    For information about new features in the 9.4 major release, see
6730    <xref linkend="release-9-4">.
6731   </para>
6732
6733   <sect2>
6734    <title>Migration to Version 9.4.1</title>
6735
6736    <para>
6737     A dump/restore is not required for those running 9.4.X.
6738    </para>
6739
6740    <para>
6741     However, if you are a Windows user and are using the <quote>Norwegian
6742     (Bokm&aring;l)</> locale, manual action is needed after the upgrade to
6743     replace any <quote>Norwegian (Bokm&aring;l)_Norway</>
6744     or <quote>norwegian-bokmal</> locale names stored
6745     in <productname>PostgreSQL</> system catalogs with the plain-ASCII
6746     alias <quote>Norwegian_Norway</>.  For details see
6747     <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
6748    </para>
6749   </sect2>
6750
6751   <sect2>
6752    <title>Changes</title>
6753
6754    <itemizedlist>
6755
6756 <!--
6757 Author: Bruce Momjian <bruce@momjian.us>
6758 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
6759 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
6760 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
6761 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
6762 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
6763 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
6764 Author: Bruce Momjian <bruce@momjian.us>
6765 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
6766 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
6767 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
6768 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
6769 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
6770 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
6771 -->
6772
6773     <listitem>
6774      <para>
6775       Fix buffer overruns in <function>to_char()</>
6776       (Bruce Momjian)
6777      </para>
6778
6779      <para>
6780       When <function>to_char()</> processes a numeric formatting template
6781       calling for a large number of digits, <productname>PostgreSQL</>
6782       would read past the end of a buffer.  When processing a crafted
6783       timestamp formatting template, <productname>PostgreSQL</> would write
6784       past the end of a buffer.  Either case could crash the server.
6785       We have not ruled out the possibility of attacks that lead to
6786       privilege escalation, though they seem unlikely.
6787       (CVE-2015-0241)
6788      </para>
6789     </listitem>
6790
6791 <!--
6792 Author: Bruce Momjian <bruce@momjian.us>
6793 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
6794 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
6795 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
6796 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
6797 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
6798 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
6799 -->
6800
6801     <listitem>
6802      <para>
6803       Fix buffer overrun in replacement <function>*printf()</> functions
6804       (Tom Lane)
6805      </para>
6806
6807      <para>
6808       <productname>PostgreSQL</> includes a replacement implementation
6809       of <function>printf</> and related functions.  This code will overrun
6810       a stack buffer when formatting a floating point number (conversion
6811       specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
6812       <literal>g</> or <literal>G</>) with requested precision greater than
6813       about 500.  This will crash the server, and we have not ruled out the
6814       possibility of attacks that lead to privilege escalation.
6815       A database user can trigger such a buffer overrun through
6816       the <function>to_char()</> SQL function.  While that is the only
6817       affected core <productname>PostgreSQL</> functionality, extension
6818       modules that use printf-family functions may be at risk as well.
6819      </para>
6820
6821      <para>
6822       This issue primarily affects <productname>PostgreSQL</> on Windows.
6823       <productname>PostgreSQL</> uses the system implementation of these
6824       functions where adequate, which it is on other modern platforms.
6825       (CVE-2015-0242)
6826      </para>
6827     </listitem>
6828
6829 <!--
6830 Author: Noah Misch <noah@leadboat.com>
6831 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
6832 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
6833 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
6834 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
6835 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
6836 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
6837 Author: Noah Misch <noah@leadboat.com>
6838 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
6839 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
6840 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
6841 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
6842 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
6843 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
6844 -->
6845
6846     <listitem>
6847      <para>
6848       Fix buffer overruns in <filename>contrib/pgcrypto</>
6849       (Marko Tiikkaja, Noah Misch)
6850      </para>
6851
6852      <para>
6853       Errors in memory size tracking within the <filename>pgcrypto</>
6854       module permitted stack buffer overruns and improper dependence on the
6855       contents of uninitialized memory.  The buffer overrun cases can
6856       crash the server, and we have not ruled out the possibility of
6857       attacks that lead to privilege escalation.
6858       (CVE-2015-0243)
6859      </para>
6860     </listitem>
6861
6862 <!--
6863 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6864 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
6865 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
6866 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
6867 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
6868 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
6869 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
6870 -->
6871
6872     <listitem>
6873      <para>
6874       Fix possible loss of frontend/backend protocol synchronization after
6875       an error
6876       (Heikki Linnakangas)
6877      </para>
6878
6879      <para>
6880       If any error occurred while the server was in the middle of reading a
6881       protocol message from the client, it could lose synchronization and
6882       incorrectly try to interpret part of the message's data as a new
6883       protocol message.  An attacker able to submit crafted binary data
6884       within a command parameter might succeed in injecting his own SQL
6885       commands this way.  Statement timeout and query cancellation are the
6886       most likely sources of errors triggering this scenario.  Particularly
6887       vulnerable are applications that use a timeout and also submit
6888       arbitrary user-crafted data as binary query parameters.  Disabling
6889       statement timeout will reduce, but not eliminate, the risk of
6890       exploit.  Our thanks to Emil Lenngren for reporting this issue.
6891       (CVE-2015-0244)
6892      </para>
6893     </listitem>
6894
6895 <!--
6896 Author: Stephen Frost <sfrost@snowman.net>
6897 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
6898 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
6899 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
6900 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
6901 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
6902 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
6903 -->
6904
6905     <listitem>
6906      <para>
6907       Fix information leak via constraint-violation error messages
6908       (Stephen Frost)
6909      </para>
6910
6911      <para>
6912       Some server error messages show the values of columns that violate
6913       a constraint, such as a unique constraint.  If the user does not have
6914       <literal>SELECT</> privilege on all columns of the table, this could
6915       mean exposing values that the user should not be able to see.  Adjust
6916       the code so that values are displayed only when they came from the SQL
6917       command or could be selected by the user.
6918       (CVE-2014-8161)
6919      </para>
6920     </listitem>
6921
6922 <!--
6923 Author: Noah Misch <noah@leadboat.com>
6924 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
6925 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
6926 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
6927 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
6928 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
6929 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
6930 -->
6931
6932     <listitem>
6933      <para>
6934       Lock down regression testing's temporary installations on Windows
6935       (Noah Misch)
6936      </para>
6937
6938      <para>
6939       Use SSPI authentication to allow connections only from the OS user
6940       who launched the test suite.  This closes on Windows the same
6941       vulnerability previously closed on other platforms, namely that other
6942       users might be able to connect to the test postmaster.
6943       (CVE-2014-0067)
6944      </para>
6945     </listitem>
6946
6947 <!--
6948 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6949 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
6950 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
6951 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6952 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
6953 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
6954 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6955 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
6956 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
6957 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
6958 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
6959 -->
6960
6961     <listitem>
6962      <para>
6963       Cope with the Windows locale named <quote>Norwegian (Bokm&aring;l)</>
6964       (Heikki Linnakangas)
6965      </para>
6966
6967      <para>
6968       Non-ASCII locale names are problematic since it's not clear what
6969       encoding they should be represented in.  Map the troublesome locale
6970       name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
6971      </para>
6972
6973      <para>
6974       9.4.0 mapped the troublesome name to <quote>norwegian-bokmal</>,
6975       but that turns out not to work on all Windows configurations.
6976       <quote>Norwegian_Norway</> is now recommended instead.
6977      </para>
6978     </listitem>
6979
6980 <!--
6981 Author: Tom Lane <tgl@sss.pgh.pa.us>
6982 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
6983 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
6984 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
6985 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
6986 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
6987 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
6988 -->
6989
6990     <listitem>
6991      <para>
6992       Fix use-of-already-freed-memory problem in EvalPlanQual processing
6993       (Tom Lane)
6994      </para>
6995
6996      <para>
6997       In <literal>READ COMMITTED</> mode, queries that lock or update
6998       recently-updated rows could crash as a result of this bug.
6999      </para>
7000     </listitem>
7001
7002 <!--
7003 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7004 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
7005 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
7006 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
7007 -->
7008
7009     <listitem>
7010      <para>
7011       Avoid possible deadlock while trying to acquire tuple locks
7012       in EvalPlanQual processing (&Aacute;lvaro Herrera, Mark Kirkwood)
7013      </para>
7014     </listitem>
7015
7016 <!--
7017 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7018 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
7019 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
7020 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
7021 -->
7022
7023     <listitem>
7024      <para>
7025       Fix failure to wait when a transaction tries to acquire a <literal>FOR
7026       NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
7027       currently hold <literal>FOR SHARE</> locks (&Aacute;lvaro Herrera)
7028      </para>
7029     </listitem>
7030
7031 <!--
7032 Author: Tom Lane <tgl@sss.pgh.pa.us>
7033 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
7034 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
7035 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
7036 -->
7037
7038     <listitem>
7039      <para>
7040       Improve performance of <command>EXPLAIN</> with large range tables
7041       (Tom Lane)
7042      </para>
7043     </listitem>
7044
7045 <!--
7046 Author: Tom Lane <tgl@sss.pgh.pa.us>
7047 Branch: master [451d28081] 2015-01-30 14:44:56 -0500
7048 Branch: REL9_4_STABLE [4cbf390d5] 2015-01-30 14:44:49 -0500
7049 -->
7050
7051     <listitem>
7052      <para>
7053       Fix <type>jsonb</> Unicode escape processing, and in consequence
7054       disallow <literal>\u0000</> (Tom Lane)
7055      </para>
7056
7057      <para>
7058       Previously, the JSON Unicode escape <literal>\u0000</> was accepted
7059       and was stored as those six characters; but that is indistinguishable
7060       from what is stored for the input <literal>\\u0000</>, resulting in
7061       ambiguity.  Moreover, in cases where de-escaped textual output is
7062       expected, such as the <literal>-&gt;&gt;</> operator, the sequence was
7063       printed as <literal>\u0000</>, which does not meet the expectation
7064       that JSON escaping would be removed.  (Consistent behavior would
7065       require emitting a zero byte, but <productname>PostgreSQL</> does not
7066       support zero bytes embedded in text strings.)  9.4.0 included an
7067       ill-advised attempt to improve this situation by adjusting JSON output
7068       conversion rules; but of course that could not fix the fundamental
7069       ambiguity, and it turned out to break other usages of Unicode escape
7070       sequences.  Revert that, and to avoid the core problem,
7071       reject <literal>\u0000</> in <type>jsonb</> input.
7072      </para>
7073
7074      <para>
7075       If a <type>jsonb</> column contains a <literal>\u0000</> value stored
7076       with 9.4.0, it will henceforth read out as though it
7077       were <literal>\\u0000</>, which is the other valid interpretation of
7078       the data stored by 9.4.0 for this case.
7079      </para>
7080
7081      <para>
7082       The <type>json</> type did not have the storage-ambiguity problem, but
7083       it did have the problem of inconsistent de-escaped textual output.
7084       Therefore <literal>\u0000</> will now also be rejected
7085       in <type>json</> values when conversion to de-escaped form is
7086       required.  This change does not break the ability to
7087       store <literal>\u0000</> in <type>json</> columns so long as no
7088       processing is done on the values.  This is exactly parallel to the
7089       cases in which non-ASCII Unicode escapes are allowed when the database
7090       encoding is not UTF8.
7091      </para>
7092     </listitem>
7093
7094 <!--
7095 Author: Peter Eisentraut <peter_e@gmx.net>
7096 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
7097 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
7098 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
7099 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
7100 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
7101 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
7102 -->
7103
7104     <listitem>
7105      <para>
7106       Fix namespace handling in <function>xpath()</> (Ali Akbar)
7107      </para>
7108
7109      <para>
7110       Previously, the <type>xml</> value resulting from
7111       an <function>xpath()</> call would not have namespace declarations if
7112       the namespace declarations were attached to an ancestor element in the
7113       input <type>xml</> value, rather than to the specific element being
7114       returned.  Propagate the ancestral declaration so that the result is
7115       correct when considered in isolation.
7116      </para>
7117     </listitem>
7118
7119 <!--
7120 Author: Tom Lane <tgl@sss.pgh.pa.us>
7121 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
7122 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
7123 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
7124 -->
7125
7126     <listitem>
7127      <para>
7128       Fix assorted oversights in range-operator selectivity estimation
7129       (Emre Hasegeli)
7130      </para>
7131
7132      <para>
7133       This patch fixes corner-case <quote>unexpected operator NNNN</> planner
7134       errors, and improves the selectivity estimates for some other cases.
7135      </para>
7136     </listitem>
7137
7138 <!--
7139 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7140 Branch: master [930fd6845] 2014-12-30 14:53:11 +0200
7141 Branch: REL9_4_STABLE [4e241f7cd] 2014-12-30 14:53:03 +0200
7142 -->
7143
7144     <listitem>
7145      <para>
7146       Revert unintended reduction in maximum size of a GIN index item
7147       (Heikki Linnakangas)
7148      </para>
7149
7150      <para>
7151       9.4.0 could fail with <quote>index row size exceeds maximum</> errors
7152       for data that previous versions would accept.
7153      </para>
7154     </listitem>
7155
7156 <!--
7157 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7158 Branch: master [68fa75f31] 2015-01-30 17:58:23 +0100
7159 Branch: REL9_4_STABLE [dc40ca696] 2015-01-30 17:59:17 +0100
7160 -->
7161
7162     <listitem>
7163      <para>
7164       Fix query-duration memory leak during repeated GIN index rescans
7165       (Heikki Linnakangas)
7166      </para>
7167     </listitem>
7168
7169 <!--
7170 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7171 Branch: master [31ed42b9a] 2015-01-29 19:35:55 +0200
7172 Branch: REL9_4_STABLE [28a37deab] 2015-01-29 19:37:29 +0200
7173 Branch: REL9_3_STABLE [1c2774f37] 2015-01-29 19:37:27 +0200
7174 Branch: REL9_2_STABLE [61729e99d] 2015-01-29 19:37:25 +0200
7175 Branch: REL9_1_STABLE [37e0f13f2] 2015-01-29 19:37:22 +0200
7176 -->
7177
7178     <listitem>
7179      <para>
7180       Fix possible crash when using
7181       nonzero <varname>gin_fuzzy_search_limit</> (Heikki Linnakangas)
7182      </para>
7183     </listitem>
7184
7185 <!--
7186 Author: Andres Freund <andres@anarazel.de>
7187 Branch: master [3fabed070] 2015-01-07 00:19:37 +0100
7188 Branch: REL9_4_STABLE [7da102154] 2015-01-07 00:24:58 +0100
7189 Author: Andres Freund <andres@anarazel.de>
7190 Branch: master [31912d01d] 2015-01-07 00:18:00 +0100
7191 Branch: REL9_4_STABLE [84911ff51] 2015-01-07 00:24:47 +0100
7192 -->
7193
7194     <listitem>
7195      <para>
7196       Assorted fixes for logical decoding (Andres Freund)
7197      </para>
7198     </listitem>
7199
7200 <!--
7201 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7202 Branch: master [49b04188f] 2015-01-15 20:52:41 +0200
7203 Branch: REL9_4_STABLE [b337d9657] 2015-01-15 20:52:18 +0200
7204 -->
7205
7206     <listitem>
7207      <para>
7208       Fix incorrect replay of WAL parameter change records that report
7209       changes in the <varname>wal_log_hints</> setting (Petr Jelinek)
7210      </para>
7211     </listitem>
7212
7213 <!--
7214 Author: Tom Lane <tgl@sss.pgh.pa.us>
7215 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
7216 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
7217 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
7218 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
7219 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
7220 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
7221 -->
7222
7223     <listitem>
7224      <para>
7225       Change <quote>pgstat wait timeout</> warning message to be LOG level,
7226       and rephrase it to be more understandable (Tom Lane)
7227      </para>
7228
7229      <para>
7230       This message was originally thought to be essentially a can't-happen
7231       case, but it occurs often enough on our slower buildfarm members to be
7232       a nuisance.  Reduce it to LOG level, and expend a bit more effort on
7233       the wording: it now reads <quote>using stale statistics instead of
7234       current ones because stats collector is not responding</>.
7235      </para>
7236     </listitem>
7237
7238 <!--
7239 Author: Noah Misch <noah@leadboat.com>
7240 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
7241 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
7242 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
7243 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
7244 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
7245 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
7246 -->
7247
7248     <listitem>
7249      <para>
7250       Warn if macOS's <function>setlocale()</> starts an unwanted extra
7251       thread inside the postmaster (Noah Misch)
7252      </para>
7253     </listitem>
7254
7255 <!--
7256 Author: Tom Lane <tgl@sss.pgh.pa.us>
7257 Branch: master [080eabe2e] 2015-01-11 12:35:44 -0500
7258 Branch: REL9_4_STABLE [733728ff3] 2015-01-11 12:35:47 -0500
7259 -->
7260
7261     <listitem>
7262      <para>
7263       Fix <application>libpq</>'s behavior when <filename>/etc/passwd</>
7264       isn't readable (Tom Lane)
7265      </para>
7266
7267      <para>
7268       While doing <function>PQsetdbLogin()</>, <application>libpq</>
7269       attempts to ascertain the user's operating system name, which on most
7270       Unix platforms involves reading <filename>/etc/passwd</>.  As of 9.4,
7271       failure to do that was treated as a hard error.  Restore the previous
7272       behavior, which was to fail only if the application does not provide a
7273       database role name to connect as.  This supports operation in chroot
7274       environments that lack an <filename>/etc/passwd</> file.
7275      </para>
7276     </listitem>
7277
7278 <!--
7279 Author: Tom Lane <tgl@sss.pgh.pa.us>
7280 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
7281 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
7282 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
7283 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
7284 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
7285 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
7286 -->
7287
7288     <listitem>
7289      <para>
7290       Improve consistency of parsing of <application>psql</>'s special
7291       variables (Tom Lane)
7292      </para>
7293
7294      <para>
7295       Allow variant spellings of <literal>on</> and <literal>off</> (such
7296       as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
7297       and <literal>ON_ERROR_ROLLBACK</>.  Report a warning for unrecognized
7298       values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
7299       <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
7300       <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>.  Recognize
7301       all values for all these variables case-insensitively; previously
7302       there was a mishmash of case-sensitive and case-insensitive behaviors.
7303      </para>
7304     </listitem>
7305
7306 <!--
7307 Author: Tom Lane <tgl@sss.pgh.pa.us>
7308 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
7309 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
7310 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
7311 -->
7312
7313     <listitem>
7314      <para>
7315       Fix <application>pg_dump</> to handle comments on event triggers
7316       without failing (Tom Lane)
7317      </para>
7318     </listitem>
7319
7320 <!--
7321 Author: Kevin Grittner <kgrittn@postgresql.org>
7322 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
7323 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
7324 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
7325 -->
7326
7327     <listitem>
7328      <para>
7329       Allow parallel <application>pg_dump</> to
7330       use <option>--serializable-deferrable</> (Kevin Grittner)
7331      </para>
7332     </listitem>
7333
7334 <!--
7335 Author: Andres Freund <andres@anarazel.de>
7336 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
7337 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
7338 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
7339 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
7340 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
7341 -->
7342
7343     <listitem>
7344      <para>
7345       Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
7346       being archived again when the standby is promoted (Andres Freund)
7347      </para>
7348     </listitem>
7349
7350 <!--
7351 Author: Tom Lane <tgl@sss.pgh.pa.us>
7352 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
7353 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
7354 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
7355 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
7356 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
7357 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
7358 -->
7359
7360     <listitem>
7361      <para>
7362       Handle unexpected query results, especially NULLs, safely in
7363       <filename>contrib/tablefunc</>'s <function>connectby()</>
7364       (Michael Paquier)
7365      </para>
7366
7367      <para>
7368       <function>connectby()</> previously crashed if it encountered a NULL
7369       key value.  It now prints that row but doesn't recurse further.
7370      </para>
7371     </listitem>
7372
7373 <!--
7374 Author: Tom Lane <tgl@sss.pgh.pa.us>
7375 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
7376 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
7377 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
7378 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
7379 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
7380 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
7381 Author: Tom Lane <tgl@sss.pgh.pa.us>
7382 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
7383 Author: Robert Haas <rhaas@postgresql.org>
7384 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
7385 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
7386 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
7387 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
7388 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
7389 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
7390 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7391 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
7392 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
7393 Author: Andres Freund <andres@anarazel.de>
7394 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
7395 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
7396 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
7397 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
7398 Author: Andres Freund <andres@anarazel.de>
7399 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
7400 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
7401 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
7402 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
7403 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
7404 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
7405 Author: Andres Freund <andres@anarazel.de>
7406 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
7407 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
7408 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
7409 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
7410 Author: Tatsuo Ishii <ishii@postgresql.org>
7411 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
7412 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
7413 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
7414 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
7415 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
7416 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
7417 Author: Tom Lane <tgl@sss.pgh.pa.us>
7418 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
7419 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
7420 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
7421 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
7422 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
7423 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
7424 Author: Tom Lane <tgl@sss.pgh.pa.us>
7425 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
7426 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
7427 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
7428 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
7429 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
7430 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
7431 Author: Tom Lane <tgl@sss.pgh.pa.us>
7432 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
7433 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
7434 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
7435 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
7436 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
7437 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
7438 -->
7439
7440     <listitem>
7441      <para>
7442       Numerous cleanups of warnings from Coverity static code analyzer
7443       (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
7444      </para>
7445
7446      <para>
7447       These changes are mostly cosmetic but in some cases fix corner-case
7448       bugs, for example a crash rather than a proper error report after an
7449       out-of-memory failure.  None are believed to represent security
7450       issues.
7451      </para>
7452     </listitem>
7453
7454 <!--
7455 Author: Tom Lane <tgl@sss.pgh.pa.us>
7456 Branch: master [85a2a8903] 2015-01-14 11:08:13 -0500
7457 Branch: REL9_4_STABLE [adb355106] 2015-01-14 11:08:17 -0500
7458 -->
7459
7460     <listitem>
7461      <para>
7462       Allow <varname>CFLAGS</> from <application>configure</>'s environment
7463       to override automatically-supplied <varname>CFLAGS</> (Tom Lane)
7464      </para>
7465
7466      <para>
7467       Previously, <application>configure</> would add any switches that it
7468       chose of its own accord to the end of the
7469       user-specified <varname>CFLAGS</> string.  Since most compilers
7470       process switches left-to-right, this meant that configure's choices
7471       would override the user-specified flags in case of conflicts.  That
7472       should work the other way around, so adjust the logic to put the
7473       user's string at the end not the beginning.
7474      </para>
7475     </listitem>
7476
7477 <!--
7478 Author: Tom Lane <tgl@sss.pgh.pa.us>
7479 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
7480 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
7481 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
7482 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
7483 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
7484 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
7485 -->
7486
7487     <listitem>
7488      <para>
7489       Make <application>pg_regress</> remove any temporary installation it
7490       created upon successful exit (Tom Lane)
7491      </para>
7492
7493      <para>
7494       This results in a very substantial reduction in disk space usage
7495       during <literal>make check-world</>, since that sequence involves
7496       creation of numerous temporary installations.
7497      </para>
7498     </listitem>
7499
7500 <!--
7501 Author: Tom Lane <tgl@sss.pgh.pa.us>
7502 Branch: master [5b89473d8] 2014-12-24 16:35:23 -0500
7503 Branch: REL9_4_STABLE [068024719] 2014-12-24 16:35:34 -0500
7504 -->
7505
7506     <listitem>
7507      <para>
7508       Add CST (China Standard Time) to our lists of timezone abbreviations
7509       (Tom Lane)
7510      </para>
7511     </listitem>
7512
7513 <!--
7514 Author: Tom Lane <tgl@sss.pgh.pa.us>
7515 Branch: master [08bd0c581] 2015-01-30 22:45:44 -0500
7516 Branch: REL9_4_STABLE [c2b06ab17] 2015-01-30 22:45:58 -0500
7517 -->
7518
7519     <listitem>
7520      <para>
7521       Update time zone data files to <application>tzdata</> release 2015a
7522       for DST law changes in Chile and Mexico, plus historical changes in
7523       Iceland.
7524      </para>
7525     </listitem>
7526
7527    </itemizedlist>
7528
7529   </sect2>
7530  </sect1>
7531
7532  <sect1 id="release-9-4">
7533   <title>Release 9.4</title>
7534
7535   <note>
7536    <title>Release Date</title>
7537    <simpara>2014-12-18</simpara>
7538   </note>
7539
7540   <sect2>
7541    <title>Overview</title>
7542
7543    <para>
7544     Major enhancements in <productname>PostgreSQL</> 9.4 include:
7545    </para>
7546
7547    <!-- This list duplicates items below, but without authors or details-->
7548
7549    <itemizedlist>
7550
7551      <listitem>
7552       <para>
7553        Add <link linkend="datatype-json"><type>jsonb</></link>, a more
7554        capable and efficient data type for storing <acronym>JSON</> data
7555       </para>
7556      </listitem>
7557
7558      <listitem>
7559       <para>
7560        Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
7561        for changing <filename>postgresql.conf</> configuration file entries
7562       </para>
7563      </listitem>
7564
7565      <listitem>
7566       <para>
7567        Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
7568        commands
7569       </para>
7570      </listitem>
7571
7572      <listitem>
7573       <para>
7574        Allow <link linkend="rules-materializedviews">materialized views</>
7575        to be refreshed without blocking concurrent reads
7576       </para>
7577      </listitem>
7578
7579      <listitem>
7580       <para>
7581        Add support for <link linkend="logicaldecoding">logical decoding</>
7582        of WAL data, to allow database changes to be streamed out in a
7583        customizable format
7584       </para>
7585      </listitem>
7586
7587      <listitem>
7588       <para>
7589         Allow <link linkend="bgworker">background worker processes</>
7590         to be dynamically registered, started and terminated
7591       </para>
7592      </listitem>
7593
7594    </itemizedlist>
7595
7596    <para>
7597     The above items are explained in more detail in the sections below.
7598    </para>
7599
7600   </sect2>
7601
7602   <sect2>
7603
7604   <title>Migration to Version 9.4</title>
7605
7606    <para>
7607     A dump/restore using <xref linkend="app-pg-dumpall">, or use
7608     of <xref linkend="pgupgrade">, is required for those wishing to migrate
7609     data from any previous release.
7610    </para>
7611
7612    <para>
7613     Version 9.4 contains a number of changes that may affect compatibility
7614     with previous releases.  Observe the following incompatibilities:
7615    </para>
7616
7617    <itemizedlist>
7618
7619     <listitem>
7620      <para>
7621       Tighten checks for multidimensional <link
7622       linkend="arrays">array</link> input (Bruce Momjian)
7623      </para>
7624
7625      <para>
7626       Previously, an input array string that started with a single-element
7627       sub-array could later contain multi-element sub-arrays,
7628       e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted.
7629      </para>
7630     </listitem>
7631
7632     <listitem>
7633      <para>
7634       When converting values of type <type>date</>, <type>timestamp</>
7635       or <type>timestamptz</>
7636       to <link linkend="datatype-json"><type>JSON</type></link>, render the
7637       values in a format compliant with ISO 8601 (Andrew Dunstan)
7638      </para>
7639
7640      <para>
7641       Previously such values were rendered according to the current
7642       <xref linkend="guc-datestyle"> setting; but many JSON processors
7643       require timestamps to be in ISO 8601 format.  If necessary, the
7644       previous behavior can be obtained by explicitly casting the datetime
7645       value to <type>text</> before passing it to the JSON conversion
7646       function.
7647      </para>
7648     </listitem>
7649
7650     <listitem>
7651      <para>
7652       The <link linkend="functions-json-op-table"><type>json</type>
7653       <literal>#&gt;</> <type>text[]</></link> path extraction operator now
7654       returns its lefthand input, not NULL, if the array is empty (Tom Lane)
7655      </para>
7656
7657      <para>
7658       This is consistent with the notion that this represents zero
7659       applications of the simple field/element extraction
7660       operator <literal>-&gt;</>.  Similarly, <type>json</type>
7661       <literal>#&gt;&gt;</> <type>text[]</> with an empty array merely
7662       coerces its lefthand input to text.
7663      </para>
7664     </listitem>
7665
7666     <listitem>
7667      <para>
7668       Corner cases in
7669       the <link linkend="functions-json-op-table"><type>JSON</type>
7670       field/element/path extraction operators</link> now return NULL rather
7671       than raising an error (Tom Lane)
7672      </para>
7673
7674      <para>
7675       For example, applying field extraction to a JSON array now yields NULL
7676       not an error.  This is more consistent (since some comparable cases such
7677       as no-such-field already returned NULL), and it makes it safe to create
7678       expression indexes that use these operators, since they will now not
7679       throw errors for any valid JSON input.
7680      </para>
7681     </listitem>
7682
7683     <listitem>
7684      <para>
7685       Cause consecutive whitespace in <link
7686       linkend="functions-formatting-table"><function>to_timestamp()</></link>
7687       and <function>to_date()</> format strings to consume a corresponding
7688       number of characters in the input string (whitespace or not), then
7689       conditionally consume adjacent whitespace, if not in <literal>FX</>
7690       mode (Jeevan Chalke)
7691      </para>
7692
7693      <para>
7694       Previously, consecutive whitespace characters in a non-<literal>FX</>
7695       format string behaved like a single whitespace character and consumed
7696       all adjacent whitespace in the input string.  For example, previously
7697       a format string of three spaces would consume only the first space in
7698       <literal>' 12'</>, but it will now consume all three characters.
7699      </para>
7700     </listitem>
7701
7702     <listitem>
7703      <para>
7704       Fix <link
7705       linkend="textsearch-functions-table"><function>ts_rank_cd()</></link>
7706       to ignore stripped lexemes (Alex Hill)
7707      </para>
7708
7709      <para>
7710       Previously, stripped lexemes were treated as if they had a default
7711       location, producing a rank of dubious usefulness.
7712      </para>
7713     </listitem>
7714
7715     <listitem>
7716      <para>
7717       For functions declared to
7718       take <link linkend="xfunc-sql-variadic-functions"><literal>VARIADIC
7719       "any"</></link>, an actual parameter marked as <literal>VARIADIC</>
7720       must be of a determinable array type (Pavel Stehule)
7721      </para>
7722
7723      <para>
7724       Such parameters can no longer be written as an undecorated string
7725       literal or <literal>NULL</>; a cast to an appropriate array data type
7726       will now be required.  Note that this does not affect parameters not
7727       marked <literal>VARIADIC</>.
7728      </para>
7729     </listitem>
7730
7731     <listitem>
7732      <para>
7733       Ensure that whole-row variables expose the expected column names
7734       to functions that pay attention to column names within composite
7735       arguments (Tom Lane)
7736      </para>
7737
7738      <para>
7739       Constructs like <literal>row_to_json(tab.*)</> now always emit column
7740       names that match the column aliases visible for table <literal>tab</>
7741       at the point of the call.  In previous releases the emitted column
7742       names would sometimes be the table's actual column names regardless
7743       of any aliases assigned in the query.
7744      </para>
7745     </listitem>
7746
7747     <listitem>
7748      <para>
7749       <xref linkend="sql-discard"> now also discards sequence-related state
7750       (Fabr&iacute;zio de Royes Mello, Robert Haas)
7751      </para>
7752     </listitem>
7753
7754     <listitem>
7755      <para>
7756       Rename <link linkend="SQL-EXPLAIN"><command>EXPLAIN
7757       ANALYZE</></link>'s <quote>total runtime</quote> output
7758       to <quote>execution time</quote> (Tom Lane)
7759      </para>
7760
7761      <para>
7762       Now that planning time is also reported, the previous name was
7763       confusing.
7764      </para>
7765     </listitem>
7766
7767     <listitem>
7768      <para>
7769       <link linkend="SQL-SHOW"><command>SHOW TIME ZONE</></link> now
7770       outputs simple numeric UTC offsets in <acronym>POSIX</> timezone
7771       format (Tom Lane)
7772      </para>
7773
7774      <para>
7775       Previously, such timezone settings were displayed as <link
7776       linkend="datatype-interval-output"><type>interval</></link> values.
7777       The new output is properly interpreted by <command>SET TIME ZONE</>
7778       when passed as a simple string, whereas the old output required
7779       special treatment to be re-parsed correctly.
7780      </para>
7781     </listitem>
7782
7783     <listitem>
7784      <para>
7785       Foreign data wrappers that support updating foreign tables must
7786       consider the possible presence of <literal>AFTER ROW</> triggers
7787       (Noah Misch)
7788      </para>
7789
7790      <para>
7791       When an <literal>AFTER ROW</> trigger is present, all columns of the
7792       table must be returned by updating actions, since the trigger might
7793       inspect any or all of them.  Previously, foreign tables never had
7794       triggers, so the FDW might optimize away fetching columns not mentioned
7795       in the <literal>RETURNING</> clause (if any).
7796      </para>
7797     </listitem>
7798
7799     <listitem>
7800      <para>
7801       Prevent <link
7802       linkend="ddl-constraints-check-constraints"><literal>CHECK</></link>
7803       constraints from referencing system columns, except
7804       <structfield>tableoid</> (Amit Kapila)
7805      </para>
7806
7807      <para>
7808       Previously such check constraints were allowed, but they would often
7809       cause errors during restores.
7810      </para>
7811     </listitem>
7812
7813     <listitem>
7814      <para>
7815       Use the last specified <link linkend="recovery-target-settings">recovery
7816       target parameter</link> if multiple target parameters are specified
7817       (Heikki Linnakangas)
7818      </para>
7819
7820      <para>
7821       Previously, there was an undocumented precedence order among
7822       the <literal>recovery_target_<replaceable>xxx</></literal> parameters.
7823      </para>
7824     </listitem>
7825
7826     <listitem>
7827      <para>
7828       On Windows, automatically preserve quotes in command strings supplied
7829       by the user (Heikki Linnakangas)
7830      </para>
7831
7832      <para>
7833       User commands that did their own quote preservation might need
7834       adjustment.  This is likely to be an issue for commands used in
7835       <xref linkend="guc-archive-command">, <xref linkend="restore-command">,
7836       and <link linkend="sql-copy"><command>COPY TO/FROM PROGRAM</></link>.
7837      </para>
7838     </listitem>
7839
7840     <listitem>
7841      <para>
7842       Remove catalog column <link
7843       linkend="catalog-pg-class"><structfield>pg_class.reltoastidxid</></link>
7844       (Michael Paquier)
7845      </para>
7846     </listitem>
7847
7848     <listitem>
7849      <para>
7850       Remove catalog column <link
7851       linkend="catalog-pg-rewrite"><structfield>pg_rewrite.ev_attr</></link>
7852       (Kevin Grittner)
7853      </para>
7854
7855      <para>
7856       Per-column rules have not been supported since
7857       <application>PostgreSQL</> 7.3.
7858      </para>
7859     </listitem>
7860
7861     <listitem>
7862      <para>
7863       Remove native support for <application>Kerberos</> authentication
7864       (<option>--with-krb5</>, etc)
7865       (Magnus Hagander)
7866      </para>
7867
7868      <para>
7869       The supported way to use <application>Kerberos</> authentication is
7870       with <acronym>GSSAPI</>.  The native code has been deprecated since
7871       <productname>PostgreSQL</> 8.3.
7872      </para>
7873     </listitem>
7874
7875     <listitem>
7876      <para>
7877       In <application>PL/Python</>, handle domains over arrays like the
7878       underlying array type (Rodolfo Campero)
7879      </para>
7880
7881      <para>
7882       Previously such values were treated as strings.
7883      </para>
7884     </listitem>
7885
7886     <listitem>
7887      <para>
7888       Make libpq's <link
7889       linkend="libpq-pqconnectdbparams"><function>PQconnectdbParams()</></link>
7890       and <link
7891       linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
7892       functions process zero-length strings as defaults (Adrian
7893       Vondendriesch)
7894      </para>
7895
7896      <para>
7897       Previously, these functions treated zero-length string values as
7898       selecting the default in only some cases.
7899      </para>
7900     </listitem>
7901
7902     <listitem>
7903      <para>
7904       Change empty arrays returned by the <xref linkend="intarray"> module
7905       to be zero-dimensional arrays (Bruce Momjian)
7906      </para>
7907
7908      <para>
7909       Previously, empty arrays were returned as zero-length one-dimensional
7910       arrays, whose text representation looked the same as zero-dimensional
7911       arrays (<literal>{}</>), but they acted differently in array
7912       operations.  <application>intarray</>'s behavior in this area now
7913       matches the built-in array operators.
7914      </para>
7915     </listitem>
7916
7917     <listitem>
7918      <para>
7919       <xref linkend="pgupgrade"> now uses <option>-U</>
7920       or <option>--username</> to specify the user name (Bruce Momjian)
7921      </para>
7922
7923      <para>
7924       Previously this option was spelled <option>-u</> or <option>--user</>,
7925       but that was inconsistent with other tools.
7926      </para>
7927     </listitem>
7928
7929    </itemizedlist>
7930
7931   </sect2>
7932
7933   <sect2>
7934    <title>Changes</title>
7935
7936    <para>
7937     Below you will find a detailed account of the changes between
7938     <productname>PostgreSQL</productname> 9.4 and the previous major
7939     release.
7940    </para>
7941
7942    <sect3>
7943     <title>Server</title>
7944
7945      <itemizedlist>
7946
7947       <listitem>
7948        <para>
7949         Allow <link linkend="bgworker">background worker processes</link>
7950         to be dynamically registered, started and terminated (Robert Haas)
7951        </para>
7952
7953        <para>
7954         The new <filename>worker_spi</> module shows an example of use
7955         of this feature.
7956        </para>
7957       </listitem>
7958
7959       <listitem>
7960        <para>
7961         Allow dynamic allocation of shared memory segments (Robert Haas,
7962         Amit Kapila)
7963        </para>
7964
7965        <para>
7966         This feature is illustrated in the <filename>test_shm_mq</filename>
7967         module.
7968        </para>
7969       </listitem>
7970
7971       <listitem>
7972        <para>
7973         During crash recovery or immediate shutdown, send uncatchable
7974         termination signals (<systemitem>SIGKILL</>) to child processes
7975         that do not shut down promptly (MauMau, &Aacute;lvaro Herrera)
7976        </para>
7977
7978        <para>
7979         This reduces the likelihood of leaving orphaned child processes
7980         behind after <xref linkend="app-postmaster"> shutdown, as well
7981         as ensuring that crash recovery can proceed if some child processes
7982         have become <quote>stuck</>.
7983        </para>
7984       </listitem>
7985
7986       <listitem>
7987        <para>
7988         Improve randomness of the database system identifier (Tom Lane)
7989        </para>
7990       </listitem>
7991
7992       <listitem>
7993        <para>
7994         Make <xref linkend="SQL-VACUUM"> properly report dead but
7995         not-yet-removable rows to the statistics collector (Hari Babu)
7996        </para>
7997
7998        <para>
7999         Previously these were reported as live rows.
8000        </para>
8001       </listitem>
8002
8003      </itemizedlist>
8004
8005     <sect4>
8006      <title>Indexes</title>
8007
8008      <itemizedlist>
8009
8010       <listitem>
8011        <para>
8012         Reduce <link linkend="GIN"><acronym>GIN</></link> index size
8013         (Alexander Korotkov, Heikki Linnakangas)
8014        </para>
8015
8016        <para>
8017         Indexes upgraded via <xref linkend="pgupgrade"> will work fine
8018         but will still be in the old, larger <acronym>GIN</> format.
8019         Use <xref linkend="SQL-REINDEX"> to recreate old GIN indexes in the
8020         new format.
8021        </para>
8022       </listitem>
8023
8024       <listitem>
8025        <para>
8026         Improve speed of multi-key <link
8027         linkend="GIN"><acronym>GIN</></link> lookups (Alexander Korotkov,
8028         Heikki Linnakangas)
8029        </para>
8030       </listitem>
8031
8032       <listitem>
8033        <para>
8034         Add <link linkend="GiST"><acronym>GiST</></link> index support
8035         for <link linkend="datatype-inet"><type>inet</></link> and
8036         <link linkend="datatype-cidr"><type>cidr</></link> data types
8037         (Emre Hasegeli)
8038        </para>
8039
8040        <para>
8041         Such indexes improve <link
8042         linkend="cidr-inet-operators-table">subnet and supernet</link>
8043         lookups and ordering comparisons.
8044        </para>
8045       </listitem>
8046
8047       <listitem>
8048        <para>
8049         Fix rare race condition in B-tree page deletion (Heikki Linnakangas)
8050        </para>
8051       </listitem>
8052
8053       <listitem>
8054        <para>
8055         Make the handling of interrupted B-tree page splits more robust
8056         (Heikki Linnakangas)
8057        </para>
8058       </listitem>
8059
8060      </itemizedlist>
8061
8062     </sect4>
8063
8064     <sect4>
8065      <title>General Performance</title>
8066
8067      <itemizedlist>
8068
8069       <listitem>
8070        <para>
8071         Allow multiple backends to insert
8072         into <link linkend="wal"><acronym>WAL</></link> buffers
8073         concurrently (Heikki Linnakangas)
8074        </para>
8075
8076        <para>
8077         This improves parallel write performance.
8078        </para>
8079       </listitem>
8080
8081       <listitem>
8082        <para>
8083         Conditionally write only the modified portion of updated rows to
8084         <link linkend="wal"><acronym>WAL</></link> (Amit Kapila)
8085        </para>
8086       </listitem>
8087
8088       <listitem>
8089        <para>
8090         Improve performance of aggregate functions used as <link
8091         linkend="syntax-window-functions">window functions</link>
8092         (David Rowley, Florian Pflug, Tom Lane)
8093        </para>
8094       </listitem>
8095
8096       <listitem>
8097        <para>
8098         Improve speed of aggregates that
8099         use <link linkend="datatype-numeric"><type>numeric</></link> state
8100         values (Hadi Moshayedi)
8101        </para>
8102       </listitem>
8103
8104       <listitem>
8105        <para>
8106         Attempt to <link linkend="vacuum-for-wraparound">freeze</link>
8107         tuples when tables are rewritten with <xref
8108         linkend="SQL-CLUSTER"> or <link
8109         linkend="SQL-VACUUM"><command>VACUUM FULL</></link> (Robert Haas,
8110         Andres Freund)
8111        </para>
8112
8113        <para>
8114         This can avoid the need to freeze the tuples in the future.
8115        </para>
8116       </listitem>
8117
8118       <listitem>
8119        <para>
8120         Improve speed of <xref linkend="SQL-COPY"> with default <link
8121         linkend="functions-sequence-table"><function>nextval()</></link>
8122         columns (Simon Riggs)
8123        </para>
8124       </listitem>
8125
8126       <listitem>
8127        <para>
8128         Improve speed of accessing many different <link
8129         linkend="SQL-CREATESEQUENCE">sequences</link> in the same session
8130         (David Rowley)
8131        </para>
8132       </listitem>
8133
8134       <listitem>
8135        <para>
8136         Raise hard limit on the number of tuples held in memory during sorting
8137         and B-tree index builds (Noah Misch)
8138        </para>
8139       </listitem>
8140
8141       <listitem>
8142        <para>
8143         Reduce memory allocated by <application>PL/pgSQL</>
8144         <xref linkend="SQL-DO"> blocks (Tom Lane)
8145        </para>
8146       </listitem>
8147
8148       <listitem>
8149        <para>
8150         Make the planner more aggressive about extracting restriction clauses
8151         from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
8152        </para>
8153       </listitem>
8154
8155       <listitem>
8156        <para>
8157         Disallow pushing volatile <literal>WHERE</> clauses down
8158         into <literal>DISTINCT</> subqueries (Tom Lane)
8159        </para>
8160
8161        <para>
8162         Pushing down a <literal>WHERE</> clause can produce a more
8163         efficient plan overall, but at the cost of evaluating the clause
8164         more often than is implied by the text of the query; so don't do it
8165         if the clause contains any volatile functions.
8166        </para>
8167       </listitem>
8168
8169       <listitem>
8170        <para>
8171         Auto-resize the catalog caches (Heikki Linnakangas)
8172        </para>
8173
8174        <para>
8175         This reduces memory consumption for sessions accessing only a few
8176         tables, and improves performance for sessions accessing many tables.
8177        </para>
8178       </listitem>
8179
8180      </itemizedlist>
8181
8182     </sect4>
8183
8184     <sect4>
8185      <title>Monitoring</title>
8186
8187      <itemizedlist>
8188
8189       <listitem>
8190        <para>
8191         Add <xref linkend="pg-stat-archiver-view"> system view to
8192         report <link linkend="wal"><acronym>WAL</></link> archiver activity
8193         (Gabriele Bartolini)
8194        </para>
8195       </listitem>
8196
8197       <listitem>
8198        <para>
8199         Add <structfield>n_mod_since_analyze</> columns to
8200         <xref linkend="pg-stat-all-tables-view"> and related system views
8201         (Mark Kirkwood)
8202        </para>
8203
8204        <para>
8205         These columns expose the system's estimate of the number of changed
8206         tuples since the table's last <xref linkend="sql-analyze">.  This
8207         estimate drives decisions about when to auto-analyze.
8208        </para>
8209       </listitem>
8210
8211       <listitem>
8212        <para>
8213         Add <structfield>backend_xid</> and <structfield>backend_xmin</>
8214         columns to the system view <xref linkend="pg-stat-activity-view">,
8215         and a <structfield>backend_xmin</> column to
8216         <xref linkend="pg-stat-replication-view"> (Christian Kruse)
8217        </para>
8218       </listitem>
8219
8220      </itemizedlist>
8221
8222     </sect4>
8223
8224     <sect4>
8225      <title><acronym>SSL</></title>
8226
8227      <itemizedlist>
8228
8229       <listitem>
8230        <para>
8231         Add support for <acronym>SSL</> <acronym>ECDH</> key exchange
8232         (Marko Kreen)
8233        </para>
8234
8235        <para>
8236         This allows use of Elliptic Curve keys for server authentication.
8237         Such keys are faster and have better security than <acronym>RSA</>
8238         keys. The new configuration parameter
8239         <xref linkend="guc-ssl-ecdh-curve">
8240         controls which curve is used for <acronym>ECDH</>.
8241        </para>
8242       </listitem>
8243
8244       <listitem>
8245        <para>
8246         Improve the default <xref linkend="guc-ssl-ciphers"> setting
8247         (Marko Kreen)
8248        </para>
8249       </listitem>
8250
8251       <listitem>
8252        <para>
8253         By default, the server not the client now controls the preference
8254         order of <acronym>SSL</> ciphers
8255         (Marko Kreen)
8256        </para>
8257
8258        <para>
8259         Previously, the order specified by <xref linkend="guc-ssl-ciphers">
8260         was usually ignored in favor of client-side defaults, which are not
8261         configurable in most <productname>PostgreSQL</> clients.  If
8262         desired, the old behavior can be restored via the new configuration
8263         parameter <xref linkend="guc-ssl-prefer-server-ciphers">.
8264        </para>
8265       </listitem>
8266
8267       <listitem>
8268        <para>
8269         Make <xref linkend="guc-log-connections"> show <acronym>SSL</>
8270         encryption information (Andreas Kunert)
8271        </para>
8272       </listitem>
8273
8274       <listitem>
8275        <para>
8276         Improve <acronym>SSL</> renegotiation handling (&Aacute;lvaro
8277         Herrera)
8278        </para>
8279       </listitem>
8280
8281      </itemizedlist>
8282
8283     </sect4>
8284
8285     <sect4>
8286      <title>Server Settings</title>
8287
8288      <itemizedlist>
8289
8290       <listitem>
8291        <para>
8292         Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
8293         for changing <filename>postgresql.conf</> configuration file entries
8294         (Amit Kapila)
8295        </para>
8296
8297        <para>
8298         Previously such settings could only be changed by manually
8299         editing <filename>postgresql.conf</>.
8300        </para>
8301       </listitem>
8302
8303       <listitem>
8304        <para>
8305         Add <xref linkend="guc-autovacuum-work-mem"> configuration parameter
8306         to control the amount of memory used by autovacuum workers
8307         (Peter Geoghegan)
8308        </para>
8309       </listitem>
8310
8311       <listitem>
8312        <para>
8313         Add <xref linkend="guc-huge-pages"> parameter to allow using huge
8314         memory pages on Linux (Christian Kruse, Richard Poole, Abhijit
8315         Menon-Sen)
8316        </para>
8317
8318        <para>
8319         This can improve performance on large-memory systems.
8320        </para>
8321       </listitem>
8322
8323       <listitem>
8324        <para>
8325         Add <xref linkend="guc-max-worker-processes"> parameter
8326         to limit the number of background workers (Robert Haas)
8327        </para>
8328
8329        <para>
8330         This is helpful in configuring a standby server to have the
8331         required number of worker processes (the same as the primary).
8332        </para>
8333       </listitem>
8334
8335       <listitem>
8336        <para>
8337         Add superuser-only <xref linkend="guc-session-preload-libraries">
8338         parameter to load libraries at session start (Peter Eisentraut)
8339        </para>
8340
8341        <para>
8342         In contrast to <xref linkend="guc-local-preload-libraries">, this
8343         parameter can load any shared library, not just those in
8344         the <filename>$libdir/plugins</> directory.
8345        </para>
8346       </listitem>
8347
8348       <listitem>
8349        <para>
8350         Add <xref linkend="guc-wal-log-hints"> parameter to enable WAL
8351         logging of hint-bit changes (Sawada Masahiko)
8352        </para>
8353
8354        <para>
8355         Hint bit changes are not normally logged, except when checksums are
8356         enabled.  This is useful for external tools
8357         like <application>pg_rewind</>.
8358        </para>
8359       </listitem>
8360
8361       <listitem>
8362        <para>
8363         Increase the default settings of <xref linkend="guc-work-mem">
8364         and <xref linkend="guc-maintenance-work-mem"> by four times (Bruce
8365         Momjian)
8366        </para>
8367
8368        <para>
8369         The new defaults are 4MB and 64MB respectively.
8370        </para>
8371       </listitem>
8372
8373       <listitem>
8374        <para>
8375         Increase the default setting of <xref
8376         linkend="guc-effective-cache-size">
8377         to 4GB (Bruce Momjian, Tom Lane)
8378        </para>
8379       </listitem>
8380
8381       <listitem>
8382        <para>
8383         Allow <function>printf</function>-style space padding to be
8384         specified in <xref linkend="guc-log-line-prefix"> (David Rowley)
8385        </para>
8386       </listitem>
8387
8388       <listitem>
8389        <para>
8390         Allow terabyte units (<literal>TB</>) to be used when specifying
8391         configuration variable values (Simon Riggs)
8392        </para>
8393       </listitem>
8394
8395       <listitem>
8396        <para>
8397         Show <acronym>PID</>s of lock holders and waiters and improve
8398         information about relations in <xref linkend="guc-log-lock-waits">
8399         log messages (Christian Kruse)
8400        </para>
8401       </listitem>
8402
8403       <listitem>
8404        <para>
8405         Reduce server logging level when loading shared libraries (Peter
8406         Geoghegan)
8407        </para>
8408
8409        <para>
8410         The previous level was <literal>LOG</>, which was too verbose
8411         for libraries loaded per-session.
8412        </para>
8413       </listitem>
8414
8415       <listitem>
8416        <para>
8417         On Windows, make <literal>SQL_ASCII</>-encoded databases and server
8418         processes (e.g., <xref linkend="app-postmaster">) emit messages in
8419         the character encoding of the server's Windows user locale
8420         (Alexander Law, Noah Misch)
8421        </para>
8422
8423        <para>
8424         Previously these messages were output in the Windows
8425         <acronym>ANSI</> code page.
8426        </para>
8427       </listitem>
8428
8429      </itemizedlist>
8430
8431     </sect4>
8432
8433    </sect3>
8434
8435    <sect3>
8436     <title>Replication and Recovery</title>
8437
8438      <itemizedlist>
8439
8440       <listitem>
8441        <para>
8442         Add <link linkend="streaming-replication-slots">replication
8443         slots</link> to coordinate activity on streaming standbys with the
8444         node they are streaming from (Andres Freund, Robert Haas)
8445        </para>
8446
8447        <para>
8448         Replication slots allow preservation of resources like
8449         <acronym>WAL</> files on the primary until they are no longer
8450         needed by standby servers.
8451        </para>
8452       </listitem>
8453
8454       <listitem>
8455        <para>
8456         Add recovery parameter <xref linkend="recovery-min-apply-delay">
8457         to delay replication (Robert Haas, Fabr&iacute;zio de Royes Mello,
8458         Simon Riggs)
8459        </para>
8460
8461        <para>
8462         Delaying replay on standby servers can be useful for recovering
8463         from user errors.
8464        </para>
8465       </listitem>
8466
8467       <listitem>
8468        <para>
8469         Add <xref linkend="recovery-target">
8470         option <option>immediate</> to stop <link
8471         linkend="wal"><acronym>WAL</></link> recovery as soon as a
8472         consistent state is reached (MauMau, Heikki Linnakangas)
8473        </para>
8474       </listitem>
8475
8476       <listitem>
8477        <para>
8478         Improve recovery target processing (Heikki Linnakangas)
8479        </para>
8480
8481        <para>
8482         The timestamp reported
8483         by <link linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
8484         now reflects already-committed records, not transactions about to
8485         be committed. Recovering to a restore point now replays the restore
8486         point, rather than stopping just before the restore point.
8487        </para>
8488       </listitem>
8489
8490       <listitem>
8491        <para>
8492         <link
8493         linkend="functions-admin-backup-table"><function>pg_switch_xlog()</></link>
8494         now clears any unused trailing space in the old <acronym>WAL</> file
8495         (Heikki Linnakangas)
8496        </para>
8497
8498        <para>
8499         This improves the compression ratio for <acronym>WAL</> files.
8500        </para>
8501       </listitem>
8502
8503       <listitem>
8504        <para>
8505         Report failure return codes from <link
8506         linkend="archive-recovery-settings">external recovery commands</>
8507         (Peter Eisentraut)
8508        </para>
8509       </listitem>
8510
8511       <listitem>
8512        <para>
8513         Reduce spinlock contention during <acronym>WAL</> replay (Heikki
8514         Linnakangas)
8515        </para>
8516       </listitem>
8517
8518       <listitem>
8519        <para>
8520         Write <acronym>WAL</> records of running transactions more
8521         frequently (Andres Freund)
8522        </para>
8523
8524        <para>
8525         This allows standby servers to start faster and clean up resources
8526         more aggressively.
8527        </para>
8528       </listitem>
8529
8530      </itemizedlist>
8531
8532      <sect4>
8533       <title><link linkend="logicaldecoding">Logical Decoding</></title>
8534
8535       <para>
8536        Logical decoding allows database changes to be streamed in a
8537        configurable format. The data is read from
8538        the <link linkend="wal"><acronym>WAL</></link> and transformed into the
8539        desired target format. To implement this feature, the following changes
8540        were made:
8541       </para>
8542
8543       <itemizedlist>
8544
8545        <listitem>
8546         <para>
8547          Add support for <link linkend="logicaldecoding">logical decoding</>
8548          of WAL data, to allow database changes to be streamed out in a
8549          customizable format
8550          (Andres Freund)
8551         </para>
8552        </listitem>
8553
8554        <listitem>
8555         <para>
8556          Add new <xref linkend="guc-wal-level"> setting <option>logical</>
8557          to enable logical change-set encoding in <acronym>WAL</> (Andres
8558          Freund)
8559         </para>
8560        </listitem>
8561
8562        <listitem>
8563         <para>
8564          Add table-level parameter <link
8565          linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link>
8566          to control logical replication (Andres Freund)
8567         </para>
8568        </listitem>
8569
8570        <listitem>
8571         <para>
8572          Add relation option <link
8573          linkend="SQL-CREATETABLE-storage-parameters"><option>user_catalog_table</></link>
8574          to identify user-created tables involved in logical change-set
8575          encoding (Andres Freund)
8576         </para>
8577        </listitem>
8578
8579        <listitem>
8580         <para>
8581          Add <xref linkend="app-pgrecvlogical"> application to receive
8582          logical-decoding data (Andres Freund)
8583         </para>
8584        </listitem>
8585
8586        <listitem>
8587         <para>
8588          Add <xref linkend="test-decoding"> module to illustrate logical
8589          decoding at the <acronym>SQL</> level (Andres Freund)
8590         </para>
8591        </listitem>
8592
8593       </itemizedlist>
8594
8595      </sect4>
8596
8597    </sect3>
8598
8599    <sect3>
8600     <title>Queries</title>
8601
8602      <itemizedlist>
8603
8604       <listitem>
8605        <para>
8606         Add <link linkend="queries-tablefunctions"><literal>WITH
8607         ORDINALITY</></link> syntax to number the rows returned from a
8608         set-returning function in the <literal>FROM</> clause
8609         (Andrew Gierth, David Fetter)
8610        </para>
8611
8612        <para>
8613         This is particularly useful for functions like
8614         <function>unnest()</>.
8615        </para>
8616       </listitem>
8617
8618       <listitem>
8619        <para>
8620         Add <link linkend="queries-tablefunctions"><literal>ROWS
8621         FROM()</></link> syntax to allow horizontal concatenation of
8622         set-returning functions in the <literal>FROM</> clause (Andrew Gierth)
8623        </para>
8624       </listitem>
8625
8626       <listitem>
8627        <para>
8628         Allow <xref linkend="SQL-SELECT"> to have
8629         an empty target list (Tom Lane)
8630        </para>
8631
8632        <para>
8633         This was added so that views that select from a table with zero
8634         columns can be dumped and restored correctly.
8635        </para>
8636       </listitem>
8637
8638       <listitem>
8639        <para>
8640         Ensure that <link linkend="SQL-SELECT"><literal>SELECT ... FOR UPDATE
8641         NOWAIT</></link> does not wait in corner cases involving
8642         already-concurrently-updated tuples (Craig Ringer and Thomas Munro)
8643        </para>
8644       </listitem>
8645
8646      </itemizedlist>
8647
8648    </sect3>
8649
8650    <sect3>
8651     <title>Utility Commands</title>
8652
8653      <itemizedlist>
8654
8655       <listitem>
8656        <para>
8657         Add <link linkend="SQL-DISCARD"><command>DISCARD
8658         SEQUENCES</></link> command to discard cached sequence-related state
8659         (Fabr&iacute;zio de Royes Mello, Robert Haas)
8660        </para>
8661
8662        <para>
8663         <command>DISCARD ALL</> will now also discard such information.
8664        </para>
8665       </listitem>
8666
8667        <listitem>
8668         <para>
8669          Add <literal>FORCE NULL</> option
8670          to <link linkend="SQL-COPY"><command>COPY FROM</></link>, which
8671          causes quoted strings matching the specified null string to be
8672          converted to NULLs in <literal>CSV</> mode (Ian Barwick, Michael
8673          Paquier)
8674         </para>
8675
8676         <para>
8677          Without this option, only unquoted matching strings will be imported
8678          as null values.
8679         </para>
8680        </listitem>
8681
8682       <listitem>
8683        <para>
8684         Issue warnings for commands used outside of transaction blocks
8685         when they can have no effect (Bruce Momjian)
8686        </para>
8687
8688        <para>
8689         New warnings are issued for <command>SET
8690         LOCAL</>, <command>SET CONSTRAINTS</>, <command>SET TRANSACTION</> and
8691         <command>ABORT</> when used outside a transaction block.
8692        </para>
8693       </listitem>
8694
8695      </itemizedlist>
8696
8697      <sect4>
8698       <title><xref linkend="SQL-EXPLAIN"></title>
8699
8700       <itemizedlist>
8701
8702        <listitem>
8703         <para>
8704          Make <command>EXPLAIN ANALYZE</> show planning time (Andreas
8705          Karlsson)
8706         </para>
8707        </listitem>
8708
8709        <listitem>
8710         <para>
8711          Make <command>EXPLAIN</> show the grouping columns in Agg and
8712          Group nodes (Tom Lane)
8713         </para>
8714        </listitem>
8715
8716        <listitem>
8717         <para>
8718          Make <command>EXPLAIN ANALYZE</> show exact and lossy
8719          block counts in bitmap heap scans (Etsuro Fujita)
8720         </para>
8721        </listitem>
8722
8723       </itemizedlist>
8724
8725      </sect4>
8726
8727      <sect4>
8728       <title>Views</title>
8729
8730       <itemizedlist>
8731
8732       <listitem>
8733        <para>
8734         Allow a <link linkend="rules-materializedviews">materialized view</>
8735         to be refreshed without blocking other sessions from reading the view
8736         meanwhile (Kevin Grittner)
8737        </para>
8738
8739        <para>
8740         This is done with <link
8741         linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED
8742         VIEW CONCURRENTLY</></link>.
8743        </para>
8744       </listitem>
8745
8746       <listitem>
8747        <para>
8748         Allow views to be <link
8749         linkend="SQL-CREATEVIEW-updatable-views">automatically
8750         updated</link> even if they contain some non-updatable columns
8751         (Dean Rasheed)
8752        </para>
8753
8754        <para>
8755         Previously the presence of non-updatable output columns such as
8756         expressions, literals, and function calls prevented automatic
8757         updates.  Now <command>INSERT</>s, <command>UPDATE</>s and
8758         <command>DELETE</>s are supported, provided that they do not
8759         attempt to assign new values to any of the non-updatable columns.
8760        </para>
8761       </listitem>
8762
8763       <listitem>
8764        <para>
8765         Allow control over whether <command>INSERT</>s and
8766         <command>UPDATE</>s can add rows to an auto-updatable view that
8767         would not appear in the view (Dean Rasheed)
8768        </para>
8769
8770        <para>
8771         This is controlled with the new <xref linkend="SQL-CREATEVIEW">
8772         clause <literal>WITH CHECK OPTION</>.
8773        </para>
8774       </listitem>
8775
8776       <listitem>
8777        <para>
8778         Allow <link linkend="rules-privileges">security barrier views</>
8779         to be automatically updatable (Dean Rasheed)
8780        </para>
8781       </listitem>
8782
8783       </itemizedlist>
8784
8785      </sect4>
8786
8787    </sect3>
8788
8789    <sect3>
8790     <title>Object Manipulation</title>
8791
8792      <itemizedlist>
8793
8794       <listitem>
8795        <para>
8796         Support triggers on <link linkend="SQL-CREATEFOREIGNTABLE">foreign
8797         tables</> (Ronan Dunklau)
8798        </para>
8799       </listitem>
8800
8801       <listitem>
8802        <para>
8803         Allow moving groups of objects from one tablespace to another
8804         using the <literal>ALL IN TABLESPACE ... SET TABLESPACE</> form of
8805         <xref linkend="SQL-ALTERTABLE">, <xref linkend="SQL-ALTERINDEX">, or
8806         <xref linkend="SQL-ALTERMATERIALIZEDVIEW"> (Stephen Frost)
8807        </para>
8808       </listitem>
8809
8810       <listitem>
8811        <para>
8812         Allow changing foreign key constraint deferrability
8813         via <xref linkend="SQL-ALTERTABLE"> ... <literal>ALTER
8814         CONSTRAINT</> (Simon Riggs)
8815        </para>
8816       </listitem>
8817
8818       <listitem>
8819        <para>
8820         Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
8821         commands
8822         (Simon Riggs, Noah Misch, Robert Haas)
8823        </para>
8824
8825        <para>
8826         Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER
8827         ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN
8828         SET STATISTICS</>, <literal>ALTER COLUMN</> <literal>SET</>
8829         <option>(attribute_option)</>, <literal>ALTER COLUMN RESET</>
8830         <option>(attribute_option)</> no longer require <literal>ACCESS
8831         EXCLUSIVE</> locks.
8832        </para>
8833       </listitem>
8834
8835       <listitem>
8836        <para>
8837         Allow tablespace options to be set
8838         in <xref linkend="SQL-CREATETABLESPACE"> (Vik Fearing)
8839        </para>
8840
8841        <para>
8842         Formerly these options could only be set
8843         via <xref linkend="SQL-ALTERTABLESPACE">.
8844        </para>
8845       </listitem>
8846
8847       <listitem>
8848        <para>
8849         Allow <xref linkend="SQL-CREATEAGGREGATE"> to define the estimated
8850         size of the aggregate's transition state data (Hadi Moshayedi)
8851        </para>
8852
8853        <para>
8854         Proper use of this feature allows the planner to better estimate
8855         how much memory will be used by aggregates.
8856        </para>
8857       </listitem>
8858
8859       <listitem>
8860        <para>
8861         Fix <command>DROP IF EXISTS</> to avoid errors for non-existent
8862         objects in more cases (Pavel Stehule, Dean Rasheed)
8863        </para>
8864       </listitem>
8865
8866       <listitem>
8867        <para>
8868         Improve how system relations are identified (Andres Freund,
8869         Robert Haas)
8870        </para>
8871
8872        <para>
8873         Previously, relations once moved into the <literal>pg_catalog</>
8874         schema could no longer be modified or dropped.
8875        </para>
8876       </listitem>
8877
8878      </itemizedlist>
8879
8880    </sect3>
8881
8882    <sect3>
8883     <title>Data Types</title>
8884
8885     <itemizedlist>
8886
8887       <listitem>
8888        <para>
8889         Fully implement the <link
8890         linkend="datatype-line"><type>line</></link> data type (Peter
8891         Eisentraut)
8892        </para>
8893
8894        <para>
8895         The line <emphasis>segment</> data type (<link
8896         linkend="datatype-lseg"><type>lseg</></link>) has always been
8897         fully supported.  The previous <type>line</> data type (which was
8898         enabled only via a compile-time option) is not binary or
8899         dump-compatible with the new implementation.
8900        </para>
8901       </listitem>
8902
8903       <listitem>
8904        <para>
8905         Add <link linkend="datatype-pg-lsn"><type>pg_lsn</></link>
8906         data type to represent a <acronym>WAL</> log sequence number
8907         (<acronym>LSN</>) (Robert Haas, Michael Paquier)
8908        </para>
8909       </listitem>
8910
8911       <listitem>
8912        <para>
8913         Allow single-point <link
8914         linkend="datatype-polygon"><type>polygon</></link>s to be converted
8915         to <link linkend="datatype-circle"><type>circle</></link>s
8916         (Bruce Momjian)
8917        </para>
8918       </listitem>
8919
8920       <listitem>
8921        <para>
8922         Support time zone abbreviations that change UTC offset from time to
8923         time (Tom Lane)
8924        </para>
8925
8926        <para>
8927         Previously, <productname>PostgreSQL</> assumed that the UTC offset
8928         associated with a time zone abbreviation (such as <literal>EST</>)
8929         never changes in the usage of any particular locale.  However this
8930         assumption fails in the real world, so introduce the ability for a
8931         zone abbreviation to represent a UTC offset that sometimes changes.
8932         Update the zone abbreviation definition files to make use of this
8933         feature in timezone locales that have changed the UTC offset of their
8934         abbreviations since 1970 (according to the IANA timezone database).
8935         In such timezones, <productname>PostgreSQL</> will now associate the
8936         correct UTC offset with the abbreviation depending on the given date.
8937        </para>
8938       </listitem>
8939
8940       <listitem>
8941        <para>
8942         Allow 5+ digit years for non-<acronym>ISO</> <link
8943         linkend="datatype-datetime"><type>timestamp</></link> and
8944         <type>date</> strings, where appropriate (Bruce Momjian)
8945        </para>
8946       </listitem>
8947
8948       <listitem>
8949        <para>
8950         Add checks for overflow/underflow of <link
8951         linkend="datatype-datetime"><type>interval</></link> values
8952         (Bruce Momjian)
8953        </para>
8954       </listitem>
8955
8956     </itemizedlist>
8957
8958     <sect4>
8959      <title><link linkend="datatype-json"><acronym>JSON</></link></title>
8960
8961      <itemizedlist>
8962
8963        <listitem>
8964         <para>
8965          Add <link linkend="datatype-json"><type>jsonb</></link>, a more
8966          capable and efficient data type for storing <acronym>JSON</> data
8967          (Oleg Bartunov, Teodor Sigaev, Alexander
8968          Korotkov, Peter Geoghegan, Andrew Dunstan)
8969         </para>
8970
8971         <para>
8972          This new type allows faster access to values within a JSON
8973          document, and faster and more useful indexing of JSON columns.
8974          Scalar values in <type>jsonb</> documents are stored as appropriate
8975          scalar SQL types, and the JSON document structure is pre-parsed
8976          rather than being stored as text as in the original <type>json</>
8977          data type.
8978         </para>
8979        </listitem>
8980
8981        <listitem>
8982         <para>
8983          Add new JSON functions to allow for the construction
8984          of arbitrarily complex JSON trees (Andrew Dunstan, Laurence Rowe)
8985         </para>
8986
8987         <para>
8988          New functions include <link
8989          linkend="functions-json-processing-table"><function>json_array_elements_text()</></link>,
8990          <function>json_build_array()</>, <function>json_object()</>,
8991          <function>json_object_agg()</>, <function>json_to_record()</>,
8992          and <function>json_to_recordset()</>.
8993         </para>
8994        </listitem>
8995
8996        <listitem>
8997         <para>
8998          Add <link
8999          linkend="functions-json-processing-table"><function>json_typeof()</></link>
9000          to return the data type of a <type>json</> value (Andrew Tipton)
9001         </para>
9002        </listitem>
9003
9004      </itemizedlist>
9005
9006     </sect4>
9007
9008    </sect3>
9009
9010    <sect3>
9011     <title>Functions</title>
9012
9013      <itemizedlist>
9014
9015       <listitem>
9016        <para>
9017         Add <link
9018         linkend="functions-datetime-delay"><function>pg_sleep_for(interval)</></link>
9019         and <function>pg_sleep_until(timestamp)</> to specify
9020         delays more flexibly (Vik Fearing, Julien Rouhaud)
9021        </para>
9022
9023        <para>
9024         The existing <function>pg_sleep()</> function only supports delays
9025         specified in seconds.
9026        </para>
9027       </listitem>
9028
9029       <listitem>
9030        <para>
9031         Add <link
9032         linkend="array-functions-table"><function>cardinality()</></link>
9033         function for arrays (Marko Tiikkaja)
9034        </para>
9035
9036        <para>
9037         This returns the total number of elements in the array, or zero
9038         for an array with no elements.
9039        </para>
9040       </listitem>
9041
9042       <listitem>
9043        <para>
9044         Add <acronym>SQL</> functions to allow <link linkend="lo-funcs">large
9045         object reads/writes</link> at arbitrary offsets (Pavel Stehule)
9046        </para>
9047       </listitem>
9048
9049       <listitem>
9050        <para>
9051         Allow <link
9052         linkend="array-functions-table"><function>unnest()</></link>
9053         to take multiple arguments, which are individually unnested then
9054         horizontally concatenated (Andrew Gierth)
9055        </para>
9056       </listitem>
9057
9058       <listitem>
9059        <para>
9060         Add functions to construct <type>time</>s, <type>date</>s,
9061         <type>timestamp</>s, <type>timestamptz</>s, and <type>interval</>s
9062         from individual values, rather than strings (Pavel Stehule)
9063        </para>
9064
9065        <para>
9066         These functions' names are prefixed with <literal>make_</>,
9067         e.g. <link linkend="functions-datetime-table"><function>make_date()</></link>.
9068        </para>
9069       </listitem>
9070
9071       <listitem>
9072        <para>
9073         Make <link
9074         linkend="functions-formatting-table"><function>to_char()</></link>'s
9075         <literal>TZ</> format specifier return a useful value for simple
9076         numeric time zone offsets (Tom Lane)
9077        </para>
9078
9079        <para>
9080         Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned
9081         an empty string if the <literal>timezone</> was set to a constant
9082         like <literal>-4</>.
9083        </para>
9084       </listitem>
9085
9086       <listitem>
9087        <para>
9088         Add timezone offset format specifier <literal>OF</> to <link
9089         linkend="functions-formatting-table"><function>to_char()</></link>
9090         (Bruce Momjian)
9091        </para>
9092       </listitem>
9093
9094       <listitem>
9095        <para>
9096         Improve the random seed used for <link
9097         linkend="functions-math-random-table"><function>random()</></link>
9098         (Honza Horak)
9099        </para>
9100       </listitem>
9101
9102       <listitem>
9103        <para>
9104         Tighten validity checking for Unicode code points in <link
9105         linkend="functions-string-other"><function>chr(int)</></link>
9106         (Tom Lane)
9107        </para>
9108
9109        <para>
9110         This function now only accepts values that are valid UTF8 characters
9111         according to RFC 3629.
9112        </para>
9113       </listitem>
9114
9115      </itemizedlist>
9116
9117     <sect4>
9118      <title>System Information Functions</title>
9119
9120      <itemizedlist>
9121
9122       <listitem>
9123        <para>
9124         Add functions for looking up objects in <structname>pg_class</>,
9125         <structname>pg_proc</>, <structname>pg_type</>, and
9126         <structname>pg_operator</> that do not generate errors for
9127         non-existent objects (Yugo Nagata, Nozomi Anzai,
9128         Robert Haas)
9129        </para>
9130
9131        <para>
9132         For example, <link
9133         linkend="functions-info-catalog-table"><function>to_regclass()</></link>
9134         does a lookup in <structname>pg_class</> similarly to
9135         the <type>regclass</> input function, but it returns NULL for a
9136         non-existent object instead of failing.
9137        </para>
9138       </listitem>
9139
9140       <listitem>
9141        <para>
9142         Add function <link
9143         linkend="functions-admin-dblocation"><function>pg_filenode_relation()</></link>
9144         to allow for more efficient lookup of relation names from filenodes
9145         (Andres Freund)
9146        </para>
9147       </listitem>
9148
9149       <listitem>
9150        <para>
9151         Add <structfield>parameter_default</> column to <link
9152         linkend="infoschema-parameters"><structname>information_schema.parameters</></link>
9153         view (Peter Eisentraut)
9154        </para>
9155       </listitem>
9156
9157       <listitem>
9158        <para>
9159         Make <link
9160         linkend="infoschema-schemata"><structname>information_schema.schemata</></link>
9161         show all accessible schemas (Peter Eisentraut)
9162        </para>
9163
9164        <para>
9165         Previously it only showed schemas owned by the current user.
9166        </para>
9167       </listitem>
9168
9169      </itemizedlist>
9170
9171     </sect4>
9172
9173     <sect4>
9174      <title>Aggregates</title>
9175
9176      <itemizedlist>
9177
9178       <listitem>
9179        <para>
9180         Add control over which rows are passed
9181         into aggregate functions via the <link
9182         linkend="syntax-aggregates"><literal>FILTER</></link> clause
9183         (David Fetter)
9184        </para>
9185       </listitem>
9186
9187       <listitem>
9188        <para>
9189         Support ordered-set (<link
9190         linkend="syntax-aggregates"><literal>WITHIN GROUP</></link>)
9191         aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
9192        </para>
9193       </listitem>
9194
9195       <listitem>
9196        <para>
9197         Add standard ordered-set aggregates <link
9198         linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
9199         <function>percentile_disc()</>, <function>mode()</>, <link
9200         linkend="functions-hypothetical-table"><function>rank()</></link>,
9201         <function>dense_rank()</>, <function>percent_rank()</>, and
9202         <function>cume_dist()</>
9203         (Atri Sharma, Andrew Gierth)
9204        </para>
9205       </listitem>
9206
9207       <listitem>
9208        <para>
9209         Support <link
9210         linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link>
9211         aggregate functions (Tom Lane)
9212        </para>
9213       </listitem>
9214
9215       <listitem>
9216        <para>
9217         Allow polymorphic aggregates to have non-polymorphic state data
9218         types (Tom Lane)
9219        </para>
9220        <para>
9221         This allows proper declaration in SQL of aggregates like the built-in
9222         aggregate <function>array_agg()</>.
9223        </para>
9224       </listitem>
9225
9226      </itemizedlist>
9227
9228     </sect4>
9229
9230    </sect3>
9231
9232    <sect3>
9233     <title>Server-Side Languages</title>
9234
9235     <itemizedlist>
9236
9237      <listitem>
9238       <para>
9239        Add event trigger support to <link linkend="plperl">PL/Perl</>
9240        and <link linkend="pltcl">PL/Tcl</> (Dimitri Fontaine)
9241       </para>
9242      </listitem>
9243
9244      <listitem>
9245       <para>
9246        Convert <link linkend="datatype-numeric"><type>numeric</></link>
9247        values to <type>decimal</> in <link linkend="plpython">PL/Python</link>
9248        (Szymon Guz, Ronan Dunklau)
9249       </para>
9250
9251       <para>
9252        Previously such values were converted to Python <type>float</> values,
9253        risking loss of precision.
9254       </para>
9255      </listitem>
9256
9257     </itemizedlist>
9258
9259     <sect4>
9260      <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
9261
9262      <itemizedlist>
9263
9264       <listitem>
9265        <para>
9266         Add ability to retrieve the current PL/pgSQL call stack
9267         using <link linkend="plpgsql-call-stack"><command>GET
9268         DIAGNOSTICS</></link>
9269         (Pavel Stehule, Stephen Frost)
9270        </para>
9271       </listitem>
9272
9273       <listitem>
9274        <para>
9275         Add option <link
9276         linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link>
9277         to display the parameters passed to a query that violated a
9278         <literal>STRICT</> constraint (Marko Tiikkaja)
9279        </para>
9280       </listitem>
9281
9282       <listitem>
9283        <para>
9284         Add variables <link
9285         linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</></link>
9286         and <varname>plpgsql.extra_errors</> to enable additional PL/pgSQL
9287         warnings and errors (Marko Tiikkaja, Petr Jelinek)
9288        </para>
9289
9290        <para>
9291         Currently only warnings/errors about shadowed variables are available.
9292        </para>
9293       </listitem>
9294
9295     </itemizedlist>
9296
9297     </sect4>
9298
9299    </sect3>
9300
9301    <sect3>
9302     <title><link linkend="libpq"><application>libpq</></link></title>
9303      <itemizedlist>
9304
9305       <listitem>
9306        <para>
9307         Make libpq's <link
9308         linkend="libpq-pqconndefaults"><function>PQconndefaults()</></link>
9309         function ignore invalid service files (Steve Singer, Bruce Momjian)
9310        </para>
9311
9312        <para>
9313         Previously it returned NULL if an incorrect service file was
9314         encountered.
9315        </para>
9316       </listitem>
9317
9318       <listitem>
9319        <para>
9320         Accept <acronym>TLS</> protocol versions beyond <literal>TLSv1</>
9321         in libpq (Marko Kreen)
9322        </para>
9323       </listitem>
9324
9325      </itemizedlist>
9326
9327    </sect3>
9328
9329    <sect3>
9330     <title>Client Applications</title>
9331
9332     <itemizedlist>
9333
9334       <listitem>
9335        <para>
9336         Add <xref linkend="APP-CREATEUSER"> option <option>-g</>
9337         to specify role membership (Christopher Browne)
9338        </para>
9339       </listitem>
9340
9341       <listitem>
9342        <para>
9343         Add <xref linkend="APP-VACUUMDB">
9344         option <option>--analyze-in-stages</> to analyze in stages of
9345         increasing granularity (Peter Eisentraut)
9346        </para>
9347
9348        <para>
9349         This allows minimal statistics to be created quickly.
9350        </para>
9351       </listitem>
9352
9353       <listitem>
9354        <para>
9355         Make <link linkend="app-pgresetwal"><application>pg_resetxlog</></>
9356         with option <option>-n</> output current and potentially changed
9357         values (Rajeev Rastogi)
9358        </para>
9359       </listitem>
9360
9361       <listitem>
9362        <para>
9363         Make <xref linkend="app-initdb"> throw error for incorrect locale
9364         settings, rather than silently falling back to a default choice
9365         (Tom Lane)
9366        </para>
9367       </listitem>
9368
9369       <listitem>
9370        <para>
9371         Make <xref linkend="app-pg-ctl"> return exit code <literal>4</> for
9372         an inaccessible data directory (Amit Kapila, Bruce Momjian)
9373        </para>
9374
9375        <para>
9376         This behavior more closely matches the Linux Standard Base
9377         (<acronym>LSB</>) Core Specification.
9378        </para>
9379       </listitem>
9380
9381       <listitem>
9382        <para>
9383         On Windows, ensure that a non-absolute <option>-D</> path
9384         specification is interpreted relative
9385         to <xref linkend="app-pg-ctl">'s current directory
9386         (Kumar Rajeev Rastogi)
9387        </para>
9388
9389        <para>
9390         Previously it would be interpreted relative to whichever directory
9391         the underlying Windows service was started in.
9392        </para>
9393       </listitem>
9394
9395       <listitem>
9396        <para>
9397         Allow <function>sizeof()</> in <link linkend="ecpg">ECPG</link>
9398         C array definitions (Michael Meskes)
9399        </para>
9400       </listitem>
9401
9402       <listitem>
9403        <para>
9404         Make <link linkend="ecpg">ECPG</link> properly handle nesting
9405         of C-style comments in both C and <acronym>SQL</> text
9406         (Michael Meskes)
9407        </para>
9408       </listitem>
9409
9410     </itemizedlist>
9411
9412     <sect4>
9413      <title><xref linkend="APP-PSQL"></title>
9414
9415      <itemizedlist>
9416
9417       <listitem>
9418        <para>
9419         Suppress <quote>No rows</quote> output in <application>psql</> <link
9420         linkend="APP-PSQL-meta-commands"><option>expanded</></link>
9421         mode when the footer is disabled (Bruce Momjian)
9422        </para>
9423       </listitem>
9424
9425       <listitem>
9426        <para>
9427         Allow Control-C to abort <application>psql</> when it's hung at
9428         connection startup (Peter Eisentraut)
9429        </para>
9430       </listitem>
9431
9432      </itemizedlist>
9433
9434      <sect5>
9435       <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
9436
9437       <itemizedlist>
9438
9439        <listitem>
9440         <para>
9441          Make <application>psql</>'s <command>\db+</> show tablespace options
9442          (Magnus Hagander)
9443         </para>
9444        </listitem>
9445
9446        <listitem>
9447         <para>
9448          Make <command>\do+</> display the functions
9449          that implement the operators (Marko Tiikkaja)
9450         </para>
9451        </listitem>
9452
9453        <listitem>
9454         <para>
9455          Make <command>\d+</> output an
9456          <literal>OID</> line only if an <literal>oid</literal> column
9457          exists in the table (Bruce Momjian)
9458         </para>
9459
9460         <para>
9461          Previously, the presence or absence of an <literal>oid</literal>
9462          column was always reported.
9463         </para>
9464        </listitem>
9465
9466        <listitem>
9467         <para>
9468          Make <command>\d</> show disabled system triggers (Bruce
9469          Momjian)
9470         </para>
9471
9472         <para>
9473          Previously, if you disabled all triggers, only user triggers
9474          would show as disabled.
9475         </para>
9476        </listitem>
9477
9478        <listitem>
9479         <para>
9480          Fix <command>\copy</> to no longer require
9481          a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
9482         </para>
9483        </listitem>
9484
9485        <listitem>
9486         <para>
9487          Output the row count at the end of <command>\copy</>, just
9488          like <command>COPY</> already did (Kumar Rajeev Rastogi)
9489         </para>
9490        </listitem>
9491
9492        <listitem>
9493         <para>
9494          Fix <command>\conninfo</> to display the
9495          server's <acronym>IP</> address for connections using
9496          <literal>hostaddr</> (Fujii Masao)
9497         </para>
9498
9499         <para>
9500          Previously <command>\conninfo</> could not display the server's
9501          <acronym>IP</> address in such cases.
9502         </para>
9503        </listitem>
9504
9505        <listitem>
9506         <para>
9507          Show the <acronym>SSL</> protocol version in
9508          <command>\conninfo</> (Marko Kreen)
9509         </para>
9510        </listitem>
9511
9512        <listitem>
9513         <para>
9514          Add tab completion for <command>\pset</>
9515          (Pavel Stehule)
9516         </para>
9517        </listitem>
9518
9519        <listitem>
9520         <para>
9521          Allow <command>\pset</> with no arguments
9522          to show all settings (Gilles Darold)
9523         </para>
9524        </listitem>
9525
9526        <listitem>
9527         <para>
9528          Make <command>\s</> display the name of the history file it wrote
9529          without converting it to an absolute path (Tom Lane)
9530         </para>
9531
9532         <para>
9533          The code previously attempted to convert a relative file name to
9534          an absolute path for display, but frequently got it wrong.
9535         </para>
9536        </listitem>
9537
9538       </itemizedlist>
9539
9540      </sect5>
9541
9542     </sect4>
9543
9544     <sect4>
9545      <title><xref linkend="APP-PGDUMP"></title>
9546
9547      <itemizedlist>
9548
9549       <listitem>
9550        <para>
9551         Allow <xref linkend="APP-PGRESTORE"> options
9552         <option>-I</>, <option>-P</>, <option>-T</> and <option>-n</>
9553         to be specified multiple times (Heikki Linnakangas)
9554        </para>
9555
9556        <para>
9557         This allows multiple objects to be restored in one operation.
9558        </para>
9559       </listitem>
9560
9561       <listitem>
9562        <para>
9563         Optionally add <literal>IF EXISTS</> clauses to the <command>DROP</>
9564         commands emitted when removing old objects during a restore (Pavel
9565         Stehule)
9566        </para>
9567
9568        <para>
9569         This change prevents unnecessary errors when removing old objects.
9570         The new <option>--if-exists</> option
9571         for <xref linkend="APP-PGDUMP">, <xref linkend="APP-PG-DUMPALL">,
9572         and <xref linkend="APP-PGRESTORE"> is only available
9573         when <option>--clean</> is also specified.
9574        </para>
9575       </listitem>
9576
9577      </itemizedlist>
9578
9579     </sect4>
9580
9581     <sect4>
9582      <title><xref linkend="app-pgbasebackup"></title>
9583
9584      <itemizedlist>
9585
9586       <listitem>
9587        <para>
9588         Add <application>pg_basebackup</> option <option>--xlogdir</>
9589         to specify the <filename>pg_xlog</> directory location (Haribabu
9590         Kommi)
9591        </para>
9592       </listitem>
9593
9594       <listitem>
9595        <para>
9596         Allow <application>pg_basebackup</> to relocate tablespaces in
9597         the backup copy (Steeve Lennmark)
9598        </para>
9599
9600        <para>
9601         This is particularly useful for using <application>pg_basebackup</>
9602         on the same machine as the primary.
9603        </para>
9604       </listitem>
9605
9606       <listitem>
9607        <para>
9608         Allow network-stream base backups to be throttled (Antonin Houska)
9609        </para>
9610
9611        <para>
9612         This can be controlled with the <application>pg_basebackup</>
9613         <option>--max-rate</> parameter.
9614        </para>
9615       </listitem>
9616
9617      </itemizedlist>
9618
9619     </sect4>
9620
9621    </sect3>
9622
9623    <sect3>
9624     <title>Source Code</title>
9625
9626      <itemizedlist>
9627
9628       <listitem>
9629        <para>
9630         Improve the way tuples are frozen to preserve forensic information
9631         (Robert Haas, Andres Freund)
9632        </para>
9633
9634        <para>
9635         This change removes the main objection to freezing tuples as soon
9636         as possible.  Code that inspects tuple flag bits will need to be
9637         modified.
9638        </para>
9639       </listitem>
9640
9641       <listitem>
9642        <para>
9643         No longer require function prototypes for functions marked with the
9644         <link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></link>
9645         macro (Peter Eisentraut)
9646        </para>
9647
9648        <para>
9649         This change eliminates the need to write boilerplate prototypes.
9650         Note that the <function>PG_FUNCTION_INFO_V1</> macro must appear
9651         before the corresponding function definition to avoid compiler
9652         warnings.
9653        </para>
9654       </listitem>
9655
9656       <listitem>
9657        <para>
9658         Remove <varname>SnapshotNow</> and
9659         <function>HeapTupleSatisfiesNow()</> (Robert Haas)
9660        </para>
9661
9662        <para>
9663         All existing uses have been switched to more appropriate snapshot
9664         types.  Catalog scans now use <acronym>MVCC</> snapshots.
9665        </para>
9666       </listitem>
9667
9668       <listitem>
9669        <para>
9670         Add an <acronym>API</> to allow memory allocations over one gigabyte
9671         (Noah Misch)
9672        </para>
9673       </listitem>
9674
9675       <listitem>
9676        <para>
9677         Add <function>psprintf()</> to simplify memory allocation during
9678         string composition (Peter Eisentraut, Tom Lane)
9679        </para>
9680       </listitem>
9681
9682       <listitem>
9683        <para>
9684         Support <function>printf()</> size modifier <literal>z</> to
9685         print <type>size_t</> values (Andres Freund)
9686        </para>
9687       </listitem>
9688
9689       <listitem>
9690        <para>
9691         Change <acronym>API</> of <function>appendStringInfoVA()</>
9692         to better use <function>vsnprintf()</> (David Rowley, Tom Lane)
9693        </para>
9694       </listitem>
9695
9696       <listitem>
9697        <para>
9698         Allow new types of external toast datums to be created (Andres
9699         Freund)
9700        </para>
9701       </listitem>
9702
9703       <listitem>
9704        <para>
9705         Add single-reader, single-writer, lightweight shared message queue
9706         (Robert Haas)
9707        </para>
9708       </listitem>
9709
9710       <listitem>
9711        <para>
9712         Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki
9713         Linnakangas)
9714        </para>
9715       </listitem>
9716
9717       <listitem>
9718        <para>
9719         Remove spinlock support for unsupported platforms
9720         <productname>SINIX</>, <productname>Sun3</>, and
9721         <productname>NS32K</> (Robert Haas)
9722        </para>
9723       </listitem>
9724
9725       <listitem>
9726        <para>
9727         Remove <acronym>IRIX</> port (Robert Haas)
9728        </para>
9729       </listitem>
9730
9731       <listitem>
9732        <para>
9733         Reduce the number of semaphores required by
9734         <option>--disable-spinlocks</> builds (Robert Haas)
9735        </para>
9736       </listitem>
9737
9738       <listitem>
9739        <para>
9740         Rewrite <application>duplicate_oids</> Unix shell script in
9741         <application>Perl</> (Andrew Dunstan)
9742        </para>
9743       </listitem>
9744
9745       <listitem>
9746        <para>
9747         Add Test Anything Protocol (<acronym>TAP</>) tests for client
9748         programs (Peter Eisentraut)
9749        </para>
9750
9751        <para>
9752         Currently, these tests are run by <literal>make check-world</>
9753         only if the <option>--enable-tap-tests</> option was given
9754         to <application>configure</>.
9755         This might become the default behavior in some future release.
9756        </para>
9757       </listitem>
9758
9759       <listitem>
9760        <para>
9761         Add make targets <option>check-tests</> and
9762         <option>installcheck-tests</>, which allow selection of individual
9763         tests to be run (Andrew Dunstan)
9764        </para>
9765       </listitem>
9766
9767       <listitem>
9768        <para>
9769         Remove <option>maintainer-check</> makefile rule (Peter Eisentraut)
9770        </para>
9771
9772        <para>
9773         The default build rules now include all the formerly-optional tests.
9774        </para>
9775       </listitem>
9776
9777       <listitem>
9778        <para>
9779         Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
9780         modules  (C&eacute;dric Villemain, Andrew Dunstan, Peter Eisentraut)
9781        </para>
9782       </listitem>
9783
9784       <listitem>
9785        <para>
9786         Upgrade to Autoconf 2.69 (Peter Eisentraut)
9787        </para>
9788       </listitem>
9789
9790       <listitem>
9791        <para>
9792         Add a <application>configure</> flag that appends custom text to the
9793         <envar>PG_VERSION</> string (Oskari Saarenmaa)
9794        </para>
9795
9796        <para>
9797         This is useful for packagers building custom binaries.
9798        </para>
9799       </listitem>
9800
9801       <listitem>
9802        <para>
9803         Improve DocBook <acronym>XML</> validity (Peter Eisentraut)
9804        </para>
9805       </listitem>
9806
9807       <listitem>
9808        <para>
9809         Fix various minor security and sanity issues reported by the
9810         <productname>Coverity</> scanner (Stephen Frost)
9811        </para>
9812       </listitem>
9813
9814       <listitem>
9815        <para>
9816         Improve detection of invalid memory usage when testing
9817         <productname>PostgreSQL</> with <application>Valgrind</>
9818         (Noah Misch)
9819        </para>
9820       </listitem>
9821
9822       <listitem>
9823        <para>
9824         Improve sample <application>Emacs</> configuration file
9825         <filename>emacs.samples</> (Peter Eisentraut)
9826        </para>
9827
9828        <para>
9829         Also add <filename>.dir-locals.el</> to the top of the source tree.
9830        </para>
9831       </listitem>
9832
9833       <listitem>
9834        <para>
9835         Allow <application>pgindent</> to accept a command-line list
9836         of typedefs (Bruce Momjian)
9837        </para>
9838       </listitem>
9839
9840       <listitem>
9841        <para>
9842         Make <application>pgindent</> smarter about blank lines
9843         around preprocessor conditionals (Bruce Momjian)
9844        </para>
9845       </listitem>
9846
9847       <listitem>
9848        <para>
9849         Avoid most uses of <command>dlltool</command>
9850         in <productname>Cygwin</> and
9851         <productname>Mingw</> builds (Marco Atzeri, Hiroshi Inoue)
9852        </para>
9853       </listitem>
9854
9855       <listitem>
9856        <para>
9857         Support client-only installs in <acronym>MSVC</> (Windows) builds
9858         (MauMau)
9859        </para>
9860       </listitem>
9861
9862      </itemizedlist>
9863
9864    </sect3>
9865
9866    <sect3>
9867     <title>Additional Modules</title>
9868
9869     <itemizedlist>
9870
9871       <listitem>
9872        <para>
9873         Add <xref linkend="pgprewarm"> extension to preload relation data
9874         into the shared buffer cache at server start (Robert Haas)
9875        </para>
9876
9877        <para>
9878         This allows reaching full operating performance more quickly.
9879        </para>
9880       </listitem>
9881
9882       <listitem>
9883        <para>
9884         Add <acronym>UUID</> random number generator
9885         <function>gen_random_uuid()</> to <xref linkend="pgcrypto">
9886         (Oskari Saarenmaa)
9887        </para>
9888
9889        <para>
9890         This allows creation of version 4 <acronym>UUID</>s without
9891         requiring installation of <xref linkend="uuid-ossp">.
9892        </para>
9893       </listitem>
9894
9895       <listitem>
9896        <para>
9897         Allow <xref linkend="uuid-ossp"> to work with
9898         the <systemitem>BSD</> or <systemitem>e2fsprogs</> UUID libraries,
9899         not only the <systemitem>OSSP</> UUID library (Matteo Beccati)
9900        </para>
9901
9902        <para>
9903         This improves the <application>uuid-ossp</> module's portability
9904         since it no longer has to have the increasingly-obsolete OSSP
9905         library.  The module's name is now rather a misnomer, but we won't
9906         change it.
9907        </para>
9908       </listitem>
9909
9910       <listitem>
9911        <para>
9912         Add option to <xref linkend="auto-explain"> to include trigger
9913         execution time (Horiguchi Kyotaro)
9914        </para>
9915       </listitem>
9916
9917       <listitem>
9918        <para>
9919         Fix <xref linkend="pgstattuple"> to not report rows from
9920         uncommitted transactions as dead (Robert Haas)
9921        </para>
9922       </listitem>
9923
9924       <listitem>
9925        <para>
9926         Make <xref linkend="pgstattuple"> functions
9927         use <type>regclass</type>-type arguments (Satoshi Nagayasu)
9928        </para>
9929
9930        <para>
9931         While <type>text</type>-type arguments are still supported, they
9932         may be removed in a future major release.
9933        </para>
9934       </listitem>
9935
9936       <listitem>
9937        <para>
9938         Improve consistency of <xref linkend="pgrowlocks"> output to honor
9939         snapshot rules more consistently (Robert Haas)
9940        </para>
9941       </listitem>
9942
9943       <listitem>
9944        <para>
9945         Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
9946         regular expression searches (Alexander Korotkov)
9947        </para>
9948
9949        <para>
9950         This change discourages use of trigrams containing whitespace, which
9951         are usually less selective.
9952        </para>
9953       </listitem>
9954
9955       <listitem>
9956        <para>
9957         Allow <link linkend="pgwaldump"><application>pg_xlogdump</></>
9958         to report a live log stream with <option>--follow</>
9959         (Heikki Linnakangas)
9960        </para>
9961       </listitem>
9962
9963       <listitem>
9964        <para>
9965         Store <xref linkend="cube"> data more compactly (Stas Kelvich)
9966        </para>
9967
9968        <para>
9969         Existing data must be dumped/restored to use the new format.
9970         The old format can still be read.
9971        </para>
9972       </listitem>
9973
9974       <listitem>
9975        <para>
9976         Reduce <xref linkend="vacuumlo"> client-side memory usage by using
9977         a cursor (Andrew Dunstan)
9978        </para>
9979       </listitem>
9980
9981       <listitem>
9982        <para>
9983         Dramatically reduce memory consumption
9984         in <xref linkend="pgupgrade"> (Bruce Momjian)
9985        </para>
9986       </listitem>
9987
9988       <listitem>
9989        <para>
9990         Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to
9991         generated analyze scripts (Bruce Momjian)
9992        </para>
9993       </listitem>
9994
9995     </itemizedlist>
9996
9997     <sect4>
9998      <title><xref linkend="pgbench"></title>
9999
10000      <itemizedlist>
10001
10002       <listitem>
10003        <para>
10004         Remove line length limit for <application>pgbench</> scripts (Sawada
10005         Masahiko)
10006        </para>
10007
10008        <para>
10009         The previous line limit was <envar>BUFSIZ</>.
10010        </para>
10011       </listitem>
10012
10013       <listitem>
10014        <para>
10015         Add long option names to <application>pgbench</> (Fabien Coelho)
10016        </para>
10017       </listitem>
10018
10019       <listitem>
10020        <para>
10021         Add <application>pgbench</> option <option>--rate</> to control
10022         the transaction rate (Fabien Coelho)
10023        </para>
10024       </listitem>
10025
10026       <listitem>
10027        <para>
10028         Add <application>pgbench</> option <option>--progress</> to
10029         print periodic progress reports
10030         (Fabien Coelho)
10031        </para>
10032       </listitem>
10033
10034      </itemizedlist>
10035
10036     </sect4>
10037
10038     <sect4>
10039      <title><xref linkend="pgstatstatements"></title>
10040
10041      <itemizedlist>
10042
10043       <listitem>
10044        <para>
10045         Make <application>pg_stat_statements</> use a file, rather than
10046         shared memory, for query text storage (Peter Geoghegan)
10047        </para>
10048
10049        <para>
10050         This removes the previous limitation on query text length, and
10051         allows a higher number of unique statements to be tracked by default.
10052        </para>
10053       </listitem>
10054
10055       <listitem>
10056        <para>
10057         Allow reporting of <application>pg_stat_statements</>'s internal
10058         query hash identifier (Daniel Farina, Sameer Thakur, Peter
10059         Geoghegan)
10060        </para>
10061       </listitem>
10062
10063       <listitem>
10064        <para>
10065         Add the ability to retrieve all <application>pg_stat_statements</>
10066         information except the query text (Peter Geoghegan)
10067        </para>
10068
10069        <para>
10070         This allows monitoring tools to fetch query text only for
10071         just-created entries, improving performance during repeated querying
10072         of the statistics.
10073        </para>
10074       </listitem>
10075
10076       <listitem>
10077        <para>
10078         Make <application>pg_stat_statements</> ignore <command>DEALLOCATE</>
10079         commands (Fabien Coelho)
10080        </para>
10081
10082        <para>
10083         It already ignored <command>PREPARE</>, as well as planning time in
10084         general, so this seems more consistent.
10085        </para>
10086       </listitem>
10087
10088       <listitem>
10089        <para>
10090         Save the statistics file into <filename>$PGDATA/pg_stat</> at server
10091         shutdown, rather than <filename>$PGDATA/global</> (Fujii Masao)
10092        </para>
10093       </listitem>
10094
10095      </itemizedlist>
10096
10097     </sect4>
10098
10099    </sect3>
10100
10101   </sect2>
10102  </sect1>