Doc: desultory copy-editing for v10 release notes.
authorTom Lane
Mon, 10 Jul 2017 00:11:21 +0000 (20:11 -0400)
committerTom Lane
Mon, 10 Jul 2017 00:11:21 +0000 (20:11 -0400)
Improve many item descriptions, improve markup, relocate some items
that seemed to be in the wrong section.

doc/src/sgml/release-10.sgml

index 2b64d525aee3ff3c9d52c925d8f3db13c9c9dd21..debaa800993dfab861c7681f69f64b747965ee3d 100644 (file)
 2017-05-19 [a95410e2e] pg_upgrade: Handle hash index upgrades more smoothly.
 -->
      
-      pg_upgrade-ed hash indexes from previous major
-      PostgreSQL versions must be rebuilt.
+      Hash indexes must be rebuilt after pg_upgrade-ing
+      from any previous major PostgreSQL version (Mithun
+      Cy, Robert Haas)
      
 
      
-      Major hash storage improvements necessitated this requirement.
-     
-    
-
-    
-
-     
-      Change the default log
-      directory from pg_log to log (Andreas
-      Karlsson)
+      Major hash index improvements necessitated this requirement.
+      pg_upgrade will create a script to assist with this.
      
     
 
     
 
      
-      Rename pg_xlog to 
-      linkend="wal">pg_wal (Michael Paquier)
+      Rename write-ahead log directory pg_xlog
+      to pg_wal, and rename transaction
+      status directory pg_clog to pg_xact
+      (Michael Paquier)
      
 
      
-      This prevents the write-ahead log directory from being confused as
-      containing server activity logs, and erroneously truncated.
+      Users have occasionally thought that these directories contained only
+      inessential log files, and proceeded to remove write-ahead log files
+      or transaction status files manually, causing irrecoverable data
+      loss.  These name changes are intended to discourage such errors in
+      future.
      
     
 
       For example, pg_switch_xlog() becomes
       pg_switch_wal(), pg_receivexlog
       becomes pg_receivewal, and 
-      becomes 
-      prior-version scripts.
-     
-    
-
-    
-
-     
-      Rename transaction status directory pg_clog directory
-      to pg_xact (Michael Paquier)
+      becomes 
+      change of the pg_xlog directory name; in general,
+      the xlog terminology is no longer used in any user-facing
+      places.
      
     
 
       Rename WAL-related functions and views to use lsn
       instead of location (David Rowley)
      
+
+     
+      There was previously an inconsistent mixture of the two terminologies.
+     
     
 
     
 2017-01-04 [9a4d51077] Make wal streaming the default mode for pg_basebackup
 -->
      
-      Hav stream the
+      Mak stream the
       WAL needed to restore the backup by default (Magnus
       Hagander)
      
 
      
-      This changes the pg_basebackup
+      This changes pg_basebackup's
       
-      An option value none has been added to recreate the old
+      An option value none has been added to reproduce the old
       behavior.  The pg_basebackup option 
-      has been removed (use ).
+      has been removed (instead, use -X fetch).
      
     
 
 -->
      
       Change how logical replication
-      uses pg_hba.conf.
+      uses pg_hba.conf
+      (Peter Eisentraut)
      
 
      
       of this release, logical replication matches a normal entry with a
       database name or keywords such as all.  Physical
       replication continues to use the replication keyword.
-      Since built-in logical replication is new in this release as well, this
+      Since built-in logical replication is new in this release, this
       change only affects users of third-party logical replication plugins.
      
     
     
 
     
-     The server-side variable 
+     The  server parameter
      no longer supports off or plain.
-     The UNENCRYPTED option is no longer supported for
+     The UNENCRYPTED option is no longer supported in
      CREATE/ALTER USER ... PASSSWORD.  Similarly, the
-     
-     The default for 
-     md5, and users migrating passwords from older systems
-     will have them stored encrypted by default in this release.
+     
+     from createuser.  Unencrypted passwords migrated from
+     older versions will be stored encrypted in this release.  The default
+     setting for password_encryption is still
+     md5.
     
     
 
     
 
     
-     This makes a backwards-incompatible change to the handling of
-     composite types in arrays. Previously, you could return an array of
-     composite types as "[[col1, col2], [col1, col2]]", but now that is
-     interpreted as a two- dimensional array. Composite types in arrays
-     must now be returned as Python tuples, not lists, to resolve the
-     ambiguity. I.e. "[(col1, col2), (col1, col2)]".  See the documentation
-     for more details. CLARIFY
+     This feature requires a backwards-incompatible change to the handling
+     of arrays of composite types in PL/Python.  Previously, you could
+     return an array of composite values by writing, e.g., [[col1,
+     col2], [col1, col2]]; but now that is interpreted as a
+     two-dimensional array.  Composite types in arrays must now be written
+     as Python tuples, not lists, to resolve the ambiguity; that is,
+     write [(col1, col2), (col1, col2)] instead.
     
     
 
 2017-02-27 [817f2a586] Remove PL/Tcl's "module" facility.
 -->
     
-     Remove PL/Tcl's "module" auto-loading facility (Tom Lane)
+     Remove PL/Tcl's module auto-loading facility (Tom Lane)
     
 
     
-     Replaced by new PL/Tcl startup GUCs.
+     This functionality has been replaced by new server
+     parameters 
+     and , which are easier to use
+     and more similar to features available in other PLs.
     
     
 
     
 
+     
+      Change the default value of the 
+      server parameter from pg_log to log
+      (Andreas Karlsson)
+     
+    
+
+    
+
     
-     Remove sql_inheritance GUC (Robert Haas)
+     Remove sql_inheritance server parameter (Robert Haas)
     
 
     
-     Changing this from the default value caused queries referencing
-     parent tables to not include children tables.  The SQL
+     Changing this setting from the default value caused queries referencing
+     parent tables to not include child tables.  The SQL
      standard requires such behavior and this has been the default since
-     PostgreSQL 7.1.
+     PostgreSQL 7.1.
     
     
 
 2017-02-15 [51ee6f316] Replace min_parallel_relation_size with two new GUCs.
 -->
     
-     Add <acronym>GUCs <xref linkend="guc-min-parallel-table-scan-size">
-     and  to control
-     parallel operation (Amit Kapila, Robert Haas)
+     Add 
+     and  server
+     parameters to control parallel queries (Amit Kapila, Robert Haas)
     
 
     
-     This replaces min_parallel_relation_size, which was
-     too generic.
+     These replace min_parallel_relation_size, which was
+     found to be too generic.
     
     
 
     
      Don't downcase unquoted text
      within  and related
-     settings (QL Zhuo)
+     server parameters (QL Zhuo)
     
 
     
     
 
      
-      Users needing dump support for pre-8.0 servers need to use dump
-      binaries from PostgreSQL 9.6.
+      Users needing to dump from pre-8.0 servers will need to use dump
+      programs from PostgreSQL 9.6 or earlier.  The
+      resulting output should still load successfully into newer servers.
      
     
 
 2017-02-23 [b6aa17e0a] De-support floating-point timestamps.
 -->
      
-      Remove support for floating-point datetimes/timestamps (Tom Lane)
+      Remove support for floating-point timestamps and intervals (Tom Lane)
      
 
      
       This removes configure's 
-      option.  Floating-point datetimes/timestamps have not been the
-      default since PostgreSQL 8.3 and have few advantages.
+      option.  Floating-point timestamps have not been the
+      default since PostgreSQL 8.3 and have few advantages.
      
     
 
      
 
      
-      This protocol hasn't had client support since PostgreSQL 6.3.
+      This protocol hasn't had client support
+      since PostgreSQL 6.3.
      
     
 
 2017-02-13 [7ada2d31f] Remove contrib/tsearch2.
 -->
      
-      Remove contrib/tsearch2 (Robert Haas)
+      Remove contrib/tsearch2 module (Robert Haas)
      
 
      
-      This removes compatibility with the contrib version of full text
-      search that shipped in pre-8.3 PostgreSQL versions.
+      This module provided compatibility with the version of full text
+      search that shipped in pre-8.3 PostgreSQL releases.
     
     
 
 2017-03-23 [50c956add] Remove createlang and droplang
 -->
      
-      Remove createlang and droplang command-line applications (Peter
-      Eisentraut)
+      Remove createlang and droplang
+      command-line applications (Peter Eisentraut)
+     
+
+     
+      These were deprecated since PostgreSQL 9.1.  Instead,
+      use CREATE EXTENSION and DROP EXTENSION
+      directly.
      
     
 
       Remove support for version-0 function calling conventions (Andres
       Freund)
      
-    
 
-    
-
      
-      Remove SCO and 
-      class="osname">Unixware ports (Tom Lane)
+      Extensions providing C-coded functions must now conform to version 1
+      calling conventions.  Version 0 has been deprecated since 2001.
      
     
 
 
    
     Below you will find a detailed account of the changes between
-   PostgreSQL 10 and the previous major
+    PostgreSQL 10 and the previous major
     release.
    
 
        
 
        
-        Allows B-tree index pages to be checked by separate parallel
-        workers.
+        This change allows B-tree index pages to be searched by separate
+        parallel workers.
        
       
 
 2016-12-05 [2b959d495] Reduce the default for max_worker_processes back to 8.
 -->
        
-        Add <acronym>GUC 
+        Add <xref linkend="guc-max-parallel-workers"> server parameter
         to limit the number of worker processes that can be used for
         query parallelism (Julien Rouhaud)
        
 
        
-        This can be set lower than 
+        This parameter can be set lower than 
         linkend="guc-max-worker-processes"> to reserve worker processes
         for purposes other than parallel queries.
        
 
        
         Specifically, a new CREATE
-        INDEX option allows auto-summarizion of the
+        INDEX option allows auto-summarization of the
         previous BRIN page range when a new page
         range is created.
        
        
 
        
-        New SQL function 
+        The new SQL function 
         linkend="functions-admin-index-table">brin_summarize_range()
         updates BRIN index summarization for a specified
         range and brin_desummarize_range() removes it.
         
 
         
-         This makes hash indexes crash-safe and replicated, and removes
-         the warning message about their use.
+         This makes hash indexes crash-safe and replicatable.
+         The former warning message about their use is removed.
         
        
 
 2017-02-07 [293e24e50] Cache hash index's metapage in rel->rd_amcache.
 -->
         
-         Improve hash bucket split performance by reducing locking
+         Improve hash index bucket split performance by reducing locking
          requirements (Amit Kapila, Mithun Cy)
         
 
 2017-03-15 [6977b8b7f] Port single-page btree vacuum logic to hash indexes.
 -->
         
-         Allow single-page hash pruning (Ashutosh Sharma)
+         Allow page-at-a-time hash index pruning (Ashutosh Sharma)
         
        
 
 
       
 
        
-        Only check for REFERENCES permission on referenced
-        tables (Tom Lane)
+        Reduce locking required for adding values to enum types (Andrew
+        Dunstan, Tom Lane)
        
 
        
-        Previously REFERENCES permission on the referencing
-        table was also required.
+        Previously it was impossible to run ALTER TYPE ... ADD
+        VALUE in a transaction block unless the enum type was created
+        in the same block.  Now, only references to uncommitted enum
+        values from other transactions are prohibited.
        
       
 
       
 
        
-        Reduce locking required for adding values to enum types (Andrew
-        Dunstan, Tom Lane)
+        Reduce locking required to change table parameters (Simon Riggs,
+        Fabrízio Mello)
        
 
        
-        Previously it was impossible to run ALTER TYPE ... ADD
-        VALUE in a transaction block unless the enum type was created
-        in the same block.  Now, only references to uncommitted enum
-        values from other transactions is prohibited.
+        For example, changing a table's 
+        linkend="guc-effective-io-concurrency"> setting can now be done
+        with a more lightweight lock.
        
       
 
        
 
        
-        The new settings are 
+        Lock promotion can now be controlled through two new server
+        parameters, 
         linkend="guc-max-pred-locks-per-relation"> and
         .
        
       
 
       
-       New commands are 
-       linkend="SQL-CREATESTATISTICS">CREATE,
-      ALTER, and
-      DROP STATISTICS.
-      This is helpful in
-       estimating query memory usage and when combining the statistics
-       from individual columns.
-      
-      
-
-      
-
-      
-       Improve planner matching of boolean indexes (Tom Lane)
+       New commands are 
+       linkend="SQL-CREATESTATISTICS">CREATE STATISTICS,
+       ALTER STATISTICS, and
+       DROP STATISTICS.
+       This feature is helpful in estimating query memory usage and when
+       combining the statistics from individual columns.
       
       
 
 2017-01-18 [215b43cdc] Improve RLS planning by marking individual quals with se
 -->
       
-       Improve performance of queries referencing row-level security
+       Improve performance of queries affected by row-level security
        restrictions (Tom Lane)
       
 
       
-       The optimizer now has more flexibility in reordering executor
-       behavior.
+       The optimizer now has more knowledge about where it can place RLS
+       filter conditions, allowing better plans to be generated while still
+       enforcing the RLS conditions safely.
       
       
 
 2016-09-02 [9cca11c91] Speed up SUM calculation in numeric aggregates.
 -->
        
-        Speed up SUM() calculations (Heikki Linnakangas)
-       
-
-       
-        This uses an optimized numeric accumulator.
+        Speed up aggregate functions that calculate a running sum
+        using numeric-type arithmetic, including some variants
+        of SUM(), AVG(),
+        and STDDEV() (Heikki Linnakangas)
        
       
 
 2017-03-13 [aeed17d00] Use radix tree for character encoding conversions.
 -->
        
-        Improve the performance of character encoding conversions by
+        Improve performance of character encoding conversions by
         using radix trees (Kyotaro Horiguchi, Heikki Linnakangas)
        
       
 2017-03-25 [b8d7f053c] Faster expression evaluation and targetlist projection.
 -->
        
-        Reduce the function call overhead during query execution (Andres
+        Reduce expression evaluation overhead during query execution (Andres
         Freund)
        
 
 2017-03-27 [b5635948a] Support hashed aggregation with grouping sets.
 -->
        
-        Improve the performance of grouping sets (Andrew Gierth)
+        Allow hashed aggregation to be used with grouping sets (Andrew
+        Gierth)
        
       
 
 2017-03-08 [f9b1a0dd4] Expose explain's SUMMARY option
 -->
        
-        Allow explicit control over 
-        linkend="SQL-EXPLAIN">EXPLAIN's display of planning and
-        execution time (Ashutosh Bapat)
+        Allow explicit control
+        over EXPLAIN's display
+        of planning and execution time (Ashutosh Bapat)
        
 
        
 2016-10-17 [7d3235ba4] By default, set log_line_prefix = '%m [%p] '.
 -->
         
-         Change  default to include
-         current timestamp with milliseconds and the process id (Christoph
-         Berg)
+         Change the default value of 
+         to include current timestamp (with milliseconds) and the process ID
+         in each line of postmaster log output (Christoph Berg)
         
 
         
-         The previous default was not to output a prefix.
+         The previous default was an empty prefix.
         
        
 
         
 
         
-         The new functions are 
-         linkend="functions-admin-genfile-table">pg_ls_logdir()
-         and
-        
-        linkend="functions-admin-genfile-table">pg_ls_waldir()
-        and can be
-         executed by non-super users with the proper permissions.
+         The new functions
+         are pg_ls_logdir()
+         and pg_ls_waldir()
+         and can be executed by non-superusers with the proper
+         permissions.
         
        
 
 2017-03-14 [2b32ac2a5] Include port number when logging successful binding to a
 -->
         
-         Report the address and port number of successful startup socket
-         binding in the server logs (Tom Lane)
+         Report the address and port number of each listening socket
+         in the server log during postmaster startup (Tom Lane)
         
 
         
-         Also, report bind socket failure details in the server logs.
+         Also, when logging failure to bind a listening socket, include
+         the specific address we attempted to bind to.
         
        
 
         
          Reduce message verbosity of lower-numbered debug levels
          controlled by
-         (Robert Haas)
+          (Robert Haas)
         
 
         
 
        
 
-        
-         Show auxiliary processes and background workers in
-         pg_stat_activity (Kuntal Ghosh)
-        
-
-        
-         New column backend_type identifies the process
-         type.
-        
-       
-
-       
-
         
-         Display walsender processes in pg_stat_activity
-         (Michael Paquier)
+         Show auxiliary processes, background workers, and walsender
+         processes in pg_stat_activity (Kuntal Ghosh,
+         Michael Paquier)
         
 
         
-         This simplifies monitoring.
+         This simplifies monitoring.  A new
+         column backend_type identifies the process type.
         
        
 
 2017-02-22 [4c728f382] Pass the source text for a parallel query to the workers
 -->
         
-         Allow pg_stat_activity to show the source query
+         Allow pg_stat_activity to show the SQL query
          being executed by parallel workers (Rafia Sabih)
         
        
          Rename
          pg_stat_activity.wait_event_type
          values LWLockTranche and
-        LWLockNamed to LWLock (Robert Haas)
+         LWLockNamed to LWLock (Robert Haas)
         
 
         
 2016-09-28 [babe05bc2] Turn password_encryption GUC into an enum.
 -->
        
-        Change GUC 
+        Change the  server parameter
         from boolean to enum (Michael Paquier)
        
 
 
        
         This allows SSL to be reconfigured without a server
-        restart by using pg_ctl reload, SELECT
+        restart, by using pg_ctl reload, SELECT
         pg_reload_conf(), or sending a SIGHUP signal.
-        Reload SSL configuration updates do not work if the
-        SSL key requires a passphrase.
-       
-      
-
-      
-
-       
-        Remove documented restriction about using large shared buffers on
-       Windows (Takayuki Tsunakawa)
-       
-      
-
-      
-
-       
-        Reduce locking required to change table parameters (Simon Riggs,
-        Fabrízio Mello)
-       
-
-       
-        For example, changing a table's 
-        linkend="guc-effective-io-concurrency"> setting can now be done
-        with a more lightweight lock.
+        However, reloading the SSL configuration does not work
+        if the server's SSL key requires a passphrase, as there
+        is no way to re-prompt for the passphrase.  The original
+        configuration will apply for the life of the postmaster in that
+        case.
        
       
 
 2016-12-22 [6ef2eba3f] Skip checkpoints, archiving on idle systems.
 -->
         
-         Prevent checkpoints and WAL archiving on
+         Prevent unnecessary checkpoints and WAL archiving on
          otherwise-idle systems (Michael Paquier)
         
        
 2017-03-14 [bb4a39637] hash: Support WAL consistency checking.
 -->
         
-         Add <acronym>GUC 
+         Add <xref linkend="guc-wal-consistency-checking"> server parameter
          to add details to WAL that can be sanity-checked on
          the standby (Kuntal Ghosh, Robert Haas)
         
       
 
       
-       This allows more fine-grained replication options, including
-       replication between different major versions of PostgreSQL and
-       selective-table replication.
+       Logical replication allows more flexibility than physical
+       replication does, including replication between different major
+       versions of PostgreSQL and selective-table
+       replication.
       
      
 
 2017-05-02 [34fc61673] Change hot_standby default value to 'on'
 -->
       
-       Reduce configuration necessary to perform streaming backup and
-       replication (Magnus Hagander, Dang Minh Huong)
+       Reduce configuration changes necessary to perform streaming backup
+       and replication (Magnus Hagander, Dang Minh Huong)
       
 
       
-       Specifically, defaults were changed for 
+       Specifically, the defaults were changed for 
        linkend="guc-wal-level">, ,
        , and 
-       linkend="guc-hot-standby">.
+       linkend="guc-hot-standby"> to make them suitable for these usages
+       out-of-the-box.
       
      
 
 2016-09-03 [35250b6ad] New recovery target recovery_target_lsn
 -->
       
-       Add specification of a Log Sequence Number (LSN)
-       stopping point in
-      recovery.conf
-      (Michael Paquier)
+       Allow specification of the recovery stopping point by Log Sequence
+       Number (LSN) in
+       recovery.conf
+       (Michael Paquier)
       
 
       
-       Previously only specification of the stop name, time, timeline,
-       xid, and immediate were supported.
+       Previously the stopping point could only be selected by timestamp or
+       XID.
       
      
 
 2016-11-22 [906bfcad7] Improve handling of "UPDATE ... SET (column_list) = row_
 -->
       
-       Allow ROW to supply values to UPDATE ... SET
-       (column_list) (Tom Lane)
+       Allow standard row constructor syntax in UPDATE ... SET
+       (column_list) = row_constructor
+       (Tom Lane)
       
 
       
-       Also allow row values to be supplied by table.*.
+       The row_constructor can now begin with the
+       keyword ROW; previously that had to be omitted.  Also,
+       an occurrence of table_name.*
+       within the row_constructor is now expanded into
+       multiple columns, as in other uses
+       of row_constructors.
       
      
 
 2016-09-05 [c54159d44] Make locale-dependent regex character classes work for l
 -->
       
-       Fix regular expression locale class handling for bytes greater
-       than U+7FF (Tom Lane)
+       Fix regular expressions' character class handling for large character
+       codes, particularly Unicode characters above U+7FF
+       (Tom Lane)
       
 
       
-       Previously such classes were not recognized.
+       Previously, such characters were never recognized as belonging to
+       locale-dependent character classes such as [[:alpha:]].
       
      
 
       
        Add table partitioning
        syntax that automatically creates partition constraints and
-       INSERT routing (Amit Langote)
+       handles routing of tuple insertions and updates (Amit Langote)
       
 
       
 -->
       
        Add AFTER trigger
-       transition table to record changed rows (Kevin Grittner)
+       transition tables to record changed rows (Kevin Grittner)
       
 
       
-       Transition table contents are accessible from server-side languages.
+       Transition tables are accessible from triggers written in
+       server-side languages.
       
      
 
       
      
 
+      
+
+       
+        When creating a foreign-key constraint, check
+        for REFERENCES permission on only the referenced table
+        (Tom Lane)
+       
+
+       
+        Previously REFERENCES permission on the referencing
+        table was also required.  This appears to have stemmed from a
+        misreading of the SQL standard.  Since creating a foreign key (or
+        any other type of) constraint requires ownership privilege on the
+        constrained table, additionally requiring REFERENCES
+        permission seems rather pointless.
+       
+      
+
      
 
       
-       Allow COPY view FROM on views with INSTEAD
+       Allow COPY view
+       FROM source on views with INSTEAD
        INSERT triggers (Haribabu Kommi)
       
 
       
-       The triggers are fed the rows from COPY.
+       The triggers are fed the data rows read by COPY.
       
      
 
 -->
       
        Allow the specification of a function name without arguments in
-       DDL commands, when unique (Peter Eisentraut)
+       DDL commands, if it is unique (Peter Eisentraut)
       
 
       
        For example, allow DROP
        FUNCTION on a function name without arguments if there
-       is only one function with that name.  This is required by the
+       is only one function with that name.  This behavior is required by the
        SQL standard.
       
      
 
      
 
-      
-       Add IF NOT EXISTS for 
-       linkend="SQL-CREATESERVER">CREATE SERVER and
-      CREATE USER
-      MAPPING (Anastasia
-       Lubennikova)
-      
-     
-
-     
-
       
-       Add IF NOT EXISTS clause to 
-       linkend="SQL-CREATECOLLATION">CREATE COLLATION
-       (Peter Eisentraut)
+       Support IF NOT EXISTS
+       in CREATE SERVER,
+       CREATE USER MAPPING,
+       and CREATE COLLATION
+       (Anastasia Lubennikova, Peter Eisentraut)
       
      
 
 2017-03-03 [9eb344faf] Allow vacuums to report oldestxmin
 -->
       
-       HavVACUUM VERBOSE report
+       MakVACUUM VERBOSE report
        the number of skipped frozen pages and oldest xmin (Masahiko
        Sawada, Simon Riggs)
       
        Improve speed of VACUUM's removal of trailing empty
        heap pages (Claudio Freire, Álvaro Herrera)
       
-
-      
-       This information is also included in 
-       linkend="guc-log-autovacuum-min-duration"> output.
-      
      
 
     
        
 
        
-        This is accessed via ts_headline() and
-        to_tsvector().
+        The functions ts_headline() and
+        to_tsvector() can now be used on these data types.
        
       
 
 2017-03-15 [c7a9fa399] Add support for EUI-64 MAC addresses as macaddr8
 -->
       
-       Add support for EUI-64 MAC addresses as
-       MACADDR8 (Haribabu
-       Kommi)
+       Add support for EUI-64 MAC addresses, as a
+       new data type macaddr8
+       (Haribabu Kommi)
       
 
       
-       This complements support for EUI-48 MAC
-       addresses as macaddr.
+       This complements the existing support
+       for EUI-48 MAC addresses
+       as macaddr.
       
      
 
       
 
       
-       Previously "anyarray" values were converted to JSON
-       strings.
+       Previously columns declared as anyarray (particularly those
+       in the pg_stats view) were converted to JSON
+       strings rather than arrays.
       
      
 
 2016-09-14 [656df624c] Add overflow checks to money type input function
 -->
       
-       More strictly check the money type for overflow operations
+       Check for overflow in the money type's input function
        (Peter Eisentraut)
       
      
       
 
       
-       Similar to regexp_matches(), but only returns results
-       from the first match so it is easier use for simple cases.
+       This is similar to regexp_matches(), but it only
+       returns results from the first match so it does not need to return a
+       set, making it easier to use for simple cases.
       
      
 
 2017-01-18 [d00ca333c] Implement array version of jsonb_delete and operator
 -->
       
-       Add version of jsonb's 
+       Add a version of jsonb's 
        linkend="functions-jsonb-op-table">delete operator that takes
        an array of keys to delete (Magnus Hagander)
       
-
-      
-       The JSONB delete operator also now supports arrays.
-      
      
 
      
 2017-04-06 [cf35346e8] Make json_populate_record and friends operate recursivel
 -->
       
-       Improve 
-       linkend="functions-json-processing-table">json_populate_record()
-       and friends operate recursively (Nikita Glukhov)
+       Make json_populate_record()
+       and related functions process JSON arrays and objects recursively
+       (Nikita Glukhov)
       
 
       
-       CLARIFY
+       With this change, array-type fields in the destination SQL type are
+       properly converted from JSON arrays, and composite-type fields are
+       properly converted from JSON objects.  Previously, such cases would
+       fail because the text representation of the JSON value would be fed
+       to array_in() or record_in(), and its
+       syntax would not match what those input functions expect.
       
      
 
       
        Add function 
        linkend="functions-txid-snapshot">txid_current_ifassigned()
-       to return NULL if no transaction id has been assigned
-       (Craig Ringer)
+       to return the current transaction ID or NULL if no
+       transaction ID has been assigned (Craig Ringer)
       
 
       
        This is different from 
        linkend="functions-txid-snapshot">txid_current(),
-       which always returns a transaction id by assigning one if necessary.
-       This can be also run on standby servers.
+       which always returns a transaction ID, assigning one if necessary.
+       Unlike that function, this function can be run on standby servers.
       
      
 
       
 
       
-       This is useful for checking after an abrupt disconnection if
+       This is useful for checking after an abrupt disconnection whether
        your previous transaction committed and you just didn't receive
        the acknowledgement.
       
 2016-09-28 [d3cd36a13] Make to_timestamp() and to_date() range-check fields of
 -->
       
-       Have to_timestamp() and to_date() check
-       input values for validity (Artur Zakirov)
+       Make to_timestamp() and to_date() reject
+       out-of-range input fields (Artur Zakirov)
       
 
       
-       Previously to_date('2009-06-40','YYYY-MM-DD') was
-       accepted and returned '2009-07-10'.  It will now generate an error.
+       For example,
+       previously to_date('2009-06-40','YYYY-MM-DD') was
+       accepted and returned 2009-07-10.  It will now generate
+       an error.
       
      
 
 2017-03-27 [70ec3f1f8] PL/Python: Add cursor and execute methods to plan object
 -->
       
-       Allow the  PL/Python plan object to call cursor and execute methods
+       Allow PL/Python's cursor() and execute()
+       functions to be called as methods of their plan-object arguments
        (Peter Eisentraut)
       
 
       
-       This is a more object oriented style.
+       This allows a more object-oriented programming style.
       
      
 
 2016-12-13 [55caaaeba] Improve handling of array elements as getdiag_targets an
 -->
       
-       Allow PL/pgSQL's GET DIAGNOSTICS to retrieve values
-       into array elements (Tom Lane)
-      
-     
-
-     
-
-      
-       Remove SPI functions SPI_push(),
-       SPI_pop(), SPI_restore_connection()
-       as unnecessary (Tom Lane)
+       Allow PL/pgSQL's GET DIAGNOSTICS statement to retrieve
+       values into array elements (Tom Lane)
       
 
       
-       Their functionality now happens automatically.  Also,
-       SPI_palloc() now requires an active connection.
+       Previously, a syntactic restriction prevented the target variable
+       from being an array element.
       
      
 
 2017-03-07 [0d2b1f305] Invent start_proc parameters for PL/Tcl.
 -->
        
-        Add GUCs to allow initialization routines to be called
-        on PL/Tcl startup (Tom Lane)
-       
-
-       
-        The GUCs are pltcl.start_proc and
-        pltclu.start_proc.
+        Add server parameters 
+        and , to allow initialization
+        functions to be called on PL/Tcl startup (Tom Lane)
        
       
 
 2016-11-29 [721f7bd3c] libpq: Add target_session_attrs parameter.
 -->
       
-       Allow the libpq connection string to request a 
-       linkend="libpq-connect-target-session-attrs">read/write host
+       Allow libpq connection strings and URIs to request a 
+       linkend="libpq-connect-target-session-attrs">read/write host,
+       that is a master server rather than a standby server
        (Victor Wagner, Mithun Cy)
       
 
       
-       This is useful when multiple libpq host names are
-       specified, and is controlled by libpq connection parameter
+       This is useful when multiple host names are
+       specified.  It is controlled by libpq connection parameter
        
       
      
 2017-01-24 [ba005f193] Allow password file name to be specified as a libpq conn
 -->
       
-       Allow password file name
+       Allow the password file name
        to be specified as a libpq connection parameter (Julian Markwort)
       
 
        Add function 
        linkend="libpq-pqencryptpasswordconn">PQencryptPasswordConn()
        to allow creation of more types of encrypted passwords on the
-       client-side (Michael Paquier, Heikki Linnakangas)
+       client side (Michael Paquier, Heikki Linnakangas)
       
 
       
-       Previously only MD5 passwords could be created using 
+       Previously only MD5-encrypted passwords could be created
+       using 
        linkend="libpq-pqencryptpassword">PQencryptPassword().
        This new function can also create 
-       linkend="auth-pg-hba-conf">SCRAM-SHA-256 passwords.
+       linkend="auth-pg-hba-conf">SCRAM-SHA-256-encrypted
+       passwords.
       
      
 
 2016-08-16 [a7b5573d6] Remove separate version numbering for ecpg preprocessor.
 -->
       
-       ecpg preprocessor version changed from 4.12 to 10 (Tom Lane)
+       Change ecpg preprocessor version from 4.12 to 10
+       (Tom Lane)
       
 
       
-       The ecpg version now matches the PostgreSQL distribution version
-       number.
+       Henceforth the ecpg version will match
+       the PostgreSQL distribution version number.
       
      
 
        
 
        
-        The new syntax uses \if, \elif, \else, and \endif.  This is
-        particularly helpful for scripting.
+        This feature adds psql
+        meta-commands \if, \elif, \else,
+        and \endif.  This is primarily helpful for scripting.
        
       
 
 2017-03-07 [b2678efd4] psql: Add \gx command
 -->
        
-        Add psql \gx command to perform \g(execute)
-        in expanded mode (\x) (Christoph Berg)
+        Add psql \gx meta-command to execute
+        (\g) a query in expanded mode (\x)
+        (Christoph Berg)
        
       
 
 2016-11-03 [a0f357e57] psql: Split up "Modifiers" column in \d and \dD
 -->
        
-        Improve psql's \d (relation) and \dD (domain)
-        commands to specify collation, nullable, and default in separate
-        columns (Peter Eisentraut)
+        Improve psql's \d (display relation)
+        and \dD (display domain) commands to show collation,
+        nullable, and default properties in separate columns (Peter
+        Eisentraut)
        
 
        
-        Previous they were in a single "Modifiers" column.
+        Previous they were shown in a single Modifiers column.
        
       
 
 2017-04-01 [f833c847b] Allow psql variable substitution to occur in backtick co
 -->
        
-        Expand psql colon variables when used in
-        backtick-executed contexts (Tom Lane)
+        Expand psql variable references in
+        backtick-executed strings (Tom Lane)
        
 
        
-        This is particularly useful for the new psql
-        conditional branch support commands.
+        This is particularly useful in the new psql
+        conditional branch commands.
        
       
 
 2017-02-02 [fd6cd6980] Clean up psql's behavior for a few more control variable
 -->
        
-        Prevent psql special variables from being set to
+        Prevent psql's special variables from being set to
         invalid values (Daniel Vérité, Tom Lane)
        
 
        
-        Previously setting psql special variables
-        to invalid values produced the default behavior.  \set and
-        \unset of special variables now sets them to "on" and its
-        default value, rather than a zero-length string and undefined.
-        Also have \set always display values for FETCH_COUNT,
-        HISTSIZE, and IGNOREEOF.
+        Previously, setting one of psql's special variables
+        to an invalid value silently resulted in the default behavior.
+        \set on a special variable now fails if the proposed
+        new value is invalid.  As a special exception, \set
+        with an empty or omitted new value, on a boolean-valued special
+        variable, still has the effect of setting the variable
+        to on; but now it actually acquires that value rather
+        than an empty string.  \unset on a special variable now
+        explicitly sets the variable to its default value, which is also
+        the value it acquires at startup.  In sum, a control variable now
+        always has a displayable value that reflects
+        what psql is actually doing.
        
       
 
 2016-11-09 [41124a91e] pgbench: Allow the transaction log file prefix to be cha
 -->
        
-        Add pgbench option 
-        file prefix (Masahiko Sawada)
+        Add pgbench option 
+        control the log file prefix (Masahiko Sawada)
        
       
 
 2017-01-20 [cdc2a7047] Allow backslash line continuations in pgbench's meta com
 -->
        
-        Allow pgbench's meta commands to span multiple lines via a
-        line-terminating backslash (Fabien Coelho)
+        Allow pgbench's meta-commands to span multiple
+        lines (Fabien Coelho)
+       
+
+       
+        A meta-command can now be continued onto the next line by writing
+        backslash-return.
        
       
 
       
        Add 
        linkend="app-pgreceivewal">pg_receivewal
-       option 
+       option 
        (Michael Paquier)
       
      
       
        Add 
        linkend="app-pgrecvlogical">pg_recvlogical option
-       ( to specify the ending position (Craig Ringer)
+        to specify the ending position (Craig Ringer)
       
 
       
     
 
     
-     <link linkend="APP-PGDUMP"><application>pg_dump</></>, <link linkend="APP-PG-DUMPALL"><application>pg_dumpall</></>.</div> <div class="diff add">+     <title><link linkend="APP-PGDUMP"><application>pg_dump</></>,</div> <div class="diff add">+     <link linkend="APP-PG-DUMPALL"><application>pg_dumpall</></>,</div> <div class="diff ctx">      <link linkend="APP-PGRESTORE"><application>pg_restore</></>
 
      
        
 
        
-        This added a new 
+        This adds a new 
        
       
 
 -->
        
         Add 
-       pg_dump (Guillaume Lelarge)
+        pg_dump (Guillaume Lelarge)
        
 
        
-        This suppresses the dumping of large objects.
+        This suppresses dumping of large objects.
        
       
 
 -->
        
         Add pg_dumpall option
-        
+        
         (Robins Tharakan, Simon Riggs)
        
 
        
-        This allows easier dumping for less-privileged users.
+        This allows use of pg_dumpall by non-superusers;
+        without this option, it fails due to inability to read passwords.
        
       
 
 2017-03-22 [96a7128b7] Sync pg_dump and pg_dumpall output
 -->
        
-        Issue fsync on the output files generated by
+        Issue fsync() on the output files generated by
         pg_dump and
-       pg_dumpall (Michael Paquier)
+        pg_dumpall (Michael Paquier)
        
 
        
-        This can be disabled with the 
+        This provides more security that the output is safely stored on
+        disk before the program exits.  This can be disabled with
+        the new 
        
       
 
       
 
        
-        Improve fsync handling of pg_basebackup and
+        Be more careful about fsync'ing in all required places
+        in pg_basebackup and
         pg_receivewal (Michael Paquier)
        
+      
 
+      
+
        
-        Also add 
+        Add pg_basebackup option 
+        disable fsync (Michael Paquier)
        
       
 
         Improve pg_basebackup's handling of which
         directories to skip (David Steele)
        
-
-       
-        Also improve the documentation of skipped directories.
-       
       
 
      
 2016-08-15 [ca9112a42] Stamp HEAD as 10devel.
 -->
       
-       New major version numbering (Peter Eisentraut, Tom Lane)
+       Change to two-part release version numbering (Peter Eisentraut, Tom
+       Lane)
       
 
       
+       Release numbers will now have two parts (e.g., 10.1)
+       rather than three (e.g., 9.6.3).
        Major versions will now increase just the first number, and minor
-       releases will increase just the second number.  A third number
-       will no longer be used in PostgreSQL version numbers.
+       releases will increase just the second number.
+       Release branches will be referred to by single numbers
+       (e.g., 10 rather than 9.6).
+       This change is intended to reduce user confusion about what is a
+       major or minor release of PostgreSQL.
       
      
 
 
      
 
+      
+       Remove SPI functions SPI_push(),
+       SPI_pop(), SPI_push_conditional(),
+       SPI_pop_conditional(),
+       and SPI_restore_connection() as unnecessary (Tom Lane)
+      
+
+      
+       Their functionality now happens automatically.  There are now no-op
+       macros by these names so that external modules don't need to be
+       updated immediately, but eventually such calls should be removed.
+      
+
+      
+       A side effect of this change is that SPI_palloc() and
+       allied functions now require an active SPI connection; they do not
+       degenerate to simple palloc() if there is none.  That
+       previous behavior was not very useful and posed risks of unexpected
+       memory leaks.
+      
+     
+
+     
+
       
        Add more robust random number generators to be used for
-       cryptographic secure uses (Magnus Hagander, Michael Paquier,
+       cryptographically secure uses (Magnus Hagander, Michael Paquier,
        Heikki Linnakangas)
       
 
       
-       If no strong random number generator can be found, configure
-       will fail unless the configure
-       
-       option, pgcrypto functions requiring a strong random number
+       If no strong random number generator can be found, configure will
+       fail unless the configure
+       option 
+       this option, pgcrypto functions requiring a strong random number
        generator will be disabled.
       
      
 
+    
+
+     
+      Remove SCO and 
+      class="osname">Unixware ports (Tom Lane)
+     
+    
+
      
 
       
-       Use XSLT to build the PostgreSQL documentation (Peter
-       Eisentraut)
+       Use XSLT to build the PostgreSQL
+       documentation (Peter Eisentraut)
       
 
       
        This reduces the amount of data that must be passed
        from the foreign data wrapper server, and offloads
        aggregate computation from the requesting server.  The 
-       linkend="postgres-fdw">postgres_fdw is able to
+       linkend="postgres-fdw">postgres_fdw FDW is able to
        perform this optimization.  There are also improvements in
        pushing down joins involving extensions.
       
       
 
       
-       This allows it be less disruptive when run on production systems.
+       This allows it to be less disruptive when run on production systems.
       
      
 
 2017-02-03 [e759854a0] pgstattuple: Add pgstathashindex.
 -->
       
-       Add <function>pgstathashindex() function to 
-       linkend="pgstattuple">pgstattuple to view hash
-       index statistics (Ashutosh Sharma)
+       Add <link linkend="pgstattuple">pgstattuple
+       function pgstathashindex() to view hash index
+       statistics (Ashutosh Sharma)
       
      
 
 2016-09-29 [fd321a1df] Remove superuser checks in pgstattuple
 -->
       
-       Allow pgstattuple
-       to use GRANT permissions (Stephen Frost)
+       Use GRANT permissions to
+       control pgstattuple function usage (Stephen Frost)
       
 
       
-       This allows non-superusers to run these functions if permissions
-       allow.
+       This allows DBAs to allow non-superusers to run these functions.
       
      
 
 2016-10-28 [d4b5d4cad] pgstattuple: Don't take heavyweight locks when examining
 -->
       
-       Reduce locking when 
-       linkend="pgstattuple">pgstattuple examines hash
+       Reduce locking when pgstattuple examines hash
        indexes (Amit Kapila)
       
      
 2017-03-17 [fef2bcdcb] pageinspect: Add page_checksum function
 -->
       
-       Add page_checksum() function to 
-       linkend="pageinspect">pageinspect (Tomas Vondra)
+       Add pageinspect
+       function page_checksum() to show a page's checksum
+       (Tomas Vondra)
       
      
 
      
 
       
-       Add hash index support to 
-       linkend="pageinspect">pageinspect (Jesper
-       Pedersen, Ashutosh Sharma)
+       Add pageinspect
+       function bt_page_items() to print page items from a
+       page image (Tomas Vondra)
       
      
 
      
 
       
-       Add pageinspect
-       function bt_page_items() to print page items from a
-       page image (Tomas Vondra)
-      
-
-      
-       Previously only block numbers were supported.
+       Add hash index support to pageinspect (Jesper
+       Pedersen, Ashutosh Sharma)