Make an editorial pass over the 9.4 release notes.
authorTom Lane
Mon, 18 Aug 2014 02:26:44 +0000 (22:26 -0400)
committerTom Lane
Mon, 18 Aug 2014 02:26:44 +0000 (22:26 -0400)
Update the notes to include commits through today, and do a lot of
wordsmithing and markup adjustment.  Notably, don't use  where 
will do; since we got rid of the text-format HISTORY file, there is no
longer a reason to avoid .

doc/src/sgml/release-9.4.sgml

index 88935444997abf26eaa66f2eaf8d1fc23566f337..7ae67e0cec2e9848bbecf50da3fcf904f80349e4 100644 (file)
@@ -7,7 +7,7 @@
   
    Release Date
    2014-??-??
-   Current as of 2014-05-10
+   Current as of 2014-08-17
   
 
   
 
      
       
-       Allow materialized views to be refreshed without blocking reads
+       Allow materialized views
+       to be refreshed without blocking reads
       
      
 
      
       
-       Logical decoding allows database
-       changes to be streamed out in a customizable format
+       Add support for logical decoding
+       of WAL data, to allow database changes to be streamed out in a
+       customizable format
       
      
 
      
       
-        Allow background workers>
+        Allow background worker processes>
         to be dynamically registered, started and terminated
       
      
 
      
       
-       Add structured (non-text) data type (
-       linkend="datatype-json">JSONB) for storing
-       JSON data
+       Add jsonb, a more
+       capable and efficient data type for for storing JSON data
       
      
 
      
       
-       Add SQL-level command 
-       linkend="SQL-ALTERSYSTEM">ALTER SYSTEM
-       to edit the postgresql.conf configuration file
+       Add new SQL command 
+       for updating postgresql.conf configuration file entries
       
      
 
      
       
-       Reduce lock levels of some 
-       linkend="SQL-ALTERTABLE">ALTER TABLE commands
+       Reduce lock strength for some 
+       commands
       
      
 
   Migration to Version 9.4
 
    
-    A dump/restore using 
-    linkend="APP-PG-DUMPALL">pg_dumpall, or use
-    of pg_upgrade, is
-    required for those wishing to migrate data from any previous release.
+    A dump/restore using , or use
+    of , is required for those wishing to migrate
+    data from any previous release.
    
 
    
 
     
      
-      Cause consecutive whitespace in 
-      linkend="functions-formatting-table">to_timestamp()
-      and to_date() format strings to consume a corresponding
-      number of characters in the input string (whitespace or not), then
-      conditionally consume adjacent whitespace, if not in FX
-      mode (Jeevan Chalke)
+      Tighten checks for multidimensional 
+      linkend="arrays">array input (Bruce Momjian)
      
 
      
-      Previously consecutive whitespace characters in a non-FX
-      format string behaved like a single whitespace character and consumed
-      all 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 now consume all three characters.
+      Previously, an input array string that started with a single-element
+      array dimension could later contain multidimensional segments,
+      e.g. '{{1}, {2,3}}'::int[].
      
     
 
     
      
-      Tighten checks for multidimensional 
-      linkend="arrays">array input (Bruce Momjian)
+      Unicode escapes in JSON
+      text values are no longer rendered with the backslash escaped
+      (Andrew Dunstan)
      
 
      
-      Previously an input array string that started with a single-element
-      array dimension could later contain multidimensional segments,
-      e.g. '{{1}, {2,3}}'::int[].
+      Previously, all backslashes in text values being formed into JSON
+      were escaped. Now a backslash followed by u and four
+      hexadecimal digits is not escaped, as this is a legal sequence in a
+      JSON string value, and escaping the backslash led to some perverse
+      results.
      
     
 
     
      
-      Change empty arrays returned by intarray to be
-      zero-dimensional arrays (Bruce Momjian)
+      When converting values of type timestamp
+      or timestamptz
+      to JSON, render the
+      values in a format compliant with ISO 8601 (Andrew Dunstan)
      
 
      
-      Previously, empty arrays were returned as one-dimensional empty arrays
-      whose text representation looked the same as zero-dimensional arrays
-      ({}).  intarray's behavior in this area
-      now matches the built-in array operators.
+      Previously such values were rendered according to the current
+       setting; but many JSON processors
+      require timestamps to be in ISO 8601 format.
      
     
 
     
      
-      Disallow NULL 
-      linkend="xfunc-sql-variadic-functions">VARIADIC
-      function arguments (Pavel Stehule)
+      Cause consecutive whitespace in 
+      linkend="functions-formatting-table">to_timestamp()
+      and to_date() format strings to consume a corresponding
+      number of characters in the input string (whitespace or not), then
+      conditionally consume adjacent whitespace, if not in FX
+      mode (Jeevan Chalke)
      
 
      
-      Such arguments must be cast to an array data type.
+      Previously, consecutive whitespace characters in a non-FX
+      format string behaved like a single whitespace character and consumed
+      all adjacent whitespace in the input string.  For example, previously
+      a format string of three spaces would consume only the first space in
+      ' 12', but it will now consume all three characters.
      
     
 
     
      
-      SHOW TIME ZONE now
-      outputs constant time zone offsets in POSIX-style zone
-      format (Tom Lane)
+      Fix 
+      linkend="textsearch-functions-table">ts_rank_cd()
+      to ignore stripped lexemes (Alex Hill)
      
 
      
-      Previously it was returned in 
-      linkend="datatype-interval-output">INTERVAL format.
-      The new format can be passed to SET TIME ZONE.
+      Previously, stripped lexemes were treated as if they had a default
+      location, producing a rank of dubious usefulness.
      
     
 
     
      
-      Values of type
-      timestamp  and
-      timestamptz are now
-      rendered in a string format compliant with ISO 8601 rather than the
-      default output format when converting to or used in
-      JSON.
-      (Andrew Dunstan)
+      For functions declared to
+      take VARIADIC
+      "any", an actual parameter marked as VARIADIC
+      must be of a determinable array type (Pavel Stehule)
      
 
      
-      Previously these were rendered in the default text output format
-      for the type, but many JSON processors require timestamps in ISO 8601
-      format.
+      Such parameters can no longer be written as an undecorated string
+      literal or NULL; a cast to an appropriate array data type
+      will now be required.  Note that this does not affect parameters not
+      marked VARIADIC.
      
     
 
     
      
-      Unicode escapes in JSON
-      text values are no longer rendered with the backslash escaped.
-      (Andrew Dunstan)
-     
-
-     
-      Previously all backslashes in text values being formed into JSON were
-      escaped. Now a backslash followed by "u" and four hexadecimal digits is
-      not escaped, as this is a legal sequence in a JSON string value, and
-      escaping the backslash led to some perverse results.
+       now also discards sequence-related state
+      (Fabrízio de Royes Mello, Robert Haas)
      
     
 
     
      
       Rename EXPLAIN
-      ANALYZE's total runtime output to execution time
-      (Tom Lane)
+      ANALYZE's total runtime output
+      to execution time (Tom Lane)
      
 
      
-      This was required now that planning time is also reported.
+      Now that planning time is also reported, the previous name was
+      confusing.
      
     
 
     
      
-      Fix 
-      linkend="textsearch-functions-table">ts_rank_cd()
-      to ignore stripped lexemes (Alex Hill)
+      SHOW TIME ZONE now
+      outputs simple numeric UTC offsets in POSIX timezone
+      format (Tom Lane)
      
 
      
-      Previously stripped lexemes got a default location and could be
-      considered if mixed with non-stripped lexemes.
+      Previously, such timezone settings were displayed as 
+      linkend="datatype-interval-output">interval values.
+      The new output is properly interpreted by SET TIME ZONE
+      when passed as a simple string, whereas the old output required
+      special treatment to be re-parsed correctly.
      
     
 
      
 
      
-      Restoring such check constraints will lead to restore errors.
+      Previously such check constraints were allowed, but they would often
+      cause errors during restores.
      
     
 
     
      
-      Use the last specified 
-      linkend="recovery-target">recovery_target if
-      multiple are specified (Heikki Linnakangas)
+      Use the last specified  if multiple
+      values are specified (Heikki Linnakangas)
      
     
 
 
      
       User commands that did their own quote preservation might need
-      adjustment, e.g.  
-      linkend="guc-archive-command">archive_command, 
-      linkend="restore-command">restore_command, COPY TO/FROM
-      PROGRAM.
+      adjustment.  This is likely to be an issue for commands used in
+      ,
+      and COPY TO/FROM PROGRAM.
      
     
 
     
      
-      Remove system column 
+      Remove catalog column 
       linkend="catalog-pg-class">pg_class.reltoastidxid
       (Michael Paquier)
      
 
     
      
-      Remove support for native krb5 authentication
-      (Magnus Hagander)
+      Remove catalog column 
+      linkend="catalog-pg-rewrite">pg_rewrite.ev_attr
+      (Kevin Grittner)
      
 
      
-      The proper way to use Kerberos authentication is
-      with GSSAPI.
+      Per-column rules have not been supported since
+      PostgreSQL 7.3.
      
     
 
     
      
-      Handle domains over arrays like plain arrays in PL/Python
-      (Rodolfo Campero)
+      Remove native support for Kerberos authentication
+      (
+      (Magnus Hagander)
      
 
      
-      Previously they were treated as strings.
+      The supported way to use Kerberos authentication is
+      with GSSAPI.  The native code has been deprecated since
+      PostgreSQL 8.3.
      
     
 
     
      
-      Have libpq's 
-      linkend="libpq-pqconnectdbparams">PQconnectdbParams()
-      and 
-      linkend="libpq-pqpingparams">PQpingParams()
-      functions process zero-length strings as defaults (Adrian
-      Vondendriesch)
+      In PL/Python, handle domains over arrays like the
+      underlying array type (Rodolfo Campero)
      
 
      
-      Previously, these functions treated zero-length string values as
-      defaults only in some cases.
+      Previously such values were treated as strings.
      
     
 
     
      
-      Remove system column 
-      linkend="catalog-pg-rewrite">pg_rewrite.ev_attr
-      (Kevin Grittner)
+      Make libpq's 
+      linkend="libpq-pqconnectdbparams">PQconnectdbParams()
+      and 
+      linkend="libpq-pqpingparams">PQpingParams()
+      functions process zero-length strings as defaults (Adrian
+      Vondendriesch)
      
 
      
-      Per-column rules have not been supported since
-      PostgreSQL 7.3.
+      Previously, these functions treated zero-length string values as
+      selecting the default in only some cases.
      
     
 
     
      
-      pg_upgrade now
-      uses 
-     
-
-     
-      Previously 
-      Also spell the long option as 
-      consistency with other tools.
+      Change empty arrays returned by the  module
+      to be zero-dimensional arrays (Bruce Momjian)
      
-    
 
-    
      
-      The maximum number of background workers
-      that can be registered
-      by RegisterBackgroundWorker() is now limited to
-      max_worker_processes
+      Previously, empty arrays were returned as zero-length one-dimensional
+      arrays, whose text representation looked the same as zero-dimensional
+      arrays ({}), but they acted differently in array
+      operations.  intarray's behavior in this area now
+      matches the built-in array operators.
      
     
 
     
      
-      background workers registered at
-      postmaster startup time should set
-      bgw_notify_pid to 0.
-      
+       now uses 
+      or 
      
-    
 
-    
      
-      DISCARD ALL now also discards sequence state.
+      Previously this option was spelled 
+      but that was inconsistent with other tools.
      
     
 
 
       
        
-        Have VACUUM properly
-        report dead but not removable rows to the statistics collector
-        (Hari Babu)
+        Allow background worker processes
+        to be dynamically registered, started and terminated (Robert Haas)
        
 
        
-        Previously these were reported as live rows.
+        The contrib/worker_spi module shows an example of use
+        of this feature.
        
       
+
       
        
-        Allow background workers to be
-        dynamically registered, started and terminated (Robert Haas)
+        Allow dynamic allocation of shared memory segments (Robert Haas,
+        Amit Kapila)
        
 
        
-        worker_spi_launch() in worker_spi
-        shows an example of its use.
+        This feature is illustrated in .
        
       
 
       
        
-        Allow dynamic allocation of shared memory segments (Robert Haas,
-        Amit Kapila)
+        During crash recovery or immediate shutdown, send uncatchable
+        termination signals (SIGKILL) to child processes
+        that do not shut down promptly (MauMau, Álvaro Herrera)
        
 
        
-        This is illustrated in 
-        linkend="test-shm-mq">test_shm_mq.
+        This reduces the likelihood of leaving orphaned child processes
+        behind after  shutdown, as well
+        as ensuring that crash recovery can proceed if some child processes
+        have become stuck.
        
       
 
       
        
-        Improve SSL renegotiation handling (Álvaro
-        Herrera)
+        Improve randomness of the database system identifier (Tom Lane)
        
       
 
       
        
-        During immediate shutdown send uncatchable termination signals
-        to child processes that have not already shutdown (MauMau,
-        Álvaro Herrera)
+        Make  properly report dead but
+        not-yet-removable rows to the statistics collector (Hari Babu)
        
 
        
-        This reduces the likelihood of orphaned child processes after
-        postmaster
-        shutdown.
-       
-      
-
-      
-       
-        Improve randomness of the database system identifier (Tom Lane)
+        Previously these were reported as live rows.
        
       
 
 
       
        
-        Improve speed of multi-key 
-        linkend="GIN">GIN lookups (Alexander Korotkov,
-        Heikki Linnakangas)
+        Reduce GIN index size
+        (Alexander Korotkov, Heikki Linnakangas)
        
-      
 
-      
        
-        Reduce GIN index size
-        (Alexander Korotkov, Heikki Linnakangas)
+        Indexes upgraded via  will work fine
+        but will still be in the old, larger GIN format.
+        Use  to recreate such an index in the
+        new format.
        
+      
 
+      
        
-        Indexes upgraded via 
-        linkend="pgupgrade">pg_upgrade will work
-        fine but will use the old larger GIN format; 
-        linkend="SQL-REINDEX">REINDEX will recreate
-        the index in the new format.
+        Improve speed of multi-key 
+        linkend="GIN">GIN lookups (Alexander Korotkov,
+        Heikki Linnakangas)
        
       
 
       
        
         Add GiST index support
-        for INET and
-        CIDR data types
+        for inet and
+        cidr data types
         (Emre Hasegeli)
        
 
        
         Such indexes improve 
-        linkend="cidr-inet-operators-table">subnet and supernet
+        linkend="cidr-inet-operators-table">subnet and supernet
         lookups and ordering comparisons.
        
       
 
       
        
-        Fix race condition in B-tree page deletion (Heikki Linnakangas)
+        Fix rare race condition in B-tree page deletion (Heikki Linnakangas)
        
       
 
 
       
        
-        Allow multiple backends to simultaneously insert into 
-        linkend="wal">WAL buffers (Heikki Linnakangas)
+        Allow multiple backends to insert
+        into WAL buffers
+        concurrently (Heikki Linnakangas)
        
 
        
 
       
        
-        Improve performance of 
-        linkend="syntax-window-functions">WINDOW
-        aggregate functions (David Rowley, Florian Pflug, Tom Lane)
+        Improve performance of aggregate functions used as 
+        linkend="syntax-window-functions">window functions
+        (David Rowley, Florian Pflug, Tom Lane)
        
       
 
       
        
-        Improve speed of aggregates which use 
-        linkend="datatype-numeric">NUMERICs (Hadi
-        Moshayedi)
-       
-
-       
-        These include SUM(), AVG(), 
-        linkend="functions-aggregate-statistics-table">STDDEV(),
-        and VARIANCE().
+        Improve speed of aggregates that
+        use numeric state
+        values (Hadi Moshayedi)
        
       
 
       
        
         Attempt to freeze
-        tuples when tables are rewritten with <link
-        linkend="SQL-CLUSTER">CLUSTER or 
+        tuples when tables are rewritten with <xref
+        linkend="SQL-CLUSTER"> or 
         linkend="SQL-VACUUM">VACUUM FULL (Robert Haas,
         Andres Freund)
        
 
       
        
-        Improve speed of <link linkend="SQL-COPY">COPY>
+        Improve speed of <xref linkend="SQL-COPY">
         with DEFAULT 
         linkend="functions-sequence-table">nextval()
         columns (Simon Riggs)
       
        
         Raise hard limit on the number of tuples held in memory during sorting
-        and B-tree index builds (Noah
-        Misch)
+        and B-tree index builds (Noah Misch)
        
       
 
       
        
-        Reduce memory allocated by <link
-        linkend="SQL-DO">DO> blocks (Tom Lane)
+        Reduce memory allocated by <application>PL/pgSQL
+        > blocks (Tom Lane)
        
       
 
       
        
-        Have the optimizer be more aggressive in creating restrictions
+        Make the planner more aggressive in extracting restriction clauses
         from mixed AND/OR clauses (Tom Lane)
        
       
 
       
        
-        Auto-resize the catalog cache (Heikki Linnakangas)
+        Disallow pushing volatile WHERE clauses down
+        into DISTINCT subqueries (Tom Lane)
+       
+
+       
+        Pushing down a WHERE clause can produce a more
+        efficient plan overall, but at the cost of evaluating the clause
+        more often than is implied by the text of the query; so don't do it
+        if the clause contains any volatile functions.
+       
+      
+
+      
+       
+        Auto-resize the catalog caches (Heikki Linnakangas)
        
 
        
-        This reduces memory consumption for backends accessing only a few
-        tables, and improves performance for backend accessing many tables.
+        This reduces memory consumption for sessions accessing only a few
+        tables, and improves performance for sessions accessing many tables.
        
       
 
 
       
        
-        Expose the estimation of number of changed tuples since last 
-        linkend="vacuum-for-statistics">ANALYZE (Mark Kirkwood)
+        Add  system view to
+        report WAL archiver activity
+        (Gabriele Bartolini)
        
+      
 
+      
        
-        This appears in 
-        linkend="pg-stat-all-tables-view">pg_stat_all_tables.n_mod_since_analyze.
+        Add n_mod_since_analyze columns to
+         and related system views
+        (Mark Kirkwood)
        
-      
 
-      
        
-        Add 
-        linkend="pg-stat-archiver-view">pg_stat_archiver
-        system view to report WAL
-        archiver activity (Gabriele Bartolini)
+        These columns expose the system's estimate of the number of changed
+        tuples since the table's last .  This
+        estimate drives decisions about when to auto-analyze.
        
       
 
       
        
-        Add <varname>backend_xid and backend_xmin columns to
-        the system view pg_stat_activity
-        and backend_xmin to pg_stat_replication
-        (Christian Kruse)
+        Add <structfield>backend_xid and backend_xmin
+        columns to the system view ,
+        and backend_xmin column to
+         (Christian Kruse)
        
       
 
 
        
         This allows use of Elliptic Curve keys for server authentication.
-        Such keys are faster and have improved security over RSA keys.
-        The new configuration parameter
-        <link linkend="guc-ssl-ecdh-curve">ssl_ecdh_curve>
+        Such keys are faster and have better security than RSA
+        keys. The new configuration parameter
+        <xref linkend="guc-ssl-ecdh-curve">
         controls which curve is used for ECDH.
        
       
 
       
        
-        Improve the default 
-        linkend="guc-ssl-ciphers">ssl_ciphers value
+        Improve the default  setting
         (Marko Kreen)
        
       
 
       
        
-        Allow the server to specify the preferred SSL cipher
-        order (Marko Kreen)
+        By default, the server not the client now controls the preference
+        order of SSL ciphers
+        (Marko Kreen)
+       
+
+       
+        Previously, the order specified by 
+        was usually ignored in favor of client-side defaults, which are not
+        configurable in most PostgreSQL clients.  If
+        desired, the old behavior can be restored via the new configuration
+        parameter .
        
+      
 
+      
        
-        This is controlled by the new configuration parameter 
-        linkend="guc-ssl-prefer-server-ciphers">ssl_prefer_server_ciphers.
+        Make  show SSL
+        encryption information (Andreas Kunert)
        
       
 
       
        
-        Have 
-        linkend="guc-log-connections">log_connections
-        show SSL encryption information (Andreas Kunert)
+        Improve SSL renegotiation handling (Álvaro
+        Herrera)
        
       
 
 
       
        
-        Add SQL-level 
-        linkend="SQL-ALTERSYSTEM">ALTER SYSTEM command
-        to adjust server-wide settings (Amit Kapila)
+        Add new SQL command 
+        for updating postgresql.conf configuration file entries
+        (Amit Kapila)
        
 
        
-        Previously such settings could only be changed by
-        editing postgresql.conf at the file system level.
+        Previously such settings could only be changed by manually
+        editing postgresql.conf.
        
       
 
       
        
-        Add huge_pages
-        configuration parameter to use huge memory pages on Linux
-        (Christian Kruse, Richard Poole, Abhijit Menon-Sen)
-       
-
-       
-        This can improve performance on large memory systems.
+        Add  configuration parameter
+        to control the amount of memory used by autovacuum workers
+        (Peter Geoghegan)
        
       
 
       
        
-        Show PIDs of lock holders and
-        waiters and improve relation information in 
-        linkend="guc-log-lock-waits">log_lock_waits
-        log messages (Christian Kruse)
+        Add  parameter to allow using huge
+        memory pages on Linux (Christian Kruse, Richard Poole, Abhijit
+        Menon-Sen)
        
-      
 
-      
        
-        Add parameter 
-        linkend="guc-autovacuum-work-mem">autovacuum_work_mem
-        to control the amount of memory used by autovacuum workers
-        (Peter Geoghegan)
+        This can improve performance on large-memory systems.
        
       
 
       
        
-        Add 
-        linkend="guc-max-worker-processes">max_worker_processes
+        Add  parameter
         to limit the number of background workers (Robert Haas)
        
 
        
-        This is helpful in configuring the standby server to have the
-        required same number of worker processes as the primary.
+        This is helpful in configuring a standby server to have the
+        required number of worker processes (the same as the primary).
        
       
 
       
        
-        Add configuration parameter 
-        linkend="guc-wal-log-hints">wal_log_hints
-        to enable logging of hint bits (Sawada Masahiko)
+        Add superuser-only 
+        parameter to load libraries at session start (Peter Eisentraut)
        
 
        
-        Hint bits are not normally logged, except when checksums are enabled.
-        This is useful for external tools like pg_rewind.
+        In contrast to , this
+        parameter can load any shared library, not just those in
+        the $libdir/plugins directory.
        
       
 
       
        
-        Allow printf-style space padding to be specified in 
-        linkend="guc-log-line-prefix">log_line_prefix
-        (David Rowley)
+        Add  parameter to enable WAL
+        logging of hint-bit changes (Sawada Masahiko)
+       
+
+       
+        Hint bit changes are not normally logged, except when checksums are
+        enabled.  This is useful for external tools
+        like pg_rewind.
        
       
 
       
        
-        Add superuser-only 
-        linkend="guc-session-preload-libraries">session_preload_libraries
-        configuration parameter to load libraries at session start
-        (Peter Eisentraut)
+        Increase the default settings of 
+        and  by four times (Bruce
+        Momjian)
        
 
        
-        In contrast
-        to local_preload_libraries
-        this parameter can load any shared library, not just those in
-        the $libdir/plugins directory.
+        The new defaults are 4MB and 64MB respectively.
        
       
 
       
        
-        Reduce server logging level when loading shared libraries (Peter
-        Geoghegan)
+        Increase the default setting of 
+        linkend="guc-effective-cache-size">
+        to 4GB (Bruce Momjian, Tom Lane)
        
+      
 
+      
        
-        The previous level was LOG, which was too verbose
-        for per-session libraries.
+        Allow printf-style space padding to be
+        specified in  (David Rowley)
        
       
 
       
        
-        Increase 
-        linkend="guc-work-mem">work_mem and 
-        linkend="guc-maintenance-work-mem">maintenance_work_mem
-        defaults by four times (Bruce Momjian)
+        Allow terabyte units (TB) to be used when specifying
+        configuration variable values (Simon Riggs)
        
+      
 
+      
        
-        The new defaults are 4MB and 64MB respectively.
+        Show PIDs of lock holders and waiters and improve
+        information about relations in 
+        log messages (Christian Kruse)
        
       
 
       
        
-        Increase the default setting of 
-        linkend="guc-effective-cache-size">effective_cache_size
-        to 4GB (Bruce Momjian, Tom Lane)
+        Reduce server logging level when loading shared libraries (Peter
+        Geoghegan)
        
-      
 
-      
        
-        Allow terabyte units to be specified for configuration variable
-        values (Simon Riggs)
+        The previous level was LOG, which was too verbose
+        for per-session libraries.
        
       
 
       
        
-        Have Windows SQL_ASCII-encoded databases and server
-        process (e.g.  postmaster) emit
-        messages in the character encoding of the server's Windows user locale
+        On Windows, make SQL_ASCII-encoded databases and server
+        processes (e.g., ) emit messages in
+        the character encoding of the server's Windows user locale
         (Alexander Law, Noah Misch)
        
 
 
      
 
+      
+       
+        Add replication
+        slots to coordinate activity on streaming standbys with the
+        node they are streaming from (Andres Freund, Robert Haas)
+       
+
+       
+        Replication slots allow preservation of resources like
+        WAL files on the primary until they are no longer
+        needed by standby servers.
+       
+      
+
       
        
         Add recovery.conf
-        parameter <link linkend="recovery-min-apply-delay">recovery_min_apply_delay>
+        parameter <xref linkend="recovery-min-apply-delay">
         to delay replication (Robert Haas, Fabrízio de Royes Mello,
         Simon Riggs)
        
 
        
-        This is useful for delaying the replay of user errors on standby
-        servers.
+        Delaying replay on standby servers can be useful for recovering
+        from user errors.
        
       
 
       
        
-        Add 
-        linkend="recovery-target">recovery_target
+        Add 
         option