]> granicus.if.org Git - postgresql/blob - doc/src/sgml/release-9.5.sgml
Improve 9.5 release notes.
[postgresql] / doc / src / sgml / release-9.5.sgml
1 <!-- doc/src/sgml/release-9.5.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
3
4  <sect1 id="release-9-5">
5   <title>Release 9.5</title>
6
7   <note>
8    <title>Release Date</title>
9    <simpara>2015-??-??</simpara>
10    <simpara>Current as of 2015-06-01</simpara>
11   </note>
12
13   <sect2>
14    <title>Overview</title>
15
16    <para>
17     Major enhancements in <productname>PostgreSQL</> 9.5 include:
18    </para>
19
20    <!-- This list duplicates items below, but without authors or details-->
21
22    <itemizedlist>
23
24     <listitem>
25      <para>
26       ... to be filled in ...
27      </para>
28     </listitem>
29
30    </itemizedlist>
31
32    <para>
33     The above items are explained in more detail in the sections below.
34    </para>
35
36   </sect2>
37
38   <sect2>
39
40   <title>Migration to Version 9.5</title>
41
42    <para>
43     A dump/restore using <xref linkend="app-pg-dumpall">, or use
44     of <xref linkend="pgupgrade">, is required for those wishing to migrate
45     data from any previous release.
46    </para>
47
48    <para>
49     Version 9.5 contains a number of changes that may affect compatibility
50     with previous releases.  Observe the following incompatibilities:
51    </para>
52
53    <itemizedlist>
54
55     <listitem>
56 <!--
57 2015-03-11 [c6b3c93] Tom Lane: Make operator precedence follow the SQL standar..
58 -->
59      <para>
60       Adjust <link linkend="sql-precedence">operator precedence</>
61       to match the <acronym>SQL</> standard (Tom Lane)
62      </para>
63
64      <para>
65       The precedence of <literal>&lt;=</literal>, <literal>&gt;=</literal>
66       and <literal>&lt;&gt;</literal> has been reduced to match that of
67       <literal>&lt;</literal>, <literal>&gt;</literal>
68       and <literal>=</literal>.  The precedence of <literal>IS</> tests
69       (e.g., <replaceable>x</> <literal>IS NULL</>) has been reduced to be
70       just below these six comparison operators.
71       Also, multi-keyword operators beginning with <literal>NOT</> now have
72       the precedence of their base operator (for example, <literal>NOT
73       BETWEEN</> now has the same precedence as <literal>BETWEEN</>) whereas
74       before they had inconsistent precedence, behaving like <literal>NOT</>
75       with respect to their left operand but like their base operator with
76       respect to their right operand.  The new configuration
77       parameter <xref linkend="guc-operator-precedence-warning"> can be
78       enabled to warn about queries in which these precedence changes result
79       in different parsing choices.
80      </para>
81     </listitem>
82
83     <listitem>
84 <!--
85 2015-03-04 [1345cc6] Tom Lane: Use standard casting mechanism to convert type..
86 -->
87      <para>
88       Use assignment cast behavior for data type conversions
89       in <application>PL/pgSQL</> assignments, rather than converting to and
90       from text (Tom Lane)
91      </para>
92
93      <para>
94       This change causes conversions of booleans to strings to
95       produce <literal>true</> or <literal>false</>, not <literal>t</>
96       or <literal>f</>.  Other type conversions may succeed in more cases
97       than before; for example, assigning a numeric value <literal>3.9</> to
98       an integer variable will now assign 4 rather than failing.  If no
99       assignment-grade cast is defined for the particular source and
100       destination types, <application>PL/pgSQL</> will fall back to its old
101       I/O conversion behavior.
102      </para>
103     </listitem>
104
105     <listitem>
106 <!--
107 2014-08-28 [11a020e] Andres..: Allow escaping of option values for options pas..
108 -->
109      <para>
110       Allow characters in <link linkend="libpq-connect-options">server
111       command-line options</> to be escaped with a backslash (Andres Freund)
112      </para>
113
114      <para>
115       Formerly, spaces in the options string always separated options, so
116       there was no way to include a space in an option value.  Including
117       a backslash in an option value now requires writing <literal>\\</>.
118      </para>
119     </listitem>
120
121     <listitem>
122 <!--
123 2015-05-08 [9a08841] Stephe..: Change default for include_realm to 1
124 -->
125      <para>
126       Change the default value of <link
127       linkend="gssapi-auth"><varname>include_realm</></> to 1, so that
128       by default the realm is not removed from a <acronym>GSS</>
129       or <acronym>SSPI</> principal name (Stephen Frost)
130      </para>
131     </listitem>
132
133     <listitem>
134 <!--
135 2015-01-22 [59367fd] Bruce ..: adjust ACL owners for REASSIGN and ALTER OWNER..
136 -->
137      <para>
138       Fix <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN OWNED</></>
139       and <link linkend="SQL-ALTERTYPE"><command>ALTER OWNER TO</></>
140       to properly update permissions lists (ACLs) when changing ownership of
141       types, foreign data wrappers, and foreign servers (Bruce Momjian)
142      </para>
143     </listitem>
144
145     <listitem>
146 <!--
147 2014-11-05 [525a489] Tom Lane: Remove the last vestige of server-side autocomm..
148 -->
149      <para>
150       Remove server configuration parameter <varname>autocommit</>, which
151       was already deprecated and non-operational (Tom Lane)
152      </para>
153     </listitem>
154
155     <listitem>
156 <!--
157 2015-03-06 [bb8582a] Peter ..: Remove rolcatupdate
158 -->
159      <para>
160       Remove <link linkend="catalog-pg-authid"><structname>pg_authid</></>'s
161       <structfield>rolcatupdate</> field, as it had no value (Adam Brightwell)
162      </para>
163     </listitem>
164
165    </itemizedlist>
166
167   </sect2>
168
169   <sect2>
170    <title>Changes</title>
171
172    <para>
173     Below you will find a detailed account of the changes between
174     <productname>PostgreSQL</productname> 9.5 and the previous major
175     release.
176    </para>
177
178    <sect3>
179     <title>Server</title>
180
181     <sect4>
182      <title>Indexes</title>
183
184      <itemizedlist>
185
186       <listitem>
187 <!--
188 2014-11-07 [7516f52] Alvaro..: BRIN: Block Range Indexes
189 2015-05-05 [3b6db1f] Alvaro..: Add geometry/range functions to support BRIN in..
190 2015-05-15 [b0b7be6] Alvaro..: Add BRIN infrastructure for "inclusion" opclasses
191 -->
192        <para>
193         Add <link linkend="BRIN">Block Range Indexes</> (<acronym>BRIN</>)
194         (&Aacute;lvaro Herrera, Heikki Linnakangas, Emre Hasegeli)
195        </para>
196
197        <para>
198         <acronym>BRIN</> indexes are very compact and cheap to to update by
199         storing min/max values for a range of heap blocks.
200        </para>
201       </listitem>
202
203       <listitem>
204 <!--
205 2015-05-15 [35fcb1b] Heikki..: Allow GiST distance function to return merely ..
206 -->
207        <para>
208         Allow queries to perform accurate distance filtering of
209         bounding-box-indexed objects (polygons, circles) using <link
210         linkend="GiST">GiST</> indexes (Alexander Korotkov, Heikki
211         Linnakangas)
212        </para>
213
214        <para>
215         Previously, a common table expression was required to return a
216         large number of rows ordered by bounding-box distance, and then
217         filtered further with a more accurate non-bounding-box distance
218         calculation.
219        </para>
220       </listitem>
221
222       <listitem>
223 <!--
224 2015-03-26 [d04c8ed] Heikki..: Add support for index-only scans in GiST.
225 2015-03-27 [e09b483] Heikki..: Add index-only scan support to btree_gist.
226 2015-03-28 [3a20b0e] Heikki..: Add index-only scan support to inet GiST opclass.
227 2015-03-30 [0633a60] Heikki..: Add index-only scan support to range type GiST ..
228 -->
229        <para>
230         Allow <link linkend="GiST">GiST</> indexes to perform index-only
231         scans (Anastasia Lubennikova, Heikki Linnakangas, Andreas Karlsson)
232        </para>
233       </listitem>
234
235       <listitem>
236 <!--
237 Add GUC and storage parameter to set the maximum size of GIN pending list.
238 -->
239        <para>
240         Add configuration parameter <xref linkend="guc-gin-pending-list-limit">
241         to control the size of <acronym>GIN</> pending lists (Fujii Masao)
242        </para>
243
244        <para>
245         Previously the list size was controlled
246         by <xref linkend="guc-work-mem">.  This can also be set as an index
247         storage parameter.
248        </para>
249       </listitem>
250
251       <listitem>
252 <!--
253 2014-09-10 [84aa8ba] Bruce ..: Issue a warning during the creation of hash in..
254 -->
255        <para>
256         Issue a warning during the creation of <link
257         linkend="indexes-types">hash</> indexes because they are not
258         crash-safe (Bruce Momjian)
259        </para>
260       </listitem>
261
262      </itemizedlist>
263
264     </sect4>
265
266     <sect4>
267      <title>General Performance</title>
268
269      <itemizedlist>
270
271       <listitem>
272 <!--
273 2015-01-19 [4ea51cd] Robert..: Use abbreviated keys for faster sorting of text..
274 2014-09-19 [e246b3d] Robert..: Add a fast pre-check for equality of equal-leng..
275 2015-05-13 [78efd5c] Robert..: Extend abbreviated key infrastructure to datum ..
276 -->
277        <para>
278         Improve the speed of sorting character and numeric fields (Peter
279         Geoghegan, Andrew Gierth, Robert Haas)
280        </para>
281       </listitem>
282
283       <listitem>
284 <!--
285 FIXME: I'm unclear which commits this refers to?
286 -->
287        <para>
288         Extend the infrastructure that allows sorting to be performed by
289         inlined, non-<acronym>SQL</acronym>-callable comparison functions to
290         cover <command>CREATE INDEX</>, <command>REINDEX</>, and
291         <command>CLUSTER</> (Peter Geoghegan)
292        </para>
293       </listitem>
294
295       <listitem>
296 <!--
297 2014-09-10 [45f6240] Heikki..: Pack tuples in a hash join batch densely, to sa..
298 2014-09-12 [8cce08f] Robert..: Change NTUP_PER_BUCKET to 1 to improve hash joi..
299 2014-10-13 [30d7ae3] Kevin ..: Increase number of hash join buckets for undere..
300 FIXME: bad description? Should talk about hash joins
301 -->
302        <para>
303         Improve in-memory hash performance (Tomas Vondra, Robert Haas)
304        </para>
305       </listitem>
306
307       <listitem>
308 <!--
309 2014-09-25 [5d7962c] Robert..: Change locking regimen around buffer replacement.
310 2014-12-25 [d72731a] Andres..: Lockless StrategyGetBuffer clock sweep hot path.
311 FIXME: Add Andres
312 -->
313        <para>
314         Improve concurrency of shared buffer replacement
315         (Robert Haas, Amit Kapila)
316        </para>
317       </listitem>
318
319       <listitem>
320 <!--
321 2015-03-25 [2ed5b87f] Kevin ..: Reduce pinning and buffer content locking for b..
322 -->
323        <para>
324         Reduce the number of page locks and pins during index scans (Kevin Grittner)
325        </para>
326
327        <para>
328         The primary benefit of this is to allow index vacuums to be blocked
329         less often.
330        </para>
331       </listitem>
332
333       <listitem>
334 <!--
335 2014-08-30 [4b4b680] Andres..: Make backend local tracking of buffer pins memo..
336 2015-01-19 [2d115e4] Andres..: Fix various shortcomings of the new PrivateRefC..
337 -->
338        <para>
339         Make backend local tracking of buffer pins memory efficient (Andres Freund)
340        </para>
341
342        <para>
343         Previously each session allocated an array with space for every buffer
344         in <link linkend="guc-shared-buffers"><varname>shared_buffers</></link>.
345        </para>
346       </listitem>
347
348       <listitem>
349 <!--
350 2014-12-25 [ab5194e] Andres..: Improve LWLock scalability.
351 -->
352        <para>
353         Improve lock scalability (Andres Freund)
354        </para>
355
356        <para>
357         This particularly addresses scalability problems when running on
358         systems with multiple <acronym>CPU</> sockets.
359        </para>
360       </listitem>
361
362       <listitem>
363 <!--
364 2014-07-15 [f15821e] Tom Lane: Allow join removal in some cases involving a le..
365 -->
366        <para>
367         Allow the optimizer to remove unnecessary references to left
368         outer join subqueries (David Rowley)
369        </para>
370       </listitem>
371
372       <listitem>
373 <!--
374 2014-06-27 [d222585] Tom Lane: Allow pushdown of WHERE quals into subqueries w..
375 -->
376        <para>
377         Allow pushdown of query restrictions into <link
378         linkend="functions-window">window functions</>, where appropriate
379         (David Rowley)
380        </para>
381       </listitem>
382
383       <listitem>
384 <!--
385 2014-11-04 [5028f22] Heikki..: Switch to CRC-32C in WAL and other places.
386 2015-02-10 [025c024] Heikki..: Speed up CRC calculation using slicing-by-8 alg..
387 2015-04-14 [3dc2d62] Heikki..: Use Intel SSE 4.2 CRC instructions where availa..
388
389 -->
390        <para>
391         Speed up <acronym>CRC</> (cyclic redundancy check) computations
392         (Abhijit Menon-Sen, Heikki Linnakangas)
393        </para>
394       </listitem>
395
396       <listitem>
397 <!--
398 2015-01-16 [f5ae3ba] Andres..: Make tbm_add_tuples more efficient by caching t..
399 2015-01-16 [779fdcd] Tom Lane: Improve new caching logic in tbm_add_tuples().
400 -->
401        <para>
402         Improve bitmap index scan performance (Teodor Sigaev, Tom Lane)
403        </para>
404       </listitem>
405
406       <listitem>
407        <para>
408 <!--
409 2014-07-01 [9f03ca9] Robert..: Avoid copying index tuples when building an ind..
410 -->
411         Speed up CREATE INDEX by avoiding unneccessary memory copies (Robert Haas)
412        </para>
413       </listitem>
414
415      </itemizedlist>
416
417     </sect4>
418
419     <sect4>
420      <title>Monitoring</title>
421
422      <itemizedlist>
423
424       <listitem>
425 <!--
426 2015-04-03 [4ff695b1] Alvaro..: Add log_min_autovacuum_duration per-table option
427 -->
428        <para>
429         Add per-table autovacuum logging control via
430         <varname>log_min_autovacuum_duration</> (Michael Paquier)
431        </para>
432
433        <para>
434         NOT DOCUMENTED?
435        </para>
436       </listitem>
437
438       <listitem>
439 <!--
440 2014-06-29 [51adcaa] Andres..: Add cluster_name GUC which is included in proce..
441 -->
442        <para>
443         Add new configuration parameter <xref linkend="guc-cluster-name">
444         (Thomas Munro)
445        </para>
446
447        <para>
448         This string, typically set in <link
449         linkend="config-setting-configuration-file"><filename>postgresql.conf</></>,
450         allows clients to identify the cluster.  This name also appears
451         in the process title of all server processes, allowing for easier
452         identification of processes belonging to the same cluster.
453        </para>
454       </listitem>
455
456       <listitem>
457 <!--
458 2014-09-13 [fe550b2] Tom Lane: Invent PGC_SU_BACKEND and mark log_connections..
459 -->
460        <para>
461         Prevent non-superusers from changing <xref
462         linkend="guc-log-disconnections"> on connection startup (Fujii Masao)
463        </para>
464       </listitem>
465
466      </itemizedlist>
467
468     </sect4>
469
470     <sect4>
471      <title><acronym>SSL</></title>
472
473      <itemizedlist>
474
475       <listitem>
476 <!--
477 2014-09-12 [acd08d7] Heikki..: Support Subject Alternative Names in SSL server..
478 -->
479        <para>
480         Check <link linkend="libpq-ssl"><quote>Subject Alternative
481         Names</></> in <acronym>SSL</> server certificates, if present
482         (Alexey Klyukin)
483        </para>
484
485        <para>
486         When they are present, this replaces checks against the certificate's
487         <quote>Common Name</>.
488        </para>
489       </listitem>
490
491       <listitem>
492 <!--
493 2015-04-12 [9029f4b] Magnus..: Add system view pg_stat_ssl
494 -->
495        <para>
496         Add system view <link
497         linkend="pg-stat-ssl-view"><structname>pg_stat_ssl</></> to report
498         <acronym>SSL</> connection information (Magnus Hagander)
499        </para>
500       </listitem>
501
502       <listitem>
503 <!--
504 2015-02-03 [91fa7b4] Heikki..: Add API functions to libpq to interrogate SSL ..
505 -->
506        <para>
507         Add <application>libpq</> function <link
508         linkend="libpq-pqsslAttribute"><function>PQsslAttribute()</></>
509         that returns <acronym>SSL</> information (Heikki Linnakangas)
510        </para>
511
512        <para>
513         While <link linkend="libpq-pqgetssl"><function>PQgetssl()</></>
514         can still be used to call <productname>OpenSSL</>
515         functions, <function>PQsslAttribute()</> returns <acronym>SSL</>
516         information in an <acronym>SSL</>-implementation-independent way.
517         (Future versions of libpq might support other <acronym>SSL</>
518         implementations.)
519        </para>
520       </listitem>
521
522       <listitem>
523 <!--
524 2015-04-09 [8a0d34e4] Peter ..: libpq: Don't overwrite existing OpenSSL thread..
525 -->
526        <para>
527         Make <application>libpq</> honor any <productname>OpenSSL</>
528         thread callbacks (Jan Urbanski)
529        </para>
530
531        <para>
532         Previously they were overwritten.
533        </para>
534       </listitem>
535
536      </itemizedlist>
537
538     </sect4>
539
540     <sect4>
541      <title>Server Settings</title>
542
543      <itemizedlist>
544
545       <listitem>
546 <!--
547 2015-02-23 [88e9823] Heikki..: Replace checkpoint_segments with min_wal_size a..
548 2015-03-15 [a0f5954] Andres..: Increase max_wal_size's default from 128MB to 1..
549 2015-06-29 [d661532] Heikki..: Also trigger restartpoints based on max_wal_siz..
550 FIXME: Add docs about restartpoint behaviour change
551 -->
552        <para>
553         Replace configuration parameter <varname>checkpoint_segments</>
554         with <xref linkend="guc-min-wal-size">
555         and <xref linkend="guc-max-wal-size"> (Heikki Linnakangas)
556        </para>
557
558        <para>
559         This allows the allocation of a large number of <acronym>WAL</> files
560         without keeping them if they are not needed. Thus the default
561         for <xref linkend="guc-max-wal-size"> has been increased
562         to <literal>1GB</>.
563        </para>
564       </listitem>
565
566       <listitem>
567 <!--
568 2015-03-11 [57aa5b2] Fujii ..: Add GUC to enable compression of full page imag..
569 -->
570        <para>
571         Add configuration parameter <xref linkend="guc-wal-compression"> to
572         control compression of full page images stored in <acronym>WAL</>
573         (Rahila Syed, Michael Paquier)
574        </para>
575       </listitem>
576
577       <listitem>
578 <!--
579 2014-12-03 [73c986a] Alvaro..: Keep track of transaction commit timestamps
580 -->
581        <para>
582         Allow recording of transaction
583         commit timestamps when configuration parameter <xref
584         linkend="guc-track-commit-timestamp">
585         is enabled (&Aacute;lvaro Herrera, Petr Jel&iacute;nek)
586        </para>
587
588        <para>
589         Timestamp information can be accessed using functions <link
590         linkend="functions-commit-timestamp"><function>pg_xact_commit_timestamp()</></>
591         and <function>pg_last_committed_xact()</>.
592        </para>
593       </listitem>
594
595       <listitem>
596 <!--
597 2014-12-22 [584e35d] Peter ..: Change local_preload_libraries to PGC_USERSET
598 -->
599        <para>
600         Allow <xref linkend="guc-local-preload-libraries"> to be set
601         by <command>ALTER ROLE SET</> (Peter Eisentraut, Kyotaro Horiguchi)
602        </para>
603       </listitem>
604
605       <listitem>
606 <!--
607 2015-04-03 [a75fb9b] Alvaro..: Have autovacuum workers listen to SIGHUP, too
608 -->
609        <para>
610         Allow running <link linkend="autovacuum">autovacuum workers</>
611         to respond to configuration parameter changes (Michael Paquier)
612        </para>
613       </listitem>
614
615       <listitem>
616 <!--
617 2014-06-20 [3bdcf6a] Andres..: Don't allow to disable backend assertions via t..
618 -->
619        <para>
620         Make configuration parameter <xref linkend="guc-debug-assertions">
621         read-only (Andres Freund)
622        </para>
623
624        <para>
625         This means that assertions can no longer be turned
626         off if they were enabled at compile time, allowing for more
627         efficient code optimization.  This change also removed the <link
628         linkend="app-postgres-options">postgres</> <option>-A</> option.
629        </para>
630       </listitem>
631
632       <listitem>
633 <!--
634 2014-10-18 [7feaccc] Peter ..: Allow setting effective_io_concurrency even on..
635 -->
636        <para>
637         Allow setting <xref linkend="guc-effective-io-concurrency"> on
638         systems where it has no effect (Peter Eisentraut)
639        </para>
640       </listitem>
641
642       <listitem>
643 <!--
644 2014-06-18 [df8b7bc] Tom Lane: Improve our mechanism for controlling the Linux..
645 -->
646        <para>
647         Add environment variables <link
648         linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_FILE</></>
649         and <link
650         linkend="linux-memory-overcommit"><envar>PG_OOM_ADJUST_VALUE</></>
651         to help control the Linux <acronym>OOM</> killer (Gurjeet Singh)
652        </para>
653
654        <para>
655         The previous <acronym>OOM</> control infrastructure involved a
656         compile-time option.
657        </para>
658       </listitem>
659
660       <listitem>
661 <!--
662 2015-05-08 [a97e0c3] Stephe..: Add pg_file_settings view and function
663 2015-06-28 [62d16c7] Tom Lane: Improve design and implementation of pg_file_se..
664 -->
665        <para>
666         Add system view <link
667         linkend="view-pg-file-settings"><structname>pg_file_settings</></>
668         to show the contents of the server's configuration files
669         (Sawada Masahiko)
670        </para>
671       </listitem>
672
673       <listitem>
674 <!--
675 2015-05-14 [a486e35] Peter ..: Add pg_settings.pending_restart column
676 -->
677        <para>
678         Add <structname>pending_restart</> to the system view <link
679         linkend="view-pg-settings"><structname>pg_settings</></> to
680         indicate a change is pending a restart (Peter Eisentraut)
681        </para>
682       </listitem>
683
684       <listitem>
685 <!--
686 2014-09-02 [bd3b7a9] Fujii ..: Support ALTER SYSTEM RESET command.
687 -->
688        <para>
689         Allow <link linkend="SQL-ALTERSYSTEM"><command>ALTER SYSTEM</></>
690         values to be reset with <command>ALTER SYSTEM RESET</> (Vik
691         Fearing)
692        </para>
693
694        <para>
695         This command removes the setting from <filename>postgresql.auto.conf</>.
696        </para>
697       </listitem>
698
699      </itemizedlist>
700
701     </sect4>
702
703    </sect3>
704
705    <sect3>
706     <title>Replication and Recovery</title>
707
708      <itemizedlist>
709
710       <listitem>
711 <!--
712 2014-11-25 [aedccb1] Simon ..: action_at_recovery_target recovery config option
713 2014-12-07 [b8e33a8] Simon ..: Tweaks for recovery_target_action
714 2015-03-15 [51c11a7] Andres..: Remove pause_at_recovery_target recovery.conf s..
715 -->
716        <para>
717         Add <link linkend="recovery-config"><filename>recovery.conf</></>
718         parameter <link
719         linkend="recovery-target-action"><varname>recovery_target_action</></>
720         to control post-recovery activity (Petr Jel&iacute;nek)
721        </para>
722
723        <para>
724         This replaces the old parameter <varname>pause_at_recovery_target</>.
725        </para>
726       </listitem>
727
728       <listitem>
729 <!--
730 2015-05-15 [ffd3774] Heikki..: Add archive_mode='always' option.
731 -->
732        <para>
733         Add new <xref linkend="guc-archive-mode"> value
734         <literal>always</> to allow standbys to always archive received
735         <acronym>WAL</> files (Fujii Masao)
736        </para>
737       </listitem>
738
739       <listitem>
740 <!--
741 2015-02-23 [5d2b45e] Fujii ..: Add GUC to control the time to wait before retr..
742 -->
743        <para>
744         Add configuration
745         parameter <xref linkend="guc-wal-retrieve-retry-interval"> to
746         control <acronym>WAL</> read retry after failure
747         (Alexey Vasiliev, Michael Paquier)
748        </para>
749
750        <para>
751         This is particularly helpful for warm standbys.
752        </para>
753       </listitem>
754
755       <listitem>
756 <!--
757 2015-05-08 [de76884] Heikki..: At promotion, archive last segment from old tim..
758 -->
759        <para>
760         Archive <acronym>WAL</> files with suffix <literal>.partial</>
761         during standby promotion (Heikki Linnakangas)
762        </para>
763       </listitem>
764
765       <listitem>
766 <!--
767 2014-09-13 [4ad2a54] Fujii ..: Add GUC to enable logging of replication comman..
768 -->
769        <para>
770         Add configuration parameter <xref
771         linkend="guc-log-replication-commands">
772         to log replication commands (Fujii Masao)
773        </para>
774
775        <para>
776         By default, replication commands, e.g. <link
777         linkend="protocol-replication"><literal>IDENTIFY_SYSTEM</></>,
778         are not logged, even when <xref linkend="guc-log-statement"> is set
779         to <literal>all</>.
780        </para>
781       </listitem>
782
783       <listitem>
784 <!--
785 2015-04-29 [5aa2350] Andres..: Introduce replication progress tracking infrast..
786 2015-03-15 [4f1b890] Andres..: Merge the various forms of transaction commit &..
787 FIXME: Correct description
788 -->
789        <para>
790         Allow <link linkend="pg-replication-origin-create">labeling</>
791         of the origin of logical replication changes (Andres Freund)
792        </para>
793
794        <para>
795         This helps with change tracking.
796        </para>
797       </listitem>
798
799       <listitem>
800 <!--
801 2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
802 2015-04-21 [d811c03] Andres..: Add 'active_in' column to pg_replication_slots.
803 -->
804        <para>
805         Report the processes holding replication slots in <link
806         linkend="catalog-pg-replication-slots"><structname>pg_replication_slots</></>
807         (Craig Ringer)
808        </para>
809
810        <para>
811         The new output column is <structname>active_pid</>.
812        </para>
813       </listitem>
814
815       <listitem>
816 <!--
817 2014-11-25 [b3fc672] Heikki..: Allow using connection URI in primary_conninfo.
818 -->
819        <para>
820         Allow <filename>recovery.conf</>'s <link
821         linkend="primary-conninfo"><varname>primary_conninfo</></> to
822         use connection <acronym>URI</>s, e.g. <literal>postgres://</>
823         (Alexander Shulgin)
824        </para>
825       </listitem>
826
827      </itemizedlist>
828
829    </sect3>
830
831    <sect3>
832     <title>Queries</title>
833
834      <itemizedlist>
835
836       <listitem>
837 <!--
838 2015-05-08 [168d580] Andres..: Add support for INSERT ... ON CONFLICT DO NOTHI..
839 2015-05-08 [2c8f483] Andres..: Represent columns requiring insert and update p..
840 -->
841        <para>
842         Allow <link linkend="sql-on-conflict"><command>INSERTS</></>
843         that would generate constraint conflicts to be turned into
844         <command>UPDATE</>s or ignored (Peter Geoghegan, Heikki
845         Linnakangas, Andres Freund)
846        </para>
847
848        <para>
849         The syntax is <command>INSERT ... ON CONFLICT DO NOTHING/UPDATE</>.
850         This is the Postgres implementation of the popular
851         <command>UPSERT</> command.
852        </para>
853       </listitem>
854
855       <listitem>
856 <!--
857 2015-05-16 [f3d3118] Andres..: Support GROUPING SETS, CUBE and ROLLUP.
858 -->
859        <para>
860         Add <literal>GROUP BY</> analysis functions <link
861         linkend="queries-grouping-sets"><literal>GROUPING SETS</></>,
862         <link linkend="queries-grouping-sets"><literal>CUBE</></> and
863         <link linkend="queries-grouping-sets"><literal>ROLLUP</></>
864         (Andrew Gierth, Atri Sharma)
865        </para>
866       </listitem>
867
868       <listitem>
869 <!--
870 2014-06-18 [8f889b1] Tom Lane: Implement UPDATE tab SET (col1,col2,...) = (SEL..
871 -->
872        <para>
873         Allow to set multiple columns in
874         an <link linkend="SQL-UPDATE"><command>UPDATE</></> to the result of a
875         single subselect (Tom Lane)
876        </para>
877
878        <para>
879         This is accomplished using the syntax <command>UPDATE tab SET
880         (col1, col2, ...) = (SELECT ...)</>.
881        </para>
882       </listitem>
883
884       <listitem>
885 <!--
886 2014-10-07 [df630b0] Alvaro..: Implement SKIP LOCKED for row-level locks
887 -->
888        <para>
889         Add new <link linkend="SQL-SELECT"><command>SELECT</></> option
890         <literal>SKIP LOCKED</> to skip locked rows (Thomas Munro)
891        </para>
892
893        <para>
894         This does not throw an error for locked rows like
895         <literal>NOWAIT</> does.
896        </para>
897       </listitem>
898
899       <listitem>
900 <!--
901 2015-05-15 [f6d208d] Simon ..: TABLESAMPLE, SQL Standard and extensible
902 -->
903        <para>
904         Add <link linkend="SQL-SELECT"><command>SELECT</></> option
905         <literal>TABLESAMPLE</> to return a subset of a table (Petr
906         Jel&iacute;nek)
907        </para>
908       </listitem>
909
910       <listitem>
911 <!--
912 2015-03-11 [e529cd4] Robert..: Suggest to the user the column they may have m..
913 -->
914        <para>
915         Suggest possible matches for mistyped column names (Peter
916         Geoghegan, Robert Haas)
917        </para>
918       </listitem>
919
920      </itemizedlist>
921
922    </sect3>
923
924    <sect3>
925     <title>Utility Commands</title>
926
927      <itemizedlist>
928
929       <listitem>
930 <!--
931 2015-01-16 [20af53d] Tom Lane: Show sort ordering options in EXPLAIN output.
932 -->
933        <para>
934         Add more details about sort ordering in <link
935         linkend="SQL-EXPLAIN"><command>EXPLAIN</></> output (Marius Timmer,
936         Lukas Kreft, Arne Scheffer)
937        </para>
938
939        <para>
940         Details include <literal>COLLATE</>, <literal>DESC</>,
941         <literal>USING</>, and <literal>NULLS FIRST</><literal>/LAST</>.
942        </para>
943       </listitem>
944
945       <listitem>
946 <!--
947 2014-12-18 [35192f0] Alvaro..: Have VACUUM log number of skipped pages due to ..
948 -->
949        <para>
950         Have <link linkend="SQL-VACUUM"><command>VACUUM</></> log the
951         number of pages skipped due to pins (Jim Nasby)
952        </para>
953       </listitem>
954
955       <listitem>
956 <!--
957 2015-02-20 [d42358e] Alvaro..: Have TRUNCATE update pgstat tuple counters
958 -->
959        <para>
960         Have <link linkend="SQL-TRUNCATE"><command>TRUNCATE</></> properly
961         update the <literal>pg_stat</>* tuple counters (Alexander Shulgin)
962        </para>
963       </listitem>
964
965        </itemizedlist>
966
967        <sect4>
968         <title><xref linkend="SQL-REINDEX"></title>
969
970         <itemizedlist>
971
972       <listitem>
973 <!--
974 2014-12-09 [fe263d1] Simon ..: REINDEX SCHEMA
975 -->
976        <para>
977         Allow <command>REINDEX</> to reindex an entire schema using the
978         <literal>SCHEMA</> option (Sawada Masahiko)
979        </para>
980       </listitem>
981
982       <listitem>
983 <!--
984 2015-05-15 [ecd222e] Fujii ..: Support VERBOSE option in REINDEX command.
985 -->
986        <para>
987         Add <literal>VERBOSE</> option to <command>REINDEX</> (Sawada
988         Masahiko)
989        </para>
990       </listitem>
991
992       <listitem>
993 <!--
994 2014-12-09 [ae4e688] Simon ..: Silence REINDEX
995 -->
996        <para>
997         Prevent <command>REINDEX DATABASE</> and <command>SCHEMA</>
998         from outputting object names, unless <literal>VERBOSE</> is used
999         (Simon Riggs)
1000        </para>
1001       </listitem>
1002
1003       <listitem>
1004 <!--
1005 2015-04-09 [17d436d] Fujii ..: Remove obsolete FORCE option from REINDEX.
1006 -->
1007        <para>
1008         Remove obsolete <literal>FORCE</> option from <command>REINDEX</>
1009         (Fujii Masao)
1010        </para>
1011       </listitem>
1012
1013       </itemizedlist>
1014
1015      </sect4>
1016    </sect3>
1017
1018    <sect3>
1019     <title>Object Manipulation</title>
1020
1021      <itemizedlist>
1022
1023       <listitem>
1024 <!--
1025 2014-09-19 [491c029] Stephe..: Row-Level Security Policies (RLS)
1026 -->
1027        <para>
1028         Add row-level security control (Craig Ringer, KaiGai Kohei,
1029         Adam Brightwell, Dean Rasheed, Stephen Frost)
1030        </para>
1031
1032        <para>
1033         This controls viewing and adding/modifying rows via new commands
1034         <link linkend="SQL-CREATEPOLICY"><command>CREATE</></>/<link
1035         linkend="SQL-ALTERPOLICY"><command>ALTER</></>/<link
1036         linkend="SQL-DROPPOLICY"><command>DROP POLICY</></> and <link
1037         linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... ENABLE/DISABLE
1038         ROW SECURITY</></>.
1039        </para>
1040       </listitem>
1041
1042       <listitem>
1043 <!--
1044 2014-08-22 [f41872d] Alvaro..: Implement ALTER TABLE .. SET LOGGED / UNLOGGED
1045 -->
1046        <para>
1047         Allow to convert a <acronym>WAL</acronym> logged table to an UNLOGGED
1048         one, and the other way round with
1049         <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE .. SET LOGGED /
1050         UNLOGGED</></> (Fabr&iacute;zio de Royes Mello)
1051        </para>
1052       </listitem>
1053
1054       <listitem>
1055 <!--
1056 2014-08-26 [0076f26] Heikki..: Implement IF NOT EXISTS for CREATE SEQUENCE.
1057 2014-11-06 [08309aa] Fujii ..: Implement IF NOT EXIST for CREATE INDEX.
1058 2014-12-13 [e39b6f9] Andrew..: Add CINE option for CREATE TABLE AS and CREATE ..
1059 -->
1060        <para>
1061         Add <literal>IF NOT EXISTS</> clause to <link
1062         linkend="SQL-CREATETABLEAS"><command>CREATE TABLE AS</></>,
1063         <link linkend="SQL-CREATEINDEX"><command>CREATE INDEX</></>,
1064         <link linkend="SQL-CREATESEQUENCE"><command>CREATE SEQUENCE</></>,
1065         and <link linkend="SQL-CREATEMATERIALIZEDVIEW"><command>CREATE
1066         MATERIALIZED VIEW</></> (Fabr&iacute;zio de Royes Mello)
1067        </para>
1068       </listitem>
1069
1070       <listitem>
1071 <!--
1072 2015-03-24 [1d8198b] Bruce ..: Add support for ALTER TABLE IF EXISTS ... RENAM..
1073 -->
1074        <para>
1075         Add support for <literal>IF EXISTS</> to <link
1076         linkend="SQL-ALTERTABLE"><command>ALTER TABLE ... RENAME
1077         CONSTRAINT</></> (Bruce Momjian)
1078        </para>
1079       </listitem>
1080
1081       <listitem>
1082 <!--
1083 2015-03-09 [31eae60] Alvaro..: Allow CURRENT/SESSION_USER to be used in certai..
1084 -->
1085        <para>
1086         Allow <literal>CURRENT</><literal>/SESSION_USER</> to specify the
1087         current user in some commands (Kyotaro Horiguchi, &Aacute;lvaro
1088         Herrera)
1089        </para>
1090
1091        <para>
1092         Commands include <link linkend="SQL-ALTERUSER"><command>ALTER
1093         USER</></>,
1094        <link linkend="SQL-ALTERGROUP"><command>ALTER
1095         GROUP</></>, <link linkend="SQL-ALTERROLE"><command>ALTER
1096         ROLE</></>, <link linkend="SQL-GRANT"><command>GRANT</></>,
1097         and various <command>ALTER OBJECT / OWNER TO</> commands.
1098        </para>
1099       </listitem>
1100
1101       <listitem>
1102 <!--
1103 2015-06-21 [ad89a5d] Alvaro..: Add transforms to pg_get_object_address and fr..
1104 -->
1105        <para>
1106         Allow comments on <link linkend="SQL-CREATEDOMAIN">domain
1107         constraints</> (&Aacute;lvaro Herrera)
1108        </para>
1109       </listitem>
1110
1111       <listitem>
1112 <!--
1113 2015-04-05 [0ef0396] Simon ..: Reduce lock levels of some trigger DDL and add ..
1114 -->
1115        <para>
1116         Reduce lock levels of some create and alter trigger and foreign
1117         key commands (Simon Riggs, Andreas Karlsson)
1118        </para>
1119       </listitem>
1120
1121       <listitem>
1122 <!--
1123 2015-05-11 [fa26424] Stephe..: Allow LOCK TABLE .. ROW EXCLUSIVE MODE with IN..
1124 -->
1125        <para>
1126         Allow <link linkend="SQL-LOCK"><command>LOCK TABLE .. ROW EXCLUSIVE
1127         MODE</></> for those with <command>INSERT</> privileges (Stephen
1128         Frost)
1129        </para>
1130
1131        <para>
1132         Previously only <command>UPDATE</>, <command>DELETE</>, and
1133         <command>TRUNCATE</> privileges allowed this.
1134        </para>
1135       </listitem>
1136
1137       <listitem>
1138 <!--
1139 2015-03-23 [e5f455f] Tom Lane: Apply table and domain CHECK constraints in nam.
1140 -->
1141        <para>
1142         Apply table and domain <literal>CHECK</> constraints in name order
1143         (Tom Lane)
1144        </para>
1145
1146        <para>
1147         The previous order was indeterminate.
1148        </para>
1149       </listitem>
1150
1151       <listitem>
1152 <!--
1153 2014-07-01 [15c82ef] Tom Lane: Refactor CREATE/ALTER DATABASE syntax so option..
1154 2014-07-01 [fbb1d7d] Tom Lane: Allow CREATE/ALTER DATABASE to manipulate datis..
1155 -->
1156        <para>
1157         Allow <link
1158         linkend="SQL-CREATEDATABASE"><command>CREATE</></>/<link
1159         linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE</></>
1160         to manipulate <structname>datistemplate</> and
1161         <structname>datallowconn</> (Vik Fearing)
1162        </para>
1163
1164        <para>
1165         This allows these database settings to be
1166         changed more easily than modifying the <link
1167         linkend="catalog-pg-database"><structname>pg_database</></>
1168         system table.
1169        </para>
1170       </listitem>
1171
1172      </itemizedlist>
1173
1174      <sect4>
1175       <title><xref linkend="SQL-CREATEFOREIGNDATAWRAPPER"></title>
1176
1177       <itemizedlist>
1178
1179       <listitem>
1180 <!--
1181 2014-07-10 [59efda3] Tom Lane: Implement IMPORT FOREIGN SCHEMA.
1182 -->
1183        <para>
1184         Add support for <link
1185         linkend="SQL-IMPORTFOREIGNSCHEMA"><command>IMPORT FOREIGN
1186         SCHEMA</></> (Ronan Dunklau, Michael Paquier, Tom Lane)
1187        </para>
1188
1189        <para>
1190         This command allows automatic creation of local foreign tables
1191         that match the structure of existing tables on a remote server.
1192        </para>
1193       </listitem>
1194
1195       <listitem>
1196 <!--
1197 2015-03-22 [cb1ca4d] Tom Lane: Allow foreign tables to participate in inherita..
1198 -->
1199        <para>
1200         Allow foreign tables to participate in inheritance (Shigeru Hanada,
1201         Etsuro Fujita)
1202        </para>
1203
1204        <para>
1205         This also allows foreign tables to mark check constraints as not
1206         valid, and to set storage and <type>OID</> characteristics.
1207        </para>
1208       </listitem>
1209
1210       <listitem>
1211 <!--
1212 2014-12-17 [fc2ac1f] Tom Lane: Allow CHECK constraints to be placed on foreign..
1213 -->
1214        <para>
1215         Allow <literal>CHECK</> constraints to be placed on foreign tables
1216         (Shigeru Hanada, Etsuro Fujita)
1217        </para>
1218
1219        <para>
1220         These constraints are assumed to be enforced on the remote server,
1221         and are not enforced locally.  However, they are assumed to hold for
1222         purposes of query optimization, such
1223         as <link linkend="ddl-partitioning-constraint-exclusion">constraint
1224         exclusion</>.
1225        </para>
1226       </listitem>
1227
1228       <listitem>
1229 <!--
1230 2015-05-01 [e7cb7ee] Robert..: Allow FDWs and custom scan providers to replace..
1231 2015-05-10 [1a8a4e5] Tom Lane: Code review for foreign/custom join pushdown pa..
1232 -->
1233        <para>
1234         Allow foreign data wrappers and custom scans to implement join
1235         pushdown (KaiGai Kohei)
1236        </para>
1237       </listitem>
1238
1239      </itemizedlist>
1240
1241      </sect4>
1242
1243      <sect4>
1244       <title><xref linkend="SQL-CREATEEVENTTRIGGER"></title>
1245
1246       <itemizedlist>
1247
1248        <listitem>
1249 <!--
1250 2015-05-11 [b488c58] Alvaro..: Allow on-the-fly capture of DDL event details
1251 FIXME: Better description?
1252 -->
1253         <para>
1254          Add a set-returning function <link
1255          linkend="pg-event-trigger-ddl-command-end-functions"><function>pg_event_trigger_ddl_commands()</></>, which returns <acronym>DDL</> activity
1256          associated with event triggers (&Aacute;lvaro Herrera)
1257         </para>
1258        </listitem>
1259
1260        <listitem>
1261 <!--
1262 2014-12-08 [618c943] Simon ..: Event Trigger for table_rewrite
1263 -->
1264         <para>
1265          Allow event triggers on table rewrites caused by <link
1266          linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></> (Dimitri
1267          Fontaine)
1268         </para>
1269        </listitem>
1270
1271        <listitem>
1272 <!--
1273 2015-02-23 [296f3a6] Alvaro..: Support more commands in event triggers
1274 -->
1275         <para>
1276          Add event trigger support for database-level <link
1277          linkend="SQL-COMMENT"><command>COMMENT</></>, <link
1278          linkend="SQL-SECURITY-LABEL"><command>SECURITY LABEL</></>,
1279          and <link linkend="SQL-GRANT"><command>GRANT</></>/<link
1280          linkend="SQL-REVOKE"><command>REVOKE</></> (&Aacute;lvaro Herrera)
1281         </para>
1282        </listitem>
1283
1284        <listitem>
1285 <!--
1286 2014-12-30 [72dd233] Alvaro..: pg_event_trigger_dropped_objects: Add name/args..
1287 2015-04-06 [e9a077c] Alvaro..: pg_event_trigger_dropped_objects: add is_temp c..
1288 -->
1289         <para>
1290          Add columns to the output of <link
1291          linkend="pg-event-trigger-sql-drop-functions"><function>pg_event_trigger_dropped_objects</></>
1292          (&Aacute;lvaro Herrera)
1293         </para>
1294
1295         <para>
1296          This allows simpler processing of delete operations.
1297         </para>
1298        </listitem>
1299
1300       </itemizedlist>
1301
1302      </sect4>
1303
1304    </sect3>
1305
1306    <sect3>
1307     <title>Data Types</title>
1308
1309     <itemizedlist>
1310
1311      <listitem>
1312 <!--
1313 2014-09-09 [57b1085] Peter ..: Allow empty content in xml type
1314 -->
1315       <para>
1316        Allow the <link linkend="datatype-xml"><type>XML</></> data type
1317        to accept empty or all-whitespace values (Peter Eisentraut)
1318       </para>
1319
1320       <para>
1321        This is required by the <acronym>SQL</>/<acronym>XML</>
1322        specification.
1323       </para>
1324      </listitem>
1325
1326      <listitem>
1327 <!--
1328 2015-01-06 [79af9a1] Peter ..: Fix namespace handling in xpath function
1329 -->
1330       <para>
1331        Fix <type>XML</> <link
1332        linkend="functions-xml-processing"><function>xpath()</></> handling
1333        to return namespace declarations even if the namespace is in a
1334        parent element (Ali Akbar)
1335       </para>
1336
1337       <para>
1338        Previously the namespace was not returned, potentially leading to
1339        invalid <type>XML</>.
1340       </para>
1341      </listitem>
1342
1343      <listitem>
1344 <!--
1345 2014-10-21 [6f04368] Peter ..: Allow input format xxxx-xxxx-xxxx for macaddr ..
1346 -->
1347       <para>
1348        Allow <link linkend="datatype-macaddr"><type>MACADDR</></> input
1349        using the format <literal>xxxx-xxxx-xxxx</> (Herwin Weststrate)
1350       </para>
1351      </listitem>
1352
1353      <listitem>
1354 <!--
1355 2014-10-18 [417f924] Bruce ..: interval:  tighten precision specification
1356 FIXME: Add more specifics?
1357 -->
1358       <para>
1359        Tighten syntax of <link
1360        linkend="datatype-interval-input"><type>INTERVAL</></> precision
1361        specifications (Bruce Momjian)
1362       </para>
1363
1364       <para>
1365        Only allow interval precision to be specified after the
1366        <literal>INTERVAL</> keyword if no units are specified.
1367       </para>
1368      </listitem>
1369
1370      <listitem>
1371 <!--
1372 2015-04-01 [89840d7] Tom Lane: Provide real selectivity estimators for inet/ci..
1373 -->
1374       <para>
1375        Add selectivity estimators for <link
1376        linkend="datatype-inet"><type>INET</></>/<link
1377        linkend="datatype-cidr"><type>CIDR</></> operators and improve
1378        estimators for text search functions (Emre Hasegeli, Tom Lane)
1379       </para>
1380      </listitem>
1381
1382     </itemizedlist>
1383
1384     <sect4>
1385      <title><link linkend="datatype-json"><acronym>JSON</></link></title>
1386
1387      <itemizedlist>
1388
1389       <listitem>
1390 <!--
1391 2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
1392 2015-05-31 [37def42] Andrew..: Rename jsonb_replace to jsonb_set and allow it ..
1393 -->
1394        <para>
1395         Add <type>JSONB</> functions <link
1396         linkend="functions-json-processing-table"><function>jsonb_set()</></>
1397         and <link
1398         linkend="functions-json-processing-table"><function>jsonb_pretty()</></>
1399         (Dmitry Dolgov, Andrew Dunstan, Petr Jel&iacute;nek)
1400        </para>
1401       </listitem>
1402
1403       <listitem>
1404 <!--
1405 2014-12-12 [7e354ab] Andrew..: Add several generator functions for jsonb that ..
1406 -->
1407        <para>
1408         Add several generator functions for <type>JSONB</> that already
1409         existed for <type>JSON</> (Andrew Dunstan)
1410        </para>
1411
1412        <para>
1413         These are <link
1414         linkend="functions-json-creation-table"><function>to_jsonb()</></>,
1415         <link
1416         linkend="functions-json-creation-table"><function>jsonb_object()</></>,
1417         <link
1418         linkend="functions-json-creation-table"><function>jsonb_build_object()</></>,
1419         <link
1420         linkend="functions-json-creation-table"><function>jsonb_build_array()</></>,
1421         <link
1422         linkend="functions-aggregate-table"><function>jsonb_agg()</></>,
1423         and <link
1424         linkend="functions-aggregate-table"><function>jsonb_object_agg()</></>.
1425        </para>
1426       </listitem>
1427
1428       <listitem>
1429 <!--
1430 2015-03-03 [b67f1ce] Tom Lane: Reduce json <=> jsonb casts from explicit-only..
1431 -->
1432        <para>
1433         Reduce casting requirements to/from <link
1434         linkend="datatype-json"><type>JSON</></> and <link
1435         linkend="datatype-json"><type>JSONB</></> (Tom Lane)
1436        </para>
1437       </listitem>
1438
1439       <listitem>
1440 <!--
1441 2015-06-11 [908e234] Andrew..: Rename jsonb - text[] operator to #- to avoid a..
1442 -->
1443        <para>
1444         Allow <type>TEXT</>, <type>TEXT</> array, and <type>INTEGER</>
1445         values to be <link linkend="functions-jsonb-op-table">subtracted</>
1446         from <type>JSONB</> documents (Dmitry Dolgov, Andrew Dunstan)
1447        </para>
1448       </listitem>
1449
1450       <listitem>
1451 <!--
1452 2015-05-12 [c694701] Andrew..: Additional functions and operators for jsonb
1453 -->
1454        <para>
1455         Add <type>JSONB</> <link
1456         linkend="functions-jsonb-op-table">operator</> <literal>||</>
1457         (Dmitry Dolgov, Andrew Dunstan)
1458        </para>
1459       </listitem>
1460
1461       <listitem>
1462 <!--
1463 2014-12-12 [237a882] Andrew..: Add json_strip_nulls and jsonb_strip_nulls fun..
1464 -->
1465        <para>
1466         Add <link
1467         linkend="functions-json-processing-table"><function>json_strip_nulls()</></>
1468         and <link
1469         linkend="functions-json-processing-table"><function>jsonb_strip_nulls()</></>
1470         functions to remove <type>JSON</> null values from documents
1471         (Andrew Dunstan)
1472        </para>
1473       </listitem>
1474
1475      </itemizedlist>
1476
1477     </sect4>
1478
1479    </sect3>
1480
1481    <sect3>
1482     <title>Functions</title>
1483
1484      <itemizedlist>
1485
1486       <listitem>
1487 <!--
1488 2014-11-11 [1871c89] Fujii ..: Add generate_series(numeric, numeric).
1489 -->
1490        <para>
1491         Add <link linkend="functions-srf"><function>generate_series()</></>
1492         for <type>NUMERIC</> values (Plato Malugin)
1493        </para>
1494       </listitem>
1495
1496       <listitem>
1497 <!--
1498 2014-11-25 [bac2739] Tom Lane: Support arrays as input to array_agg() and ARRA..
1499 -->
1500        <para>
1501         Allow <link
1502         linkend="functions-aggregate-table"><function>array_agg()</></> and
1503         <function>ARRAY()</> to take arrays as inputs (Ali Akbar, Tom Lane)
1504        </para>
1505       </listitem>
1506
1507       <listitem>
1508 <!--
1509 2015-03-18 [13dbc7a] Alvaro..: array_offset() and array_offsets()
1510 2015-03-30 [97690ea] Alvaro..: Change array_offset to return subscripts, not o..
1511 -->
1512        <para>
1513         Add functions <link
1514         linkend="array-functions-table"><function>array_position()</></>
1515         and <link
1516         linkend="array-functions-table"><function>array_positions()</></>
1517         to return subscripts of array values (Pavel Stehule)
1518        </para>
1519       </listitem>
1520
1521       <listitem>
1522 <!--
1523 2014-12-15 [4520ba6] Heikki..: Add point <-> polygon distance operator.
1524 -->
1525        <para>
1526         Add <link
1527         linkend="gist-builtin-opclasses-table"><type>point</>-to-<type>polygon</></>
1528         distance operator (&lt;-&gt;) (Alexander Korotkov)
1529        </para>
1530       </listitem>
1531
1532       <listitem>
1533 <!--
1534 2014-08-27 [8167a38] Jeff D..: Allow multibyte characters as escape in SIMILA..
1535 -->
1536        <para>
1537         Allow multi-byte characters as escape in <link
1538         linkend="functions-similarto-regexp"><literal>SIMILAR TO</></>
1539         and <link linkend="functions-string-sql"><literal>SUBSTRING</></>
1540         (Jeff Davis)
1541        </para>
1542
1543        <para>
1544         Previously, only a single-byte character was allowed as an escape.
1545        </para>
1546       </listitem>
1547
1548       <listitem>
1549 <!--
1550 2014-09-09 [e80252d] Tom Lane: Add width_bucket(anyelement, anyarray).
1551 -->
1552        <para>
1553         Add a <link
1554         linkend="functions-math-func-table"><function>width_bucket()</></>
1555         variant that supports any sortable data type and non-uniform bucket
1556         widths (Petr Jel&iacute;nek)
1557        </para>
1558       </listitem>
1559
1560       <listitem>
1561 <!--
1562 2015-03-10 [865f14a] Robert..: Allow named parameters to be specified using =>..
1563 -->
1564        <para>
1565         Allow <link linkend="sql-syntax-calling-funcs"><literal>=&gt;</></>
1566         to specify named parameters in function calls (Pavel Stehule)
1567        </para>
1568
1569        <para>
1570         Previously only <literal>:=</> could be used.  This requires removing
1571         the possibility for <literal>=&gt;</> to be a user-defined operator.
1572         Creation of user-defined <literal>=&gt;</> operators has been issuing
1573         warnings since Postgres 9.0.
1574        </para>
1575       </listitem>
1576
1577       <listitem>
1578 <!--
1579 2015-03-25 [06bf0dd] Tom Lane: Upgrade src/port/rint.c to be POSIX-compliant.
1580 -->
1581        <para>
1582         Add <acronym>POSIX</>-compliant rounding for platforms that use
1583         Postgres-supplied rounding functions (Pedro Gimeno Fortea)
1584        </para>
1585       </listitem>
1586
1587      </itemizedlist>
1588
1589     <sect4>
1590      <title>System Information Functions and Views</title>
1591
1592      <itemizedlist>
1593
1594       <listitem>
1595 <!--
1596 2014-12-23 [d7ee82e] Alvaro..: Add SQL-callable pg_get_object_address
1597 -->
1598        <para>
1599         Add function <link
1600         linkend="functions-info-object-table"><function>pg_get_object_address()</></>
1601         to return <type>OID</>s that uniquely identify an object
1602         (&Aacute;lvaro Herrera)
1603        </para>
1604       </listitem>
1605
1606       <listitem>
1607 <!--
1608 2014-12-30 [a676201] Alvaro..: Add pg_identify_object_as_address
1609 -->
1610        <para>
1611         Add function <link
1612         linkend="functions-info-object-table"><function>pg_identify_object_as_address()</></>
1613         to return object information based on <type>OID</>s (&Aacute;lvaro
1614         Herrera)
1615        </para>
1616       </listitem>
1617
1618       <listitem>
1619 <!--
1620 2015-03-19 [bf03889] Stephe..: GetUserId() changes to has_privs_of_role()
1621 -->
1622        <para>
1623         Loosen security checks for viewing queries in <link
1624         linkend="pg-stat-activity-view"><structname>pg_stat_activity</></>,
1625         executing <link
1626         linkend="functions-admin-signal-table"><function>pg_cancel_backend()</></>,
1627         and executing <link
1628         linkend="functions-admin-signal-table"><function>pg_terminate_backend()</></>
1629         (Stephen Frost)
1630        </para>
1631
1632        <para>
1633         Now, role membership is sufficient; previously only the same
1634         role could perform these operations.
1635        </para>
1636       </listitem>
1637
1638       <listitem>
1639 <!--
1640 2015-02-19 [2fb7a75] Tom Lane: Add pg_stat_get_snapshot_timestamp() to show s..
1641 -->
1642        <para>
1643         Add <link
1644         linkend="monitoring-stats-funcs-table"><function>pg_stat_get_snapshot_timestamp()</></>
1645         to output the timestamp of the statistics snapshot (Matt Kelly)
1646        </para>
1647
1648        <para>
1649         This represents the last time the snapshot files was written to
1650         the file system.
1651        </para>
1652       </listitem>
1653
1654       <listitem>
1655 <!--
1656 2014-09-10 [36ad1a8] Bruce ..: Implement mxid_age() to compute multi-xid age
1657 -->
1658        <para>
1659         Add <link
1660         linkend="vacuum-for-multixact-wraparound"><function>mxid_age()</></>
1661         to compute multi-xid age (Bruce Momjian)
1662        </para>
1663       </listitem>
1664
1665       <listitem>
1666 <!--
1667 2015-05-09 [0c90f67] Andrew..: Add new OID alias type regrole
1668 2015-05-09 [cb9fa80] Andrew..: Add new OID alias type regnamespace
1669 -->
1670        <para>
1671         Add data types <link
1672         linkend="datatype-oid-table"><type>regrole</> <type>regnamespace</></> that returns
1673         the <type>OID</> of a role (Kyotaro Horiguchi)
1674        </para>
1675       </listitem>
1676      </itemizedlist>
1677
1678     </sect4>
1679
1680     <sect4>
1681      <title>Aggregates</title>
1682
1683      <itemizedlist>
1684
1685       <listitem>
1686 <!--
1687 2014-08-28 [6c40f83] Tom Lane: Add min and max aggregates for inet/cidr data t..
1688 -->
1689        <para>
1690         Add <function>MIN()</>/<function>MAX()</> aggregates
1691         for <link linkend="datatype-inet"><type>INET</></>/<link
1692         linkend="datatype-cidr"><type>CIDR</></> data types (Haribabu
1693         Kommi)
1694        </para>
1695       </listitem>
1696
1697       <listitem>
1698 <!--
1699 2015-03-20 [8122e14] Andres..: Add, optional, support for 128bit integers.
1700 2015-03-20 [959277a] Andres..: Use 128-bit math to accelerate some aggregation..
1701 -->
1702        <para>
1703         Use 128-bit integers, where supported, as aggregate accumulators
1704         (Andreas Karlsson)
1705        </para>
1706       </listitem>
1707
1708      </itemizedlist>
1709
1710     </sect4>
1711
1712    </sect3>
1713
1714    <sect3>
1715     <title>Server-Side Languages</title>
1716
1717     <itemizedlist>
1718
1719      <listitem>
1720 <!--
1721 2014-07-03 [8b6010b] Tom Lane: Improve support for composite types in PL/Python.
1722 -->
1723       <para>
1724        Improve support for composite types in <link
1725        linkend="plpython"><application>PL/Python</></> (Ed Behn, Ronan
1726        Dunklau)
1727       </para>
1728
1729       <para>
1730        This allows <application>PL/Python</> functions to return arrays
1731        of composite types.
1732       </para>
1733      </listitem>
1734
1735      <listitem>
1736 <!--
1737 2015-03-11 [1ce7a57] Peter ..: PL/Python: Avoid lossiness in float conversion
1738 -->
1739       <para>
1740        Reduce lossiness of <link
1741        linkend="plpython"><application>PL/Python</></> floating value
1742        conversions (Marko Kreen)
1743       </para>
1744      </listitem>
1745
1746      <listitem>
1747 <!--
1748 2015-04-26 [cac7658] Peter ..: Add transforms feature
1749 -->
1750       <para>
1751        Allow specification of conversion routines between <acronym>SQL</>
1752        data types and data types of procedural languages (Peter Eisentraut)
1753       </para>
1754
1755       <para>
1756        This change adds new commands <link
1757        linkend="SQL-CREATETRANSFORM"><command>CREATE</></>/<link
1758        linkend="SQL-DROPTRANSFORM"><command>DROP TRANSFORM</></>.
1759        This also adds optional transformations between the <link
1760        linkend="hstore"><application>hstore</></> and <link
1761        linkend="ltree"><application>ltree</></> types to/from <link
1762        linkend="plperl"><application>PL/Perl</></> and <link
1763        linkend="plpython"><application>PL/Python</></>.
1764       </para>
1765      </listitem>
1766
1767      </itemizedlist>
1768
1769      <sect4>
1770       <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
1771
1772       <itemizedlist>
1773
1774      <listitem>
1775 <!--
1776 2015-05-14 [1dc5ebc] Tom Lane: Support "expanded" objects, particularly arrays..
1777 2015-02-16 [e983c4d] Tom Lane: Rationalize the APIs of array element/slice acc..
1778 2015-02-18 [56a79a8] Tom Lane: Split array_push into separate array_append and..
1779 2015-02-16 [9e3ad1a] Tom Lane: Use fast path in plpgsql's RETURN/RETURN NEXT i..
1780 -->
1781       <para>
1782        Improve <link linkend="plpgsql"><application>PL/pgSQL</></> array
1783        performance (Tom Lane)
1784       </para>
1785      </listitem>
1786
1787      <listitem>
1788 <!--
1789 2015-03-25 [a4847fc] Tom Lane: Add an ASSERT statement in plpgsql.
1790 -->
1791       <para>
1792        Add <link linkend="plpgsql-statements-assert"><command>ASSERT</></>
1793        statement in <application>PL/pgSQL</> (Pavel Stehule)
1794       </para>
1795      </listitem>
1796
1797      <listitem>
1798 <!--
1799 2014-11-25 [bb1b8f6] Tom Lane: De-reserve most statement-introducing keywords ..
1800 -->
1801       <para>
1802        Allow more <link linkend="plpgsql"><application>PL/pgSQL</></>
1803        keywords to be used as identifiers (Tom Lane)
1804       </para>
1805      </listitem>
1806
1807     </itemizedlist>
1808
1809     </sect4>
1810
1811    </sect3>
1812
1813    <sect3>
1814     <title>Client Applications</title>
1815
1816     <itemizedlist>
1817
1818      <listitem>
1819 <!--
1820 2015-04-11 [83aca89] Peter ..: Move pg_archivecleanup from contrib/ to src/bin/
1821 2015-04-19 [00882d9] Peter ..: Move pg_test_fsync from contrib/ to src/bin/
1822 2015-04-20 [528c2e4] Peter ..: Move pg_test_timing from contrib/ to src/bin/
1823 2015-04-21 [b0a738f] Peter ..: Move pg_xlogdump from contrib/ to src/bin/
1824 -->
1825       <para>
1826        Move <link
1827        linkend="pgarchivecleanup"><application>pg_archivecleanup</></>,
1828        <link linkend="pgtestfsync"><application>pg_test_fsync</></>,
1829        <link linkend="pgtesttiming"><application>pg_test_timing</></>,
1830        and <link linkend="pgxlogdump"><application>pg_xlogdump</></>
1831        from <filename>contrib</> to <filename>src/bin</> (Peter Eisentraut)
1832       </para>
1833      </listitem>
1834
1835      <listitem>
1836 <!--
1837 2015-03-23 [61081e7] Heikki..: Add pg_rewind, for re-synchronizing a master se..
1838 -->
1839       <para>
1840        Add <link linkend="app-pgrewind"><application>pg_rewind</></>,
1841        which allows re-synchronizing a master server after failback
1842        (Heikki Linnakangas)
1843       </para>
1844      </listitem>
1845
1846      <listitem>
1847 <!--
1848 2014-10-06 [d9f38c7] Andres..: Add support for managing physical replication s..
1849 -->
1850       <para>
1851        Allow <link
1852        linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
1853        to manage physical replication slots (Michael Paquier)
1854       </para>
1855
1856       <para>
1857        This is controlled via new <option>--create-slot</> and
1858        <option>--drop-slot</> options.
1859       </para>
1860      </listitem>
1861
1862      <listitem>
1863 <!--
1864 2014-11-18 [c4f99d2] Fujii ..: Add &#8211;&#8211;synchronous option to pg_receivexlog, for..
1865 -->
1866       <para>
1867        Allow the <link
1868        linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
1869        to synchronously flush <acronym>WAL</> to storage using
1870        <option>--synchronous</> (Furuya Osamu, Fujii Masao)
1871       </para>
1872
1873       <para>
1874        Without this, <acronym>WAL</> files are fsynced only on close.
1875       </para>
1876      </listitem>
1877
1878      <listitem>
1879 <!--
1880 2015-01-23 [a179232] Alvaro..: vacuumdb: enable parallel mode
1881 -->
1882       <para>
1883        Allow <link linkend="APP-VACUUMDB"><command>vacuumdb</></> to
1884        vacuum in parallel using <option>--jobs</> (Dilip Kumar)
1885       </para>
1886      </listitem>
1887
1888      <listitem>
1889 <!--
1890 2015-05-15 [458a077] Fujii ..: Support &#8211;&#8211;verbose option in reindexdb.
1891 -->
1892       <para>
1893        Add <option>--verbose</> option to <link
1894        linkend="APP-REINDEXDB"><application>reindexdb</></> (Sawada
1895        Masahiko)
1896       </para>
1897      </listitem>
1898
1899      <listitem>
1900 <!--
1901 2015-05-12 [72d422a] Andrew..: Map basebackup tablespaces using a tablespace_..
1902 -->
1903       <para>
1904        Make <link linkend="app-pgbasebackup"><application>pg_basebackup</></>
1905        use a tablespace mapping file when using <application>tar</> format,
1906        to support symbolic links and file paths of 100+ characters in length
1907        on <systemitem class="osname">MS Windows</> (Amit Kapila)
1908       </para>
1909      </listitem>
1910
1911      <listitem>
1912 <!--
1913 2014-09-19 [728f152] Andres..: Add rmgr callback to name xlog record types for..
1914 2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic..
1915 -->
1916       <para>
1917        Add <link linkend="pgxlogdump"><application>pg_xlogdump</></> option
1918        <option>--stats</> to display summary statistics (Abhijit Menon-Sen)
1919       </para>
1920      </listitem>
1921
1922     </itemizedlist>
1923
1924      <sect4>
1925       <title><xref linkend="APP-PSQL"></title>
1926
1927       <itemizedlist>
1928
1929        <listitem>
1930 <!--
1931 2015-03-31 [9d9991c] Bruce ..: psql:  add asciidoc output format
1932 -->
1933         <para>
1934          Allow <application>psql</> to produce AsciiDoc output (Szymon Guz)
1935         </para>
1936        </listitem>
1937
1938        <listitem>
1939 <!--
1940 2014-07-10 [5b214c5] Fujii ..: Add new ECHO mode 'errors' that displays only ..
1941 -->
1942         <para>
1943          Add <literal>errors</> mode to <application>psql</>'s
1944          <varname>ECHO</> variable to display only failed commands
1945          (Pavel Stehule)
1946         </para>
1947
1948         <para>
1949          This can also be enabled with the <application>psql</>
1950          <option>-b</> option.
1951         </para>
1952        </listitem>
1953
1954        <listitem>
1955 <!--
1956 2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
1957 -->
1958         <para>
1959          Allow column, header, and border control to <application>psql</>'s
1960          Unicode style (Pavel Stehule)
1961         </para>
1962
1963         <para>
1964          Single or double output is supported;  the default is
1965          <literal>single</>.
1966         </para>
1967        </listitem>
1968
1969        <listitem>
1970 <!--
1971 2014-09-02 [51bb795] Andres..: Add psql PROMPT variable showing which line of ..
1972 -->
1973         <para>
1974          Add <application>psql</> <link
1975          linkend="APP-PSQL-variables"><envar>PROMPT</></> variables option
1976          (<literal>%l</>) to display the multi-line statement line number
1977          (Sawada Masahiko)
1978         </para>
1979        </listitem>
1980
1981        <listitem>
1982 <!--
1983 2015-03-28 [7655f4c] Andrew..: Add a pager_min_lines setting to psql
1984 -->
1985         <para>
1986          Add <application>psql</> setting <link
1987          linkend="APP-PSQL-meta-commands"><varname>pager_min_lines</></>
1988          to control pager invocation (Andrew Dunstan)
1989         </para>
1990        </listitem>
1991
1992        <listitem>
1993 <!--
1994 2014-11-21 [4077fb4] Andrew..: Fix an error in psql that overcounted output l..
1995 -->
1996         <para>
1997          Improve <application>psql</> line counting used when deciding
1998          to invoke the pager (Andrew Dunstan)
1999         </para>
2000        </listitem>
2001
2002        <listitem>
2003 <!--
2004 2014-07-12 [bd40951] Andres..: Minimal psql tab completion support for SET se..
2005 -->
2006         <para>
2007          Add <application>psql</> tab completion when setting the
2008          <xref linkend="guc-search-path"> variable (Jeff Janes)
2009         </para>
2010
2011         <para>
2012          Currently only the first schema can be tab-completed.
2013         </para>
2014        </listitem>
2015
2016        <listitem>
2017 <!--
2018 2014-06-23 [631e7f6] Heikki..: Improve tab-completion of DROP and ALTER ENABLE..
2019 -->
2020         <para>
2021          Improve <application>psql</>'s tab completion for triggers and rules
2022          (Andreas Karlsson)
2023         </para>
2024        </listitem>
2025
2026       </itemizedlist>
2027
2028      <sect5>
2029       <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
2030
2031       <itemizedlist>
2032
2033        <listitem>
2034 <!--
2035 2014-09-10 [07c8651] Andres..: Add new psql help topics, accessible to both..
2036 -->
2037         <para>
2038          Add <application>psql</> <command>\?</> help sections
2039          <literal>variables</> and <literal>options</> (Pavel Stehule)
2040         </para>
2041
2042         <para>
2043          <literal>variables</> outputs <application>psql</> variables
2044          and <literal>options</> shows command-line options.
2045          <command>\? commands</> is the default output. This help
2046          information can also be output via <literal>--help=section</>.
2047         </para>
2048        </listitem>
2049
2050        <listitem>
2051 <!--
2052 2014-07-14 [ee80f04] Alvaro..: psql: Show tablespace size in \db+
2053 -->
2054         <para>
2055          Show tablespace size in <application>psql</>'s <literal>\db+</>
2056          (Fabr&iacute;zio de Royes Mello)
2057         </para>
2058        </listitem>
2059
2060        <listitem>
2061 <!--
2062 2015-04-09 [a6f3c1f] Magnus..: Show owner of types in psql \dT+
2063 -->
2064         <para>
2065          Show data type owners in <application>psql</>'s <literal>\dT+</>
2066          (Magnus Hagander)
2067         </para>
2068        </listitem>
2069
2070        <listitem>
2071 <!--
2072 2014-09-04 [f6f654f] Fujii ..: Allow \watch to display query execution time if..
2073 -->
2074         <para>
2075          Allow <application>psql</>'s <command>\watch</> to output
2076          <command>\timing</> information (Fujii Masao)
2077         </para>
2078
2079         <para>
2080          Also prevent <option>--echo-hidden</> from echoing
2081          <command>\watch</> queries.
2082         </para>
2083        </listitem>
2084
2085        <listitem>
2086 <!--
2087 2014-11-22 [eca2b9b] Andrew..: Rework echo_hidden for \sf and \ef from commit ..
2088 -->
2089         <para>
2090          Allow <application>psql</>'s <literal>\sf</> and <literal>\ef</>
2091          to honor <envar>ECHO_HIDDEN</> (Andrew Dunstan)
2092         </para>
2093        </listitem>
2094
2095        <listitem>
2096 <!--
2097 2014-08-12 [e15c4ab] Fujii ..: Add tab-completion for \unset and valid setting..
2098 -->
2099         <para>
2100          Improve <application>psql</> tab completion for <command>\set</>,
2101          <command>\unset</>, and <literal>:variable</> names (Pavel
2102          Stehule)
2103         </para>
2104        </listitem>
2105
2106        <listitem>
2107 <!--
2108 2014-11-10 [095d401] Robert..: Tab complete second argument to \c with role n..
2109 -->
2110         <para>
2111          Allow tab completion of role names
2112          in <application>psql</> <literal>\c</> commands (Ian Barwick)
2113         </para>
2114        </listitem>
2115
2116       </itemizedlist>
2117
2118      </sect5>
2119
2120     </sect4>
2121
2122     <sect4>
2123      <title><xref linkend="APP-PGDUMP"></title>
2124
2125      <itemizedlist>
2126
2127       <listitem>
2128 <!--
2129 2014-11-17 [be1cc8f] Simon ..: Add pg_dump &#8211;&#8211;snapshot option
2130 -->
2131        <para>
2132         Allow <application>pg_dump</> to share a snapshot taken by another
2133         session using <option>--snapshot</> (Simon Riggs, Michael Paquier)
2134        </para>
2135
2136        <para>
2137         The remote snapshot must have been exported by
2138         <function>pg_export_snapshot()</> or been defined when creating
2139         a logical replication slot.  This can be used by parallel
2140         <application>pg_dump</> to use a consistent snapshot across
2141         <application>pg_dump</> processes.
2142        </para>
2143       </listitem>
2144
2145       <listitem>
2146 <!--
2147 2014-07-07 [7700597] Tom Lane: In pg_dump, show server and pg_dump versions w..
2148 -->
2149        <para>
2150         Always have <application>pg_dump</> print server and
2151         <application>pg_dump</> versions (Jing Wang)
2152        </para>
2153
2154        <para>
2155         Previously, version information was only printed in
2156         <option>--verbose</> mode.
2157        </para>
2158       </listitem>
2159
2160      </itemizedlist>
2161
2162     </sect4>
2163
2164     <sect4>
2165      <title><xref linkend="app-pg-ctl"></title>
2166
2167      <itemizedlist>
2168
2169       <listitem>
2170 <!--
2171 2015-03-31 [0badb06] Bruce ..: pg_ctl:  change default shutdown mode from 'sma..
2172 -->
2173        <para>
2174         Change <application>pg_ctl</>'s default shutdown mode from
2175         <literal>smart</> to <literal>fast</> (Bruce Momjian)
2176        </para>
2177       </listitem>
2178
2179       <listitem>
2180 <!--
2181 2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade:  allow multiple -o/-O opti..
2182 -->
2183        <para>
2184         Allow multiple <application>pg_ctl</> <option>-o</> options to
2185         be appended (Bruce Momjian)
2186        </para>
2187       </listitem>
2188
2189       <listitem>
2190 <!--
2191 2014-07-17 [c0e4520] Magnus..: Add option to pg_ctl to choose event source for..
2192 -->
2193        <para>
2194         Allow control of <application>pg_ctl</>'s event source logging
2195         on <systemitem class="osname">MS Windows</> (MauMau)
2196        </para>
2197
2198        <para>
2199         This only controls <application>pg_ctl</>, not the server, which
2200         has separate settings in <filename>postgresql.conf</>.
2201        </para>
2202       </listitem>
2203
2204      </itemizedlist>
2205
2206     </sect4>
2207
2208     <sect4>
2209      <title><xref linkend="pgupgrade"></title>
2210
2211      <itemizedlist>
2212
2213       <listitem>
2214 <!--
2215 2015-04-14 [9fa8b0e] Peter ..: Move pg_upgrade from contrib/ to src/bin/
2216 -->
2217        <para>
2218         Move <application>pg_upgrade</> from <filename>contrib</> to
2219         <filename>src/bin</> (Peter Eisentraut)
2220        </para>
2221
2222        <para>
2223         In connection with this change, the functionality previously
2224         provided by the <application>pg_upgrade_support</> module has been
2225         moved into the core server.
2226        </para>
2227       </listitem>
2228
2229       <listitem>
2230 <!--
2231 2014-08-25 [ebe30ad] Bruce ..: pg_ctl, pg_upgrade:  allow multiple -o/-O optio..
2232 -->
2233        <para>
2234         Allow multiple <application>pg_upgrade</>
2235         <option>-o</>/<option>-O</> options to be appended (Bruce Momjian)
2236        </para>
2237       </listitem>
2238
2239       <listitem>
2240 <!--
2241 2014-10-10 [33755e8] Heikki..: Change the way encoding and locale checks are d..
2242 -->
2243        <para>
2244         Improve database collation comparisons in
2245         <application>pg_upgrade</> (Heikki Linnakangas)
2246        </para>
2247       </listitem>
2248
2249       <listitem>
2250 <!--
2251 2015-03-18 [417f78a] Bruce ..: pg_upgrade: document use of rsync for slave up..
2252 -->
2253        <para>
2254         Document the use of <application>rsync</> for standby server
2255         upgrades using <application>pg_upgrade</> (Stephen Frost,
2256         Bruce Momjian)
2257        </para>
2258       </listitem>
2259
2260       <listitem>
2261 <!--
2262 2014-08-25 [2209b39] Bruce ..: pg_upgrade:  remove support for 8.3 old clusters
2263 -->
2264        <para>
2265         Remove support for upgrading from 8.3 clusters (Bruce Momjian)
2266        </para>
2267       </listitem>
2268
2269      </itemizedlist>
2270
2271     </sect4>
2272
2273     <sect4>
2274      <title><xref linkend="pgbench"></title>
2275
2276      <itemizedlist>
2277
2278       <listitem>
2279 <!--
2280 2015-04-13 [81134af] Peter ..: Move pgbench from contrib/ to src/bin/
2281 -->
2282        <para>
2283         Move pgbench from <filename>contrib</> to <filename>src/bin</>
2284         (Peter Eisentraut)
2285        </para>
2286       </listitem>
2287
2288       <listitem>
2289 <!--
2290 2014-10-13 [98aed6c] Heikki..: Add &#8211;&#8211;latency-limit option to pgbench.
2291 -->
2292        <para>
2293         Allow counting of pgbench transactions that take over a specified
2294         amount of time (Fabien Coelho)
2295        </para>
2296
2297        <para>
2298         This is controlled by new <option>--latency-limit</> option.
2299        </para>
2300       </listitem>
2301
2302       <listitem>
2303 <!--
2304 2014-07-30 [ed802e7] Robert..: pgbench: Allow \setrandom to generate Gaussian..
2305 -->
2306        <para>
2307         Allow pgbench to generate Gaussian/exponential distributions
2308         using <command>\setrandom</> (Kondo Mitsumasa, Fabien Coelho)
2309        </para>
2310       </listitem>
2311
2312       <listitem>
2313 <!--
2314 2015-03-02 [878fdcb] Robert..: pgbench: Add a real expression syntax to \set
2315 FIXME: Improve description, link
2316 -->
2317        <para>
2318         Allow <application>pgbench</>'s <command>\set</> command to handle
2319         multi-operator expressions (Robert Haas, Fabien Coelho)
2320        </para>
2321       </listitem>
2322
2323      </itemizedlist>
2324
2325     </sect4>
2326
2327    </sect3>
2328
2329    <sect3>
2330     <title>Source Code</title>
2331
2332      <itemizedlist>
2333
2334       <listitem>
2335 <!--
2336 2014-11-20 [2c03216] Heikki..: Revamp the WAL record format.
2337 -->
2338        <para>
2339         Simplify <link linkend="wal"><acronym>WAL</></> record format
2340         (Heikki Linnakangas)
2341        </para>
2342
2343        <para>
2344         This allows external tools to more easily track what blocks
2345         are modified.
2346        </para>
2347       </listitem>
2348
2349       <listitem>
2350 <!--
2351 2014-09-25 [b64d92f] Andres..: Add a basic atomic ops API abstracting away pla..
2352 -->
2353        <para>
2354         Add atomic memory operations <acronym>API</> (Andres Freund)
2355        </para>
2356       </listitem>
2357
2358       <listitem>
2359 <!--
2360 2014-11-07 [0b03e59] Robert..: Introduce custom path and scan providers.
2361 2014-11-20 [a34fa8e] Tom Lane: Initial code review for CustomScan patch.
2362 2014-11-21 [c2ea228] Tom Lane: Simplify API for initially hooking custom-path ..
2363 2014-11-21 [4477704] Tom Lane: Rearrange CustomScan API.
2364 -->
2365        <para>
2366         Allow custom path and scan methods (KaiGai Kohei, Tom Lane)
2367        </para>
2368
2369        <para>
2370         This allows extensions greater control over the optimizer and
2371         executor.
2372        </para>
2373       </listitem>
2374
2375       <listitem>
2376 <!--
2377 2015-05-12 [afb9249] Tom Lane: Add support for doing late row locking in FDWs.
2378 -->
2379        <para>
2380         Allow foreign data wrappers to do post-filter locking (Etsuro
2381         Fujita)
2382        </para>
2383       </listitem>
2384
2385       <listitem>
2386 <!--
2387 2014-12-18 [4a14f13] Tom Lane: Improve hash_create's API for selecting simple-..
2388 -->
2389        <para>
2390         Improve <function>hash_create()</>'s API for selecting
2391         simple-binary-key hash functions (Teodor Sigaev, Tom Lane)
2392        </para>
2393       </listitem>
2394
2395       <listitem>
2396 <!--
2397 2015-04-30 [924bcf4] Robert..: Create an infrastructure for parallel computati..
2398 2014-10-31 [2bd9e41] Robert..: Support frontend-backend protocol communication..
2399 -->
2400        <para>
2401         Improve parallel execution infrastructure (Robert Haas, Amit
2402         Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke)
2403        </para>
2404       </listitem>
2405
2406       <listitem>
2407 <!--
2408 2014-06-28 [a6d488c] Andres..: Remove Alpha and Tru64 support.
2409 -->
2410        <para>
2411         Remove <productname>Alpha</> (<acronym>CPU</>) and <systemitem
2412         class="osname">Tru64</> (OS) ports (Andres Freund)
2413        </para>
2414       </listitem>
2415
2416       <listitem>
2417 <!--
2418 2014-07-06 [4893ccd] Robert..: Remove swpb-based spinlock implementation for A..
2419 -->
2420        <para>
2421         Remove swap-byte-based spinlock implementation for
2422         <acronym>ARM</>v5 and earlier <acronym>CPU</>s (Robert Haas)
2423        </para>
2424
2425        <para>
2426         <acronym>ARM</>v5's weak memory ordering made this locking
2427         implementation unsafe.  Spinlock support is still possible on
2428         newer gcc implementations with atomics support.
2429        </para>
2430       </listitem>
2431
2432       <listitem>
2433 <!--
2434 2015-02-24 [23a7835] Peter ..: Error when creating names too long for tar for..
2435 -->
2436        <para>
2437         Generate an error when excessively long (100+ character) file
2438         paths are written to tar files (Peter Eisentraut)
2439        </para>
2440
2441        <para>
2442         Tar does not support such overly-long paths.
2443        </para>
2444       </listitem>
2445
2446       <listitem>
2447 <!--
2448 2015-05-19 [0b28ea7] Tom Lane: Avoid collation dependence in indexes of syste..
2449 -->
2450        <para>
2451         Change index opclass for columns <link
2452         linkend="catalog-pg-seclabel"><structname>pg_seclabel</></>.<structname>provider</>
2453         and <link
2454         linkend="catalog-pg-shseclabel"><structname>pg_shseclabel</></>.<structname>provider</>
2455         to be <literal>text_pattern_ops</> (Tom Lane)
2456        </para>
2457
2458        <para>
2459         This avoids possible problems with these indexes when different
2460         databases of a cluster have different default collations.
2461        </para>
2462       </listitem>
2463
2464       <listitem>
2465 <!--
2466 2014-09-09 [0709b7e] Robert..: Change the spinlock primitives to function as c..
2467 -->
2468        <para>
2469         Change the spinlock primitives to function as compiler barriers
2470         (Robert Haas)
2471        </para>
2472       </listitem>
2473
2474      </itemizedlist>
2475
2476     <sect4>
2477      <title>MS Windows</title>
2478
2479      <itemizedlist>
2480
2481       <listitem>
2482 <!--
2483 2014-12-08 [519b075] Simon ..: Use GetSystemTimeAsFileTime directly in win32
2484 2014-12-08 [8001fe6] Simon ..: Windows: use GetSystemTimePreciseAsFileTime if ..
2485 -->
2486        <para>
2487         Allow higher-precision timestamp resolution on <systemitem
2488         class="osname">Windows 8</> or <systemitem class="osname">Windows
2489         Server 2012</> and later Windows systems (Craig Ringer)
2490        </para>
2491       </listitem>
2492
2493       <listitem>
2494 <!--
2495 2015-03-18 [f9dead5] Alvaro..: Install shared libraries to bin/ in Windows un..
2496 -->
2497        <para>
2498         Install shared libraries to <filename>bin</> in <systemitem
2499         class="osname">MS Windows</> (Peter Eisentraut, Michael Paquier)
2500        </para>
2501       </listitem>
2502
2503       <listitem>
2504 <!--
2505 2015-04-16 [22d0053] Alvaro..: MSVC: install src/test/modules together with c..
2506 -->
2507        <para>
2508         Install <filename>src/test/modules</> together with
2509         <filename>contrib</> on <productname>MSVC</> builds (Michael
2510         Paquier)
2511        </para>
2512       </listitem>
2513
2514       <listitem>
2515 <!--
2516 2014-07-12 [8d9a0e8] Magnus..: Support &#8211;&#8211;with-extra-version equivalent functi..
2517 -->
2518        <para>
2519         Allow <link linkend="install-procedure">configure's
2520         <option>--with-extra-version</></> to be honored by the
2521         <productname>MSVC</> build (Michael Paquier)
2522        </para>
2523       </listitem>
2524
2525       <listitem>
2526 <!--
2527 2014-07-14 [91f03ba] Noah M..: MSVC: Recognize PGFILEDESC in contrib and conv..
2528 -->
2529        <para>
2530         Pass <envar>PGFILEDESC</> into <productname>MSVC</> contrib builds
2531         (Michael Paquier)
2532        </para>
2533       </listitem>
2534
2535       <listitem>
2536 <!--
2537 2014-07-14 [c4a448e] Noah M..: MSVC: Apply icons to all binaries having them ..
2538 -->
2539        <para>
2540         Add icons to all <productname>MSVC</>-built binaries and version
2541         information to all <systemitem class="osname">MS Windows</>
2542         binaries (Noah Misch)
2543        </para>
2544
2545        <para>
2546         MinGW already had such icons.
2547        </para>
2548       </listitem>
2549
2550       <listitem>
2551 <!--
2552 2014-09-10 [311da16] Andres..: Add support for optional_argument to our own ge..
2553 -->
2554        <para>
2555         Add optional-argument support to the internal
2556         <function>getopt_long()</> implementation (Michael Paquier,
2557         Andres Freund)
2558        </para>
2559
2560        <para>
2561         This is used by the <productname>MSVC</> build.
2562        </para>
2563       </listitem>
2564
2565      </itemizedlist>
2566
2567     </sect4>
2568
2569    </sect3>
2570
2571    <sect3>
2572     <title>Additional Modules</title>
2573
2574     <itemizedlist>
2575
2576      <listitem>
2577 <!--
2578 2015-03-27 [717f709] Andrew..: Add stats for min, max, mean, stddev times to p..
2579 -->
2580       <para>
2581        Add statistics for minimum, maximum,
2582        mean, and standard deviation times to <link
2583        linkend="pgstatstatements-columns"><application>pg_stat_statements</></>
2584        (Mitsumasa Kondo, Andrew Dunstan)
2585       </para>
2586      </listitem>
2587
2588      <listitem>
2589 <!--
2590 2014-10-01 [32984d8] Heikki..: Add functions for dealing with PGP armor heade..
2591 -->
2592       <para>
2593        Add <link linkend="pgcrypto"><application>pgcrypto</></> function
2594        <function>pgp_armor_headers()</> to extract <productname>PGP</>
2595        armor headers (Marko Tiikkaja, Heikki Linnakangas)
2596       </para>
2597      </listitem>
2598
2599      <listitem>
2600 <!--
2601 2014-06-30 [97c40ce] Tom Lane: Allow empty replacement strings in contrib/unac..
2602 -->
2603       <para>
2604        Allow empty replacement strings in <link
2605        linkend="unaccent"><application>unaccent</></> (Mohammad Alhashash)
2606       </para>
2607
2608       <para>
2609        This is useful in languages where diacritic signs are represented
2610        as separate characters.
2611       </para>
2612      </listitem>
2613
2614      <listitem>
2615 <!--
2616 2014-06-30 [1b24887] Tom Lane: Allow multi-character source strings in contrib..
2617 -->
2618       <para>
2619        Allow multi-character source strings in <link
2620        linkend="unaccent"><application>unaccent</></> (Tom Lane)
2621       </para>
2622
2623       <para>
2624        This could be useful in languages where diacritic signs are
2625        represented as separate characters.  It also allows more complex
2626        unaccent dictionaries.
2627       </para>
2628      </listitem>
2629
2630      <listitem>
2631 <!--
2632 2015-05-15 [9689290] Simon ..: TABLESAMPLE system_rows(limit)
2633 2015-05-15 [149f6f1] Simon ..: TABLESAMPLE system_time(limit)
2634 -->
2635       <para>
2636        Add <filename>contrib</> modules <link
2637        linkend="tsm-system-rows"><application>tsm_system_rows</></> and
2638        <link linkend="tsm-system-time"><application>tsm_system_time</></>
2639        to allow additional table sampling methods (Petr Jel&iacute;nek)
2640       </para>
2641      </listitem>
2642
2643      <listitem>
2644 <!--
2645 2014-11-21 [3a82bc6] Heikki..: Add pageinspect functions for inspecting GIN in..
2646 -->
2647       <para>
2648        Add <link linkend="GIN"><acronym>GIN</></>
2649        index inspection functions to <link
2650        linkend="pageinspect"><application>pageinspect</></> (Heikki
2651        Linnakangas, Peter Geoghegan, Michael Paquier)
2652       </para>
2653      </listitem>
2654
2655      <listitem>
2656 <!--
2657 2014-08-22 [f577919] Andres..: Add pinning_backends column to the pg_buffercac..
2658 -->
2659       <para>
2660        Add information about buffer pins to <link
2661        linkend="pgbuffercache"><application>pg_buffercache</></> display
2662        (Andres Freund)
2663       </para>
2664      </listitem>
2665
2666      <listitem>
2667 <!--
2668 2015-05-13 [5850b20] Andres..: Add pgstattuple_approx() to the pgstattuple ext..
2669 -->
2670       <para>
2671        Allow <link linkend="pgstattuple"><application>pgstattuple</></>
2672        to report approximate answers with less overhead using
2673        <function>pgstattuple_approx()</> (Abhijit Menon-Sen)
2674       </para>
2675      </listitem>
2676
2677      <listitem>
2678 <!--
2679 2014-11-29 [22dfd11] Alvaro..: Move test modules from contrib to src/test/modu..
2680 2014-12-01 [df761e3] Alvaro..: Move security_label test
2681 -->
2682       <para>
2683        Move <application>dummy_seclabel</>, <application>test_shm_mq</>,
2684        <application>test_parser</>, and <application>worker_spi</>
2685        from <filename>contrib</> to <filename>src/test/modules</>
2686        (&Aacute;lvaro Herrera)
2687       </para>
2688
2689       <para>
2690        These modules are only meant for server testing, so they do not need
2691        to be built or installed when packaging <productname>PostgreSQL</>.
2692       </para>
2693      </listitem>
2694
2695     </itemizedlist>
2696
2697    </sect3>
2698
2699   </sect2>
2700
2701  </sect1>