1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3">
5 <title>Release 9.3</title>
8 <title>Release Date</title>
9 <simpara>2013-XX-XX, CURRENT AS OF 2013-05-03</simpara>
13 <title>Overview</title>
16 ADD HERE Major enhancements include:
19 <!-- This list duplicates items below, but without authors or details-->
22 The above items are explained in more detail in the sections below.
29 <title>Migration to Version 9.3</title>
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.
39 Version 9.3 contains a number of changes that may affect compatibility
40 with previous releases. Observe the following incompatibilities:
44 <title>Server Settings</title>
50 Rename <varname>replication_timeout</> to <link
51 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
56 This setting controls the <link
57 linkend="wal"><acronym>WAL</></link> sender timeout.
63 Require superuser privileges to set <link
64 linkend="guc-commit-delay"><varname>commit_delay</></link>
65 because it can now potentially delay other sessions (Simon Riggs)
71 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
75 Users who have set <link
76 linkend="guc-work-mem"><varname>work_mem</></link> based on the
77 previous behavior should revisit that setting.
92 Throw an error if expiring tuple is again updated or deleted (Kevin Grittner)
99 Change <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
100 SET NULL/SET DEFAULT</></link> foreign key actions to affect
101 all referenced columns, not just those referenced in the
102 <command>UPDATE</> (Tom Lane)
106 Previously only columns referenced in the <command>UPDATE</> were
107 set to null or <literal>DEFAULT</>.
113 Internally store default foreign key matches (non-<literal>FULL</>,
114 non-<literal>PARTIAL</>) as <quote>simple</> (Tom Lane)
118 These were previously stored as "<unspecified>".
119 This changes the value stored in system column <link
120 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>.
126 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
127 stream, rather than skipping the last 16MB segment every 4GB
132 Previously, <acronym>WAL</> files ending in <literal>FF</> were
133 not used. If you have <acronym>WAL</> backup or restore scripts
134 that took that skipping into account, they need to be adjusted.
145 <title>Changes</title>
148 Below you will find a detailed account of the changes between
149 <productname>PostgreSQL</productname> 9.3 and the previous major
154 <title>Server</title>
157 <title>Locking</title>
163 Prevent non-key-field row updates from locking foreign key rows
164 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
165 Shulgin, Marti Raudsepp)
169 This improves concurrency and reduces the probability of deadlocks.
170 <command>UPDATE</>s on non-key columns use the new <command>SELECT
171 FOR NO KEY UPDATE</> lock type, and foreign key checks use the
172 new <command>SELECT FOR KEY SHARE</> lock mode.
178 Add configuration variable <link
179 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to limit
180 lock wait duration (Zoltán Böszörményi)
186 Add cache of local locks (Jeff Janes)
190 This speeds lock release at statement completion in
191 transactions that hold many locks; it is particularly useful
192 for <application>pg_dump</> and the restoration of such dumps.
201 <title>Indexes</title>
207 Add <link linkend="rangetypes-indexing"><type>SP-GiST</></link>
208 support for range data types (Alexander Korotkov)
214 Allow unlogged <link linkend="SPGiST"><type>GiST</></link> indexes
221 Improve concurrency of hash indexes (Robert Haas)
230 <title>Optimizer</title>
236 Collect and use histograms for <link linkend="rangetypes">range
237 types</link> (Alexander Korotkov)
243 Reduce optimizer overhead by discarding plans with unneeded cheaper
244 startup costs (Tom Lane)
250 Improve optimizer cost estimation for index access (Tom Lane)
259 <title>General Performance</title>
265 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
266 option to avoid the overhead of later marking tuples as committed
267 (Simon Riggs, Jeff Davis)
273 Improve performance of <link
274 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
281 Improve grouping of sessions waiting for <link
282 linkend="guc-commit-delay"><varname>commit_delay</></link>
287 This improves the usefulness and behavior of
288 <varname>commit_delay</>.
294 Improve performance for transactions creating, rebuilding, or
295 dropping many relations (Jeff Janes, Tomas Vondra)
301 Improve performance of the <link
302 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
303 COMMIT DELETE ROWS</></link> clause by only issuing delete if
304 the temporary table was accessed (Heikki Linnakangas)
310 Have vacuum recheck visibility after it has removed expired tuples
315 This increases the chance of a page being marked as all-visible.
322 linkend="guc-stats-temp-directory"><filename>pg_stat_tmp</></link>
323 statistics file into per-database and global files (Tomas Vondra)
327 This reduces the statistics management read and write overhead.
336 <title>Monitoring</title>
342 Add optional ability to <link
343 linkend="app-initdb-data-checksums">checksum</link> data pages and
344 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
348 The checksum option can be set during <link
349 linkend="APP-INITDB">initdb</link>.
356 linkend="functions-admin-signal-table"><function>pg_terminate_backend()</></link>
357 to terminate other backends with the same role (Dan Farina)
361 Previously, only superusers could terminate other sessions.
368 linkend="runtime-config-statistics-collector">statistics
369 collector</link> to operate properly in cases where the system
370 clock goes backwards (Tom Lane)
374 Previously statistics collection would stop until the time again
375 reached the previously-stored latest time.
384 <title>Authentication</title>
390 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
391 reporting and documentation (Peter Eisentraut)
397 Add support for <acronym>LDAP</> authentication to be specified
398 in <acronym>URL</> format (Peter Eisentraut)
405 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
406 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
407 then remove insecure ciphers (Magnus Hagander)
411 It is assumed <literal>DEFAULT</> is more appropriate cipher set.
418 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
419 once, not during each connection (Amit Kapila)
423 This is similar to how <link
424 linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
434 <title>Server Settings</title>
440 Dramatically reduce System V <link linkend="sysvipc">shared
441 memory</link> requirements (Robert Haas)
445 Instead, on Unix-like systems, <function>mmap()</> is used for
446 shared memory. This eliminates the requirement of increasing
447 System V shared memory kernel parameters.
453 Allow the postmaster to listen on multiple Unix-domain sockets
458 This renames configuration parameter
459 <varname>unix_socket_directory</> to <link
460 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
461 which accepts a list of directories.
467 Allow a directory of configuration files to be processed (Magnus
468 Hagander, Greg Smith, Selena Deckelmann)
472 The directory is specified as <link
473 linkend="config-includes"><varname>include_dir</></link> in server
480 Increase the maximum <link
481 linkend="APP-INITDB">initdb</link>-configured value for <link
482 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
483 to 128MB (Robert Haas)
487 This is the maximum value initdb attempts to set in <link
488 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
489 the previous value was 32MB.
495 Remove the <link linkend="guc-external-pid-file">external
496 <acronym>PID</> file</link> on postmaster exit (Peter Eisentraut)
507 <title>Replication and Recovery</title>
513 Allow a streaming replication standby to <link
514 linkend="protocol-replication">follow a timeline switch</link>
519 This allows streaming standbys to feed from newly-promoted slaves.
520 Previously slaves required access to a <acronym>WAL</> archive directory to
527 Add <acronym>SQL</> functions <link
528 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
530 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
535 These functions report the status of base backups.
541 Improve performance of streaming log shipping with <link
542 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
543 disabled (Andres Freund)
549 Allow much faster promotion of a streaming standby to primary (Simon
550 Riggs, Kyotaro Horiguchi)
556 Add the last checkpoint's redo location to <link
557 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
562 This information is useful for determining the <acronym>WAL</>
563 files needed for restore.
569 Allow tools like <link
570 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
571 to run on computers with different architectures (Heikki
579 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
580 <option>--write-recovery-conf</> output a
581 minimal <filename>recovery.conf</> (Zoltán
582 Böszörményi, Magnus Hagander)
586 This simplifies setting up a standby server.
593 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
595 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
596 <option>--xlog-method</> to handle streaming timeline switches
604 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
605 parameter to control the <acronym>WAL</> receiver timeout
610 This allows more rapid detection of connection failure.
617 <title><link linkend="wal">Write-Ahead Log</link>
618 (<acronym>WAL</>)</title>
624 Change the <acronym>WAL</> record format to allow splitting the record header
625 across pages (Heikki Linnakangas)
629 The new format is slightly more compact.
640 <title>Queries</title>
646 Implement <acronym>SQL</>-standard <link
647 linkend="queries-lateral"><literal>LATERAL</></link> for
648 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
652 This is useful in allowing <literal>FROM</> subqueries and
653 functions to reference output from tables in the <literal>FROM</>
654 clause. The <literal>LATERAL</> keyword is optional for functions.
660 Add support for piping <link
661 linkend="SQL-COPY"><command>COPY</></link> and <link
662 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
663 to/from an external program (Etsuro Fujita)
669 Improve query string error location reporting (Tom Lane)
673 Only <command>CREATE SCHEMA ... IF NOT EXISTS</>? If so, remove it.
682 <title>Object Manipulation</title>
688 Add support to <link linkend="event-triggers">event triggers</link>
689 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
693 This allows C functions to be called when specific commands are run.
699 Allow a multi-row <link
700 linkend="SQL-VALUES"><literal>VALUES</></link> clause in rules
701 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
707 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
708 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
714 Have <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
715 OWNED</></link> also change ownership of shared objects
716 (Álvaro Herrera)
723 <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
729 No longer output messages about implicit index and sequence creation (Robert Haas)
733 These messages now appear with <literal>DEBUG1</>-level output.
739 Allow <command>DROP TABLE IF NOT EXISTS</> to succeed for a
740 non-existent schema (Bruce Momjian)
744 Previously, it threw an error if the schema did not exist.
753 <title>Constraints</title>
759 Provide clients with <link
760 linkend="libpq-pqresulterrorfield">constraint violation details</link>
761 as separate fields (Pavel Stehule)
765 This allows clients to retrieve table, column, data type, or constraint
766 name error details. Previously such information had to be extracted from
767 error strings. Client language support is required to access these
777 <title><command>ALTER</></title>
783 Add the <link linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... IF
784 NOT EXISTS</></link> clause when adding enumerated type labels
789 This is useful for conditional label creation in transaction blocks.
795 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
796 SET</></link> to add settings to all users (Peter Eisentraut)
800 This allows settings to apply to all users in all databases. <link
801 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
802 already allowed addition of settings for all users in a single
803 database. <filename>postgresql.conf</> has a similar effect.
809 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
810 ... RENAME</></link> (Ali Dar)
819 <title><link linkend="rules-views"><command>VIEWs</></link></title>
825 Add a <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
826 view</link> relations (Kevin Grittner)
830 Unlike ordinary views, where the base tables are read on every access,
831 materialized views create physical tables at creation or refresh time.
832 Access to the materialized view reads from these materialized physical
833 tables. There is no facility for incrementally refreshing materialized
834 views or auto-accessing them via base table access.
840 Make simple views <link
841 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
846 Simple views that reference some or all columns from a
847 single base table are now updatable by default. More
848 complex views can be made updatable using <link
849 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
850 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
856 Allow views and rules to handle cases where referenced tables are
857 renamed, or columns are renamed, added, or dropped (Tom Lane)
858 HOW DOES IT HANDLE A DROPPED REFERENCED COLUMN?
864 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
865 VIEW</></link> syntax (Peter Eisentraut)
869 Internally this is translated into <command>CREATE VIEW ... WITH
876 When converting a table to a view, remove its system columns (Tom Lane)
888 <title>Data Types</title>
894 Increase the maximum length of <link linkend="lo-open">large
895 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
899 This change includes new libpq and server-side 64-bit-enabled functions.
905 Allow text <link linkend="datatype-timezones">timezone
906 designations</link>, e.g. <quote>America/Chicago</> when using
907 the <acronym>ISO</> <quote>T</> timestamptz format (Bruce Momjian)
914 <title><link linkend="datatype-json"><type>JSON</></link></title>
920 Add <link linkend="functions-json">operators and functions</link>
921 to extract values from <type>JSON</> data strings (Andrew Dunstan)
927 Allow <type>JSON</> data strings to be <link
928 linkend="functions-json-table">converted into records</link>
935 Add <link linkend="functions-json-table">functions</link>
936 to convert values, records, and hstore data to <type>JSON</>
949 <title>Functions</title>
956 linkend="array-functions-table"><function>array_remove()</></link>
958 linkend="array-functions-table"><function>array_replace()</></link>
959 functions (Marco Nenciarini, Gabriele Bartolini)
966 linkend="functions-string-other"><function>concat()</></link>
968 linkend="functions-string-format"><function>format()</></link>
969 to properly expand <literal>VARIADIC</>-labeled arguments
977 linkend="functions-string-format"><function>format()</></link>
978 to handle field width and left/right alignment (Pavel Stehule)
985 linkend="functions-formatting-table"><function>to_char()</></link>,
987 linkend="functions-formatting-table"><function>to_date()</></link>,
989 linkend="functions-formatting-table"><function>to_timestamp()</></link>
990 properly handle negative century designations (<literal>CC</>)
995 Previously the behavior was either wrong or inconsistent
996 with positive/<acronym>AD</> handling, e.g. format mask
997 <quote>IYYY-IW-DY</>.
1004 linkend="functions-formatting-table"><function>to_date()</></link>
1006 linkend="functions-formatting-table"><function>to_timestamp()</></link>
1007 return proper results when mixing <acronym>ISO</> and Gregorian
1008 week/day designations (Bruce Momjian)
1015 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
1016 to default to wrapping after every <link
1017 linkend="SQL-SELECT"><command>SELECT</></link> target list and
1018 <literal>FROM</> entry (Marko Tiikkaja)
1022 This causes view output, like from <link
1023 linkend="APP-PGDUMP"><application>pg_dump</></link>, to be
1030 Have <function>map_sql_value_to_xml_value()</> properly expand
1031 domains (Pavel Stehule) WHAT IS THE USER-VISIBLE AFFECT HERE?
1032 map_sql_value_to_xml_value IS A C FUNCTION
1038 Force cached functions to be replanned if the <link
1039 linkend="guc-search-path"><varname>search_path</></link> changes
1044 Previously functions already run in the current session ignored
1045 <varname>search_path</> changes.
1055 <title>Server-Side Languages</title>
1061 Allow <link linkend="spi-spi-execute"><acronym>SPI</></link>
1062 functions to access the number of rows processed by
1063 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
1070 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
1076 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
1077 expressions (Asif Rehman)
1081 Previously <literal>RETURN</> could only reference composite-type variables.
1087 Allow PL/pgSQL to access the number of rows processed by
1088 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
1092 The command is <link
1093 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
1094 x = ROW_COUNT</></link>.
1100 Allow greater flexibility in where keywords can be used in PL/pgSQL (Tom Lane)
1109 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
1115 Add PL/Python result object string handler (Peter Eisentraut)
1119 This allows plpy.debug(rv) to output something reasonable.
1125 Have PL/Python convert oid values to a proper Python numeric type
1132 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
1133 explicitly with PL/Python's <literal>RAISE</> the same as as
1134 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
1145 <title>Client Applications</title>
1151 Add command-line utility <link
1152 linkend="app-pg-isready"><application>pg_isready</></link> to
1153 check if the server is ready to accept connections (Phil Sorber)
1159 Support multiple <option>--table</> arguments for <link
1160 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
1161 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
1162 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
1163 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
1168 This is similar to the <link
1169 linkend="APP-PGDUMP"><application>pg_dump</></link> <option>--table</>
1176 Add <option>--dbname</> option to <link
1177 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
1178 linkend="app-pgbasebackup"><application>pg_basebackup</></link>,
1180 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
1181 to specify the connection string (Amit Kapila)
1187 Add libpq function <link
1188 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
1189 to return connection information (Zoltán
1190 Böszörményi, Magnus Hagander)
1197 <title><link linkend="APP-PSQL"><application>psql</></link></title>
1203 Adjust function cost settings so <application>psql</> tab
1204 completion and pattern searching is more efficient (Tom Lane)
1210 Improve <application>psql</> tab completion coverage (Jeff Janes,
1217 Allow the <application>psql</> <option>--single-transaction</> mode to work when
1218 reading from standard input (Fabien Coelho, Robert Haas)
1222 Previously this option only worked when reading from a file.
1228 Remove <application>psql</> warning when connecting to an older
1229 server (Peter Eisentraut)
1233 The warning when connecting to a newer server was retained.
1240 <title><link linkend="R2-APP-PSQL-4">Backslash Commands</link></title>
1246 Add <application>psql</> <command>\watch</> command to repeatedly
1247 execute commands (Will Leinweber)
1253 Add <application>psql</> command <command>\gset</> to store query
1254 results in <application>psql</> variables (Pavel Stehule)
1260 Add <acronym>SSL</> information to <application>psql</>'s
1261 <command>\conninfo</> command (Alastair Turner)
1267 Add <quote>Security</> label to <application>psql</> <command>\df+</>
1274 Allow <application>psql</> <command>\l</> to accept a database
1275 name pattern (Peter Eisentraut)
1281 In <application>psql</>, do not allow <command>\connect</> to
1282 use defaults if there is no active connection (Bruce Momjian)
1286 This might be the case if the server had crashed.
1292 Properly reset state if <application>psql</>'s <quote>\g file</>
1293 command failed (Tom Lane)
1297 Previously failed commands discarded output from subsequent commands.
1306 <title>Output</title>
1312 Add a <literal>latex-longtable</> output format to
1313 <application>psql</> (Bruce Momjian)
1317 Longtable allows tables to span multiple pages.
1323 Add a <literal>border=3</> output mode to the <application>psql</>
1324 <literal>latex</> format (Bruce Momjian)
1330 In <application>psql</> tuples-only and expanded modes, no longer
1331 output <quote>(No rows)</> (Peter Eisentraut)
1337 In <application>psql</>, no longer print an empty line for
1338 unaligned, expanded output for zero rows (Peter Eisentraut)
1349 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
1355 Add <application>pg_dump</> <option>--jobs</> to dump in parallel
1356 when using directory output format (Joachim Wieland)
1362 Have <application>pg_dump</> output functions in a predictable
1363 order (Joel Jacobson)
1369 Fix tar files emitted by <application>pg_dump</> and <link
1370 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
1371 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
1377 Add <option>--dbname</> option to <application>pg_dump</>, for
1378 consistency with other client commands (Heikki Linnakangas)
1382 The database name could already be supplied last without a flag.
1391 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
1397 Have initdb fsync the newly created data directory (Jeff Davis)
1401 This can be disabled by using <option>--nosync</>.
1407 Add initdb <option>--sync-only</> option to sync the data directory to durable
1408 storage (Bruce Momjian)
1412 This is used by <link
1413 linkend="pgupgrade"><application>pg_upgrade</></link>.
1419 Have initdb issue a warning about placing the data directory at the
1420 top of file system mount points (Bruce Momjian)
1431 <title>Source Code</title>
1437 Add an embedded list interface (Andres Freund)
1443 Add infrastructure to better support plug-in <link
1444 linkend="bgworker">background worker processes</link>
1445 (Álvaro Herrera)
1451 Create a centralized timeout <acronym>API</> (Zoltán
1452 Böszörményi)
1458 Create libpgcommon and move <function>pg_malloc()</> and other
1459 functions there (Álvaro Herrera, Andres Freund)
1463 This allows libpgport to be used solely for porting code.
1469 Standardize on naming of client-side memory allocation functions (Tom Lane)
1475 Add compiler designations to indicate some <function>ereport()</>
1476 and <function>elog()</> calls do not return (Peter Eisentraut,
1477 Andres Freund, Tom Lane, Heikki Linnakangas)
1483 Allow options to be passed to the regression
1484 test output comparison utility via <link
1485 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
1492 Add isolation tests for <link
1493 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
1494 CONCURRENTLY</></link> (Abhijit Menon-Sen)
1500 Remove typedefs for <type>int2</>/<type>int4</> as they are better
1501 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
1507 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
1508 X</> (Peter Eisentraut)
1514 Remove <link linkend="configure">configure</link> flag
1515 <option>--disable-shared</>, as it is no longer used (Bruce
1522 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
1528 Add emacs macro to match <productname>PostgreSQL</> perltidy
1529 formatting (Peter Eisentraut)
1535 Run tool to check the keyword list when the backend grammar is
1542 Centralize <application>flex</> and <application>bison</>
1543 <application>make</> rules (Peter Eisentraut)
1547 This is useful for <application>pgxs</> authors.
1553 Add <function>Assert()</> functionality to client-side code for
1554 frontend code (Andrew Dunstan)
1560 Change many internal many backend functions to return <type>OID</>s
1561 rather than void (Dimitri Fontaine)
1565 This is useful for event triggers.
1571 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
1572 callbacks (Tom Lane)
1576 Loadable modules that use transaction callbacks might need modification
1577 to handle these new event types.
1584 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
1585 to dump an object in machine-readable format (Álvaro
1592 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
1598 Implement a generic binary heap and use it for Merge-Append
1599 operations (Abhijit Menon-Sen)
1605 Improve ability to detect official timezone abbreviation changes
1612 Add <application>pkg-config</> support <application>libpq</>
1613 and <application>ecpg</> libraries (Peter Eisentraut)
1619 Remove <filename>src/tool/backend</>, now that the content is on
1620 the <productname>PostgreSQL</> wiki (Bruce Momjian)
1626 Split out <link linkend="wal"><acronym>WAL</></link> reading as
1627 an independent facility (Heikki Linnakangas, Andres Freund)
1633 Use a 64-bit integer to represent <link
1634 linkend="wal"><acronym>WAL</></link> positions
1635 (<structname>XLogRecPtr</>) instead of two 32-bit integers
1636 (Heikki Linnakangas)
1640 Generally, tools that need to read the <acronym>WAL</> format
1641 will need to be adjusted.
1647 Allow <link linkend="plpython">PL/Python</link> to support
1648 platform-specific include directories (Peter Eisentraut)
1654 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
1655 X</> to build against custom versions of <application>Python</>
1665 <title>Additional Modules</title>
1671 Allow write-enabled <link
1672 linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data wrappers</link>
1673 to support writes (KaiGai Kohei)
1679 Add a <productname>Postgres</> <link linkend="postgres-fdw">foreign
1680 data wrapper</link> contrib module (Shigeru Hanada)
1684 This foreign data wrapper allows writes.
1690 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
1691 contrib program (Andres Freund)
1697 Add support for indexing of regular-expression searches in
1698 extension <link linkend="pgtrgm"><productname>pg_trgm</></link>
1699 (Alexander Korotkov)
1705 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>
1706 handling of multibyte characters (Tom Lane)
1712 Add <link linkend="pgstattuple">pgstattuple function</link> to report the
1713 size of the <type>GIN</> pending index insertion list (Fujii Masao)
1719 Have <link linkend="oid2name"><application>oid2name</></link>,
1720 <link linkend="pgbench"><application>pgbench</></link>, and
1721 <link linkend="vacuumlo"><application>vacuumlo</></link> set
1722 <varname>fallback_application_name</> (Amit Kapila)
1728 Improve output of <link
1729 linkend="pgtesttiming"><application>pg_test_timing</></link>
1736 Improve output of <link
1737 linkend="pgtestfsync"><application>pg_test_fsync</></link>
1744 Improve <link linkend="dblink">dblink</link> option validator
1756 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
1762 Allow <application>pg_upgrade</> <option>--jobs</> to do
1763 parallelism (Bruce Momjian)
1767 This allows parallel schema dump/restore of databases, as well as
1768 parallel copy/link of data files per tablespace.
1774 Have <application>pg_upgrade</> create unix-domain sockets in
1775 the current directory (Bruce Momjian, Tom Lane)
1779 This reduces the possibility that someone will accidentally connect
1786 Have <application>pg_upgrade</> <option>--check</> mode properly
1787 detect the location of non-default socket directories (Bruce
1794 Improve performance of <application>pg_upgrade</> for databases
1795 with many tables (Bruce Momjian)
1801 Increase <application>pg_upgrade</> logging content by showing
1802 executed command (Álvaro Herrera)
1808 Improve <application>pg_upgrade</>'s status display during
1809 copy/link (Bruce Momjian)
1818 <title><link linkend="pgbench"><application>pgbench</></link></title>
1824 Add <option>--foreign-keys</> option to <application>pgbench</> (Jeff Janes)
1828 This adds foreign key constraints to tables, for use in foreign
1829 key performance testing.
1835 Allow <application>pgbench</> to aggregate performance statistics
1836 and produce output every <option>--aggregate-interval</> specified
1837 seconds (Tomas Vondra)
1843 Add <application>pg_bench</> <option>--sampling-rate</> option
1844 to control the percentage of transactions logged (Tomas Vondra)
1850 Reduce and improve the status message output of
1851 <application>pgbench</>'s initialization mode (Robert Haas,
1858 Add <application>pgbench</> <option>-q</> mode to print one output
1859 line every five seconds (Tomas Vondra)
1863 Output <application>pgbench</> elapsed and estimated remaining
1864 time during initialization logging (Tomas Vondra)
1870 Allow <application>pgbench</> to use a larger scale factor
1882 <title>Documentation</title>
1888 Allow <productname>EPUB</>-format documentation to be created
1895 Update <productname>FreeBSD</> kernel configuration documentation
1902 Improve <link linkend="tutorial-window"><literal>WINDOW</>
1903 function</link> documentation (Bruce Momjian, Tom Lane)
1909 Add <link linkend="docguide">instructions</link> for setting
1910 up the documentation tool chain on Mac <productname>OS X</>
1918 linkend="guc-commit-delay"><varname>commit_delay</></link>
1919 documentation (Peter Geoghegan)