From a64560d994faab23b76848b4e95027b7b11ad9a7 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 5 May 2014 16:26:27 -0400
Subject: [PATCH] Add doc links to 9.4 release notes, and add major features
 list

---
 doc/src/sgml/datatype.sgml    |    8 +-
 doc/src/sgml/release-9.4.sgml | 1039 +++++++++++++++++++++++----------
 2 files changed, 749 insertions(+), 298 deletions(-)

diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index cc458b4753f..828ed9e0927 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -3155,7 +3155,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
     </para>
    </sect2>
 
-   <sect2>
+   <sect2 id="datatype-line">
     <title>Lines</title>
 
     <indexterm>
@@ -3187,7 +3187,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
     </para>
    </sect2>
 
-   <sect2>
+   <sect2 id="datatype-lseg">
     <title>Line Segments</title>
 
     <indexterm>
@@ -3302,7 +3302,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
     </para>
    </sect2>
 
-   <sect2>
+   <sect2 id="datatype-polygon">
     <title>Polygons</title>
 
     <indexterm>
@@ -3335,7 +3335,7 @@ SELECT person.name, holidays.num_weeks FROM person, holidays
     </para>
    </sect2>
 
-   <sect2>
+   <sect2 id="datatype-circle">
     <title>Circles</title>
 
     <indexterm>
diff --git a/doc/src/sgml/release-9.4.sgml b/doc/src/sgml/release-9.4.sgml
index 9fbadbd38bc..4cb394b7d21 100644
--- a/doc/src/sgml/release-9.4.sgml
+++ b/doc/src/sgml/release-9.4.sgml
@@ -21,10 +21,41 @@
 
    <itemizedlist>
 
-    <listitem>
-     <para>
-     </para>
-    </listitem>
+     <listitem>
+      <para>
+       Allow materialized views to be refreshed without blocking reads
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Logical change-set extraction allows database
+       changes to be optionally recorded in <emphasis>logical</> format
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+        Allow <link linkend="bgworker">background workers</link>
+        to be dynamically registered, started and terminated
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Add structured (non-text) data type (<link
+       linkend="datatype-json"><type>JSONB</></link>) for storing
+       <type>JSON</> data
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Add <acronym>SQL</>-level command <link
+       linkend="SQL-ALTERSYSTEM"><command>ALTER SYSTEM</></link> command
+       to edit the <filename>postgresql.conf</> configuration file
+      </para>
+     </listitem>
 
    </itemizedlist>
 
@@ -54,41 +85,55 @@
 
     <listitem>
      <para>
-      Cause consecutive whitespace in <function>to_timestamp()</> and <function>to_date()</> format strings to consume a corresponding number of characters in the input
-      string (whitespace or not), then conditionally additional adjacent whitespace if not in <literal>FX</> mode (Jeevan Chalke)
+      Cause consecutive whitespace in <link
+      linkend="functions-formatting-table"><function>to_timestamp()</></link>
+      and <function>to_date()</> format strings to consume a corresponding
+      number of characters in the input string (whitespace or not), then
+      conditionally additional adjacent whitespace if not in <literal>FX</>
+      mode (Jeevan Chalke)
      </para>
 
      <para>
-      Previously consecutive whitespace characters in a non-<literal>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 not consume all three characters.
+      Previously consecutive whitespace characters in a non-<literal>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 not consume all three characters.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Tighten checks for multi-dimensional array input (Bruce Momjian)
+      Tighten checks for multi-dimensional <link
+      linkend="arrays">array</link> input (Bruce Momjian)
      </para>
 
      <para>
-      Previously an input array string that started with a single-element array dimension could later contain multi-dimensional
-      segments.
+      Previously an input array string that started with a single-element
+      array dimension could later contain multi-dimensional segments,
+      e.g. <literal>'{{1}, {2,3}}'::int[]</>.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Change empty arrays returned by intarray to be zero-dimensional arrays (Bruce Momjian)
+      Change empty arrays returned by <application>intarray</> to be
+      zero-dimensional arrays (Bruce Momjian)
      </para>
 
      <para>
-      Previously empty arrays were returned as one-dimensional empty arrays whose text representation looks the same as
-      zero-dimensional arrays.  intarray's behavior in this area now matches the built-in array operators.
+      Previously empty arrays were returned as one-dimensional empty arrays
+      whose text representation looked the same as zero-dimensional arrays
+      (<literal>{}</>).  <application>intarray</>'s behavior in this area
+      now matches the built-in array operators.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      NULL <literal>VARIADIC</> function arguments are now disallowed (Pavel Stehule)
+      NULL <link
+      linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link>
+      function arguments are now disallowed (Pavel Stehule)
      </para>
 
      <para>
@@ -98,17 +143,23 @@
 
     <listitem>
      <para>
-      <command>SHOW TIME ZONE</> now outputs constant time zone offsets in <acronym>POSIX</>-style zone format (Tom Lane)
+      <link linkend="SQL-SHOW"><command>SHOW TIME ZONE</></link> now
+      outputs constant time zone offsets in <acronym>POSIX</>-style zone
+      format (Tom Lane)
      </para>
 
      <para>
-      Previously it was returned in <type>INTERVAL</> format.  The new format can be passed to <command>SET TIME ZONE</>.
+      Previously it was returned in <link
+      linkend="datatype-interval-output"><type>INTERVAL</></link> format.
+      The new format can be passed to <command>SET TIME ZONE</>.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Rename <command>EXPLAIN ANALYZE</>'s "total runtime" output to "execution time" (Tom Lane)
+      Rename <link linkend="SQL-EXPLAIN"><command>EXPLAIN
+      ANALYZE</></link>'s "total runtime" output to "execution time"
+      (Tom Lane)
      </para>
 
      <para>
@@ -118,17 +169,23 @@
 
     <listitem>
      <para>
-      Fix <function>ts_rank_cd()</> to ignore stripped lexemes (Alex Hill)
+      Fix <link
+      linkend="textsearch-functions-table"><function>ts_rank_cd()</></link>
+      to ignore stripped lexemes (Alex Hill)
      </para>
 
      <para>
-      Previously, stripped lexemes got a default location and could be considered if mixed with non-stripped lexemes.
+      Previously, stripped lexemes got a default location and could be
+      considered if mixed with non-stripped lexemes.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Prevent <literal>CHECK</> constraints from referencing system columns, except tableoid (Amit Kapila)
+      Prevent <link
+      linkend="ddl-constraints-check-constraints"><literal>CHECK</></link>
+      constraints from referencing system columns, except
+      <structname>tableoid</> (Amit Kapila)
      </para>
 
      <para>
@@ -138,54 +195,71 @@
 
     <listitem>
      <para>
-      Use the last specified <varname>recovery_target</> if multiple are specified (Heikki Linnakangas)
+      Use the last specified <link
+      linkend="recovery-target"><varname>recovery_target</></link> if
+      multiple are specified (Heikki Linnakangas)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Remove system column <structname>pg_class.reltoastidxid</> (Michael Paquier)
+      Remove system column <link
+      linkend="catalog-pg-class"><structname>pg_class.reltoastidxid</></link>
+      (Michael Paquier)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Remove support for native krb5 authentication (Magnus Hagander)
+      Remove support for native <application>krb5</> authentication
+      (Magnus Hagander)
      </para>
 
      <para>
-      The proper way to use Kerberos authentication is with <acronym>GSSAPI</>.
+      The proper way to use <application>Kerberos</> authentication is
+      with <acronym>GSSAPI</>.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Have libpq's <function>PQconnectdbParams()</> and <function>PQpingParams()</> functions accept "" as default (Adrian Vondendriesch)
+      Have libpq's <link
+      linkend="libpq-pqconnectdbparams"><function>PQconnectdbParams()</></link>
+      and <link
+      linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
+      functions process zero-length strings as defaults (Adrian
+      Vondendriesch)
      </para>
 
      <para>
-      Previously, these functions treated "" option values as defaults only in some cases.
+      Previously, these functions treated zero-length string values as
+      defaults only in some cases.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Remove system column <structname>pg_rewrite.ev_attr</> (Kevin Grittner)
+      Remove system column <link
+      linkend="catalog-pg-rewrite"><structname>pg_rewrite.ev_attr</></link>
+      (Kevin Grittner)
      </para>
 
      <para>
-      Per-column rules have not been supported since 7.3.
+      Per-column rules have not been supported since
+      <application>PostgreSQL</> 7.3.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      <application>Pg_upgrade</> now uses <option>-U</> to specify the user name (Bruce Momjian)
+      <link linkend="pgupgrade"><application>Pg_upgrade</></link> now
+      uses <option>-U</> to specify the user name (Bruce Momjian)
      </para>
 
      <para>
-      Previously, <option>-u</> was used to specify the user name.  Also spell the long option as <option>--username</>, again for consistency with other
-      tools.
+      Previously, <option>-u</> was used to specify the user name.
+      Also spell the long option as <option>--username</>, again for
+      consistency with other tools.
      </para>
     </listitem>
 
@@ -209,44 +283,57 @@
 
       <listitem>
        <para>
-        Have <command>VACUUM</> properly report dead but not removable rows to the statistics collector (Hari Babu)
+        Have <link linkend="SQL-VACUUM"><command>VACUUM</></link> properly
+        report dead but not removable rows to the statistics collector
+        (Hari Babu)
        </para>
 
        <para>
         Previously these were reported as live rows.
        </para>
       </listitem>
-
       <listitem>
        <para>
-        Allow background workers to be dynamically registered, started and terminated (Robert Haas)
+        Allow <link linkend="bgworker">background workers</link> to be
+        dynamically registered, started and terminated (Robert Haas)
        </para>
 
        <para>
-        <function>worker_spi_launch()</> in <application>worker_spi</> shows an example of its use.
+        <function>worker_spi_launch()</> in <application>worker_spi</>
+        shows an example of its use.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow dynamic allocation of shared memory segments (Robert Haas, Amit Kapila)
+        Allow dynamic allocation of shared memory segments (Robert Haas,
+        Amit Kapila)
+       </para>
+
+       <para>
+        This is illustrated in <link
+        linkend="test-shm-mq"><application>test_shm_mq</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve <acronym>SSL</> renegotiation handling (&Aacute;lvaro Herrera)
+        Improve <acronym>SSL</> renegotiation handling (&Aacute;lvaro
+        Herrera)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        During immediate shutdown, send uncatchable termination signals to child processes that have not already shutdown (MauMau,
+        During immediate shutdown, send uncatchable termination signals
+        to child processes that have not already shutdown (MauMau,
         &Aacute;lvaro Herrera)
        </para>
 
        <para>
-        This reduces the likelihood of orphaned child processes after postmaster shutdown.
+        This reduces the likelihood of orphaned child processes after
+        <link linkend="app-postmaster"><application>postmaster</></link>
+        shutdown.
        </para>
       </listitem>
 
@@ -265,28 +352,39 @@
 
       <listitem>
        <para>
-        Improve speed of multi-key <acronym>GIN</> lookups (Alexander Korotkov, Heikki Linnakangas)
+        Improve speed of multi-key <link
+        linkend="GIN"><acronym>GIN</></link> lookups (Alexander Korotkov,
+        Heikki Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce <acronym>GIN</> index size (Alexander Korotkov, Heikki Linnakangas)
+        Reduce <link linkend="GIN"><acronym>GIN</></link> index size
+        (Alexander Korotkov, Heikki Linnakangas)
        </para>
 
        <para>
-        Indexes upgraded via <application>pg_upgrade</> will work fine but will use the old larger <acronym>GIN</> format;  <command>REINDEX</> will recreate the index in the new
-        format.
+        Indexes upgraded via <link
+        linkend="pgupgrade"><application>pg_upgrade</></link> will work
+        fine but will use the old larger <acronym>GIN</> format; <link
+        linkend="SQL-REINDEX"><command>REINDEX</></link> will recreate
+        the index in the new format.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <acronym>GiST</> index support for <type>INET</> and <type>CIDR</> data types (Emre Hasegeli)
+        Add <link linkend="GiST"><acronym>GiST</></link> index support
+        for <link linkend="datatype-inet"><type>INET</></link> and
+        <link linkend="datatype-cidr"><type>CIDR</></link> data types
+        (Emre Hasegeli)
        </para>
 
        <para>
-        Such indexes improve subnet and supernet lookups and ordering comparisons.
+        Such indexes improve <link
+        linkend="cidr-inet-operators-table">subnet</link> and supernet
+        lookups and ordering comparisons.
        </para>
       </listitem>
 
@@ -298,7 +396,8 @@
 
       <listitem>
        <para>
-        Make the handling of interrupted B-tree page splits more robust (Heikki Linnakangas)
+        Make the handling of interrupted B-tree page splits more robust
+        (Heikki Linnakangas)
        </para>
       </listitem>
 
@@ -313,7 +412,8 @@
 
       <listitem>
        <para>
-        Allow multiple backends to simultaneously insert into <acronym>WAL</> buffers (Heikki Linnakangas)
+        Allow multiple backends to simultaneously insert into <link
+        linkend="wal"><acronym>WAL</></link> buffers (Heikki Linnakangas)
        </para>
 
        <para>
@@ -323,29 +423,40 @@
 
       <listitem>
        <para>
-        Conditionally write only the modified portion of updated rows to <acronym>WAL</> (Amit Kapila)
+        Conditionally write only the modified portion of updated rows to
+        <link linkend="wal"><acronym>WAL</></link> (Amit Kapila)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve performance of <literal>WINDOW</> aggregate functions (David Rowley, Florian Pflug, Tom Lane)
+        Improve performance of <link
+        linkend="syntax-window-functions"><literal>WINDOW</></link>
+        aggregate functions (David Rowley, Florian Pflug, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve speed of aggregates which use <type>NUMERIC</>s (Hadi Moshayedi)
+        Improve speed of aggregates which use <link
+        linkend="datatype-numeric"><type>NUMERIC</></link>s (Hadi
+        Moshayedi)
        </para>
 
        <para>
-        These include <function>sum()</>, <function>avg()</>, <function>stddev()</>, and <function>variance()</>.
+        These include <function>SUM()</>, <function>AVG()</>, <link
+        linkend="functions-aggregate-statistics-table"><function>STDDEV()</></link>,
+        and <function>VARIANCE()</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Freeze tuples when tables are written with <command>CLUSTER</> or <command>VACUUM FULL</> (Robert Haas, Andres Freund)
+        <link linkend="vacuum-for-wraparound">Freeze</link>
+        tuples when tables are written with <link
+        linkend="SQL-CLUSTER"><command>CLUSTER</></link> or <link
+        linkend="SQL-VACUUM"><command>VACUUM FULL</></link> (Robert Haas,
+        Andres Freund)
        </para>
 
        <para>
@@ -355,31 +466,39 @@
 
       <listitem>
        <para>
-        Improve speed of <command>COPY</> with <literal>DEFAULT</> <function>nextval()</> columns (Simon Riggs)
+        Improve speed of <link linkend="SQL-COPY"><command>COPY</></link>
+        with <literal>DEFAULT</> <link
+        linkend="functions-sequence-table"><function>nextval()</></link>
+        columns (Simon Riggs)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve speed of accesessing many different sequences in the same session (David Rowley)
+        Improve speed of accesessing many different <link
+        linkend="SQL-CREATESEQUENCE">sequences</link> in the same session
+        (David Rowley)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow sorting and btree index builds to use over four gigabytes of memory (Noah Misch)
+        Allow sorting and B-tree <link linkend="SQL-CREATEINDEX">index
+        builds</link> to use over four gigabytes of memory (Noah Misch)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce memory allocated by <literal>DO</> blocks (Tom Lane)
+        Reduce memory allocated by <link
+        linkend="SQL-DO"><literal>DO</></link> blocks (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have the optimizer be more aggressive in creating restrictions from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
+        Have the optimizer be more aggressive in creating restrictions
+        from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
        </para>
       </listitem>
 
@@ -389,8 +508,8 @@
        </para>
 
        <para>
-        This reduces memory consumption for backends accessing only a few tables, and improves performance for backend accessing many
-        tables.
+        This reduces memory consumption for backends accessing only a few
+        tables, and improves performance for backend accessing many tables.
        </para>
       </listitem>
 
@@ -405,23 +524,34 @@
 
       <listitem>
        <para>
-        Expose the estimation of number of changed tuples since last analyze (Mark Kirkwood)
+        Expose the estimation of number of changed tuples since last <link
+        linkend="vacuum-for-statistics">analyze</link> (Mark Kirkwood)
        </para>
 
        <para>
-        This appears in <structname>pg_stat_all_tables.n_mod_since_analyze</>.
+        This appears in <link
+        linkend="pg-stat-all-tables-view"><structname>pg_stat_all_tables.n_mod_since_analyze</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <structname>pg_stat_archiver</> system view to report <acronym>WAL</> archiver activity (Gabriele Bartolini)
+        Add <link
+        linkend="pg-stat-archiver-view"><structname>pg_stat_archiver</></link>
+        system view to report <link linkend="wal"><acronym>WAL</></link>
+        archiver activity (Gabriele Bartolini)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add xid and xmin to system views <structname>pg_stat_activity</> and <structname>pg_stat_replication</> (Christian Kruse)
+        Add <structname>xid</> and <link
+        linkend="ddl-system-columns"><structname>xmin</></link>
+        to system views <link
+        linkend="pg-stat-activity-view"><structname>pg_stat_activity</></link>
+        and <link
+        linkend="pg-stat-replication-view"><structname>pg_stat_replication</></link>
+        (Christian Kruse)
        </para>
       </listitem>
 
@@ -436,34 +566,43 @@
 
       <listitem>
        <para>
-        Add support for <acronym>SSL</> <acronym>ECDH</> key exchange (Marko Kreen)
+        Add support for <acronym>SSL</> <acronym>ECDH</> key exchange
+        (Marko Kreen)
        </para>
 
        <para>
-        Such keys are faster and have improved security over previous options.  New variable <varname>ssl_ecdh_curve</> controls the curve that is
-        used.
+        Such keys are faster and have improved security
+        over previous options.  New variable <link
+        linkend="guc-ssl-ecdh-curve"><varname>ssl_ecdh_curve</></link>
+        controls the curve that is used.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve the default <varname>ssl_ciphers</> ciphers (Marko Kreen)
+        Improve the default <link
+        linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> ciphers
+        (Marko Kreen)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow the server to specify the preferred <acronym>SSL</> cipher order (Marko Kreen)
+        Allow the server to specify the preferred <acronym>SSL</> cipher
+        order (Marko Kreen)
        </para>
 
        <para>
-        This is controlled by the new configuration parameter <varname>ssl_prefer_server_ciphers</>.
+        This is controlled by the new configuration parameter <link
+        linkend="guc-ssl-prefer-server-ciphers"><varname>ssl_prefer_server_ciphers</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <varname>log_connections</> show <acronym>SSL</> encryption information (Andreas Kunert)
+        Have <link
+        linkend="guc-log-connections"><varname>log_connections</></link>
+        show <acronym>SSL</> encryption information (Andreas Kunert)
        </para>
       </listitem>
 
@@ -478,18 +617,23 @@
 
       <listitem>
        <para>
-        Add <acronym>SQL</>-level command <command>ALTER SYSTEM</> command to edit the <filename>postgresql.conf</> configuration file (Amit Kapila)
+        Add <acronym>SQL</>-level command <link
+        linkend="SQL-ALTERSYSTEM"><command>ALTER SYSTEM</></link> command
+        to edit the <filename>postgresql.conf</> configuration file
+        (Amit Kapila)
        </para>
 
        <para>
-        Previously <filename>postgresql.conf</> could only be edited at the file system level.
+        Previously <filename>postgresql.conf</> could only be edited at
+        the file system level.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <varname>huge_pages</> configuration parameter to use huge memory pages on Linux (Christian Kruse,
-        Richard Poole, Abhijit Menon-Sen)
+        Add <link linkend="guc-huge-pages"><varname>huge_pages</></link>
+        configuration parameter to use huge memory pages on Linux
+        (Christian Kruse, Richard Poole, Abhijit Menon-Sen)
        </para>
 
        <para>
@@ -499,72 +643,97 @@
 
       <listitem>
        <para>
-        Show <acronym>PID</>s of lock holders and waiters and improve relation
-        information in <varname>log_lock_waits</> log messages (Christian Kruse)
+        Show <acronym>PID</>s of lock holders and
+        waiters and improve relation information in <link
+        linkend="guc-log-lock-waits"><varname>log_lock_waits</></link>
+        log messages (Christian Kruse)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add parameter <varname>autovacuum_work_mem</> to control the amount of memory used by autovacuum workers (Peter Geoghegan)
+        Add parameter <link
+        linkend="guc-autovacuum-work-mem"><varname>autovacuum_work_mem</></link>
+        to control the amount of memory used by autovacuum workers
+        (Peter Geoghegan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <varname>max_worker_processes</> to limit the number of background workers (Robert Haas)
+        Add <link
+        linkend="guc-max-worker-processes"><varname>max_worker_processes</></link>
+        to limit the number of background workers (Robert Haas)
        </para>
 
        <para>
-        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 the standby server to have the
+        required same number of worker processes as the primary.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add configuration parameter <varname>wal_log_hints</> to enable logging of hint bits (Sawada Masahiko)
+        Add configuration parameter <link
+        linkend="guc-wal-log-hints"><varname>wal_log_hints</></link>
+        to enable logging of hint bits (Sawada Masahiko)
        </para>
 
        <para>
-        Hint bits are not normally logged, except when checksums are enabled.  This is useful for tools like <application>pg_rewind</>.
+        Hint bits are not normally logged, except when checksums are
+        enabled.  This is useful for tools like <application>pg_rewind</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow printf-style space padding to be specified in <varname>log_line_prefix</> (David Rowley)
+        Allow printf-style space padding to be specified in <link
+        linkend="guc-log-line-prefix"><varname>log_line_prefix</></link>
+        (David Rowley)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add superuser-only <varname>session_preload_libraries</> configuration parameter to load libraries at session start (Peter Eisentraut)
+        Add superuser-only <link
+        linkend="guc-session-preload-libraries"><varname>session_preload_libraries</></link>
+        configuration parameter to load libraries at session start
+        (Peter Eisentraut)
        </para>
 
        <para>
-        Such libraries are auto-<command>LOAD</>'ed, unlike <varname>local_preload_libraries</>.
+        Such libraries are auto-<link
+        linkend="SQL-LOAD"><command>LOAD</></link>'ed, unlike <link
+        linkend="guc-local-preload-libraries"><varname>local_preload_libraries</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce server logging level when loading shared libraries (Peter Geoghegan)
+        Reduce server logging level when loading shared libraries (Peter
+        Geoghegan)
        </para>
 
        <para>
-        The previous level was <literal>LOG</>, which was too verbose for per-session libraries.
+        The previous level was <literal>LOG</>, which was too verbose
+        for per-session libraries.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Auto-tune <varname>effective_cache_size</> to be four-times shared buffers (Bruce Momjian, Tom Lane)
+        Auto-tune <link
+        linkend="guc-effective-cache-size"><varname>effective_cache_size</></link>
+        to be four-times shared buffers (Bruce Momjian, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Increase <varname>work_mem</> and <varname>maintenance_work_mem</> defaults by four-times (Bruce Momjian)
+        Increase <link
+        linkend="guc-work-mem"><varname>work_mem</></link> and <link
+        linkend="guc-maintenance-work-mem"><varname>maintenance_work_mem</></link>
+        defaults by four-times (Bruce Momjian)
        </para>
 
        <para>
@@ -574,18 +743,22 @@
 
       <listitem>
        <para>
-        Allow terabyte units to be specified for configuration variable values (Simon Riggs)
+        Allow terabyte units to be specified for configuration variable
+        values (Simon Riggs)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have Windows <acronym>ASCII</>-encoded databases and server process (e.g. postmaster) emit messages in the <envar>LC_CTYPE</>-defined language (Alexander Law,
+        Have Windows <acronym>ASCII</>-encoded databases and server process
+        (e.g.  <link linkend="app-postmaster">postmaster) emit messages
+        in the <envar>LC_CTYPE</></link>-defined language (Alexander Law,
         Noah Misch)
        </para>
 
        <para>
-        Previously these messages were output using the Windows <acronym>ANSI</> code page.
+        Previously these messages were output using the Windows
+        <acronym>ANSI</> code page.
        </para>
       </listitem>
 
@@ -602,20 +775,29 @@
 
       <listitem>
        <para>
-        Allow <filename>recovery.conf</> parameter <varname>min_recovery_apply_delay</> to force delayed replication (Robert
-        Haas, Fabr&iacute;zio de Royes Mello, Simon Riggs)
+        Allow <link
+        linkend="recovery-config"><filename>recovery.conf</></link>
+        parameter <link
+        linkend="min-recovery-apply-delay"><varname>min_recovery_apply_delay</></link>
+        to force delayed replication (Robert Haas, Fabr&iacute;zio de
+        Royes Mello, Simon Riggs)
        </para>
 
        <para>
-        This is useful for delaying replaying of user errors on standby servers.
+        This is useful for delaying replaying of user errors on standby
+        servers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <varname>recovery_target</> option <option>immediate</> option to replay <acronym>WAL</> stop recovery when a consistent state is reached, i.e.
-        <function>pg_stop_backup()</> (MauMau,
-        Heikki Linnakangas)
+        Add <link
+        linkend="recovery-target"><varname>recovery_target</></link>
+        option <option>immediate</> option to replay
+        <link linkend="wal"><acronym>WAL</></link> stop
+        recovery when a consistent state is reached, i.e.  <link
+        linkend="functions-admin-backup-table"><function>pg_stop_backup()</></link>
+        (MauMau, Heikki Linnakangas)
        </para>
       </listitem>
 
@@ -625,14 +807,20 @@
        </para>
 
        <para>
-        The timestamp reported by <function>pg_last_xact_replay_timestamp()</> now shows information about committed records, not commits being
-        replayed.  Recovering to restore points now replay the restore point, rather than stop just before the restore point.
+        The timestamp reported by <link
+        linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
+        now shows information about committed records, not commits being
+        replayed.  Recovering to restore points now replay the restore
+        point, rather than stop just before the restore point.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        <function>pg_switch_xlog()</> now clears the trailing unused space in the <acronym>WAL</> file (Heikki Linnakangas)
+        <link
+        linkend="functions-admin-backup-table"><function>pg_switch_xlog()</></link>
+        now clears the trailing unused space in the <acronym>WAL</> file
+        (Heikki Linnakangas)
        </para>
 
        <para>
@@ -642,30 +830,37 @@
 
       <listitem>
        <para>
-        Add replication slots to report the <acronym>WAL</> activity on streaming standbys (Andres Freund, Robert Haas)
+        Add <link linkend="streaming-replication-slots">replication
+        slots</link> to report the <acronym>WAL</> activity on streaming
+        standbys (Andres Freund, Robert Haas)
        </para>
 
        <para>
-        Replication slots allow preservation of resources like <acronym>WAL</> files on the
-        primary that are needed by standby servers.
+        Replication slots allow preservation of resources like
+        <acronym>WAL</> files on the primary that are needed by standby
+        servers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce spinlock contention during <acronym>WAL</> replay (Heikki Linnakangas)
+        Reduce spinlock contention during <acronym>WAL</> replay (Heikki
+        Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Report failure return codes from external recovery commands (Peter Eisentraut)
+        Report failure return codes from <link
+        linkend="archive-recovery-settings">external recovery commands</>
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Write <acronym>WAL</> records of running transactions more frequently (Andres Freund)
+        Write <acronym>WAL</> records of running transactions more
+        frequently (Andres Freund)
        </para>
 
        <para>
@@ -677,55 +872,70 @@
      </itemizedlist>
 
      <sect4>
-      <title>Logical Change-Set Extraction</title>
+      <title><link linkend="logicaldecoding">Logical Change-Set Extraction</></title>
 
       <para>
-       The new Logical change-set extraction feature allows database
+       Logical change-set extraction allows database
        changes to be optionally recorded in <emphasis>logical</> format
-       in the <acronym>WAL</>.  This format can be easily processed by external tools.
-       In previous releases, only binary changes were recorded in the
-       <acronym>WAL</>.  To implement this feature, the following changes were made:
+       in the <link linkend="wal"><acronym>WAL</></link>.  This format can
+       be easily processed by external tools.  In previous releases, only
+       binary changes were recorded in the <acronym>WAL</>.  To implement
+       this feature, the following changes were made:
       </para>
 
       <itemizedlist>
 
        <listitem>
         <para>
-         Add new "logical" <varname>wal_level</> to enable logical change-set encoding in <acronym>WAL</> (Andres Freund)
+         Add new <option>logical</> <link
+         linkend="guc-wal-level"><varname>wal_level</></link> to enable
+         logical change-set encoding in <acronym>WAL</> (Andres Freund)
         </para>
 
         <para>
-         This interacts with <literal>REPLICA IDENTITY</>.
+         This interacts with <link
+         linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link>.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add tool <application>pg_recvlogical</> to receive data logical decoding data (Andres Freund)
+         Allow <link
+         linkend="app-pgreceivexlog"><application>pg_recvlogical</></link>
+         to receive data logical decoding data (Andres Freund)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add <application>test_decoding</> module to illustrate logical decoding at the <acronym>SQL</> level (Andres Freund)
+         Add <link
+         linkend="test-decoding"><application>test_decoding</></link>
+         module to illustrate logical decoding at the <acronym>SQL</>
+         level (Andres Freund)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Allow logical decoding via the walsender interface ? (Andres Freund)
+         Allow logical decoding via the walsender interface ? (Andres
+         Freund)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add table-level parameter <literal>REPLICA IDENTITY</> to control logical replication (Andres Freund)
+         Add table-level parameter <link
+         linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link>
+         to control logical replication (Andres Freund)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add relation option <option>user_catalog_table</> to identify user-created tables involved in logical change-set encoding (Andres Freund)
+         Add relation option <link
+         linkend="SQL-CREATETABLE-storage-parameters"><option>user_catalog_table</></link>
+         to identify user-created tables involved in logical change-set
+         encoding (Andres Freund)
         </para>
        </listitem>
 
@@ -742,27 +952,34 @@
 
       <listitem>
        <para>
-        Add <literal>ROWS FROM</> syntax to allow horizontal concatenation of <literal>FROM</>-clause set-returning functions (Andrew Gierth)
+        Add <link linkend="queries-tablefunctions"><literal>ROWS
+        FROM</></link> syntax to allow horizontal concatenation of
+        <literal>FROM</>-clause set-returning functions (Andrew Gierth)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <literal>WITH ORDINALITY</> which numbers rows returned from <literal>FROM</>-clause functions (Andrew Gierth, David Fetter)
+        Add <link linkend="queries-tablefunctions"><literal>WITH
+        ORDINALITY</></link> which numbers rows returned from
+        <literal>FROM</>-clause functions (Andrew Gierth, David Fetter)
        </para>
 
        <para>
-        This is particularly useful for functions like <function>unnest()</>.
+        This is particularly useful for functions like
+        <function>unnest()</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <command>SELECT</> with an empty target list (Tom Lane)
+        Allow <link linkend="SQL-SELECT"><command>SELECT</></link> with
+        an empty target list (Tom Lane)
        </para>
 
        <para>
-        This was added for consistency, and so querying tables with no columns would not produce an error.
+        This was added for consistency, and so querying tables with no
+        columns would not produce an error.
        </para>
       </listitem>
 
@@ -777,7 +994,9 @@
 
       <listitem>
        <para>
-        Add <command>DISCARD SEQUENCES</> command to discard cached sequence information (Fabr&iacute;zio de Royes Mello, Robert Haas)
+        Add <link linkend="SQL-DISCARD"><command>DISCARD
+        SEQUENCES</></link> command to discard cached sequence information
+        (Fabr&iacute;zio de Royes Mello, Robert Haas)
        </para>
 
        <para>
@@ -788,47 +1007,55 @@
        <listitem>
         <para>
          Allow quoted strings matching the null string to be converted
-         to NULL in <command>COPY FROM</> in <literal>CSV</> mode (Ian Barwick, Michael Paquier)
+         to NULL in <link linkend="SQL-COPY"><command>COPY FROM</></link>
+         in <literal>CSV</> mode (Ian Barwick, Michael Paquier)
         </para>
 
         <para>
-         Previously only unquoted matching strings would be imported as
-         NULLs.
+         Previously only unquoted matching strings would be imported
+         as NULLs.
         </para>
        </listitem>
 
       <listitem>
        <para>
-        Issue warnings for <command>SET</> outside of a transaction block, as they have no effect (Bruce Momjian)
+        Issue warnings for <link linkend="SQL-SET"><command>SET</></link>
+        outside of a transaction block, as they have no effect (Bruce
+        Momjian)
        </para>
 
        <para>
-        The cases are <literal>SET LOCAL</>/<literal>CONSTRAINTS</>/<literal>TRANSACTION</> and <literal>ABORT</>.
+        The cases are <literal>SET
+        LOCAL</>/<literal>CONSTRAINTS</>/<literal>TRANSACTION</> and
+        <literal>ABORT</>.
        </para>
       </listitem>
 
      </itemizedlist>
 
      <sect4>
-      <title><command>EXPLAIN</></title>
+      <title><link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link></title>
 
       <itemizedlist>
 
        <listitem>
         <para>
-         Have <command>EXPLAIN ANALYZE</> output planning time (Andreas Karlsson)
+         Have <command>EXPLAIN ANALYZE</> output planning time (Andreas
+         Karlsson)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Have <command>EXPLAIN</> print the grouping columns in Agg and Group nodes (Tom Lane)
+         Have <command>EXPLAIN</> print the grouping columns in Agg and
+         Group nodes (Tom Lane)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Have <command>EXPLAIN ANALYZE</> show bitmap heap scan exact/lossy block information (Etsuro Fujita)
+         Have <command>EXPLAIN ANALYZE</> show bitmap heap scan exact/lossy
+         block information (Etsuro Fujita)
         </para>
        </listitem>
 
@@ -843,38 +1070,48 @@
 
       <listitem>
        <para>
-        Allow materialized views to be refreshed without blocking reads (Kevin Grittner)
+        Allow materialized views to be refreshed without blocking reads
+         (Kevin Grittner)
        </para>
 
        <para>
-        This is done with <command>REFRESH MATERIALIZED VIEW CONCURRENTLY</>.
+        This is done with <link
+        linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED
+        VIEW CONCURRENTLY</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow auto-updates on views where only some columns are auto-updateable (Dean Rasheed)
+        Allow <link linkend="SQL-CREATEVIEW-updatable-views">auto-updates
+        on views</link> where only some columns are auto-updateable
+        (Dean Rasheed)
        </para>
 
        <para>
-        Previously the presence of a non-auto-updateable column prevented all columns from being auto-updated.  Deletes are now supported
+        Previously the presence of a non-auto-updateable column prevented
+        all columns from being auto-updated.  Deletes are now supported
         on suitable views even if no auto-updateable columns are present.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow control over whether <command>INSERT</>s and <command>UPDATE</>s can add rows to an auto-updateable view that would no longer appear in the view (Dean Rasheed)
+        Allow control over whether <command>INSERT</>s and
+        <command>UPDATE</>s can add rows to an auto-updateable view that
+        would no longer appear in the view (Dean Rasheed)
        </para>
 
        <para>
-        This is controlled with the new <literal>WITH CHECK OPTION</>.
+        This is controlled with the new <link
+        linkend="SQL-CREATEVIEW"><literal>WITH CHECK OPTION</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow security barrier views to be automatically updateable (Dean Rasheed)
+        Allow <link linkend="rules-privileges">security barrier views</>
+        to be automatically updateable (Dean Rasheed)
        </para>
       </listitem>
 
@@ -891,35 +1128,44 @@
 
       <listitem>
        <para>
-        Allow triggers on foreign tables (Ronan Dunklau)
+        Allow triggers on <link linkend="SQL-CREATEFOREIGNTABLE">foreign
+        tables</> (Ronan Dunklau)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Fix <command>DROP IF EXISTS</> to more consistently not error for non-existent objects (Pavel Stehule,  Dean Rasheed)
+        Fix <command>DROP IF EXISTS</> to more consistently not error
+        for non-existent objects (Pavel Stehule,  Dean Rasheed)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve the internal definition of system relations (Andres Freund, Robert Haas)
+        Improve the internal definition of system relations (Andres Freund,
+        Robert Haas)
        </para>
 
        <para>
-        Previously, relations moved into the system catalog schema could not be modified.
+        Previously, relations moved into the system catalog schema could
+        not be modified.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <command>ALTER TABLESPACE</> options to be also set by <command>CREATE TABLESPACE</> (Vik Fearing)
+        Allow <link linkend="SQL-ALTERTABLESPACE"><command>ALTER
+        TABLESPACE</></link> options to be also set by <link
+        linkend="SQL-CREATETABLESPACE"><command>CREATE TABLESPACE</></link>
+        (Vik Fearing)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <command>CREATE AGGREGATE</> to supply the size of the aggregate's transition state data (Hadi Moshayedi)
+        Allow <link linkend="SQL-CREATEAGGREGATE"><command>CREATE
+        AGGREGATE</></link> to supply the size of the aggregate's
+        transition state data (Hadi Moshayedi)
        </para>
       </listitem>
 
@@ -932,24 +1178,33 @@
 
       <listitem>
        <para>
-        Allow moving groups of objects from one tablespace to another using <command>ALTER TABLESPACE</> ... <literal>MOVE</> (Stephen Frost)
+        Allow moving groups of objects from one tablespace to another
+        using <link linkend="SQL-ALTERTABLESPACE"><command>ALTER
+        TABLESPACE</></link> ... <literal>MOVE</> (Stephen Frost)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow the changing of foreign key constraint  via <command>ALTER TABLE</> ... <literal>ALTER CONSTRAINT</> (Simon Riggs)
+        Allow the changing of foreign key constraint  via <link
+        linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></link>
+        ... <literal>ALTER CONSTRAINT</> (Simon Riggs)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce lock levels of some <command>ALTER TABLE</> commands (Simon Riggs, Noah Misch)
+        Reduce lock levels of some <link
+        linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></link> commands
+        (Simon Riggs, Noah Misch)
        </para>
 
        <para>
-        Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN SET STATISTICS</>, <literal>ALTER COLUMN</>
-        <literal>SET</> <option>(attribute_option)</>, <literal>ALTER COLUMN RESET</> <option>(attribute_option)</>.
+        Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER
+        ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN
+        SET STATISTICS</>, <literal>ALTER COLUMN</> <literal>SET</>
+        <option>(attribute_option)</>, <literal>ALTER COLUMN RESET</>
+        <option>(attribute_option)</>.
        </para>
       </listitem>
 
@@ -966,35 +1221,48 @@
 
       <listitem>
        <para>
-        Fully-implement the line data type (Peter Eisentraut)
+        Fully-implement the <link
+        linkend="datatype-line"><type>line</></link> data type (Peter
+        Eisentraut)
        </para>
 
        <para>
-        The line <emphasis>segment</> data type (<type>LSEG</>) has always been fully supported.
+        The line <emphasis>segment</> data type (<link
+        linkend="datatype-lseg"><type>LSEG</></link>) has always been
+        fully supported.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <type>PG_LSN</> data type to represent a <acronym>WAL</> log sequence number (<acronym>LSN</>) (Robert Haas, Michael Paquier)
+        Add <link linkend="datatype-pg-lsn"><type>PG_LSN</></link>
+        data type to represent a <acronym>WAL</> log sequence number
+        (<acronym>LSN</>) (Robert Haas, Michael Paquier)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow single-point <type>POLYGON</>s to be converted to circles (Bruce Momjian)
+        Allow single-point <link
+        linkend="datatype-polygon"><type>POLYGON</></link>s to be converted
+        to <link linkend="datatype-circle"><type>CIRCLE</></link>s
+        (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow 5+ digit years for non-<acronym>ISO</> timestamp/date strings, where appropriate (Bruce Momjian)
+        Allow 5+ digit years for non-<acronym>ISO</> <link
+        linkend="datatype-datetime"><type>TIMESTAMP</></link> and
+        <type>DATE</> strings, where appropriate (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add checks for overflow/underflow of <type>INTERVAL</> values (Bruce Momjian)
+        Add checks for overflow/underflow of <link
+        linkend="datatype-datetime"><type>INTERVAL</></link> values
+        (Bruce Momjian)
        </para>
       </listitem>
 
@@ -1007,29 +1275,39 @@
 
        <listitem>
         <para>
-         Add structured (non-text) data type (jsonb) for storing <type>JSON</> data (Oleg Bartunov, Teodor Sigaev,
-         Alexander Korotkov, Peter Geoghegan, and Andrew Dunstan)
+         Add structured (non-text) data type (<link
+         linkend="datatype-json"><type>JSONB</></link>) for storing
+         <type>JSON</> data (Oleg Bartunov, Teodor Sigaev, Alexander
+         Korotkov, Peter Geoghegan, and Andrew Dunstan)
         </para>
 
         <para>
-         This allows for faster access to values in the <type>JSON</> document and faster and more useful indexing of <type>JSON</>.
+         This allows for faster access to values in the <type>JSON</>
+         document and faster and more useful indexing of <type>JSON</>.
+         <type>JSONB</> are also typed as appropriate scalar SQL types.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add new <type>JSON</> functions to allow for the construction of arbitrarily complex json trees (Andrew Dunstan, Laurence Rowe)
+         Add new <type>JSON</> functions to allow for the construction
+         of arbitrarily complex json trees (Andrew Dunstan, Laurence Rowe)
         </para>
 
         <para>
-         New functions include <function>json_array_elements_text()</>, <function>json_build_array()</>, <function>json_object()</>, <function>json_object_agg()</>, <function>json_to_record()</>,
+         New functions include <link
+         linkend="functions-json-processing-table"><function>json_array_elements_text()</></link>,
+         <function>json_build_array()</>, <function>json_object()</>,
+         <function>json_object_agg()</>, <function>json_to_record()</>,
          and <function>json_to_recordset()</>.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add <function>json_typeof()</> to return the data type of a <type>JSON</> value (Andrew Tipton)
+         Add <link
+         linkend="functions-json-processing-table"><function>json_typeof()</></link>
+         to return the data type of a <type>JSON</> value (Andrew Tipton)
         </para>
        </listitem>
 
@@ -1047,7 +1325,10 @@
 
       <listitem>
        <para>
-        Add <function>pg_sleep_for(interval)</> and <function>pg_sleep_until(timestamp)</> to specify sophisticated delays (Vik Fearing, Julien Rouhaud)
+        Add <link
+        linkend="functions-datetime-delay"><function>pg_sleep_for(interval)</></link>
+        and <function>pg_sleep_until(timestamp)</> to specify sophisticated
+        delays (Vik Fearing, Julien Rouhaud)
        </para>
 
        <para>
@@ -1057,55 +1338,74 @@
 
       <listitem>
        <para>
-        Add <function>cardinality()</> function for arrays (Marko Tiikkaja)
+        Add <link
+        linkend="array-functions-table"><function>cardinality()</></link>
+        function for arrays (Marko Tiikkaja)
        </para>
 
        <para>
-        This returns the total number of elements in the array, or zero for an array with no elements.
+        This returns the total number of elements in the array, or zero
+        for an array with no elements.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <acronym>SQL</> functions to allow large object reads/writes at arbitrary offsets (Pavel Stehule)
+        Add <acronym>SQL</> functions to allow <link
+        linkend="lo-interfaces">large object reads/writes</link> at
+        arbitrary offsets (Pavel Stehule)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <function>unnest()</> to take multiple arguments, which are individually unnested then horizontally concatenated (Andrew Gierth)
+        Allow <link
+        linkend="array-functions-table"><function>unnest()</></link>
+        to take multiple arguments, which are individually unnested then
+        horizontally concatenated (Andrew Gierth)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add functions to construct times, dates, timestamps, timestamptzs, and intervals from individual values, rather than strings (Pavel Stehule)
+        Add functions to construct <type>time</>s, <type>date</>s,
+        <type>timestamp</>s, <type>timestamptz</>s, and <type>interval</>s
+        from individual values, rather than strings (Pavel Stehule)
        </para>
 
        <para>
-        The functions being with "make_", e.g. <function>make_date()</>.
+        The functions being with <literal>make_</>, e.g. <link
+        linkend="functions-datetime-table"><function>make_date()</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <function>to_char(<literal>TZ</>)</> return the proper value for constant time zone offsets (Tom Lane)
+        Have <link
+        linkend="functions-formatting-table"><function>to_char(<literal>TZ</>)</></link>
+        return the proper value for constant time zone offsets (Tom Lane)
        </para>
 
        <para>
-        Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned NULL if the <literal>TIME ZONE</> was set to a constant like <literal>-4</>.
+        Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned
+        NULL if the <literal>TIME ZONE</> was set to a constant like
+        <literal>-4</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add timezone offset output option <literal>OF</> to <function>to_char()</> (Bruce Momjian)
+        Add timezone offset output option <literal>OF</> to <link
+        linkend="functions-formatting-table"><function>to_char()</></link>
+        (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve the random seed used for <function>random()</> (Honza Horak)
+        Improve the random seed used for <link
+        linkend="functions-math-random-table"><function>random()</></link>
+        (Honza Horak)
        </para>
       </listitem>
 
@@ -1118,34 +1418,48 @@
 
       <listitem>
        <para>
-        Add functions for error-free <structname>pg_class</>, <structname>pg_proc</>, <structname>pg_type</>, and <structname>pg_operator</> lookups (Yugo Nagata, Nozomi Anzai, Robert Haas)
+        Add functions for error-free <structname>pg_class</>,
+        <structname>pg_proc</>, <structname>pg_type</>, and
+        <structname>pg_operator</> lookups (Yugo Nagata, Nozomi Anzai,
+        Robert Haas)
        </para>
 
        <para>
-        For example, <function>to_regclass()</> does error-free lookups of <structname>pg_class</>, and returns NULL for lookup failures.
+        For example, <link
+        linkend="functions-info-catalog-table"><function>to_regclass()</></link>
+        does error-free lookups of <structname>pg_class</>, and returns
+        NULL for lookup failures.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add function <function>pg_filenode_relation()</> to allow for more efficient
-        filenode to relation lookups  (Andres Freund)
+        Add function <link
+        linkend="functions-admin-dblocation"><function>pg_filenode_relation()</></link>
+        to allow for more efficient filenode to relation lookups  (Andres
+        Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <structname>information_schema</> column <structname>parameters.parameter_default</> (Peter Eisentraut)
+        Add <link
+        linkend="information-schema"><structname>information_schema</></link>
+        column <link
+        linkend="infoschema-parameters"><structname>parameters.parameter_default</></link>
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <structname>information_schema.schemata</> show all accessible schema (Peter Eisentraut)
+        Have <link
+        linkend="infoschema-schemata"><structname>information_schema.schemata</></link>
+        show all accessible schema (Peter Eisentraut)
        </para>
 
        <para>
-        Previously it only showed _owned_ schemas.
+        Previously it only showed <emphasis>owned</> schemas.
        </para>
       </listitem>
 
@@ -1160,21 +1474,31 @@
 
       <listitem>
        <para>
-        Add aggregates <function>percentile_cont()</>, <function>percentile_disc()</>, <function>rank()</>, <function>dense_rank()</>, <function>percent_rank()</>, <function>cume_dist()</>, and <function>mode()</> (Atri Sharma, Andrew
-        Gierth)
+        Add aggregates <link
+        linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
+        <function>percentile_disc()</>, <link
+        linkend="functions-hypothetical-table"><function>rank()</></link>,
+        <function>dense_rank()</>, <function>percent_rank()</>,
+        <function>cume_dist()</>, and <link
+        linkend="functions-orderedset-table"><function>mode()</></link>
+        (Atri Sharma, Andrew Gierth)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add control over which values are passed into
-        aggregate functions using the <literal>FILTER</> clause (David Fetter)
+        Add control over which values are passed
+        into aggregate functions using the <link
+        linkend="syntax-aggregates"><literal>FILTER</></link> clause
+        (David Fetter)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Support ordered-set (<literal>WITHIN GROUP</>) aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
+        Support ordered-set (<link
+        linkend="syntax-aggregates"><literal>WITHIN GROUP</></link>)
+        aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
        </para>
 
        <para>
@@ -1184,13 +1508,16 @@
 
       <listitem>
        <para>
-        Allow polymorphic aggregates to have non-polymorphic state data types ? (Tom Lane)
+        Allow polymorphic aggregates to have non-polymorphic state data
+        types ? (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <literal>VARIADIC</> aggregate functions (Tom Lane)
+        Allow <link
+        linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link>
+        aggregate functions (Tom Lane)
        </para>
       </listitem>
 
@@ -1203,37 +1530,47 @@
    <sect3>
     <title>Server-Side Languages</title>
 
-    <sect4>
-     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
+    <itemizedlist>
 
-     <itemizedlist>
+     <listitem>
+      <para>
+       Add event trigger support to <link linkend="plperl">PL/Perl</>
+       and <link linkend="pltcl">PL/Tcl</> (Dimitri Fontaine)
+      </para>
+     </listitem>
 
-      <listitem>
-       <para>
-        Add event trigger support to PL/Perl and PL/Tcl (Dimitri Fontaine)
-       </para>
-      </listitem>
+    </itemizedlist>
 
-     </itemizedlist>
+    <sect4>
+     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
 
      <itemizedlist>
 
       <listitem>
        <para>
-        Add ability to store the PL/PgSQL call stack into a variable using <literal>PG_CONTEXT</> (Pavel Stehule, Stephen Frost)
+        Add ability to store the PL/PgSQL
+        call stack into a variable using <link
+        linkend="plpgsql-get-diagnostics-context"><literal>PG_CONTEXT</></link>
+        (Pavel Stehule, Stephen Frost)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add option <option>print_strict_params</> to output parameters passed to
-        queries generating <literal>STRICT</> errors (Marko Tiikkaja)
+        Add option <link
+        linkend="plpgsql-statements-assignment"><option>print_strict_params</></link>
+        to output parameters passed to queries generating <link
+        linkend="plpgsql-statements-sql-onerow"><literal>STRICT</></link>
+        errors (Marko Tiikkaja)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add option to enable additional PL/pgSQL errors and warnings (Marko Tiikkaja, Petr Jelinek)
+        Add variables <link
+        linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</></link>
+        and <varname>plpgsql.extra_errors</>to enable additional PL/pgSQL
+        warnings and errors (Marko Tiikkaja, Petr Jelinek)
        </para>
 
        <para>
@@ -1252,7 +1589,8 @@
 
       <listitem>
        <para>
-        Handle domains over arrays like plain arrays in PL/python (Rodolfo Campero)
+        Handle domains over arrays like plain arrays in PL/Python
+        (Rodolfo Campero)
        </para>
 
        <para>
@@ -1262,11 +1600,12 @@
 
       <listitem>
        <para>
-        Convert <type>NUMERIC</>s to "decimal" values in PL/Python (Szymon Guz, Ronan Dunklau)
+        Convert <link linkend="datatype-numeric"><type>NUMERIC</></link>s
+        to <type>decimal</> values in PL/Python (Szymon Guz, Ronan Dunklau)
        </para>
 
        <para>
-        Previously these were converted to <literal>float</>s.
+        Previously these were converted to <type>float</>s.
        </para>
       </listitem>
 
@@ -1282,13 +1621,17 @@
 
       <listitem>
        <para>
-        Add libpq function <function>PQhostaddr()</> to return the server's <acronym>IP</> address (Fujii Masao)
+        Add libpq function <link
+        linkend="libpq-pqhostaddr"><function>PQhostaddr()</></link>
+        to return the server's <acronym>IP</> address (Fujii Masao)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Make libpq's <function>PQconndefaults()</> ignore invalid service files (Steve Singer, Bruce Momjian)
+        Make libpq's <link
+        linkend="libpq-pqconndefaults"><function>PQconndefaults()</></link>
+        ignore invalid service files (Steve Singer, Bruce Momjian)
        </para>
 
        <para>
@@ -1298,13 +1641,17 @@
 
       <listitem>
        <para>
-        Allow libpq to support <acronym>TLS</> versions beyond <literal>TLSv1</> (Marko Kreen)
+        Allow libpq to support <acronym>TLS</> versions beyond
+        <literal>TLSv1</> (Marko Kreen)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Document that libpq's <function>PQclientEncoding()</> returns -1 for an encoding lookup failure (Bruce Momjian)
+        Document that libpq's <link
+        linkend="libpq-pqclientencoding"><function>PQclientEncoding()</></link>
+        returns <literal>-1</> for an encoding lookup failure (Bruce
+        Momjian)
        </para>
       </listitem>
 
@@ -1319,13 +1666,17 @@
 
       <listitem>
        <para>
-        Add createuser <option>-g</> to specify role membership (Chistopher Browne)
+        Add <link
+        linkend="APP-CREATEUSER"><application>createuser</></link>
+        <option>-g</> to specify role membership (Chistopher Browne)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow vacuumdb <option>--analyze-in-stages</> to analyze in stages of increasing granularity (Peter Eisentraut)
+        Allow <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
+        <option>--analyze-in-stages</> to analyze in stages of increasing
+        granularity (Peter Eisentraut)
        </para>
 
        <para>
@@ -1335,41 +1686,54 @@
 
       <listitem>
        <para>
-        Allow <application>pg_xlogdump</> to report a live log stream with <option>--follow</> (Heikki Linnakangas)
+        Allow <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
+        to report a live log stream with <option>--follow</> (Heikki
+        Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <command>pg_resetxlog -n</> output current and potentially changed values (Rajeev Rastogi)
+        Have <link linkend="APP-PGRESETXLOG"><command>pg_resetxlog
+        -n</></link> output current and potentially changed values
+        (Rajeev Rastogi)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <function>sizeof()</> in ecpg C array definitions (Michael Meskes)
+        Allow <function>sizeof()</> in <link linkend="ecpg">ecpg</link>
+        C array definitions (Michael Meskes)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have ecpg properly handle nesting requirements in C and <acronym>SQL</> mode for C-style comments (Michael Meskes)
+        Have <link linkend="ecpg">ecpg</link> properly handle nesting
+        requirements in C and <acronym>SQL</> mode for C-style comments
+        (Michael Meskes)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <application>pg_ctl</> return '4' for an inaccessible data directory specification (Amit Kapila, Bruce Momjian)
+        Have <link linkend="app-pg-ctl"><application>pg_ctl</></link>
+        return <literal>4</> for an inaccessible data directory
+        specification (Amit Kapila, Bruce Momjian)
        </para>
 
        <para>
-        This more closely matches the Linux Standard Base Core Specification.
+        This more closely matches the Linux Standard Base (<acronym>LSB</>)
+        Core Specification.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        On Windows, interpret <application>pg_ctl</>'s non-absolute path <option>-D</> directories relative to <application>pg_ctl</>'s current directory (Kumar Rajeev Rastogi)
+        On Windows, interpret <link
+        linkend="app-pg-ctl"><application>pg_ctl</></link>'s non-absolute
+        path <option>-D</> directories relative to <application>pg_ctl</>'s
+        current directory (Kumar Rajeev Rastogi)
        </para>
       </listitem>
 
@@ -1382,19 +1746,23 @@
 
       <listitem>
        <para>
-        Allow field wrapping to <application>psql</>'s "extended" mode (Sergey Muraviov)
+        Allow field wrapping to <application>psql</>'s "extended" mode
+        (Sergey Muraviov)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Suppress "No rows" in <application>psql</> expanded mode when the footer is disabled (Bruce Momjian)
+        Suppress "No rows" in <application>psql</> <link
+        linkend="APP-PSQL-meta-commands"><option>expanded</></link>
+        mode when the footer is disabled (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow Control-C to abort <application>psql</> hung at connection startup (Peter Eisentraut)
+        Allow Control-C to abort <application>psql</> hung at connection
+        startup (Peter Eisentraut)
        </para>
       </listitem>
 
@@ -1407,79 +1775,96 @@
 
        <listitem>
         <para>
-         Have <application>psql</> \db+ show tablespace options (Magnus Hagander)
+         Have <application>psql</> <command>\db+</> show tablespace options
+         (Magnus Hagander)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Have <application>psql</> \do+ display the functions which implement the operators (Marko Tiikkaja)
+         Have <application>psql</> <command>\do+</> display the functions
+         which implement the operators (Marko Tiikkaja)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Have <application>psql</> \d+ output an <literal>OID</> line only if an oid column exists in a table (Bruce Momjian)
+         Have <application>psql</> <command>\d+</> output an
+         <literal>OID</> line only if an oid column exists in a table
+         (Bruce Momjian)
         </para>
 
         <para>
-         Previously, the presence or absence of an oid column was always reported.
+         Previously, the presence or absence of an oid column was always
+         reported.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Have \d display disabled system triggers (Bruce Momjian)
+         Have <command>\d</> display disabled system triggers (Bruce
+         Momjian)
         </para>
 
         <para>
-         Previously if you disabled all triggers, only user triggers would show as disabled.
+         Previously if you disabled all triggers, only user triggers
+         would show as disabled.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Fix <application>psql</> \copy to no longer require a space between 'stdin' and a semicolon (Etsuro Fujita)
+         Fix <application>psql</> <command>\copy</> to no longer require
+         a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Output the row count at the end of <application>psql</> \copy just like <command>COPY</> (Kumar Rajeev Rastogi)
+         Output the row count at the end of
+         <application>psql</> <command>\copy</> just like <link
+         linkend="SQL-COPY"><command>COPY</></link> (Kumar Rajeev Rastogi)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Fix <application>psql</> \conninfo to display the server's <acronym>IP</> address for clients that connect using 'hostaddr' (Fujii Masao)
+         Fix <application>psql</> <command>\conninfo</> to display the
+         server's <acronym>IP</> address for clients that connect using
+         <literal>hostaddr</> (Fujii Masao)
         </para>
 
         <para>
-         Previously \conninfo could not display the server's <acronym>IP</> address in such cases.
+         Previously <command>\conninfo</> could not display the server's
+         <acronym>IP</> address in such cases.
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Mention the <acronym>SSL</> protocol version in <application>psql</>'s \conninfo (Marko Kreen)
+         Mention the <acronym>SSL</> protocol version in
+         <application>psql</>'s <command>\conninfo</> (Marko Kreen)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Add <application>psql</> tab completion for \pset (Pavel Stehule)
+         Add <application>psql</> tab completion for <command>\pset</>
+         (Pavel Stehule)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         Allow <application>psql</> \pset with no arguments to show all settings (Gilles Darold)
+         Allow <application>psql</> <command>\pset</> with no arguments
+         to show all settings (Gilles Darold)
         </para>
        </listitem>
 
        <listitem>
         <para>
-         In <application>psql</>, output the written history file name (\s) without adding an absolute path prefix (Tom Lane)
+         In <application>psql</>, output the written history file name
+         (<command>\s</>) without adding an absolute path prefix (Tom Lane)
         </para>
 
         <para>
@@ -1500,7 +1885,10 @@
 
       <listitem>
        <para>
-        Allow <application>pg_restore</> options <option>-I</>, <option>-P</>, <option>-T</> and <option>-n</> to be specified multiple times (Heikki Linnakangas)
+        Allow <link
+        linkend="APP-PGRESTORE"><application>pg_restore</></link> options
+        <option>-I</>, <option>-P</>, <option>-T</> and <option>-n</>
+        to be specified multiple times (Heikki Linnakangas)
        </para>
 
        <para>
@@ -1510,12 +1898,17 @@
 
       <listitem>
        <para>
-        Add <literal>IF EXISTS</> clauses when removing old objects during dump and restore (Pavel Stehule)
+        Add <literal>IF EXISTS</> clauses when removing old objects during
+        dump and restore (Pavel Stehule)
        </para>
 
        <para>
-        This suppresses errors when removing old objects.  The new <option>--if-exists</> option to <application>pg_dump</>, <application>pg_dumpall</>, and <application>pg_restore</> is only
-        available when <option>--clean</> is also specified.
+        This suppresses errors when removing old objects.
+        The new <option>--if-exists</> option to <link
+        linkend="APP-PGDUMP"><application>pg_dump</></link>, <link
+        linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, and
+        <link linkend="APP-PGRESTORE"><application>pg_restore</></link>
+        is only available when <option>--clean</> is also specified.
        </para>
       </listitem>
 
@@ -1524,23 +1917,27 @@
     </sect4>
 
     <sect4>
-     <title><application>pg_basebackup</></title>
+     <title><link linkend="app-pgbasebackup"><application>pg_basebackup</></link></title>
 
      <itemizedlist>
 
       <listitem>
        <para>
-        Add <application>pg_basebackup</> option <option>--xlogdir</> to specify the <filename>pg_xlog</> direction location (Haribabu Kommi)
+        Add <application>pg_basebackup</> option <option>--xlogdir</>
+        to specify the <filename>pg_xlog</> direction location (Haribabu
+        Kommi)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow <application>pg_basebackup</> to relocate tablespaces in the backup copy (Steeve Lennmark)
+        Allow <application>pg_basebackup</> to relocate tablespaces in
+        the backup copy (Steeve Lennmark)
        </para>
 
        <para>
-        This is particularly useful for using <application>pg_basebackup</> on the same machine as the primary.
+        This is particularly useful for using <application>pg_basebackup</>
+        on the same machine as the primary.
        </para>
       </listitem>
 
@@ -1550,7 +1947,8 @@
        </para>
 
        <para>
-        This can be controlled with the <application>pg_basebackup</> <option>--max-rate</> parameter.
+        This can be controlled with the <application>pg_basebackup</>
+        <option>--max-rate</> parameter.
        </para>
       </listitem>
 
@@ -1567,7 +1965,8 @@
 
       <listitem>
        <para>
-        Improve the way tuples are frozen, to preserve forensic information (Robert Haas, Andres Freund)
+        Improve the way tuples are frozen, to preserve forensic information
+        (Robert Haas, Andres Freund)
        </para>
 
        <para>
@@ -1577,17 +1976,21 @@
 
       <listitem>
        <para>
-        No longer require function prototypes for function marked with the <function>PG_FUNCTION_INFO_V1</> macro (Peter Eisentraut)
+        No longer require function prototypes for function marked with the
+        <link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></link>
+        macro (Peter Eisentraut)
        </para>
 
        <para>
-        This eliminates needless boilerplate prototypes whose lack generates compiler warnings.
+        This eliminates needless boilerplate prototypes whose lack
+        generates compiler warnings.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Remove SnapshotNow and HeapTupleSatisfiesNow (Robert Haas)
+        Remove <function>SnapshotNow()</> and
+        <function>HeapTupleSatisfiesNow()</> (Robert Haas)
        </para>
 
        <para>
@@ -1598,54 +2001,58 @@
 
       <listitem>
        <para>
+        Add <acronym>API</> for memory allocations over four gigabytes
+        (Noah Misch)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <acronym>API</> for memory allocations over four gigabytes (Noah Misch)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>psprintf()</> to simplify memory allocation during string composition (Peter Eisentraut, Tom Lane)
+        Add <function>psprintf()</> to simplify memory allocation during
+        string composition (Peter Eisentraut, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <function>printf()</> modifier "z" to specify <type>size_t</> values (Andres Freund)
+        Add <function>printf()</> modifier "z" to specify <type>size_t</>
+        values (Andres Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change <acronym>API</> of <function>appendStringInfoVA()</> to better use <function>vsnprintf()</> (David Rowley, Tom Lane)
+        Change <acronym>API</> of <function>appendStringInfoVA()</>
+        to better use <function>vsnprintf()</> (David Rowley, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow new types of external toast datums to be created (Andres Freund)
+        Allow new types of external toast datums to be created (Andres
+        Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add single-reader, single-writer, lightweight shared message queue (Robert Haas)
+        Add single-reader, single-writer, lightweight shared message queue
+        (Robert Haas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki Linnakangas)
+        Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki
+        Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Remove spinlock support for unsupported platforms <acronym>SINIX</>, Sun3, and <acronym>NS32K</> (Robert Haas)
+        Remove spinlock support for unsupported platforms
+        <productname>SINIX</>, <productname>Sun3</>, and
+        <productname>NS32K</> (Robert Haas)
        </para>
       </listitem>
 
@@ -1657,25 +2064,30 @@
 
       <listitem>
        <para>
-        Reduce the number of semaphores required by <option>--disable-spinlocks</> (Robert Haas)
+        Reduce the number of semaphores required by
+        <option>--disable-spinlocks</> (Robert Haas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Rewrite <application>duplicate_oids</> Unix shell script in <application>Perl</> (Andrew Dunstan)
+        Rewrite <application>duplicate_oids</> Unix shell script in
+        <application>Perl</> (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add Test Anything Protocol (<acronym>TAP</>) tests for client programs (Peter Eisentraut)
+        Add Test Anything Protocol (<acronym>TAP</>) tests for client
+        programs (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add make targets <option>check-tests</> and <option>installcheck-tests</> which allow per-test specification (Andrew Dunstan)
+        Add make targets <option>check-tests</> and
+        <option>installcheck-tests</> which allow per-test specification
+        (Andrew Dunstan)
        </para>
       </listitem>
 
@@ -1691,7 +2103,8 @@
 
       <listitem>
        <para>
-        Improve support for <envar>VPATH</> builds of <acronym>PGXS</> modules  (Cédric Villemain, Andrew Dunstan)
+        Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
+        modules  (Cédric Villemain, Andrew Dunstan)
        </para>
       </listitem>
 
@@ -1703,7 +2116,8 @@
 
       <listitem>
        <para>
-        Add configure flag that appends custom text to the <envar>PG_VERSION</> string (Oskari Saarenmaa)
+        Add configure flag that appends custom text to the
+        <envar>PG_VERSION</> string (Oskari Saarenmaa)
        </para>
 
        <para>
@@ -1719,19 +2133,21 @@
 
       <listitem>
        <para>
-        Various security and sanity fixes reported by the Coverity scanner (Stephen Frost)
+        Various security and sanity fixes reported by the
+        <productname>Coverity</> scanner (Stephen Frost)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve valgrind error reporting (Noah Misch)
+        Improve <application>valgrind</> error reporting (Noah Misch)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve Emacs configuration file <filename>emacs.samples</> (Peter Eisentraut)
+        Improve <application>Emacs</> configuration file
+        <filename>emacs.samples</> (Peter Eisentraut)
        </para>
 
        <para>
@@ -1741,17 +2157,20 @@
 
       <listitem>
        <para>
-        Allow pgindent to be supplied a command-line list of typedefs (Bruce Momjian)
+        Allow <application>pgindent</> to be supplied a command-line list
+        of typedefs (Bruce Momjian)
        </para>
 
        <para>
-        pgindent is also now smarter about blank lines around preprocessor conditionals.
+        <application>Pgindent</> is also now smarter about blank lines
+        around preprocessor conditionals.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Avoid most uses of dlltool in Cygwin and  Mingw builds (Marco Atzeri, Hiroshi Inoue)
+        Avoid most uses of dlltool in <productname>Cygwin</> and
+        <productname>Mingw</> builds (Marco Atzeri, Hiroshi Inoue)
        </para>
       </listitem>
 
@@ -1766,100 +2185,130 @@
 
       <listitem>
        <para>
-        Add <application>pg_prewarm</> to preload relation data into the shared buffer cache (Robert Haas)
+        Add <link linkend="pgprewarm"><application>pg_prewarm</></link>
+        to preload relation data into the shared buffer cache (Robert Haas)
        </para>
 
        <para>
-        This is useful at server start to produce more consistent performance.
+        This is useful at server start to produce more consistent
+        performance.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add <acronym>UUID</> random number generator <function>gen_random_uuid()</> to pgcrypto (Oskari Saarenmaa)
+        Add <acronym>UUID</> random number generator
+        <function>gen_random_uuid()</> to <link
+        linkend="pgcrypto"><application>pgcrypto</></link> (Oskari
+        Saarenmaa)
        </para>
 
        <para>
-        This allows the creation of version 4 <acronym>UUID</>s without requiring the installation of uuid-ossp.
+        This allows the creation of version 4 <acronym>UUID</>s without
+        requiring the installation of uuid-ossp.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add logging of trigger execution to  <application>auto_explain</> (Horiguchi Kyotaro)
+        Add logging of trigger execution to <link
+        linkend="auto-explain"><application>auto_explain</></link>
+        (Horiguchi Kyotaro)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow reporting of the <application>pg_stat_statements</>'s internal query hash identifier (Daniel Farina, Sameer Thakur, Peter Geoghegan)
+        Allow reporting of the <link
+        linkend="pgstatstatements"><application>pg_stat_statements</></link>'s
+        internal query hash identifier (Daniel Farina, Sameer Thakur,
+        Peter Geoghegan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have <application>pg_stat_statements</> use a flat file for query text storage, allowing higher limits (Peter Geoghegan)
+        Have <link
+        linkend="pgstatstatements"><application>pg_stat_statements</></link>
+        use a flat file for query text storage, allowing higher limits
+        (Peter Geoghegan)
        </para>
 
        <para>
-        Also add the ability to retrieve all <application>pg_stat_statements</> information except the query text.  This allows programs to reuse the query
-        text already retrieved by referencing queryid.
+        Also add the ability to retrieve all
+        <application>pg_stat_statements</> information except the query
+        text.  This allows programs to reuse the query text already
+        retrieved by referencing queryid.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Fix pgstattuple to not report rows from uncommitted transactions as dead (Robert Haas)
+        Fix <link linkend="pgstattuple"><application>pgstattuple</></link>
+        to not report rows from uncommitted transactions as dead
+        (Robert Haas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have pgstattuple functions use regclass-type arguments (Satoshi Nagayasu)
+        Have <link linkend="pgstattuple"><application>pgstattuple</></link>
+        functions use regclass-type arguments (Satoshi Nagayasu)
        </para>
 
        <para>
-        While text-type arguments are still supported, they will be removed in a later major release.
+        While text-type arguments are still supported, they will be
+        removed in a later major release.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve consistency of pgrowlocks output to honor snapshot rules more consistently (Robert Haas)
+        Improve consistency of <link
+        linkend="pgrowlocks"><application>pgrowlocks</></link> output to
+        honor snapshot rules more consistently (Robert Haas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve indexing of <application>pg_trgm</> values to discourage indexing whitespace (Alexander Korotkov)
+        Improve indexing of <link
+        linkend="pgtrgm"><application>pg_trgm</></link> values to
+        discourage indexing whitespace (Alexander Korotkov)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Store cube data more compactly (Stas Kelvich)
+        Store <link linkend="cube"><type>cube</></link> data more compactly
+        (Stas Kelvich)
        </para>
 
        <para>
-        Existing data must be dumped/restored to use the new format.  The old format can still be read.
+        Existing data must be dumped/restored to use the new format.
+        The old format can still be read.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce vacuumlo client-side memory usage by using a cursor (Andrew Dunstan)
+        Reduce <link linkend="vacuumlo"><application>vacuumlo</></link>
+        client-side memory usage by using a cursor (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Dramatically reduce memory consumption in <application>pg_upgrade</> (Bruce Momjian)
+        Dramatically reduce memory consumption in <link
+        linkend="pgupgrade"><application>pg_upgrade</></link> (Bruce
+        Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Pass <application>pg_upgrade</> user names (<option>-U</>) to analyze scripts (Bruce Momjian)
+        Pass <link linkend="pgupgrade"><application>pg_upgrade</></link>
+        user names (<option>-U</>) to analyze scripts (Bruce Momjian)
        </para>
       </listitem>
 
@@ -1872,7 +2321,8 @@
 
       <listitem>
        <para>
-        Allow pgbench to process script files of any line length (Sawada Masahiko)
+        Allow pgbench to process script files of any line length (Sawada
+        Masahiko)
        </para>
 
        <para>
@@ -1882,7 +2332,8 @@
 
       <listitem>
        <para>
-        Add <application>pg_bench</> option (<option>--rate</>) to control the transaction rate (Fabien Coelho)
+        Add <application>pg_bench</> option (<option>--rate</>) to control
+        the transaction rate (Fabien Coelho)
        </para>
       </listitem>
 
-- 
GitLab