Update 9.3 release notes.
authorTom Lane
Sun, 1 Sep 2013 03:53:24 +0000 (23:53 -0400)
committerTom Lane
Sun, 1 Sep 2013 03:53:24 +0000 (23:53 -0400)
Some corrections, a lot of copy-editing.

Set projected release date as 2013-09-09.

doc/src/sgml/release-9.3.sgml

index fc9d9db93fd0d614175b62a4bb13dd1c5811f62c..01ac4a4d07e52715950690224c3051d3c72638ea 100644 (file)
@@ -6,14 +6,14 @@
 
   
    Release Date
-   2013-XX-XX, CURRENT AS OF 2013-08-16
+   2013-09-09
   
 
   
    Overview
 
    
-    Major enhancements include:
+    Major enhancements in PostgreSQL 9.3 include:
    
 
    
@@ -36,9 +36,9 @@
 
     
      
-      Many JSON improvements, including the addition of 
-      linkend="functions-json">operators and functions to extract
-      values from JSON data strings
+      Add many features for the JSON data type,
+      including operators and functions
+      to extract elements from JSON values
      
     
 
@@ -60,8 +60,9 @@
 
     
      
-      Add a Postgres foreign
-      data wrapper contrib module
+      Add a Postgres foreign
+      data wrapper to allow access to
+      other Postgres servers
      
     
 
 
     
      
-      Allow a streaming replication standby to 
-      linkend="protocol-replication">follow a timeline switch,
-      and faster failover
+      Prevent non-key-field row updates from blocking foreign key checks
      
     
 
     
      
-      Dramatically reduce System V shared
+      Greatly reduce System V shared
       memory requirements
      
     
 
-    
-     
-      Prevent non-key-field row updates from locking foreign key rows
-     
-    
-
    
 
    
        
         Users who have set 
         linkend="guc-work-mem">work_mem based on the
-        previous behavior should revisit that setting.
+        previous behavior may need to revisit that setting.
        
       
 
 
       
        
-        Throw an error if expiring tuple is again updated or deleted (Kevin Grittner)
-        DETAILS?
+        Throw an error if a tuple to be updated or deleted has already been
+        updated or deleted by a BEFORE trigger (Kevin Grittner)
+       
+
+       
+        Formerly, the originally-intended update was silently skipped,
+        resulting in logical inconsistency since the trigger might have
+        propagated data to other places based on the intended update.
+        Now an error is thrown to prevent the inconsistent results from being
+        committed.  If this change affects your application, the best solution
+        is usually to move the data-propagation actions to
+        an AFTER trigger.
+       
+
+       
+        This error will also be thrown if a query invokes a volatile function
+        that modifies rows that are later modified by the query itself.
+        Such cases likewise previously resulted in silently skipping updates.
        
       
 
       
        
-        Change ON UPDATE
+        Change multicolumn ON UPDATE
         SET NULL/SET DEFAULT foreign key actions to affect
-        all referenced columns, not just those referenced in the
+        all columns of the constraint, not just those changed in the
         UPDATE (Tom Lane)
        
 
        
-        Previously only columns referenced in the UPDATE were
-        set to null or DEFAULT.
+        Previously, we would set only those referencing columns that
+        correspond to referenced columns that were changed by
+        the UPDATE.  This was what was required by SQL-92,
+        but more recent editions of the SQL standard specify the new behavior.
        
       
 
       
        
-        Internally store default foreign key matches (non-FULL,
-        non-PARTIAL) as simple (Tom Lane)
+        Force cached plans to be replanned if the 
+        linkend="guc-search-path">search_path changes
+        (Tom Lane)
        
 
        
-        These were previously stored as "<unspecified>".
-        This changes the value stored in system column 
-        linkend="catalog-pg-constraint">pg_constraint.confmatchtype.
+        Previously, cached plans already generated in the current session were
+        not redone if the query was re-executed with a
+        new search_path setting, resulting in surprising behavior.
        
       
 
       
        
-        Store WAL in a continuous
-        stream, rather than skipping the last 16MB segment every 4GB
-        (Heikki Linnakangas)
+        Fix 
+        linkend="functions-formatting-table">to_number()
+        to properly handle a period used as a thousands separator (Tom Lane)
        
 
        
-        Previously, WAL files with names ending in FF
-        were not used.  If you have WAL backup or restore scripts
-        that took that skipping into account, they will need to be adjusted.
+        Previously, a period was considered to be a decimal point even when
+        the locale says it isn't and the D format code is used to
+        specify use of the locale-specific decimal point.  This resulted in
+        wrong answers if FM format was also used.
        
       
 
       
        
-        Allow 
-        linkend="functions-formatting-table">to_char()
-        to properly handle D (locale-specific decimal point) and
-        FM (fill mode) specifications in locales where a
-        period is a group separator and not a decimal point (Tom Lane)
+        Fix STRICT non-set-returning functions that have
+        set-returning functions in their arguments to properly return null
+        rows (Tom Lane)
        
 
        
-        Previously, a period group separator would be misinterpreted as
-        a decimal point in such locales.
+        A null value passed to the strict function should result in a null
+        output, but instead, that output row was suppressed entirely.
        
       
 
       
        
-        Fix STRICT non-set-returning functions that take
-        set-returning functions as arguments to properly return null
-        rows (Tom Lane)
+        Store WAL in a continuous
+        stream, rather than skipping the last 16MB segment every 4GB
+        (Heikki Linnakangas)
        
 
        
-        Previously, rows with null values were suppressed.
+        Previously, WAL files with names ending in FF
+        were not used because of this skipping.  If you have WAL
+        backup or restore scripts that took this behavior into account, they
+        will need to be adjusted.
+       
+      
+
+      
+       
+        In 
+        linkend="catalog-pg-constraint">pg_constraint.confmatchtype,
+        store the default foreign key match type (non-FULL,
+        non-PARTIAL) as s for simple
+        (Tom Lane)
+       
+
+       
+        Previously this case was represented by u
+        for unspecified.
        
       
 
 
       
        
-        Prevent non-key-field row updates from locking foreign key rows
+        Prevent non-key-field row updates from blocking foreign key checks
         (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
-        Shulgin, Marti Raudsepp)
+        Shulgin, Marti Raudsepp, Alexander Shulgin)
        
 
        
-        This improves concurrency and reduces the probability of deadlocks.
-        UPDATEs on non-key columns use the new SELECT
-        FOR NO KEY UPDATE lock type, and foreign key checks use the
-        new SELECT FOR KEY SHARE lock mode.
+        This change improves concurrency and reduces the probability of
+        deadlocks when updating tables involved in a foreign-key constraint.
+        UPDATEs that do not change any columns referenced in a
+        foreign key now take the new NO KEY UPDATE lock mode on
+        the row, while foreign key checks use the new KEY SHARE
+        lock mode, which does not conflict with NO KEY UPDATE.
+        So there is no blocking unless a foreign-key column is changed.
        
       
 
       
        
         Add configuration variable 
-        linkend="guc-lock-timeout">lock_timeout to limit
-        lock wait duration (Zoltán Böszörményi)
-       
-      
-
-      
-       
-        Add cache of local locks (Jeff Janes)
-       
-
-       
-        This speeds lock release at statement completion in
-        transactions that hold many locks; it is particularly useful
-        for pg_dump and the restoration of such dumps.
+        linkend="guc-lock-timeout">lock_timeout to
+        allow limiting how long a session will wait to acquire any one lock
+        (Zoltán Böszörményi)
        
       
 
 
       
        
-        Add <type>SP-GiST
+        Add <acronym>SP-GiST
         support for range data types (Alexander Korotkov)
        
       
 
       
        
-        Allow unlogged GiST indexes
-        (Jeevan Chalke)
+        Allow GiST indexes to be
+        unlogged (Jeevan Chalke)
+       
+      
+
+      
+       
+        Improve performance of GiST index insertion by randomizing
+        the choice of which page to descend to when there are multiple equally
+        good alternatives (Heikki Linnakangas)
        
       
 
       
        
-        Improve concurrency of hash indexes (Robert Haas)
+        Improve concurrency of hash index operations (Robert Haas)
        
       
 
 
       
        
-        Collect and use histograms for range
-        types (Alexander Korotkov)
+        Collect and use histograms of upper and lower bounds, as well as range
+        lengths, for range types
+        (Alexander Korotkov)
+       
+      
+
+      
+       
+        Improve optimizer's cost estimation for index access (Tom Lane)
        
       
 
       
        
-        Reduce optimizer overhead by discarding plans with unneeded cheaper
-        startup costs (Tom Lane)
+        Improve optimizer's hash table size estimate for
+        doing DISTINCT via hash aggregation (Tom Lane)
        
       
 
       
        
-        Improve optimizer cost estimation for index access (Tom Lane)
+        Suppress no-op Result and Limit plan nodes
+        (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
+       
+      
+
+      
+       
+        Reduce optimizer overhead by not keeping plans on the basis of cheap
+        startup cost when the optimizer only cares about total cost overall
+        (Tom Lane)
        
       
 
       
        
         Add COPY FREEZE
-        option to avoid the overhead of marking tuples as committed later
+        option to avoid the overhead of marking tuples as frozen later
         (Simon Riggs, Jeff Davis)
        
       
 
       
        
-        Improve grouping of sessions waiting for 
+        Improve synchronization of sessions waiting for 
         linkend="guc-commit-delay">commit_delay
         (Peter Geoghegan)
        
 
        
-        This improves the usefulness and behavior of
-        commit_delay.
+        This greatly improves the usefulness of commit_delay.
        
       
 
       
        
-        Improve performance for transactions creating, rebuilding, or
-        dropping many relations (Jeff Janes, Tomas Vondra)
+        Improve performance of the 
+        linkend="SQL-CREATETABLE">CREATE TEMPORARY TABLE ... ON
+        COMMIT DELETE ROWS option by not truncating such temporary
+        tables in transactions that haven't touched any temporary tables
+        (Heikki Linnakangas)
        
       
 
       
        
-        Improve performance of the 
-        linkend="SQL-CREATETABLE">CREATE TEMPORARY TABLE ... ON
-        COMMIT DELETE ROWS clause by only issuing delete if
-        the temporary table was accessed (Heikki Linnakangas)
+        Make vacuum recheck visibility after it has removed expired tuples
+        (Pavan Deolasee)
+       
+
+       
+        This increases the chance of a page being marked as all-visible.
        
       
 
       
        
-        Have vacuum recheck visibility after it has removed expired tuples
-        (Pavan Deolasee)
+        Add per-resource-owner lock caches (Jeff Janes)
        
 
        
-        This increases the chance of a page being marked as all-visible.
+        This speeds up lock bookkeeping at statement completion in
+        multi-statement transactions that hold many locks; it is particularly
+        useful for pg_dump.
        
       
 
       
        
-        Split the 
-        linkend="guc-stats-temp-directory">pg_stat_tmp
-        statistics file into per-database and global files (Tomas Vondra)
+        Avoid scanning the entire relation cache at commit of a transaction
+        that creates a new relation (Jeff Janes)
+       
+
+       
+        This speeds up sessions that create many tables in successive
+        small transactions, such as a pg_restore run.
        
+      
 
+      
        
-        This reduces the I/O overhead for statistics tracking.
+        Improve performance of transactions that drop many relations
+        (Tomas Vondra)
        
       
 
 
       
        
-        Allow 
-        linkend="functions-admin-signal-table">pg_terminate_backend()
-        to terminate other backends with the same role (Dan Farina)
+        Split the statistics collector's
+        data file into separate global and per-database files (Tomas Vondra)
+       
+
+       
+        This reduces the I/O required for statistics tracking.
+       
+      
+
+      
+       
+        Fix the statistics collector to operate properly in cases where the
+        system clock goes backwards (Tom Lane)
        
 
        
-        Previously, only superusers could terminate other sessions.
+        Previously, statistics collection would stop until the time again
+        reached the latest time previously recorded.
        
       
 
       
        
-        Allow the 
-        linkend="runtime-config-statistics-collector">statistics
-        collector to operate properly in cases where the system
-        clock goes backwards (Tom Lane)
+        Emit an informative message to postmaster standard error when we
+        are about to stop logging there
+        (Tom Lane)
        
 
        
-        Previously statistics collection would stop until the time again
-        reached the previously-stored latest time.
+        This should help reduce user confusion about where to look for log
+        output in common configurations that log to standard error only during
+        postmaster startup.
        
       
 
 
      
 
+      
+       
+        When an authentication failure occurs, log the relevant
+        pg_hba.conf
+        line, to ease debugging of unintended failures
+        (Magnus Hagander)
+       
+      
+
       
        
         Improve LDAP error
 
       
        
-        Add support for LDAP authentication to be specified
-        in URL format (Peter Eisentraut)
+        Add support for specifying LDAP authentication parameters
+        in URL format, per RFC 4516 (Peter Eisentraut)
        
       
 
        
 
        
-        It is assumed DEFAULT is more appropriate cipher set.
+        This should yield a more appropriate SSL cipher set.
        
       
 
        
 
        
-        This is similar to how 
-        linkend="auth-pg-hba-conf">pg_hba.conf
-        is processed.
+        This is similar to how pg_hba.conf is processed.
        
       
 
 
       
        
-        Dramatically reduce System V shared
+        Greatly reduce System V shared
         memory requirements (Robert Haas)
        
 
        
-        Instead, on Unix-like systems, mmap() is used for
-        shared memory.  For most users, this will eliminate the need to
-        adjust kernel parameters for shared memory.
+        On Unix-like systems, mmap() is now used for most
+        of PostgreSQL's shared memory.  For most users, this
+        will eliminate any need to adjust kernel parameters for shared memory.
        
       
 
       
        
         Remove the external
-        PID file on postmaster exit (Peter Eisentraut)
+        PID file, if any, on postmaster exit
+        (Peter Eisentraut)
        
       
 
        
 
        
-        This allows streaming standbys to feed from newly-promoted slaves.
-        Previously slaves required access to a WAL archive directory to
-        accomplish this.
+        This allows streaming standby servers to receive WAL data from a slave
+        newly promoted to master status.  Previously, other standbys would
+        require a resync to begin following the new master.
        
       
 
        
 
        
-        This information is useful for determining the WAL
-        files needed for restore.
+        This information is useful for determining which WAL
+        files are needed for restore.
        
       
 
 
       
        
-        Hav
+        Mak
         linkend="app-pgbasebackup">pg_basebackup
         
-        minimal recovery.conf (Zoltán
+        minimal recovery.conf file (Zoltán
         Böszörményi, Magnus Hagander)
        
 
        
         Add 
         linkend="guc-wal-receiver-timeout">wal_receiver_timeout
-        parameter to control the WAL receiver timeout
+        parameter to control the WAL receiver's timeout
         (Amit Kapila)
        
 
        
       
 
-     
-
-    
-     <link linkend="wal">Write-Ahead Log</link></div> <div class="diff rem">-     (<acronym>WAL</>)
-
-     
-
       
        
-        Change the <acronym>WAL record format to allow splitting the record header
-        across pages (Heikki Linnakangas)
+        Change the <link linkend="wal">WAL record format to
+        allow splitting the record header across pages (Heikki Linnakangas)
        
 
        
 
      
 
-    
-
    
 
    
         Add support for piping 
         linkend="SQL-COPY">COPY and 
         linkend="APP-PSQL">psql \copy
-        to/from an external program (Etsuro Fujita)
+        data to/from an external program (Etsuro Fujita)
+       
+      
+
+      
+       
+        Allow a multirow 
+        linkend="SQL-VALUES">VALUES clause in a rule
+        to reference OLD/NEW (Tom Lane)
        
       
 
 
        
         This allows server-side functions written in event-enabled
-        languages, e.g. C, PL/pgSQL, to be called when DDL commands
-        are run.
+        languages to be called when DDL commands are run.
        
       
 
        
       
 
-      
-       
-        Allow a multirow 
-        linkend="SQL-VALUES">VALUES clause in a rule
-        to reference OLD/NEW (Tom Lane)
-       
-      
-
       
        
         Add CREATE SCHEMA ... IF
 
       
        
-        HavREASSIGN
+        MakREASSIGN
         OWNED also change ownership of shared objects
         (Álvaro Herrera)
        
       
 
-     
-
-    
-     <link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link>
-
-     
+      
+       
+        Make CREATE
+        AGGREGATE complain if the given initial value string is not
+        valid input for the transition datatype (Tom Lane)
+       
+      
 
       
        
-        Suppress messages about implicit index and sequence creation
+        Suppress CREATE
+        TABLE's messages about implicit index and sequence creation
         (Robert Haas)
        
 
        
       
 
-     
-
-    
-
-    
-     Constraints
-
-     
-
       
        
         Provide clients with 
        
 
        
-        This allows clients to retrieve table, column, data type, or constraint
-        name error details.  Previously such information had to be extracted from
-        error strings.  Client library support is required to access these
-        fields.
+        This allows clients to retrieve table, column, data type, or
+        constraint name error details.  Previously such information had to be
+        extracted from error strings.  Client library support is required to
+        access these fields.
        
       
 
      
 
-    
-
     
      <command>ALTER</>
 
       
        
         Add ALTER ROLE ALL
-        SET to add settings to all users (Peter Eisentraut)
+        SET to establish settings for all users (Peter Eisentraut)
        
 
        
 
       
        
-        Improve view/rule printing code to handle cases where referenced
-        tables are renamed, or columns are renamed, added, or dropped
-        (Tom Lane)
+        Add CREATE RECURSIVE
+        VIEW syntax (Peter Eisentraut)
        
 
        
-        Table and column renamings can produce cases where, if we merely
-        substitute the new name into the original text of a rule or view, the
-        result is ambiguous.  This patch fixes the rule-dumping code to insert
-        table and column aliases if needed to preserve the original semantics.
+        Internally this is translated into CREATE VIEW ... WITH
+        RECURSIVE ....
        
       
 
       
        
-        Add CREATE RECURSIVE
-        VIEW syntax (Peter Eisentraut)
+        Improve view/rule printing code to handle cases where referenced
+        tables are renamed, or columns are renamed, added, or dropped
+        (Tom Lane)
        
 
        
-        Internally this is translated into CREATE VIEW ... WITH
-        RECURSIVE ....
+        Table and column renamings can produce cases where, if we merely
+        substitute the new name into the original text of a rule or view, the
+        result is ambiguous.  This change fixes the rule-dumping code to insert
+        manufactured table and column aliases when needed to preserve the
+        original semantics.
        
       
 
 
       
        
-        Increase the maximum length of ">large
+        Increase the maximum size of ">large
         objects from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
        
 
        
-        This change includes new libpq and server-side 64-bit-capable
-        large object access functions.
+        This change includes adding 64-bit-capable large object access
+        functions, both in the server and in libpq.
        
       
 
       
        
         Allow text timezone
-        designations, e.g. America/Chicago when using
-        the ISO timestamptz format (Bruce Momjian)
+        designations, e.g. America/Chicago, in the
+        T field of ISO-format timestamptz
+        input (Bruce Momjian)
        
       
 
       
        
         Add operators and functions
-        to extract values from JSON data strings (Andrew Dunstan)
+        to extract elements from JSON values (Andrew Dunstan)
        
       
 
       
        
-        Allow JSON data strings to be 
+        Allow JSON values to be 
         linkend="functions-json-table">converted into records
         (Andrew Dunstan)
        
 
       
        
-        Add functions
-        to convert values, records, and hstore data to JSON
-        (Andrew Dunstan)
+        Add functions to convert
+        scalars, records, and hstore values to JSON (Andrew
+        Dunstan)
        
       
 
        
         Improve 
         linkend="functions-string-format">format()
-        to handle field width and left/right alignment (Pavel Stehule)
+        to provide field width and left/right alignment options (Pavel Stehule)
        
       
 
       
        
-        Hav
+        Mak
         linkend="functions-formatting-table">to_char(),
         
         linkend="functions-formatting-table">to_date(),
         and 
         linkend="functions-formatting-table">to_timestamp()
-        properly handle negative century designations (CC)
+        handle negative (BC) century values properly
         (Bruce Momjian)
        
 
        
         Previously the behavior was either wrong or inconsistent
-        with positive/AD handling, e.g. format mask
+        with positive/AD handling, e.g. with the format mask
         IYYY-IW-DY.
        
       
 
       
        
-        Hav
+        Mak
         linkend="functions-formatting-table">to_date()
         and 
         linkend="functions-formatting-table">to_timestamp()
        
         Cause 
         linkend="functions-info-catalog-table">pg_get_viewdef()
-        to start a new line by default after each 
-        linkend="SQL-SELECT">SELECT target list entry and
-        FROM entry (Marko Tiikkaja)
+        to start a new line by default after each SELECT target
+        list entry and FROM entry (Marko Tiikkaja)
        
 
        
        
       
 
-      
-       
-        Force cached plans to be replanned if the 
-        linkend="guc-search-path">search_path changes
-        (Tom Lane)
-       
-
-       
-        Previously cached plans already generated in the current session
-        ignored search_path changes.
-       
-      
-
      
 
    
    
     Server-Side Languages
 
-     
-
-      
-       
-        Allow SPI
-        functions to access the number of rows processed by
-        COPY (Pavel Stehule)
-       
-      
-
-     
-
     
      <link linkend="plpgsql">PL/pgSQL</link> Server-Side Language
 
        
 
        
-        The command is 
+        A COPY executed in a PL/pgSQL function now updates the
+        value retrieved by 
         linkend="plpgsql-statements-diagnostics">GET DIAGNOSTICS
         x = ROW_COUNT.
        
 
       
        
-        Allow greater flexibility in where keywords can be used in PL/pgSQL (Tom Lane)
+        Allow unreserved keywords to be used as identifiers everywhere in
+        PL/pgSQL (Tom Lane)
+       
+
+       
+        In certain places in the PL/pgSQL grammar, keywords had to be quoted
+        to be used as identifiers, even if they were nominally unreserved.
        
       
 
 
    
 
+   
+    Server Programming Interface (<link linkend="spi">SPI</link>)
+
+     
+
+      
+       
+        Prevent leakage of SPI tuple tables during subtransaction
+        abort (Tom Lane)
+       
+
+       
+        At the end of any failed subtransaction, the core SPI code now
+        releases any SPI tuple tables that were created during that
+        subtransaction.  This avoids the need for SPI-using code to keep track
+        of such tuple tables and release them manually in error-recovery code.
+        Failure to do so caused a number of transaction-lifespan memory leakage
+        issues in PL/pgSQL and perhaps other SPI clients.  
+        linkend="spi-spi-freetupletable">SPI_freetuptable()
+        now protects itself against multiple freeing requests, so any existing
+        code that did take care to clean up shouldn't be broken by this change.
+       
+      
+
+      
+       
+        Allow SPI functions to access the number of rows processed
+        by COPY (Pavel Stehule)
+       
+      
+
+     
+
+   
+
    
     Client Applications
 
        
 
        
-        This is similar to the 
-        linkend="APP-PGDUMP">pg_dump 
-        option.
+        This is similar to the way 
+        linkend="APP-PGDUMP">pg_dump's
+        .
        
       
 
         linkend="app-pgbasebackup">pg_basebackup, and
         
         linkend="app-pgreceivexlog">pg_receivexlog
-        to specify the connection string (Amit Kapila)
+        to allow specifying a connection string (Amit Kapila)
        
       
 
       
        
         Adjust function cost settings so psql tab
-        completion and pattern searching is more efficient (Tom Lane)
+        completion and pattern searching are more efficient (Tom Lane)
        
       
 
       
        
-        Improve psql tab completion coverage (Jeff Janes,
-        Peter Eisentraut)
+        Improve psql's tab completion coverage (Jeff Janes,
+        Dean Rasheed, Peter Eisentraut, Magnus Hagander)
        
       
 
        
 
        
-        The warning when connecting to a newer server was retained.
+        A warning is still issued when connecting to a server of a newer major
+        version than psql's.
        
       
 
      
 
     
-     <link linkend="<span class="marked">R2-APP-PSQL-4</span>">Backslash Commands</link>
+     <link linkend="<span class="marked">APP-PSQL-meta-commands</span>">Backslash Commands</link>
 
      
 
       
        
-        Add psql \watch command to repeatedly
-        execute commands (Will Leinweber)
+        Add psql command \watch to repeatedly
+        execute a SQL command (Will Leinweber)
        
       
 
 
       
        
-        Add Security label to psql \df+
-        output (Jon Erdman)
+        Add Security column to psql's
+        \df+ output (Jon Erdman)
        
       
 
       
        
-        Allow psql \l to accept a database
+        Allow psql command \l to accept a database
         name pattern (Peter Eisentraut)
        
       
 
       
        
-        Properly reset state if the SQL command executed with
-        psql's \g file fails (Tom Lane)
+        Properly reset state after failure of a SQL command executed with
+        psql's \g file
+        (Tom Lane)
        
 
        
 
       
        
-        In psql tuples-only and expanded modes, no longer
-        output (No rows) (Peter Eisentraut)
+        In psql's tuples-only and expanded output modes, no
+        longer emit (No rows) for zero rows (Peter Eisentraut)
        
       
 
       
        
-        In psql, no longer print an empty line for
-        unaligned, expanded output for zero rows (Peter Eisentraut)
+        In psql's unaligned, expanded output mode, no longer
+        print an empty line for zero rows (Peter Eisentraut)
        
       
 
 
       
        
-        Havpg_dump output functions in a more predictable
+        Makpg_dump output functions in a more predictable
         order (Joel Jacobson)
        
       
 
       
        
-        Fix tar files emitted by pg_dump and 
-        linkend="app-pgbasebackup">pg_basebackup
+        Fix tar files emitted by pg_dump
         to be POSIX conformant (Brian Weaver, Tom Lane)
        
       
 
       
        
-        Have initdb fsync the newly created data directory (Jeff Davis)
+        Make initdb fsync the newly created data directory (Jeff Davis)
        
 
        
-        This can be disabled by using 
+        This insures data integrity in event of a system crash shortly after
+        initdb.  This can be disabled by using 
        
       
 
 
       
        
-        Have initdb issue a warning about placing the data directory at the
+        Make initdb issue a warning about placing the data directory at the
         top of a file system mount point (Bruce Momjian)
        
       
 
       
        
-        Add an embedded list interface (Andres Freund)
-       
-      
-
-      
-       
-        Add infrastructure to better support plug-in 
+        Add infrastructure to allow plug-in 
         linkend="bgworker">background worker processes
         (Álvaro Herrera)
        
        
 
        
-        This allows libpgport to be used solely for porting code.
+        This allows libpgport to be used solely for portability-related code.
+       
+      
+
+      
+       
+        Add support for list links embedded in larger structs (Andres Freund)
+       
+      
+
+      
+       
+        Use SA_RESTART for all signals,
+        including SIGALRM (Tom Lane)
        
       
 
       
        
-        Standardize on naming of client-side memory allocation functions (Tom Lane)
+        Ensure that the correct text domain is used when
+        translating errcontext() messages
+        (Heikki Linnakangas)
        
       
 
       
        
-        Add compiler designations to indicate some ereport()
+        Standardize naming of client-side memory allocation functions (Tom Lane)
+       
+      
+
+      
+       
+        Provide support for static assertions that will fail at
+        compile time if some compile-time-constant condition is not met
+        (Andres Freund, Tom Lane)
+       
+      
+
+      
+       
+        Support Assert() in client-side code (Andrew Dunstan)
+       
+      
+
+      
+       
+        Add decoration to inform the C compiler that some ereport()
         and elog() calls do not return (Peter Eisentraut,
         Andres Freund, Tom Lane, Heikki Linnakangas)
        
       
        
         Remove configure flag
-        
-        Momjian)
+        
+        (Bruce Momjian)
        
       
 
 
       
        
-        Add Emacs macro to match PostgreSQL perltidy
-        formatting (Peter Eisentraut)
+        Provide Emacs macro to set Perl formatting to
+        match PostgreSQL's perltidy settings (Peter Eisentraut)
        
       
 
       
        
-        Run tool to check the keyword list when the backend grammar is
+        Run tool to check the keyword list whenever the backend grammar is
         changed (Tom Lane)
        
       
 
       
        
-        Centralize flex and bison
-        make rules (Peter Eisentraut)
+        Change the way UESCAPE is lexed, to significantly reduce
+        the size of the lexer tables (Heikki Linnakangas)
        
+      
 
+      
        
-        This is useful for pgxs authors.
+        Centralize flex and bison
+        make rules (Peter Eisentraut)
        
-      
 
-      
        
-        Support Assert() in client-side code (Andrew Dunstan)
+        This is useful for pgxs authors.
        
       
 
       
        
-        Change many internal backend functions to return OIDs
+        Change many internal backend functions to return object OIDs
         rather than void (Dimitri Fontaine)
        
 
        
         Add function 
         linkend="functions-info-catalog-table">pg_identify_object()
-        to dump an object in machine-readable format (Álvaro
-        Herrera)
+        to produce a machine-readable description of a database object
+        (Álvaro Herrera)
        
       
 
 
       
        
-        Improve ability to detect official timezone abbreviation changes
+        Provide a tool to help detect timezone abbreviation changes when
+        updating the src/timezone/data files
         (Tom Lane)
        
       
 
       
        
-        Add pkg-config support libpq
+        Add pkg-config support for libpq
         and ecpg libraries (Peter Eisentraut)
        
       
 
       
        
-        Add a Postgres foreign
-        data wrapper contrib module (Shigeru Hanada)
+        Add a Postgres foreign
+        data wrapper contrib module to allow access to
+        other Postgres servers (Shigeru Hanada)
        
 
        
 
       
        
-        Improve pg_trgm
+        Improve pg_trgm's
         handling of multibyte characters (Tom Lane)
        
+
+       
+        On a platform that does not have the wcstombs() or towlower() library
+        functions, this could result in an incompatible change in the contents
+        of pg_trgm indexes for non-ASCII data.  In such cases,
+        REINDEX those indexes to ensure correct search results.
+       
       
 
       
        
-        Add pgstattuple function to report the
-        size of the GIN pending index insertion list (Fujii Masao)
+        Add a pgstattuple function to report
+        the size of the pending-insertions list of a GIN index
+        (Fujii Masao)
        
       
 
       
        
-        Havoid2name,
+        Makoid2name,
         pgbench, and
         vacuumlo set
         fallback_application_name (Amit Kapila)
 
       
        
-        Improve dblink option validator
-        (Tom Lane)
+        Create a dedicated foreign data wrapper, with its own option validator
+        function, for dblink (Shigeru Hanada)
        
 
        
-        Details?
+        When using this FDW to define the target of a dblink
+        connection, instead of using a hard-wired list of connection options,
+        the underlying libpq library is consulted to see what
+        connection options it supports.
        
       
 
 
       
        
-        Allow pg_upgrade 
-        parallelism (Bruce Momjian, Andrew Dunstan)
+        Allow pg_upgrade to do dumps and restores in
+        parallel (Bruce Momjian, Andrew Dunstan)
        
 
        
         This allows parallel schema dump/restore of databases, as well as
-        parallel copy/link of data files per tablespace.
+        parallel copy/link of data files per tablespace.  Use the
+        
        
       
 
       
        
-        Havpg_upgrade create Unix-domain sockets in
+        Makpg_upgrade create Unix-domain sockets in
         the current directory (Bruce Momjian, Tom Lane)
        
 
 
       
        
-        Havpg_upgrade 
+        Makpg_upgrade 
         detect the location of non-default socket directories (Bruce
         Momjian, Tom Lane)
        
 
       
        
-        Increase pg_upgrade logging content by showing
-        executed command (Álvaro Herrera)
+        Improve pg_upgrade's logs by showing
+        executed commands (Álvaro Herrera)
        
       
 
 
       
        
-        Allow pgbench to use a larger scale factor
+        Allow pgbench to use much larger scale factors,
+        by changing relevant columns from integer to bigint
+        when the requested scale factor exceeds 20000
         (Greg Smith)
        
       
       
        
         Improve WINDOW
-        function documentation (Bruce Momjian, Tom Lane)
+        function documentation (Bruce Momjian, Florian Pflug)
        
       
 
       
        
-        Add instructions for setting
+        Add -toolsets">instructions for setting
         up the documentation tool chain on Mac OS X
         (Peter Eisentraut)