1 <!-- doc/src/sgml/release-9.4.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-4">
5 <title>Release 9.4</title>
8 <title>Release Date</title>
9 <simpara>2014-??-??</simpara>
10 <simpara>Current as of 2014-05-03</simpara>
14 <title>Overview</title>
17 Major enhancements in <productname>PostgreSQL</> 9.4 include:
20 <!-- This list duplicates items below, but without authors or details-->
32 The above items are explained in more detail in the sections below.
39 <title>Migration to Version 9.4</title>
42 A dump/restore using <link
43 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
44 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
45 required for those wishing to migrate data from any previous release.
49 Version 9.4 contains a number of changes that may affect compatibility
50 with previous releases. Observe the following incompatibilities:
57 Cause consecutive whitespace in to_timestamp() and to_date() format strings to consume a corresponding number of characters in the input
58 string (whitespace or not), then conditionally additional adjacent whitespace if not in FX mode (Jeevan Chalke)
62 Previously consecutive whitespace characters in a non-FX format string behaved like a single whitespace character and consumed all
63 adjacent whitespace in the input string. For example, previously format string space-space-space would consume only the first space in ' 12', while it will not consume all three characters.
69 Tighten checks for multi-dimensional array input (Bruce Momjian)
73 Previously an input array string that started with a single-element array dimension could later contain multi-dimensional
80 Change empty arrays returned by intarray to be zero-dimensional arrays (Bruce Momjian)
84 Previously empty arrays were returned as one-dimensional empty arrays whose text representation looks the same as
85 zero-dimensional arrays. intarray's behavior in this area now matches the built-in array operators.
91 NULL VARIADIC function arguments are now disallowed (Pavel Stehule)
95 NULL VARIADIC arguments must be cast to an array data type.
101 SHOW TIME ZONE now outputs constant time zone offsets in POSIX-style zone format (Tom Lane)
105 Previously it was returned in INTERVAL format. The new format can be passed to SET TIME ZONE.
111 Rename EXPLAIN ANALYZE's "total runtime" output to "execution time" (Tom Lane)
115 This was required now that planning time is also reported.
121 Fix ts_rank_cd() to ignore stripped lexemes (Alex Hill)
125 Previously, stripped lexemes got a default location and could be considered if mixed with non-stripped lexemes.
131 Prevent CHECK constraints from referencing system columns, except tableoid (Amit Kapila)
135 Restoring such check constraints will lead to restore errors.
141 Use the last specified recovery_target if multiple are specified (Heikki Linnakangas)
147 Remove system column pg_class.reltoastidxid (Michael Paquier)
153 Remove support for native krb5 authentication (Magnus Hagander)
157 The proper way to use Kerberos authentication is with GSSAPI.
163 Have libpq's PQconnectdbParams() and PQpingParams functions accept "" as default (Adrian Vondendriesch)
167 Previously, these functions treated "" option values as defaults only in some cases.
173 Remove system column pg_rewrite.ev_attr (Kevin Grittner)
177 Per-column rules have not been supported since 7.3.
183 Pg_upgrade now uses -U to specify the user name (Bruce Momjian)
187 Previously, -u was used to specify the user name. Also spell the long option as --username, again for consistency with other
197 <title>Changes</title>
200 Below you will find a detailed account of the changes between
201 <productname>PostgreSQL</productname> 9.4 and the previous major
206 <title>Server</title>
212 Have VACUUM properly report dead but not removable rows to the statistics collector (Hari Babu)
216 Previously these were reported as live rows.
222 Allow background workers to be dynamically registered, started and terminated (Robert Haas)
226 worker_spi_launch() in worker_spi shows an example of its use.
232 Allow dynamic allocation of shared memory segments (Robert Haas, Amit Kapila)
238 Improve SSL renegotiation handling (Álvaro Herrera)
244 During immediate shutdown, send uncatchable termination signals to child processes that have not already shutdown (MauMau,
245 Álvaro Herrera)
249 This reduces the likelihood of orphaned child processes after postmaster shutdown.
255 Improve randomness of the database system identifier (Tom Lane)
262 <title>Indexes</title>
268 Improve speed of multi-key GIN lookups (Alexander Korotkov, Heikki Linnakangas)
274 Reduce GIN index size (Alexander Korotkov, Heikki Linnakangas)
278 Indexes upgraded via pg_upgrade will work fine but will use the old larger GIN format; REINDEX will recreate the index in the new
285 Add GiST index support for INET and CIDR data types (Emre Hasegeli)
289 Such indexes improve subnet and supernet lookups and ordering comparisons.
295 Fix race condition in B-tree page deletion (Heikki Linnakangas)
301 Make the handling of interrupted B-tree page splits more robust (Heikki Linnakangas)
310 <title>General Performance</title>
316 Allow multiple backends to simultaneously insert into WAL buffers (Heikki Linnakangas)
320 This improves parallel write performance.
326 Conditionally write only the modified portion of updated rows to WAL (Amit Kapila)
332 Improve performance of WINDOW aggregate functions (David Rowley, Florian Pflug, Tom Lane)
338 Improve speed of aggregates which use NUMERICs (Hadi Moshayedi)
342 These include sum(), avg(), stddev(), and variance().
348 Freeze tuples when tables are written with CLUSTER or VACUUM FULL (Robert Haas, Andres Freund)
352 This avoids the need to freeze the tuples in the future.
358 Improve speed of COPY with DEFAULT nextval() columns (Simon Riggs)
364 Improve speed of accesessing many different sequences in the same session (David Rowley)
370 Allow sorting and btree index builds to use over four gigabytes of memory (Noah Misch)
376 Reduce memory allocated by DO blocks (Tom Lane)
382 Have the optimizer be more aggressive in creating restrictions from mixed AND/OR clauses (Tom Lane)
388 Auto-resize the catalog cache (Heikki Linnakangas)
392 This reduces memory consumption for backends accessing only a few tables, and improves performance for backend accessing many
402 <title>Monitoring</title>
408 Expose the estimation of number of changed tuples since last analyze (Mark Kirkwood)
412 This appears in pg_stat_all_tables.n_mod_since_analyze.
418 Add pg_stat_archiver system view to report WAL archiver activity (Gabriele Bartolini)
424 Add xid and xmin to system views pg_stat_activity and pg_stat_replication (Christian Kruse)
439 Add support for SSL ECDH key exchange (Marko Kreen)
443 Such keys are faster and have improved security over previous options. New variable ssl_ecdh_curve controls the curve that is
450 Improve the default ssl_ciphers ciphers (Marko Kreen)
456 Allow the server to specify the preferred SSL cipher order (Marko Kreen)
460 This is controlled by the new configuration parameter ssl_prefer_server_ciphers.
466 Have log_connections show SSL encryption information (Andreas Kunert)
475 <title>Server Settings</title>
481 Add SQL-level command ALTER SYSTEM command to edit the postgresql.conf configuration file (Amit Kapila)
485 Previously postgresql.conf could only be edited at the file system level.
491 Add huge_pages configuration parameter to enable huge translation look-aside buffer (TLB) pages on Linux (Christian Kruse,
492 Richard Poole, Abhijit Menon-Sen)
496 This can improve performance on large memory systems.
502 Show PIDs of lock holders and waiters and improve relation
503 information in log_lock_waits log messages (Christian Kruse)
509 Add parameter autovacuum_work_mem to control the amount of memory used by autovacuum workers (Peter Geoghegan)
515 Add max_worker_processes to limit the number of background workers (Robert Haas)
519 This is helpful in configuring the standby server to have the required same number of worker processes as the primary.
525 Add configuration parameter wal_log_hints to enable logging of hint bits (Sawada Masahiko)
529 Hint bits are not normally logged, except when checksums are enabled. This is useful for tools like pg_rewind.
535 Allow printf-style space padding to be specified in log_line_prefix (David Rowley)
541 Add superuser-only session_preload_libraries configuration parameter to load libraries at session start (Peter Eisentraut)
545 Such libraries are auto-LOAD'ed, unlike local_preload_libraries.
551 Reduce server logging level when loading shared libraries (Peter Geoghegan)
555 The previous level was LOG, which was too verbose for per-session libraries.
561 Auto-tune effective_cache size to be four-times shared buffers (Bruce Momjian, Tom Lane)
567 Increase work_mem and maintenance_work_mem defaults by four-times (Bruce Momjian)
571 The new defaults are 4MB and 64MB respectively.
577 Allow terabyte units to be specified for configuration variable values (Simon Riggs)
583 Have Windows ASCII-encoded databases and server process (e.g. postmaster) emit messages in the LC_CTYPE-defined language (Alexander Law,
588 Previously these messages were output using the Windows ANSI code page.
599 <title>Replication and Recovery</title>
605 Allow recovery.conf parameter min_recovery_apply_delay to force delayed replication (Robert Haas, Fabrízio de Royes Mello, Simon Riggs)
609 This is useful for delaying replaying of user errors on standby servers.
615 Add recovery_target='immediate' option to replay WAL stop recovery when a consistent state is reached, i.e. pg_stop_backup() (MauMau,
622 Improve recovery target processing (Heikki Linnakangas)
626 The timestamp reported by pg_last_xact_replay_timestamp() now shows information about committed records, not commits being
627 replayed. Recovering to restore points now replay the restore point, rather than stop just before the restore point.
633 pg_switch_xlog() now clears the trailing unused space in the WAL file (Heikki Linnakangas)
637 This improves the compression ratio for WAL files.
643 Add replication slots to report the WAL activity on streaming standbys (Andres Freund, Robert Haas)
647 Replication slots allow preservation of resources like WAL files on the
648 primary that are needed by standby servers.
654 Reduce spinlock contention during WAL replay (Heikki Linnakangas)
660 Report failure return codes from external recovery commands (Peter Eisentraut)
666 Write WAL records of running transactions more frequently (Andres Freund)
670 This allows standby servers to start faster and cleanup resources
678 <title>Logical Change-Set Extraction</title>
681 The new Logical change-set extraction feature allows database
682 changes to be optionally recorded in <emphasis>logical</> format
683 in the WAL. This format can be easily processed by external tools.
684 In previous releases, only binary changes were recorded in the
685 WAL. To implement this feature, the following changes were made:
692 Add new "logical" wal_level to enable logical change-set encoding in WAL (Andres Freund)
696 This interacts with REPLICA IDENTITY.
702 Add tool pg_recvlogical to receive data logical decoding data (Andres Freund)
708 Add contrib/test_decoding module to illustrate logical decoding at the SQL level (Andres Freund)
714 Allow logical decoding via the walsender interface ? (Andres Freund)
720 Add table-level parameter REPLICA IDENTITY to control logical replication (Andres Freund)
726 Add relation option user_catalog_table to identify user-created tables involved in logical change-set encoding (Andres Freund)
737 <title>Queries</title>
743 Add ROWS FROM syntax to allow horizontal concatenation of FROM-clause set-returning functions (Andrew Gierth)
749 Add WITH ORDINALITY which numbers rows returned from FROM-clause functions (Andrew Gierth, David Fetter)
753 This is particularly useful for functions like UNNEST.
759 Allow SELECT with an empty target list (Tom Lane)
763 This was added for consistency, and so querying tables with no columns would not produce an error.
772 <title>Utility Commands</title>
778 Add DISCARD SEQUENCES command to discard cached sequence information (Fabrízio de Royes Mello, Robert Haas)
782 DISCARD ALL will now also discard such information.
788 Allow quoted strings matching the null string to be converted
789 to NULL in COPY FROM CVS mode (Ian Barwick, Michael Paquier)
793 Previously only unquoted matching strings would be imported as
800 Issue warnings for SET outside of a transaction block, as they have no effect (Bruce Momjian)
804 The cases are SET LOCAL/CONSTRAINTS/TRANSACTION and ABORT.
811 <title>EXPLAIN</title>
817 Have EXPLAIN ANALYZE output planning time (Andreas Karlsson)
823 Have EXPLAIN print the grouping columns in Agg and Group nodes (Tom Lane)
829 Have EXPLAIN ANALYZE show bitmap heap scan exact/lossy block information (Etsuro Fujita)
844 Allow materialized views to be refreshed without blocking reads (Kevin Grittner)
848 This is done with REFRESH MATERIALIZED VIEW CONCURRENTLY.
854 Allow auto-updates on views where only some columns are auto-updateable (Dean Rasheed)
858 Previously the presence of a non-auto-updateable column prevented all columns from being auto-updated. Deletes are now supported
859 on suitable views even if no auto-updateable columns are present.
865 Allow control over whether INSERTs and UPDATEs can add rows to an auto-updateable view that would no longer appear in the view (Dean Rasheed)
869 This is controlled with the new WITH CHECK OPTION.
875 Allow security barrier views to be automatically updateable (Dean Rasheed)
886 <title>Object Manipulation</title>
892 Allow triggers on foreign tables (Ronan Dunklau)
898 Fix DROP IF EXISTS to more consistently not error for non-existent objects (Pavel Stehule, Dean Rasheed)
904 Improve the internal definition of system relations (Andres Freund, Robert Haas)
908 Previously, relations moved into the system catalog schema could not be modified.
914 Allow ALTER TABLESPACE options to be also set by CREATE TABLESPACE (Vik Fearing)
920 Allow CREATE AGGREGATE to supply the size of the aggregate's transition state data (Hadi Moshayedi)
927 <title><command>ALTER</></title>
933 Allow moving groups of objects from one tablespace to another using ALTER TABLESPACE ... MOVE (Stephen Frost)
939 Allow the changing of foreign key constraint via ALTER TABLE ... ALTER CONSTRAINT (Simon Riggs)
945 Reduce lock levels of some ALTER TABLE commands (Simon Riggs, Noah Misch)
949 Specifically, VALIDATE CONSTRAINT, CLUSTER ON, SET WITHOUT CLUSTER, ALTER COLUMN SET STATISTICS, ALTER COLUMN
950 SET(attribute_option), ALTER COLUMN RESET(attribute_option).
961 <title>Data Types</title>
967 Fully-implement the line data type (Peter Eisentraut)
971 The line segment data type (LSEG) has always been supported.
977 Add PG_LSN data type to represent a WAL log sequence number (LSN) (Robert Haas, Michael Paquier)
983 Allow single-point POLYGONs to be converted to circles (Bruce Momjian)
989 Allow 5+ digit years for non-ISO timestamp/date strings, where appropriate (Bruce Momjian)
995 Add checks for overflow/underflow of INTERVAL values (Bruce Momjian)
1002 <title><link linkend="datatype-json"><type>JSON</></link></title>
1008 Add structured (non-text) data type (jsonb) for storing JSON data (Oleg Bartunov, Teodor Sigaev,
1009 Alexander Korotkov, Peter Geoghegan, and Andrew Dunstan)
1013 This data type allows for faster indexing and access to json key/value
1014 pairs, as well as efficient indexing of all key/value pairs in a JSON document.
1020 Add new JSON functions to allow for the construction of arbitrarily complex json trees (Andrew Dunstan, Laurence Rowe)
1024 New functions include json_array_elements_text(), json_build_array(), json_object(), json_object_agg(), json_to_record(),
1025 json_to_recordset().
1031 Add json_typeof() to return the data type of a JSON value (Andrew Tipton)
1043 <title>Functions</title>
1049 Add pg_sleep_for(interval) and pg_sleep_until(timestamp) to specify sophisticated delays (Vik Fearing, Julien Rouhaud)
1053 pg_sleep() only supports delays specified in seconds.
1059 Add cardinality() function for arrays (Marko Tiikkaja)
1063 This returns the total number of elements in the array, or zero for an array with no elements.
1069 Add SQL functions to allow large object reads/writes at arbitrary offsets (Pavel Stehule)
1075 Allow UNNEST() to take multiple arguments, which are individually unnested then horizontally concatenated (Andrew Gierth)
1081 Add functions to construct times, dates, timestamps, timestamptzs, and intervals from individual values, rather than strings (Pavel Stehule)
1085 The functions being with "make_", e.g. make_date.
1091 Have to_char(TZ) return the proper value for constant time zone offsets (Tom Lane)
1095 Previously, to_char(CURRENT_TIMESTAMP, 'TZ') returned NULL if the TIME ZONE was set to a constant like '-4'.
1101 Add timezone offset output option 'OF' to to_char() (Bruce Momjian)
1107 Improve the random seed used for random() (Honza Horak)
1114 <title>System Information Functions</title>
1120 Add functions for error-free pg_class, pg_proc, pg_type, and pg_operator lookups (Yugo Nagata, Nozomi Anzai, Robert Haas)
1124 For example, to_regclass() does error-free lookups of pg_class, and returns NULL for lookup failures.
1130 Add function pg_filenode_relation() to allow for more efficient
1131 filenode to relation lookups (Andres Freund)
1137 Add information_schema column parameters.parameter_default (Peter Eisentraut)
1143 Have information_schema.schemata show all accessible schema (Peter Eisentraut)
1147 Previously it only showed _owned_ schemas.
1156 <title>Aggregates</title>
1162 Add aggregates percentile_cont(), percentile_disc(), rank(), dense_rank(), percent_rank(), cume_dist(), and mode() (Atri Sharma, Andrew
1169 Add control over which values are passed into
1170 aggregate functions using the FILTER clause (David Fetter)
1176 Support ordered-set (WITHIN GROUP) aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
1180 This allows aggregates that require sorted input.
1186 Allow polymorphic aggregates to have non-polymorphic state data types ? (Tom Lane)
1192 Allow VARIADIC aggregate functions (Tom Lane)
1203 <title>Server-Side Languages</title>
1206 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
1212 Add event trigger support to PL/Perl and PL/Tcl (Dimitri Fontaine)
1222 Add ability to store the PL/PgSQL call stack into a variable using PG_CONTEXT (Pavel Stehule, Stephen Frost)
1228 Add option print_strict_params to output parameters passed to
1229 queries generating STRICT errors (Marko Tiikkaja)
1235 Add option to enable additional PL/pgSQL errors and warnings (Marko Tiikkaja, Petr Jelinek)
1239 Currently only shadowed variable errors/warnings are available.
1248 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
1254 Handle domains over arrays like plain arrays in PL/python (Rodolfo Campero)
1258 Previously they were treated as strings.
1264 Convert NUMERICs to "decimal" values in PL/Python (Szymon Guz, Ronan Dunklau)
1268 Previously these were converted to "floats".
1279 <title><link linkend="libpq"><application>libpq</></link></title>
1284 Add libpq function PQhostaddr() to return the server's IP address (Fujii Masao)
1290 Make libpq's PQconndefaults() ignore invalid service files (Steve Singer, Bruce Momjian)
1294 Previously it returned NULL.
1300 Allow libpq to support TLS versions beyond TLSv1 (Marko Kreen)
1306 Document that libpq's PQclientEncoding() returns -1 for an encoding lookup failure (Bruce Momjian)
1315 <title>Client Applications</title>
1321 Add createuser -g to specify role membership (Chistopher Browne)
1327 Allow vacuumdb --analyze-in-stages to analyze in stages of increasing granularity (Peter Eisentraut)
1331 This allows minimal statistics to be created quickly.
1337 Allow pg_xlogdump to report a live log stream with --follow (Heikki Linnakangas)
1343 Have pg_resetxlog -n output current and potentially changed values (Rajeev Rastogi)
1349 Allow sizeof() in ecpg C array definitions (Michael Meskes)
1355 Have ecpg properly handle nesting requirements in C and SQL mode for C-style comments (Michael Meskes)
1361 Have pg_ctl return '4' for an inaccessible data directory specification (Amit Kapila, Bruce Momjian)
1365 This more closely matches the Linux Standard Base Core Specification.
1371 On Windows interpret pg_ctl -D relative directories relative to pg_ctl's current directory (Kumar Rajeev Rastogi)
1378 <title><link linkend="APP-PSQL"><application>psql</></link></title>
1384 Allow field wrapping to psql's "extended" mode (Sergey Muraviov)
1390 Suppress "No rows" in psql expanded mode when the footer is disabled (Bruce Momjian)
1396 Allow Control-C to abort psql hung at connection startup (Peter Eisentraut)
1403 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
1409 Have psql \db+ show tablespace options (Magnus Hagander)
1415 Have psql \do+ display the functions which implement the operators (Marko Tiikkaja)
1421 Have psql \d+ output an OID line only if an oid column exists in a table (Bruce Momjian)
1425 Previously, the presence or absence of an oid column was always reported.
1431 Have \d display disabled system triggers (Bruce Momjian)
1435 Previously if you disabled all triggers, only user triggers would show as disabled.
1441 Fix psql \copy to no longer require a space between 'stdin' and a semicolon (Etsuro Fujita)
1447 Output the row count at the end of psql \copy just like COPY (Kumar Rajeev Rastogi)
1453 Fix psql \conninfo to display the server's IP address for clients that connect using 'hostaddr' (Fujii Masao)
1457 Previously \conninfo could not display the server's IP address in such cases.
1463 Mention the SSL protocol version in psql's \conninfo (Marko Kreen)
1469 Add psql tab completion for \pset (Pavel Stehule)
1475 Allow psql \pset with no arguments to show all settings (Gilles Darold)
1481 In psql, output the written history file name (\s) without adding an absolute path prefix (Tom Lane)
1485 The previous output was inconsistent.
1496 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
1502 Allow pg_restore options -I, -P, -T and -n to be specified multiple times (Heikki Linnakangas)
1506 This allows multiple restore object to be specified.
1512 Add IF EXISTS clauses when removing old objects during dump and restore (Pavel Stehule)
1516 This suppresses errors when removing old objects. The new --if-exists option to pg_dump, pg_dumpall, and pg_restore is only
1517 available when --clean is also specified.
1526 <title>pg_basebackup</title>
1532 Add pg_basebackup option --xlogdir to specify the pg_xlog direction location (Haribabu Kommi)
1538 Allow pg_basebackup to relocate tablespaces in the backup copy (Steeve Lennmark)
1542 This is particularly useful for using pg_basebackup on the same machine as the primary.
1548 Allow network-streams base backups to be throttled (Antonin Houska)
1552 This can be controlled with the pg_basebackup --max-rate parameter.
1563 <title>Source Code</title>
1569 Improve the way tuples are frozen, to preserve forensic information (Robert Haas, Andres Freund)
1573 Code that inspects tuple flag bits will need to be modified.
1579 No longer require function prototypes for function marked with the PG_FUNCTION_INFO_V1 macro (Peter Eisentraut)
1583 This eliminates needless boilerplate prototypes whose lack generates compiler warnings.
1589 Remove SnapshotNow and HeapTupleSatisfiesNow (Robert Haas)
1593 All existing uses have been switched to more appropriate snapshot
1594 types. Catalog scans now use MVCC snapshots.
1605 Add API for memory allocations over four gigabytes (Noah Misch)
1611 Add psprintf() to simplify memory allocation during string composition (Peter Eisentraut, Tom Lane)
1617 Add printf() modifier "z" to specify size_t values (Andres Freund)
1623 Change API of appendStringInfoVA() to better use vsnprintf() (David Rowley, Tom Lane)
1629 Allow new types of external toast datums to be created (Andres Freund)
1635 Add single-reader, single-writer, lightweight shared message queue (Robert Haas)
1641 Improve spinlock speed on x86_64 CPUs (Heikki Linnakangas)
1647 Remove spinlock support for unsupported platforms SINIX, Sun3, and NS32K (Robert Haas)
1653 Remove IRIX port (Robert Haas)
1659 Reduce the number of semaphores required by --disable-spinlocks (Robert Haas)
1665 Rewrite duplicate_oids Unix shell script in Perl (Andrew Dunstan)
1671 Add Test Anything Protocol (TAP) tests for client programs (Peter Eisentraut)
1677 Add make targets check-tests and installcheck-tests which allow per-test specification (Andrew Dunstan)
1683 Remove maintainer-check makefile rule (Peter Eisentraut)
1687 Its functionality is now done by the default build rules.
1693 Improve support for VPATH builds of PGXS modules (Cédric Villemain, Andrew Dunstan)
1699 Upgrade to Autoconf 2.69 (Peter Eisentraut)
1705 Add configure flag that appends custom text to the PG_VERSION string (Oskari Saarenmaa)
1709 This is useful for packagers building custom binaries.
1715 Improve DocBook XML validity (Peter Eisentraut)
1721 Various security and sanity fixes reported by the Coverity scanner (Stephen Frost)
1727 Improve valgrind error reporting (Noah Misch)
1733 Improve Emacs configuration file emacs.samples (Peter Eisentraut)
1737 Also add .dir-locals.el to the top of the source tree.
1743 Allow pgindent to be supplied a command-line list of typedefs (Bruce Momjian)
1747 pgindent is also now smarter about blank lines around preprocessor conditionals.
1753 Avoid most uses of dlltool in Cygwin and Mingw builds (Marco Atzeri, Hiroshi Inoue)
1762 <title>Additional Modules</title>
1768 Add pg_prewarm to preload relation data into the shared buffer cache (Robert Haas)
1772 This is useful at server start to produce more consistent performance.
1778 Add UUID random number generator gen_random_uuid() to pgcrypto (Oskari Saarenmaa)
1782 This allows the creation of version 4 UUIDs without requiring the installation of uuid-ossp.
1788 Add logging of trigger execution to auto_explain (Horiguchi Kyotaro)
1794 Allow reporting of the pg_stat_statements's internal query hash identifier (Daniel Farina, Sameer Thakur, Peter Geoghegan)
1800 Have pg_stat_statements use a flat file for query text storage, allowing higher limits (Peter Geoghegan)
1804 Also add the ability to retrieve all pg_stat_statements information except the query text. This allows programs to reuse the query
1805 text already retrieved by referencing queryid.
1811 Fix pgstattuple to not report rows from uncommitted transactions as dead (Robert Haas)
1817 Have pgstattuple functions use regclass-type arguments (Satoshi Nagayasu)
1821 While text-type arguments are still supported, they will be removed in a later major release.
1827 Improve consistency of pgrowlocks output to honor snapshot rules more consistently (Robert Haas)
1833 Improve indexing of pg_trgm values to discourage indexing whitespace (Alexander Korotkov)
1839 Store cube data more compactly (Stas Kelvich)
1843 Existing data must be dumped/restored to use the new format. The old format can still be read.
1849 Reduce vacuumlo client-side memory usage by using a cursor (Andrew Dunstan)
1855 Dramatically reduce memory consumption in pg_upgrade (Bruce Momjian)
1861 Pass pg_upgrade user names (-U) to analyze scripts (Bruce Momjian)
1868 <title><link linkend="pgbench"><application>pgbench</></link></title>
1874 Allow pgbench to process script files of any line length (Sawada Masahiko)
1878 The previous line limit was BUFSIZ.
1884 Add pg_bench option (--rate) to control the transaction rate (Fabien Coelho)
1890 Add --progress output option to pgbench (Fabien Coelho)
1896 Add long options to pgbench (Fabien Coelho)