]> granicus.if.org Git - postgresql/blob - doc/src/sgml/release-9.3.sgml
9.3 release notes: move compatibility items into their own section
[postgresql] / doc / src / sgml / release-9.3.sgml
1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
3
4  <sect1 id="release-9-3">
5   <title>Release 9.3</title>
6
7   <note>
8    <title>Release Date</title>
9    <simpara>2013-XX-XX, CURRENT AS OF 2013-05-03</simpara>
10   </note>
11
12   <sect2>
13    <title>Overview</title>
14
15    <para>
16     ADD HERE  Major enhancements include:
17    </para>
18
19     <!-- This list duplicates items below, but without authors or details-->
20
21    <para>
22     The above items are explained in more detail in the sections below.
23    </para>
24
25   </sect2>
26
27   <sect2>
28
29   <title>Migration to Version 9.3</title>
30
31    <para>
32     A dump/restore using <link
33     linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
34     of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
35     required for those wishing to migrate data from any previous release.
36    </para>
37
38    <para>
39     Version 9.3 contains a number of changes that may affect compatibility
40     with previous releases.  Observe the following incompatibilities:
41    </para>
42
43    <sect3>
44     <title>Server Settings</title>
45
46      <itemizedlist>
47
48       <listitem>
49        <para>
50         Rename <varname>replication_timeout</> to <link
51         linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
52         (Amit Kapila)
53        </para>
54
55        <para>
56         This setting controls the <link
57         linkend="wal"><acronym>WAL</></link> sender timeout.
58        </para>
59       </listitem>
60
61       <listitem>
62        <para>
63         Improve grouping of sessions waiting for <link
64         linkend="guc-commit-delay"><varname>commit_delay</></link>
65         (Peter Geoghegan)
66        </para>
67
68        <para>
69         This improves the usefulness and behavior of
70         <varname>commit_delay</>.
71        </para>
72       </listitem>
73
74       <listitem>
75        <para>
76         Require superuser privileges to set <link
77         linkend="guc-commit-delay"><varname>commit_delay</></link>
78         because it can now potentially delay other sessions (Simon Riggs)
79        </para>
80       </listitem>
81
82       <listitem>
83        <para>
84         Have <quote>session id</> (<literal>%c</>) in <link
85         linkend="guc-log-line-prefix"><varname>log_line_prefix</></link>
86         always output four hex digits after the period (Bruce Momjian)
87        </para>
88       </listitem>
89
90      </itemizedlist>
91
92    </sect3>
93
94    <sect3>
95     <title>Other</title>
96
97      <itemizedlist>
98
99       <listitem>
100        <para>
101         Throw an error if expiring tuple is again updated or deleted (Kevin Grittner)
102         DETAILS?
103        </para>
104       </listitem>
105
106       <listitem>
107        <para>
108         Change <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
109         SET NULL/SET DEFAULT</></link> foreign key actions to affect
110         all referenced columns, not just those referenced in the
111         <command>UPDATE</> (Tom Lane)
112        </para>
113
114        <para>
115         Previously only columns referenced in the <command>UPDATE</> were
116         set to null or <literal>DEFAULT</>.
117        </para>
118       </listitem>
119
120       <listitem>
121        <para>
122         Internally store default foreign key matches (non-<literal>FULL</>,
123         non-<literal>PARTIAL</>) as <quote>simple</> (Tom Lane)
124        </para>
125
126        <para>
127         These were previously stored as "&lt;unspecified&gt;".
128         This changes the value stored in system column <link
129         linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>.
130        </para>
131       </listitem>
132
133       <listitem>
134        <para>
135         Store <link linkend="wal"><acronym>WAL</></link> in a continuous
136         stream, rather than skipping the last 16MB segment every 4GB
137         (Heikki Linnakangas)
138        </para>
139
140        <para>
141         Previously, <acronym>WAL</> files ending in <literal>FF</> were
142         not used.  If you have <acronym>WAL</> backup or restore scripts
143         that took that skipping into account, they need to be adjusted.
144        </para>
145       </listitem>
146
147      </itemizedlist>
148
149    </sect3>
150
151   </sect2>
152
153   <sect2>
154    <title>Changes</title>
155
156    <para>
157     Below you will find a detailed account of the changes between
158     <productname>PostgreSQL</productname> 9.3 and the previous major
159     release.
160    </para>
161
162    <sect3>
163     <title>Server</title>
164
165     <sect4>
166      <title>Locking</title>
167
168      <itemizedlist>
169
170       <listitem>
171        <para>
172         Prevent non-key-field row updates from locking foreign key rows
173         (&Aacute;lvaro Herrera, Noah Misch, Andres Freund, Alexander
174         Shulgin, Marti Raudsepp)
175        </para>
176
177        <para>
178         This improves concurrency and reduces the probability of deadlocks.
179         <command>UPDATE</>s on non-key columns use the new <command>SELECT
180         FOR NO KEY UPDATE</> lock type, and foreign key checks use the
181         new <command>SELECT FOR KEY SHARE</> lock mode.
182        </para>
183       </listitem>
184
185       <listitem>
186        <para>
187         Add configuration variable <link
188         linkend="guc-lock-timeout"><varname>lock_timeout</></link> to limit
189         lock wait duration (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
190        </para>
191       </listitem>
192
193       <listitem>
194        <para>
195         Add cache of local locks (Jeff Janes)
196        </para>
197
198        <para>
199         This speeds lock release at statement completion in
200         transactions that hold many locks; it is particularly useful
201         for <application>pg_dump</>.
202        </para>
203       </listitem>
204
205      </itemizedlist>
206
207     </sect4>
208
209     <sect4>
210      <title>Indexes</title>
211
212      <itemizedlist>
213
214       <listitem>
215        <para>
216         Add <link linkend="rangetypes-indexing"><type>SP-GiST</></link>
217         support for range data types (Alexander Korotkov)
218        </para>
219       </listitem>
220
221       <listitem>
222        <para>
223         Allow unlogged <link linkend="SPGiST"><type>GiST</></link> indexes
224         (Jeevan Chalke)
225        </para>
226       </listitem>
227
228       <listitem>
229        <para>
230         Improve concurrency of hash indexes (Robert Haas)
231        </para>
232       </listitem>
233
234      </itemizedlist>
235
236     </sect4>
237
238     <sect4>
239      <title>Optimizer</title>
240
241      <itemizedlist>
242
243       <listitem>
244        <para>
245         Collect and use histograms for <link linkend="rangetypes">range
246         types</link> (Alexander Korotkov)
247        </para>
248       </listitem>
249
250       <listitem>
251        <para>
252         Reduce optimizer overhead by discarding plans with unneeded cheaper
253         startup costs (Tom Lane)
254        </para>
255       </listitem>
256
257       <listitem>
258        <para>
259         Improve optimizer cost estimation for index access (Tom Lane)
260        </para>
261       </listitem>
262
263      </itemizedlist>
264
265     </sect4>
266
267     <sect4>
268      <title>General Performance</title>
269
270      <itemizedlist>
271
272       <listitem>
273        <para>
274         Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
275         option to avoid the overhead of later marking tuples as committed
276         (Simon Riggs, Jeff Davis)
277        </para>
278       </listitem>
279
280       <listitem>
281        <para>
282         Improve performance of <link
283         linkend="datatype-numeric"><type>NUMERIC</></link> calculations
284         (Kyotaro Horiguchi)
285        </para>
286       </listitem>
287
288       <listitem>
289        <para>
290         Allow in-memory sorts to use their full memory allocation (Jeff Janes)
291        </para>
292
293        <para>
294         Users who have set <link
295         linkend="guc-work-mem"><varname>work_mem</></link> based on the
296         previous behavior should revisit that setting.
297        </para>
298       </listitem>
299
300       <listitem>
301        <para>
302         Improve performance for transactions creating, rebuilding, or
303         dropping many relations (Jeff Janes, Tomas Vondra)
304        </para>
305       </listitem>
306
307       <listitem>
308        <para>
309         Improve performance of the <link
310         linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
311         COMMIT DELETE ROWS</></link> clause by only issuing delete if
312         the temporary table was accessed (Heikki Linnakangas)
313        </para>
314       </listitem>
315
316       <listitem>
317        <para>
318         Have vacuum recheck visibility after it has removed expired tuples
319         (Pavan Deolasee)
320        </para>
321
322        <para>
323         This increases the chance of a page being marked as all-visible.
324        </para>
325       </listitem>
326
327       <listitem>
328        <para>
329         Split the <link
330         linkend="guc-stats-temp-directory"><filename>pg_stat_tmp</></link>
331         statistics file into per-database and global files (Tomas Vondra)
332        </para>
333
334        <para>
335         This reduces the statistics management read and write overhead.
336        </para>
337       </listitem>
338
339      </itemizedlist>
340
341     </sect4>
342
343     <sect4>
344      <title>Monitoring</title>
345
346      <itemizedlist>
347
348       <listitem>
349        <para>
350         Add optional ability to <link
351         linkend="app-initdb-data-checksums">checksum</link> data pages and
352         report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
353        </para>
354
355        <para>
356         The checksum option can be set during <link
357         linkend="APP-INITDB">initdb</link>.
358        </para>
359       </listitem>
360
361       <listitem>
362        <para>
363         Allow <link
364         linkend="functions-admin-signal-table"><function>pg_terminate_backend()</></link>
365         to terminate other backends with the same role (Dan Farina)
366        </para>
367
368        <para>
369         Previously, only superusers could terminate other sessions.
370        </para>
371       </listitem>
372
373       <listitem>
374        <para>
375         Allow the <link
376         linkend="runtime-config-statistics-collector">statistics
377         collector</link> to operate properly in cases where the system
378         clock goes backwards (Tom Lane)
379        </para>
380
381        <para>
382         Previously statistics collection would stop until the time again
383         reached the previously-stored latest time.
384        </para>
385       </listitem>
386
387      </itemizedlist>
388
389     </sect4>
390
391     <sect4>
392      <title>Authentication</title>
393
394      <itemizedlist>
395
396       <listitem>
397        <para>
398         Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
399         reporting and documentation (Peter Eisentraut)
400        </para>
401       </listitem>
402
403       <listitem>
404        <para>
405         Add support for <acronym>LDAP</> authentication to be specified
406         in <acronym>URL</> format (Peter Eisentraut)
407        </para>
408       </listitem>
409
410       <listitem>
411        <para>
412         Change the <link
413         linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
414         to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
415         then remove insecure ciphers (Magnus Hagander)
416        </para>
417
418        <para>
419         It is assumed <literal>DEFAULT</> is more appropriate cipher set.
420        </para>
421       </listitem>
422
423       <listitem>
424        <para>
425         Parse and load <link
426         linkend="auth-username-maps"><filename>pg_ident.conf</></link>
427         once, not during each connection (Amit Kapila)
428        </para>
429
430        <para>
431         This is similar to how <link
432         linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
433         is processed.
434        </para>
435       </listitem>
436
437      </itemizedlist>
438
439     </sect4>
440
441     <sect4>
442      <title>Server Settings</title>
443
444      <itemizedlist>
445
446       <listitem>
447        <para>
448         Dramatically reduce System V <link linkend="sysvipc">shared
449         memory</link> usage (Robert Haas)
450        </para>
451
452        <para>
453         Instead, on Unix-like systems, <function>mmap()</> is used for
454         shared memory.  This eliminates the requirement of increasing
455         System V shared memory kernel parameters.
456        </para>
457       </listitem>
458
459       <listitem>
460        <para>
461         Allow the postmaster to listen on multiple Unix-domain sockets
462         (Honza Hor&aacute;k)
463        </para>
464
465        <para>
466         This renames configuration parameter
467         <varname>unix_socket_directory</> to <link
468         linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
469         which accepts a list of directories.
470        </para>
471       </listitem>
472
473       <listitem>
474        <para>
475         Allow a directory of configuration files to be processed (Magnus
476         Hagander, Greg Smith, Selena Deckelmann)
477        </para>
478
479        <para>
480         The directory is specified as <link
481         linkend="config-includes"><varname>include_dir</></link> in server
482         configuration file.
483        </para>
484       </listitem>
485
486       <listitem>
487        <para>
488         Increase the maximum <link
489         linkend="APP-INITDB">initdb</link>-configured value for <link
490         linkend="guc-shared-buffers"><varname>shared_buffers</></link>
491         to 128MB (Robert Haas)
492        </para>
493
494        <para>
495         This is the maximum value initdb attempts to set in <link
496         linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
497         the previous value was 32MB.
498        </para>
499       </listitem>
500
501       <listitem>
502        <para>
503         Remove the <link linkend="guc-external-pid-file">external
504         <acronym>PID</> file</link> on postmaster exit (Peter Eisentraut)
505        </para>
506       </listitem>
507
508      </itemizedlist>
509
510     </sect4>
511
512    </sect3>
513
514    <sect3>
515     <title>Replication and Recovery</title>
516
517      <itemizedlist>
518
519       <listitem>
520        <para>
521         Allow a streaming replication standbys to <link
522         linkend="protocol-replication">follow a timeline switch</link>
523         (Heikki Linnakangas)
524        </para>
525
526        <para>
527         This allows streaming standbys to feed from newly-promoted slaves.
528         Previously slaves required access to a <acronym>WAL</> archive directory to
529         accomplish this.
530        </para>
531       </listitem>
532
533       <listitem>
534        <para>
535         Add <acronym>SQL</> functions <link
536         linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
537         and <link
538         linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
539         (Gilles Darold)
540        </para>
541
542        <para>
543         These functions report the status of base backups.
544        </para>
545       </listitem>
546
547       <listitem>
548        <para>
549         Improve performance of streaming log shipping with <link
550         linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
551         disabled (Andres Freund)
552        </para>
553       </listitem>
554
555       <listitem>
556        <para>
557         Allow much faster promotion of a streaming standby to primary (Simon
558         Riggs, Kyotaro Horiguchi)
559        </para>
560       </listitem>
561
562       <listitem>
563        <para>
564         Add the last checkpoint's redo location to <link
565         linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
566         output (Fujii Masao)
567        </para>
568
569        <para>
570         This information is useful for determining the <acronym>WAL</>
571         files needed for restore.
572        </para>
573       </listitem>
574
575       <listitem>
576        <para>
577         Allow tooling like <link
578         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
579         to run on computers with different architectures (Heikki
580         Linnakangas)
581        </para>
582       </listitem>
583
584       <listitem>
585        <para>
586         Have <link
587         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
588         <option>--write-recovery-conf</> output a
589         minimal <filename>recovery.conf</> (Zolt&aacute;n
590         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
591        </para>
592
593        <para>
594         This simplifies setting up a standby server.
595        </para>
596       </listitem>
597
598       <listitem>
599        <para>
600         Allow <link
601         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
602         and <link
603         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
604         <option>--xlog-method</> to handle streaming timeline switches
605         (Heikki Linnakangas)
606        </para>
607       </listitem>
608
609       <listitem>
610        <para>
611         Add <link
612         linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
613         parameter to control the <acronym>WAL</> receiver timeout
614         (Amit Kapila)
615        </para>
616
617        <para>
618         This allows more rapid detection of
619         connection failure. No longer set <link
620         linkend="guc-wal-receiver-status-interval"><varname>wal_receiver_status_interval</></link>?
621        </para>
622       </listitem>
623
624      </itemizedlist>
625
626     <sect4>
627      <title><link linkend="wal">Write-Ahead Log</link>
628      (<acronym>WAL</>)</title>
629
630      <itemizedlist>
631
632       <listitem>
633        <para>
634         Change the <acronym>WAL</> record format to allow splitting the record header
635         across pages (Heikki Linnakangas)
636        </para>
637
638        <para>
639         The new format is slightly more compact.
640        </para>
641       </listitem>
642
643      </itemizedlist>
644
645     </sect4>
646
647    </sect3>
648
649    <sect3>
650     <title>Queries</title>
651
652      <itemizedlist>
653
654       <listitem>
655        <para>
656         Implement <acronym>SQL</>-standard <link
657         linkend="queries-lateral"><literal>LATERAL</></link> for
658         <literal>FROM</>-clause subqueries and function calls (Tom Lane)
659        </para>
660
661        <para>
662         This is useful in allowing <literal>FROM</> subqueries and
663         functions to reference output from tables in the <literal>FROM</>
664         clause. The <literal>LATERAL</> keyword is optional for functions.
665        </para>
666       </listitem>
667
668       <listitem>
669        <para>
670         Add support for piping <link
671         linkend="SQL-COPY"><command>COPY</></link> and <link
672         linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
673         to/from an external program (Etsuro Fujita)
674        </para>
675       </listitem>
676
677       <listitem>
678        <para>
679         Improve query string error location reporting (Tom Lane)
680        </para>
681
682        <para>
683         Only <command>CREATE SCHEMA ... IF NOT EXISTS</>?  If so, remove it.
684        </para>
685       </listitem>
686
687      </itemizedlist>
688
689    </sect3>
690
691    <sect3>
692     <title>Object Manipulation</title>
693
694      <itemizedlist>
695
696       <listitem>
697        <para>
698         Add support to <link linkend="event-triggers">event triggers</link>
699         (Dimitri Fontaine, Robert Haas, &Aacute;lvaro Herrera)
700        </para>
701
702        <para>
703         This allows C functions to be called when specific commands are run.
704        </para>
705       </listitem>
706
707       <listitem>
708        <para>
709         Allow a multi-row <link
710         linkend="SQL-VALUES"><literal>VALUES</></link> clause in rules
711         to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
712        </para>
713       </listitem>
714
715       <listitem>
716        <para>
717         Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
718         NOT EXISTS</></link> clause (Fabr&iacute;zio de Royes Mello)
719        </para>
720       </listitem>
721
722       <listitem>
723        <para>
724         Have <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
725         OWNED</></link> also change ownership of shared objects
726         (&Aacute;lvaro Herrera)
727        </para>
728       </listitem>
729
730      </itemizedlist>
731
732     <sect4>
733      <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
734
735      <itemizedlist>
736
737       <listitem>
738        <para>
739         No longer output messages about implicit index and sequence creation (Robert Haas)
740        </para>
741
742        <para>
743         These messages now appear with <literal>DEBUG1</>-level output.
744        </para>
745       </listitem>
746
747       <listitem>
748        <para>
749         Allow <command>CREATE TABLE IF NOT EXISTS</> to succeed for a
750         non-existent schema (Bruce Momjian)
751        </para>
752
753        <para>
754          Previously, it threw an error if the schema did not exist.
755        </para>
756       </listitem>
757
758      </itemizedlist>
759
760     </sect4>
761
762     <sect4>
763      <title>Constraints</title>
764
765      <itemizedlist>
766
767       <listitem>
768        <para>
769         Provide clients with <link
770         linkend="libpq-pqresulterrorfield">constraint violation details</link>
771         as separate fields (Pavel Stehule)
772        </para>
773
774        <para>
775         This allows clients to retrieve table, column, data type, or constraint
776         name error details.  Previously such information had to be extracted from
777         error strings.  Client language support is required to access these
778         fields.
779        </para>
780       </listitem>
781
782      </itemizedlist>
783
784     </sect4>
785
786     <sect4>
787      <title><command>ALTER</></title>
788
789      <itemizedlist>
790
791       <listitem>
792        <para>
793         Add the <link linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... IF
794         NOT EXISTS</></link> clause when adding enumerated type labels
795         (Andrew Dunstan)
796        </para>
797
798        <para>
799         This is useful for conditional label creation in transaction blocks.
800        </para>
801       </listitem>
802
803       <listitem>
804        <para>
805         Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
806         SET</></link> to add settings to all users (Peter Eisentraut)
807        </para>
808
809        <para>
810         This allows settings to apply to all users in all databases. <link
811         linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
812         already allowed addition of settings for all users in a single
813         database.  <filename>postgresql.conf</> has a similar effect.
814        </para>
815       </listitem>
816
817       <listitem>
818        <para>
819         Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
820         ... RENAME</></link> (Ali Dar)
821        </para>
822       </listitem>
823
824      </itemizedlist>
825
826     </sect4>
827
828     <sect4>
829      <title><link linkend="rules-views"><command>VIEWs</></link></title>
830
831      <itemizedlist>
832
833       <listitem>
834        <para>
835         Add a <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
836         view</link> relations (Kevin Grittner)
837        </para>
838
839        <para>
840         Unlike ordinary views, where the base tables are read on every access,
841         materialized views create physical tables at creation or refresh time.
842         Access to the materialized view reads from these materialized physical
843         tables. There is no facility for incrementally refreshing materialized
844         views or auto-accessing them via base table access.
845        </para>
846       </listitem>
847
848       <listitem>
849        <para>
850         Make simple views <link
851         linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
852         (Dean Rasheed)
853        </para>
854
855        <para>
856         Simple views that reference some or all columns from a
857         single base table are now updatable by default. More
858         complex views can be made updatable using <link
859         linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
860         or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
861        </para>
862       </listitem>
863
864       <listitem>
865        <para>
866         Allow views and rules to handle cases where referenced tables are
867         renamed, or columns are renamed, added, or dropped (Tom Lane)
868         HOW DOES IT HANDLE A DROPPED REFERENCED COLUMN?
869        </para>
870       </listitem>
871
872       <listitem>
873        <para>
874         Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
875         VIEW</></link> syntax (Peter Eisentraut)
876        </para>
877
878        <para>
879         Internally this is translated into <command>CREATE VIEW ... WITH
880         RECURSIVE</>.
881        </para>
882       </listitem>
883
884       <listitem>
885        <para>
886         When converting a table to a view, remove its system columns (Tom Lane)
887         KEEP?
888        </para>
889       </listitem>
890
891      </itemizedlist>
892
893     </sect4>
894
895    </sect3>
896
897    <sect3>
898     <title>Data Types</title>
899
900     <itemizedlist>
901
902       <listitem>
903        <para>
904         Increase the maximum length of <link linkend="lo-open">large
905         objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
906        </para>
907
908        <para>
909         This change includes new libpq and server-side 64-bit-enabled functions.
910        </para>
911       </listitem>
912
913       <listitem>
914        <para>
915         Allow text <link linkend="datatype-timezones">timezone
916         designations</link>, e.g. <quote>America/Chicago</> when using
917         the <acronym>ISO</> <quote>T</> timestamptz format (Bruce Momjian)
918        </para>
919       </listitem>
920
921     </itemizedlist>
922
923    <sect4>
924     <title><link linkend="datatype-json"><type>JSON</></link></title>
925
926     <itemizedlist>
927
928       <listitem>
929        <para>
930         Add <link linkend="functions-json">operators and functions</link>
931         to extract values from <type>JSON</> data strings (Andrew Dunstan)
932        </para>
933       </listitem>
934
935       <listitem>
936        <para>
937         Allow <type>JSON</> data strings to be <link
938         linkend="functions-json-table">converted into records</link>
939         (Andrew Dunstan)
940        </para>
941       </listitem>
942
943       <listitem>
944        <para>
945         Add <link linkend="functions-json-table">functions</link>
946         to convert values, records, and hstore data to <type>JSON</>
947         (Andrew Dunstan)
948        </para>
949       </listitem>
950
951     </itemizedlist>
952
953    </sect4>
954
955    </sect3>
956
957
958    <sect3>
959     <title>Functions</title>
960
961      <itemizedlist>
962
963       <listitem>
964        <para>
965         Add <link
966         linkend="array-functions-table"><function>array_remove()</></link>
967         and <link
968         linkend="array-functions-table"><function>array_replace()</></link>
969         functions (Marco Nenciarini, Gabriele Bartolini)
970        </para>
971       </listitem>
972
973       <listitem>
974        <para>
975         Allow <link
976         linkend="functions-string-other"><function>concat()</></link>
977         and <link
978         linkend="functions-string-format"><function>format()</></link>
979         to properly expand <literal>VARIADIC</>-labeled arguments
980         (Pavel Stehule)
981        </para>
982       </listitem>
983
984       <listitem>
985        <para>
986         Improve <link
987         linkend="functions-string-format"><function>format()</></link>
988         to handle field width and left/right alignment (Pavel Stehule)
989        </para>
990       </listitem>
991
992       <listitem>
993        <para>
994         Have <link
995         linkend="functions-formatting-table"><function>to_char()</></link>,
996         <link
997         linkend="functions-formatting-table"><function>to_date()</></link>,
998         and <link
999         linkend="functions-formatting-table"><function>to_timestamp()</></link>
1000         properly handle negative century designations (<literal>CC</>)
1001         (Bruce Momjian)
1002        </para>
1003
1004        <para>
1005         Previously the behavior was either wrong or inconsistent
1006         with positive/<acronym>AD</> handling, e.g. format mask
1007         <quote>IYYY-IW-DY</>.
1008        </para>
1009       </listitem>
1010
1011       <listitem>
1012        <para>
1013         Have <link
1014         linkend="functions-formatting-table"><function>to_date()</></link>
1015         and <link
1016         linkend="functions-formatting-table"><function>to_timestamp()</></link>
1017         return proper results when mixing <acronym>ISO</> and Gregorian
1018         week/day designations (Bruce Momjian)
1019        </para>
1020       </listitem>
1021
1022       <listitem>
1023        <para>
1024         Cause <link
1025         linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
1026         to default to wrapping after every <link
1027         linkend="SQL-SELECT"><command>SELECT</></link> target list and
1028         <literal>FROM</> entry (Marko Tiikkaja)
1029        </para>
1030
1031        <para>
1032         This causes view output, like from <link
1033         linkend="APP-PGDUMP"><application>pg_dump</></link>, to be
1034         more narrow.
1035        </para>
1036       </listitem>
1037
1038       <listitem>
1039        <para>
1040         Have <function>map_sql_value_to_xml_value()</> properly expand
1041         domains (Pavel Stehule)  WHAT IS THE USER-VISIBLE AFFECT HERE?
1042         map_sql_value_to_xml_value IS A C FUNCTION
1043        </para>
1044       </listitem>
1045
1046       <listitem>
1047        <para>
1048         Force cached functions to be replanned if the <link
1049         linkend="guc-search-path"><varname>search_path</></link> changes
1050         (Tom Lane)
1051        </para>
1052
1053        <para>
1054         Previously functions already run in the current session ignored
1055         <varname>search_path</> changes.
1056         (Bruce Momjian)
1057        </para>
1058       </listitem>
1059
1060      </itemizedlist>
1061
1062    </sect3>
1063
1064    <sect3>
1065     <title>Server-Side Languages</title>
1066
1067      <itemizedlist>
1068
1069       <listitem>
1070        <para>
1071         Allow <link linkend="spi-spi-execute"><acronym>SPI</></link>
1072         functions to access the number of rows processed by
1073         <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
1074        </para>
1075       </listitem>
1076
1077      </itemizedlist>
1078
1079     <sect4>
1080      <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
1081
1082      <itemizedlist>
1083
1084       <listitem>
1085        <para>
1086         Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
1087         expressions (Asif Rehman)
1088        </para>
1089
1090        <para>
1091         Previously <literal>RETURN</> could only reference composite-type variables.
1092        </para>
1093       </listitem>
1094
1095       <listitem>
1096        <para>
1097         Allow PL/pgSQL to access the number of rows processed by
1098         <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
1099        </para>
1100
1101        <para>
1102         The command is <link
1103         linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
1104         x = ROW_COUNT</></link>.
1105        </para>
1106       </listitem>
1107
1108       <listitem>
1109        <para>
1110         Allow greater flexibility in where keywords can be used in PL/pgSQL (Tom Lane)
1111        </para>
1112       </listitem>
1113
1114     </itemizedlist>
1115
1116     </sect4>
1117
1118     <sect4>
1119      <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
1120
1121      <itemizedlist>
1122
1123       <listitem>
1124        <para>
1125         Add PL/Python result object string handler (Peter Eisentraut)
1126        </para>
1127
1128        <para>
1129         This allows plpy.debug(rv) to output something reasonable.
1130        </para>
1131       </listitem>
1132
1133       <listitem>
1134        <para>
1135         Have PL/Python convert oid values to a proper Python numeric type
1136         (Peter Eisentraut)
1137        </para>
1138       </listitem>
1139
1140       <listitem>
1141        <para>
1142         Handle <link linkend="spi"><acronym>SPI</></link> errors raised
1143         explicitly with PL/Python's <literal>RAISE</> the same as as
1144         internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
1145        </para>
1146       </listitem>
1147
1148      </itemizedlist>
1149
1150     </sect4>
1151
1152    </sect3>
1153
1154    <sect3>
1155     <title>Client Applications</title>
1156
1157     <itemizedlist>
1158
1159       <listitem>
1160        <para>
1161         Add command-line utility <link
1162         linkend="app-pg-isready"><application>pg_isready</></link> to
1163         check if the server is ready to accept connections (Phil Sorber)
1164        </para>
1165       </listitem>
1166
1167       <listitem>
1168        <para>
1169         Support multiple <option>--table</> arguments for <link
1170         linkend="APP-PGRESTORE"><application>pg_restore</></link>,
1171         <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
1172         <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
1173         and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
1174         (Josh Kupershmidt)
1175        </para>
1176
1177        <para>
1178         This is similar to the <link
1179         linkend="APP-PGDUMP"><application>pg_dump</></link> <option>--table</>
1180         support.
1181        </para>
1182       </listitem>
1183
1184       <listitem>
1185        <para>
1186         Add <option>--dbname</> option to <link
1187         linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
1188         linkend="app-pgbasebackup"><application>pg_basebackup</></link>,
1189         <link
1190         linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
1191         to specify the connection string (Amit Kapila)
1192        </para>
1193       </listitem>
1194
1195       <listitem>
1196        <para>
1197         Add libpq function <link
1198         linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
1199         to return connection information (Zolt&aacute;n
1200         B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
1201        </para>
1202       </listitem>
1203
1204     </itemizedlist>
1205
1206     <sect4>
1207      <title><link linkend="APP-PSQL"><application>psql</></link></title>
1208
1209      <itemizedlist>
1210
1211       <listitem>
1212        <para>
1213         Adjust function cost settings so <application>psql</> tab
1214         completion and pattern searching is more efficient (Tom Lane)
1215        </para>
1216       </listitem>
1217
1218       <listitem>
1219        <para>
1220         Improve <application>psql</> tab completion coverage (Jeff Janes,
1221         Peter Eisentraut)
1222        </para>
1223       </listitem>
1224
1225       <listitem>
1226        <para>
1227         Allow the <application>psql</> <option>--single-transaction</> mode to work when
1228         reading from standard input (Fabien Coelho, Robert Haas)
1229        </para>
1230
1231        <para>
1232         Previously this option only worked when reading from a file.
1233        </para>
1234       </listitem>
1235
1236       <listitem>
1237        <para>
1238         Remove <application>psql</> warning when connecting to an older
1239         server (Peter Eisentraut)
1240        </para>
1241
1242        <para>
1243         The warning when connecting to a newer server was retained.
1244        </para>
1245       </listitem>
1246
1247      </itemizedlist>
1248
1249     <sect5>
1250      <title><link linkend="R2-APP-PSQL-4">Backslash Commands</link></title>
1251
1252      <itemizedlist>
1253
1254       <listitem>
1255        <para>
1256         Add <application>psql</> <command>\watch</> command to repeatedly
1257         execute commands (Will Leinweber)
1258        </para>
1259       </listitem>
1260
1261       <listitem>
1262        <para>
1263         Add <application>psql</> command <command>\gset</> to store query
1264         results in <application>psql</> variables (Pavel Stehule)
1265        </para>
1266       </listitem>
1267
1268       <listitem>
1269        <para>
1270         Add <acronym>SSL</> information to <application>psql</>'s
1271         <command>\conninfo</> command (Alastair Turner)
1272        </para>
1273       </listitem>
1274
1275       <listitem>
1276        <para>
1277         Add <quote>Security</> label to <application>psql</> <command>\df+</>
1278         output (Jon Erdman)
1279        </para>
1280       </listitem>
1281
1282       <listitem>
1283        <para>
1284         Allow <application>psql</> <command>\l</> to accept a database
1285         name pattern (Peter Eisentraut)
1286        </para>
1287       </listitem>
1288
1289       <listitem>
1290        <para>
1291         In <application>psql</>, do not allow <command>\connect</> to
1292         use defaults if there is no active connection (Bruce Momjian)
1293        </para>
1294
1295        <para>
1296         This might be the case if the server had crashed.
1297        </para>
1298       </listitem>
1299
1300       <listitem>
1301        <para>
1302         Properly reset state if <application>psql</>'s <quote>\g file</>
1303         command failed (Tom Lane)
1304        </para>
1305
1306        <para>
1307         Previously failed commands discarded output from subsequent commands.
1308        </para>
1309       </listitem>
1310
1311      </itemizedlist>
1312
1313     </sect5>
1314
1315     <sect5>
1316      <title>Output</title>
1317
1318      <itemizedlist>
1319
1320       <listitem>
1321        <para>
1322         Add a <literal>latex-longtable</> output format to
1323         <application>psql</> (Bruce Momjian)
1324        </para>
1325
1326        <para>
1327         Longtable allows tables to span multiple pages.
1328        </para>
1329       </listitem>
1330
1331       <listitem>
1332        <para>
1333         Add a <literal>border=3</> output mode to the <application>psql</>
1334         <literal>latex</> format (Bruce Momjian)
1335        </para>
1336       </listitem>
1337
1338       <listitem>
1339        <para>
1340         In <application>psql</> tuples-only and expanded modes, no longer
1341         output <quote>(No rows)</> (Peter Eisentraut)
1342        </para>
1343       </listitem>
1344
1345       <listitem>
1346        <para>
1347         In <application>psql</>, no longer print an empty line for
1348         unaligned, expanded output for zero rows (Peter Eisentraut)
1349        </para>
1350       </listitem>
1351
1352      </itemizedlist>
1353
1354     </sect5>
1355
1356     </sect4>
1357
1358     <sect4>
1359      <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
1360
1361      <itemizedlist>
1362
1363       <listitem>
1364        <para>
1365         Add <application>pg_dump</> <option>--jobs</> to dump in parallel
1366         when using directory output format (Joachim Wieland)
1367        </para>
1368       </listitem>
1369
1370       <listitem>
1371        <para>
1372         Have <application>pg_dump</> output functions in a predictable
1373         order (Joel Jacobson)
1374        </para>
1375       </listitem>
1376
1377       <listitem>
1378        <para>
1379         Fix tar files emitted by <application>pg_dump</> and <link
1380         linkend="app-pgbasebackup"><application>pg_basebackup</></link>
1381         to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
1382        </para>
1383       </listitem>
1384
1385       <listitem>
1386        <para>
1387         Add <option>--dbname</> option to <application>pg_dump</>, for
1388         consistency with other client commands (Heikki Linnakangas)
1389        </para>
1390
1391        <para>
1392         The database name could already be supplied last without a flag.
1393        </para>
1394       </listitem>
1395
1396      </itemizedlist>
1397
1398     </sect4>
1399
1400     <sect4>
1401      <title><link linkend="APP-INITDB"><application>initdb</></link></title>
1402
1403      <itemizedlist>
1404
1405       <listitem>
1406        <para>
1407         Have initdb fsync the newly created data directory (Jeff Davis)
1408        </para>
1409
1410        <para>
1411         This can be disabled by using <option>--nosync</>.
1412        </para>
1413       </listitem>
1414
1415       <listitem>
1416        <para>
1417         Add initdb <option>--sync-only</> option to sync the data directory to durable
1418         storage (Bruce Momjian)
1419        </para>
1420
1421        <para>
1422         This is used by <link
1423         linkend="pgupgrade"><application>pg_upgrade</></link>.
1424        </para>
1425       </listitem>
1426
1427       <listitem>
1428        <para>
1429         Have initdb issue a warning about placing the data directory at the
1430         top of file system mount points (Bruce Momjian)
1431        </para>
1432       </listitem>
1433
1434      </itemizedlist>
1435
1436     </sect4>
1437
1438    </sect3>
1439
1440    <sect3>
1441     <title>Source Code</title>
1442
1443      <itemizedlist>
1444
1445       <listitem>
1446        <para>
1447         Add an embedded list interface (Andres Freund)
1448        </para>
1449       </listitem>
1450
1451       <listitem>
1452        <para>
1453         Add infrastructure to better support plug-in <link
1454         linkend="bgworker">background worker processes</link>
1455         (&Aacute;lvaro Herrera)
1456        </para>
1457       </listitem>
1458
1459       <listitem>
1460        <para>
1461         Create a centralized timeout <acronym>API</> (Zolt&aacute;n
1462         B&ouml;sz&ouml;rm&eacute;nyi)
1463        </para>
1464       </listitem>
1465
1466       <listitem>
1467        <para>
1468         Create libpgcommon and move <function>pg_malloc()</> and other
1469         functions there (&Aacute;lvaro Herrera, Andres Freund)
1470        </para>
1471
1472        <para>
1473         This allows libpgport to be used solely for porting code.
1474        </para>
1475       </listitem>
1476
1477       <listitem>
1478        <para>
1479         Standardize on naming of client-side memory allocation functions (Tom Lane)
1480        </para>
1481       </listitem>
1482
1483       <listitem>
1484        <para>
1485         Add compiler designations to indicate some <function>ereport()</>
1486         and <function>elog()</> calls do not return (Peter Eisentraut,
1487         Andres Freund, Tom Lane, Heikki Linnakangas)
1488        </para>
1489       </listitem>
1490
1491       <listitem>
1492        <para>
1493         Allow options to be passed to the regression
1494         test output comparison utility via <link
1495         linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
1496         (Peter Eisentraut)
1497        </para>
1498       </listitem>
1499
1500       <listitem>
1501        <para>
1502         Add isolation tests for <link
1503         linkend="SQL-CREATEINDEX"><command>CREATE INDEX
1504         CONCURRENTLY</></link> (Abhijit Menon-Sen)
1505        </para>
1506       </listitem>
1507
1508       <listitem>
1509        <para>
1510         Remove typedefs for <type>int2</>/<type>int4</> as they are better
1511         represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
1512        </para>
1513       </listitem>
1514
1515       <listitem>
1516        <para>
1517         Fix <link linkend="install">install-strip</link> on Mac <productname>OS
1518         X</> (Peter Eisentraut)
1519        </para>
1520       </listitem>
1521
1522       <listitem>
1523        <para>
1524         Remove <link linkend="configure">configure</link> flag
1525         <option>--disable-shared</>, as it is no longer used (Bruce
1526         Momjian)
1527        </para>
1528       </listitem>
1529
1530       <listitem>
1531        <para>
1532         Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
1533        </para>
1534       </listitem>
1535
1536       <listitem>
1537        <para>
1538         Add emacs macro to match <productname>PostgreSQL</> perltidy
1539         formatting (Peter Eisentraut)
1540        </para>
1541       </listitem>
1542
1543       <listitem>
1544        <para>
1545         Run tool to check the keyword list when the backend grammar is
1546         changed (Tom Lane)
1547        </para>
1548       </listitem>
1549
1550       <listitem>
1551        <para>
1552         Centralize <application>flex</> and <application>bison</>
1553         <application>make</> rules (Peter Eisentraut)
1554        </para>
1555
1556        <para>
1557         This is useful for <application>pgxs</> authors.
1558        </para>
1559       </listitem>
1560
1561       <listitem>
1562        <para>
1563         Add <function>Assert()</> functionality to client-side code for
1564         frontend code (Andrew Dunstan)
1565        </para>
1566       </listitem>
1567
1568       <listitem>
1569        <para>
1570         Change many internal many backend functions to return <type>OID</>s
1571         rather than void (Dimitri Fontaine)
1572        </para>
1573
1574        <para>
1575         This is useful for event triggers.
1576        </para>
1577       </listitem>
1578
1579       <listitem>
1580        <para>
1581         Invent pre-commit/pre-prepare/pre-subcommit events for transaction
1582         callbacks (Tom Lane)
1583        </para>
1584
1585        <para>
1586         Loadable modules that use transaction callbacks might need modification
1587         to handle these new event types.
1588        </para>
1589       </listitem>
1590
1591       <listitem>
1592        <para>
1593         Add function <link
1594         linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
1595         to dump an object in machine-readable format (&Aacute;lvaro
1596         Herrera)
1597        </para>
1598       </listitem>
1599
1600       <listitem>
1601        <para>
1602         Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
1603        </para>
1604       </listitem>
1605
1606       <listitem>
1607        <para>
1608         Implement a generic binary heap and use it for Merge-Append
1609         operations (Abhijit Menon-Sen)
1610        </para>
1611       </listitem>
1612
1613       <listitem>
1614        <para>
1615         Improve ability to detect official timezone abbreviation changes
1616         (Tom Lane)
1617        </para>
1618       </listitem>
1619
1620       <listitem>
1621        <para>
1622         Add <application>pkg-config</> support <application>libpq</>
1623         and <application>ecpg</> libraries (Peter Eisentraut)
1624        </para>
1625       </listitem>
1626
1627       <listitem>
1628        <para>
1629         Remove <filename>src/tool/backend</>, now that the content is on
1630         the <productname>PostgreSQL</> wiki (Bruce Momjian)
1631        </para>
1632       </listitem>
1633
1634       <listitem>
1635        <para>
1636         Split out <link linkend="wal"><acronym>WAL</></link> reading as
1637         an independent facility (Heikki Linnakangas, Andres Freund)
1638        </para>
1639       </listitem>
1640
1641       <listitem>
1642        <para>
1643         Use a 64-bit integer to represent <link
1644         linkend="wal"><acronym>WAL</></link> positions
1645         (<structname>XLogRecPtr</>) instead of two 32-bit integers
1646         (Heikki Linnakangas)
1647        </para>
1648
1649        <para>
1650         Generally, tools that need to read the <acronym>WAL</> format
1651         will need to be adjusted.
1652        </para>
1653       </listitem>
1654
1655       <listitem>
1656        <para>
1657         Allow <link linkend="plpython">PL/Python</link> to support
1658         platform-specific include directories (Peter Eisentraut)
1659        </para>
1660       </listitem>
1661
1662       <listitem>
1663        <para>
1664         Allow <link linkend="plpython">PL/Python</link> on <productname>OS
1665         X</> to build against custom versions of <application>Python</>
1666         (Peter Eisentraut)
1667        </para>
1668       </listitem>
1669
1670      </itemizedlist>
1671
1672    </sect3>
1673
1674    <sect3>
1675     <title>Additional Modules</title>
1676
1677     <itemizedlist>
1678
1679       <listitem>
1680        <para>
1681         Allow write-enabled <link
1682         linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data wrappers</link>
1683         to support writes (KaiGai Kohei)
1684        </para>
1685       </listitem>
1686
1687       <listitem>
1688        <para>
1689         Add a <productname>Postgres</> <link linkend="postgres-fdw">foreign
1690         data wrapper</link> contrib module (Shigeru Hanada)
1691        </para>
1692
1693        <para>
1694         This foreign data wrapper allows writes.
1695        </para>
1696       </listitem>
1697
1698       <listitem>
1699        <para>
1700         Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
1701         contrib program (Andres Freund)
1702        </para>
1703       </listitem>
1704
1705       <listitem>
1706        <para>
1707         Add support for indexing of regular-expression searches in
1708         extension <link linkend="pgtrgm"><productname>pg_trgm</></link>
1709         (Alexander Korotkov)
1710        </para>
1711       </listitem>
1712
1713       <listitem>
1714        <para>
1715         Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>
1716         handling of multibyte characters (Tom Lane)
1717        </para>
1718       </listitem>
1719
1720       <listitem>
1721        <para>
1722         Add <link linkend="pgstattuple">pgstattuple function</link> to report the
1723         size of the <type>GIN</> pending index insertion list (Fujii Masao)
1724        </para>
1725       </listitem>
1726
1727       <listitem>
1728        <para>
1729         Have <link linkend="oid2name"><application>oid2name</></link>,
1730         <link linkend="pgbench"><application>pgbench</></link>, and
1731         <link linkend="vacuumlo"><application>vacuumlo</></link> set
1732         <varname>fallback_application_name</> (Amit Kapila)
1733        </para>
1734       </listitem>
1735
1736       <listitem>
1737        <para>
1738         Improve output of <link
1739         linkend="pgtesttiming"><application>pg_test_timing</></link>
1740         (Bruce Momjian)
1741        </para>
1742       </listitem>
1743
1744       <listitem>
1745        <para>
1746         Improve output of <link
1747         linkend="pgtestfsync"><application>pg_test_fsync</></link>
1748         (Peter Geoghegan)
1749        </para>
1750       </listitem>
1751
1752       <listitem>
1753        <para>
1754         Improve <link linkend="dblink">dblink</link> option validator
1755         (Tom Lane)
1756        </para>
1757
1758        <para>
1759         Details?
1760        </para>
1761       </listitem>
1762
1763     </itemizedlist>
1764
1765     <sect4>
1766      <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
1767
1768      <itemizedlist>
1769
1770       <listitem>
1771        <para>
1772         Allow <application>pg_upgrade</> <option>--jobs</> to do
1773         parallelism (Bruce Momjian)
1774        </para>
1775
1776        <para>
1777         This allows parallel schema dump/restore of databases, as well as
1778         parallel copy/link of data files per tablespace.
1779        </para>
1780       </listitem>
1781
1782       <listitem>
1783        <para>
1784         Have <application>pg_upgrade</> create unix-domain sockets in
1785         the current directory (Bruce Momjian, Tom Lane)
1786        </para>
1787
1788        <para>
1789         This reduces the possibility that someone will accidentally connect
1790         during the upgrade.
1791        </para>
1792       </listitem>
1793
1794       <listitem>
1795        <para>
1796         Have <application>pg_upgrade</> <option>--check</> mode properly
1797         detect the location of non-default socket directories (Bruce
1798         Momjian, Tom Lane)
1799        </para>
1800       </listitem>
1801
1802       <listitem>
1803        <para>
1804         Improve performance of <application>pg_upgrade</> for databases
1805         with many tables (Bruce Momjian)
1806        </para>
1807       </listitem>
1808
1809       <listitem>
1810        <para>
1811         Increase <application>pg_upgrade</> logging content by showing
1812         executed command (&Aacute;lvaro Herrera)
1813        </para>
1814       </listitem>
1815
1816       <listitem>
1817        <para>
1818         Improve <application>pg_upgrade</>'s status display during
1819         copy/link (Bruce Momjian)
1820        </para>
1821       </listitem>
1822
1823      </itemizedlist>
1824
1825     </sect4>
1826
1827     <sect4>
1828      <title><link linkend="pgbench"><application>pgbench</></link></title>
1829
1830      <itemizedlist>
1831
1832       <listitem>
1833        <para>
1834         Add <option>--foreign-keys</> option to <application>pgbench</> (Jeff Janes)
1835        </para>
1836
1837        <para>
1838         This adds foreign key constraints to tables, for use in foreign
1839         key performance testing.
1840        </para>
1841       </listitem>
1842
1843       <listitem>
1844        <para>
1845         Allow <application>pgbench</> to aggregate performance statistics
1846         and produce output every <option>--aggregate-interval</> specified
1847         seconds (Tomas Vondra)
1848        </para>
1849       </listitem>
1850
1851       <listitem>
1852        <para>
1853         Add <application>pg_bench</> <option>--sampling-rate</> option
1854         to control the percentage of transactions logged (Tomas Vondra)
1855        </para>
1856       </listitem>
1857
1858       <listitem>
1859        <para>
1860         Reduce and improve the status message output of
1861         <application>pgbench</>'s initialization mode (Robert Haas,
1862         Peter Eisentraut)
1863        </para>
1864       </listitem>
1865
1866       <listitem>
1867        <para>
1868         Add <application>pgbench</> <option>-q</> mode to print one output
1869         line every five seconds (Tomas Vondra)
1870        </para>
1871
1872        <para>
1873         Output <application>pgbench</> elapsed and estimated remaining
1874         time during initialization logging (Tomas Vondra)
1875        </para>
1876       </listitem>
1877
1878       <listitem>
1879        <para>
1880         Allow <application>pgbench</> to use a larger scale factor
1881         (Greg Smith)
1882        </para>
1883       </listitem>
1884
1885     </itemizedlist>
1886
1887     </sect4>
1888
1889    </sect3>
1890
1891    <sect3>
1892     <title>Documentation</title>
1893
1894     <itemizedlist>
1895
1896       <listitem>
1897        <para>
1898         Allow <productname>EPUB</>-format documentation to be created
1899         (Peter Eisentraut)
1900        </para>
1901       </listitem>
1902
1903       <listitem>
1904        <para>
1905         Update <productname>FreeBSD</> kernel configuration documentation
1906         (Brad Davis)
1907        </para>
1908       </listitem>
1909
1910       <listitem>
1911        <para>
1912         Improve <link linkend="tutorial-window"><literal>WINDOW</>
1913         function</link> documentation (Bruce Momjian, Tom Lane)
1914        </para>
1915       </listitem>
1916
1917       <listitem>
1918        <para>
1919         Add <link linkend="docguide">instructions</link> for setting
1920         up the documentation tool chain on Mac <productname>OS X</>
1921         (Peter Eisentraut)
1922        </para>
1923       </listitem>
1924
1925       <listitem>
1926        <para>
1927         Improve <link
1928         linkend="guc-commit-delay"><varname>commit_delay</></link>
1929         documentation (Peter Geoghegan)
1930        </para>
1931       </listitem>
1932
1933     </itemizedlist>
1934
1935    </sect3>
1936
1937   </sect2>
1938  </sect1>